Thảo luận Bài 4
+74
PhanThanhLiem(I22A)
NguyenVanQuoc (I22B)
HaTrungMinhPhuc(I22B)
NguyenBaoLoc70(I22A)
PhamThiThao (I22B)
phungvanduong24(I12A)
NguyenMinhTuan94(I22A)
NguyenTuHuy(I22A)
ChauQuangCam (I22B)
NguyenCaoTri (I22B)
NguyenKhanhDuy18 (I22B)
TrỉnhToQuyen(I12A)
NguyenVanPhat(I22B)
TranDangKhoa(I22A)
TranQuocLoc(I22A)
LuGiaLam(I22A)
Ng0HaiQuan(i22B)
CAOTHANHLUAN(I22B)
PhamQuocCuong (I22A)
DuongTrungQuan
dangthihoangly(I12A)
truongtph.i11c
NguyenTienDat (I22A)
BuiTrongHung41(I11C)
LeThiKimNgan67(I11C)
luquoctuan(I22A)
QuangMinhTuan(I22B)
NguyenNgocDan(I22B)
TranVanVan(I22A)
HoangThanhThien(I22B)
ToThiMy(I22A)
NguyenThiPhongLan(I22A)
TruongTranThanhTu(I22B)
Dao Duy Thanh(I22B)
NguyenTanDat(I22B)
NguyenVanTu(I22A)
VoMinhThang(I22B)
VoMinhDien(I22B)
HongGiaPhu (I22A)
nguyenthithutrang (I11C)
nguyenvankhoa59(122B)
NguyenThanhTung(I22B)
PhanPhamDanPhuong(I22B)
NguyenVanLanh (I22A)
TranVanDucHieu(I22B)
NguyenManhHuy(I22B)
MaiXuanSon (I22B)
VoDucDiDaiXuan(I22A)
LeVanVan (I22B)
vivanbieu(I22B)
TranThienTam (I22A)
NguyenThiThom(I22A)
TranDacTruong( I22A )
LeSonCa(I22B)
Huynh Xuan Dat(I22A)
TruongNhuNgoc (I22A)
NguyenMinhTam(I22B)
BuiHuuDang(I22B)
BuiThucTuan(I22B)
HongThuanPhong(I22B)
DangQuangBinh(I22B)
dangmonghai(I12A)
TruongMinhTriet(I22B)
HuynhDucQuang(I22B)
NguyenNhatHuy64(I22B)
LeAnhToan48(I22B)
NguyenHoangKimVu (I11C)
NguyenXuanLinh(HLT3)
TranVuSang (I22B)
NgoVanTuyen(I22B)
NguyenHoangThien(I22B)
DoThiHaDuc(I22B)
nguyenhoanglam_I22B
Admin
78 posters
Trang 4 trong tổng số 9 trang
Trang 4 trong tổng số 9 trang • 1, 2, 3, 4, 5, 6, 7, 8, 9
Re: Thảo luận Bài 4
NguyenHoangKimVu (I11C) đã viết:Theo mình nghĩ thì không phải các process nào ở trạng thái new thì cũng sẽ được chuyển tất cả sang trạngthái ready mà phải được "sơ tuyển". Việc "sơ tuyển" ở đây là để có 1 hỗn hợp tối ưu hai loại process khác nhau: hướng CPU và hướng I/O.DangQuangBinh(I22B) đã viết:Hôm qua,thầy có nói về vấn đề tại sao không lấy hết các tiến trình từ trạng thái new sang trạng thái ready,em chưa rõ lắm thầy giải thích lại giúp em với.....
Theo mình nghĩ giống như xếp hàng vậy,từng ng lên xe bus .vd đến cuối h đó ,vẫn còn người chưa lên nhưng xe bus trước đó là tuyến cuối ,thì ng do vẫn tồn tại ở trang thái là new mà
NguyenMinhTam(I22B)- Tổng số bài gửi : 35
Join date : 08/03/2013
Re: Thảo luận Bài 4
nguyenvankhoa59(122B) đã viết:- Là 1 giá trị giúp phân định tầm quan trọng của 1 tiến trình nó có thể được phát sinh tự động bởi hệ thống hoặc gán trực tiếp bởi người dùng.
có 2 loại độ ưu tiên:
1. Độ ưu tiên tĩnh: Là độ gán sẵn cho tiến trình và không thay đổi bất kể sự biến động của môi trường. Cơ chế độ ưu tiên tĩnh dễ thực hiện nhưng đôi khi không hợp lí vì môi trường thay đổi có thể ảnh hưởng đến tầm quan trọng của tiến trình.
2. Độ ưu tiên động: Là độ ưu tiên thay đổi theo thời gian và môi trường xử lí của tiến trình, tiến trình được khởi động với mật 1 thời gian ngắn. Sau đó, hệ thống sẽ sữa đổi giá trị độ ưu tiên trong từng giai đoạn thực hiện của tiến trình cho phù hợp với tình hình hệ thống.
Hình như k có độ ưu tiên của tiến trình mà....bạn nào vào cho thêm ý kiến về câu này hông..có thể mình nghe không rõ
NguyenMinhTam(I22B)- Tổng số bài gửi : 35
Join date : 08/03/2013
Re: Thảo luận Bài 4
LeAnhToan48(I22B) đã viết:TruongMinhTriet(I22B) đã viết:xuanlinh đã viết:TruongMinhTriet(I22B) đã viết:Thầy và các bạn cho mình hỏi tại sao code:
Tiến trình Sản Xuất giá trị của in = (in + 1) % BUFFER_SIZE mà không phải là in = in + 1
Tiến trình Tiêu Thụ giá trị của out = (out + 1) % BUFFER_SIZE mà không phải là out = out + 1
Cảm ơn thầy và các bạn đã giải đáp.
Vì nếu in=in+1 hay out=out+1 như thế sẽ lớn hơn kích thước BUFFER_SIZE. Như vậy là vượt quá phạm vi nhớ. Nên cần phải viết là in = (in + 1) % BUFFER_SIZE để lúc in hay out chạy đến ô nhớ cuối cùng thì quay trở lại vị trí đầu tiên là 0
Admin
Lần này, nhiều bạn giỏi hơn các khoá trước đấy !
Cảm ơn về lời giải thích của bạn nhưng theo mình sau khi tăng "in" hay "out" lên 1 thì mình có thể kiểm tra giá trị của "in" hoặc "out" có lớn hơn BUFFER_SIZE hay ko sau đó mình chạy lại lặp củng đc mà, có nhất thiết phải in = (in + 1) % BUFFER_SIZE or out = (out + 1) % BUFFER_SIZE ????
Theo mình nghĩ nếu tăng lên 1 sau đó viết thêm code kiểm tra là không cần thiết và dài dòng.Ví dụ Buffer=10,in =9+1 tương đương buffer.tới đây kiểm tra thấy in=buffer bạn sẽ trỏ in về vị trí đầu đúng không.trong khi đó ta %(modulo) cho buffer thì sẽ không cần phải so sánh và trỏ về vị trí đầu tiên làm gì.Mình hiểu vậy,có gì sai mong các bạn chỉ giáo nhé.À cái này hình như giống thuật toán thêm phần tử vô hàng đợi(queue)khi hàng đợi bị tràn thì phải đó,mình không nhớ rõ lắm.
Nếu nếu % còn dư thì sẽ quau đầu lại mà.thi % buffer_size là cần thiết mà k cần fai thêm if else để xét lớn bé còn thêm vòng lặp thì code dài và k tôi ưu nữa
NguyenMinhTam(I22B)- Tổng số bài gửi : 35
Join date : 08/03/2013
Vấn đề sản xuất và tiêu thụ trong hệ điều hành
1/ Đối tượng: Chúng ta xét 3 đối tượng: Một là đối tượng sản xuất (Producer), hai là đối tượng tiêu thụ (Consumer) hoạt động đồng bộ với nhau qua đối tượng thứ 3 làm nhiệm vụ lưu trữ trung gian (Buffer).
2/ Hoạt động: Thông qua 1 tiến trình xử lí (Process), Producer sẽ đưa ra những dòng thông tin được lưu trữ vào Buffer, một cách có thứ tự và xoay vòng giới hạn. Sau đó, Consumer sẽ lấy thông tin từ Buffer theo thứ thự, để cung cấp cho những tiến trình mà Nó cần và đây là cái mà Chúng ta gọi là sự tiêu thụ .
3/ Ví dụ: Trong những cuộc chiến tranh quân sự, quân số sẽ giảm dần sau những trận chiến do chết và bị thương. Khi đó sở chỉ huy sẽ ra quyết định tuyển tân binh để bù đắp cho số quân đã bị mất với chỉ tiêu là mỗi Đại đội 100 quân, lúc này Đại đội sẽ là Producer đưa ra những tiến trình sàn lọc và đưa tân binh vào huấn luyện. Sau khi kết thúc quá trình đào tạo, Đại đội sẽ trích ra 100 quân vào lực lượng dự bị (tương đương thông tin được đưa vào Buffer-size) , lực lượng này sẽ được Sở chỉ huy điều động bổ sung cho các đơn vị tham chiến trên chiến trường (tiến trình tiêu thụ) và Sở chỉ huy khi ấy sẽ là Consumer.
2/ Hoạt động: Thông qua 1 tiến trình xử lí (Process), Producer sẽ đưa ra những dòng thông tin được lưu trữ vào Buffer, một cách có thứ tự và xoay vòng giới hạn. Sau đó, Consumer sẽ lấy thông tin từ Buffer theo thứ thự, để cung cấp cho những tiến trình mà Nó cần và đây là cái mà Chúng ta gọi là sự tiêu thụ .
3/ Ví dụ: Trong những cuộc chiến tranh quân sự, quân số sẽ giảm dần sau những trận chiến do chết và bị thương. Khi đó sở chỉ huy sẽ ra quyết định tuyển tân binh để bù đắp cho số quân đã bị mất với chỉ tiêu là mỗi Đại đội 100 quân, lúc này Đại đội sẽ là Producer đưa ra những tiến trình sàn lọc và đưa tân binh vào huấn luyện. Sau khi kết thúc quá trình đào tạo, Đại đội sẽ trích ra 100 quân vào lực lượng dự bị (tương đương thông tin được đưa vào Buffer-size) , lực lượng này sẽ được Sở chỉ huy điều động bổ sung cho các đơn vị tham chiến trên chiến trường (tiến trình tiêu thụ) và Sở chỉ huy khi ấy sẽ là Consumer.
LeVanVan (I22B)- Tổng số bài gửi : 12
Join date : 10/03/2013
Re: Thảo luận Bài 4
Cái này giống như Quete vòng trong danh sách liên kết đó, trong mảng Queue vòng khi thực hiện lệnh EnQueue (thêm phần tử vào mảng), có kiểm tra nếu nhập đầy mảng Tail = N (kích thước của mảng) thì Tail gán trở lại Tail = 0 (hoặc bằng 1).TruongMinhTriet(I22B) đã viết:Thầy và các bạn cho mình hỏi tại sao code:
Tiến trình Sản Xuất tăng giá trị của in bằng lệnh in = (in + 1) % BUFFER_SIZE mà không phải là bằng in = in + 1
Tiến trình Tiêu Thụ tăng giá trị của out bằng lệnh out = (out + 1) % BUFFER_SIZE mà không phải là bằng out = out + 1
?
Cảm ơn thầy và các bạn.
HongGiaPhu (I22A)- Tổng số bài gửi : 25
Join date : 10/03/2013
Re: Thảo luận Bài 4
PhanPhamDanPhuong(I22B) đã viết:DangQuangBinh(I22B) đã viết:Hôm qua,thầy có nói về vấn đề tại sao không lấy hết các tiến trình từ trạng thái new sang trạng thái ready,em chưa rõ lắm thầy giải thích lại giúp em với.....
Như Thầy đã nói thì ở New cũng có hàng đợi như ở Ready và Waiting. Như vậy khi các tiến trình vừa được tạo (tức là đang ở New) cũng sẽ xếp hàng tuần tự. Ready: ở đây tiến trình chờ để được ấn định CPU. Vậy theo mình nghĩ tiến trình lấy từ new sang ready cũng phải đi theo tuần tự của hàng đợi và bản thân tiến trình đã sẵn sàng để chờ đợi CPU cấp phát để được xử lý.
Mình hiểu như thế, không biết còn sai sót gì ko? mong Thầy và các bạn giải thích và làm rõ thêm.
Theo hệ chia thời gian thì mỗi tác vụ chỉ đc dùng CPU trong 1 khoảng thời gian ngắn ,sau đó bị ngắt chuyển sang tác vụ khác ,cứ thế xoay vòng .
TranThienTam (I22A)- Tổng số bài gửi : 27
Join date : 08/03/2013
Trạng thái hoạt động của tiến trình
Tiến trình trong hệ thống tồn tại dưới hai trạng thái đang vận hành (đang chạy) hoặc chờ đợi (tạm thời đứng im).
Tiến trình thực thể động và được sinh ra khi chương trình được tải vào bộ nhớ để thực hiện tiến trình người dùng hoặc tiến trình hệ thống.
Tất cả các quá trình đó của tiến trình thường được khái quát tiêu biểu thành mô hình 5 trạng thái chính.
1/ Mới khởi tạo: Các tiến trình vừa được tạo lập.
2/ Sẵn sàng: Các tiến trình trong hàng đợi sẵn sàng chờ để được ấn lệnh CPU.
3/ Chạy: Các lệnh, tiến trình đang thực hiện.
4/ Chờ đợi: Tiến trình chờ 1 sự kiện khác đang vận hành (ví dụ như chờ kết thúc sự kiện I/O, hoặc chờ tiến trình khác hoàn tất).
5/ Kết thúc: Tiến trình vừa hoàn thành xong công việc.
Tiến trình thực thể động và được sinh ra khi chương trình được tải vào bộ nhớ để thực hiện tiến trình người dùng hoặc tiến trình hệ thống.
Tất cả các quá trình đó của tiến trình thường được khái quát tiêu biểu thành mô hình 5 trạng thái chính.
1/ Mới khởi tạo: Các tiến trình vừa được tạo lập.
2/ Sẵn sàng: Các tiến trình trong hàng đợi sẵn sàng chờ để được ấn lệnh CPU.
3/ Chạy: Các lệnh, tiến trình đang thực hiện.
4/ Chờ đợi: Tiến trình chờ 1 sự kiện khác đang vận hành (ví dụ như chờ kết thúc sự kiện I/O, hoặc chờ tiến trình khác hoàn tất).
5/ Kết thúc: Tiến trình vừa hoàn thành xong công việc.
HongGiaPhu (I22A)- Tổng số bài gửi : 25
Join date : 10/03/2013
Các bước thao tác chính chi tiết với tiến trình
1/ Tạo mới tiến trình
- Gán số định danh cho tiến trình được tạo mới đồng thời cấp 1 ô trong bảng tiến trình.
- Tạo không gian nhớ (môi trường) cho tiến trình và PCB (Process Control Block - Khối điều khiển tiến trình).
- Bắt đầu khởi tạo PCB.
- Liên kết PCB của tiến trình vào các danh sách quản lý.
2/ Chuyển đổi tiến trình
- Thông tin về tiến trình hiện hành (đang chứa trong PCB) đƣợc gọi là ngữ cảnh (Context) của tiến trình đó.
- Việc chuyển giữa tiến trình còn đƣợc gọi là chuyển đổi ngữ cảnh (Context Switch).
- Việc chuyển đổi ngữ cảnh xảy ra khi ngắt cứng hoặc tiến trình từ lời gọi hệ thống.
- Trước khi chuyển đổi sang tiến trình khác thì ngữ cảnh, trạng thái hoạt động tạm thời được lưu vào PCB.
- Khi được cấp phát tài nguyên CPU, tiến trình từ trạng thái chờ đợi do bị ngắt trước đó, ngữ cảnh của tiến trình sẽ được khôi phục lại bằng cách đọc các thông tin trạng thái đã lưu trong bảng PCB trước đó để biết được trạng thái tạm ngưng là gì, vị trí tạm ngưng ở đâu để tiến trình có thể tiếp tục công việc một cách chính xác. (Lưu ý ngữ cảnh có thể gồm các thông tin có thể bị hàm xử lí ngắt thay đổi, nội dung thanh ghi, trạng thái CPU, số hiệu tiến trình, con trỏ hiện hành...)
- Sau khi thực hiện ngắt, hệ thống vận hành tiến trình khác
+ Thay đổi trạng thái tiến trình (Process Status).
+ Cập nhậ tthông tin thống kê trong PCB.
+ Chuyển con trỏ (địa chỉ liên kết) PCB của tiến trình vào danh sách ứng với trạng thái mới.
+ Cập nhật PCB của tiến trình mới được chọn.
+ Cập nhật nội dung thanh ghi và trạng thá iCPU.
=> Ta thấy rằng chuyển đổi tiến trình đòi hỏi thời gian.
3/ Kết thúc tiến trình
- Kết thúc bình thường: Hệ điều hành sẽ kết thúc tiến trình bằng lời gọi hệ thống Exit ().
- Bị kết thúc:
+ Bị tiến trìnhcha kết thúc.
+ Do các lỗi (Errors).
+ Tiến trình yêu cầu nhiều bộ nhớ hơn so với tài nguyên có thể cung cấp.
+ Tiến trình thực hiện thời gian lâu hơn giới hạn.
Ta thấy việc tạo mới tiến trình tới khi kết thúc tiến trình phải luôn tuân thủ theo một trình tự, nguyên tắc có thứ tự rạch ròi, trong đời sống mọi việc của con người đều phải tuân thủ theo 1 nguyên tắc nào đó vị dụ như các bạn xếp hàng cũng giống như tiến trình tuân thủ theo thứ tự, trong một cuộc đua thì phải có điểm bắt đầu và điểm kết thúc nhưng người đua nếu muốn chạy phải chờ tín hiệu của ngưởi cầm cờ hiệu...vv...
- Gán số định danh cho tiến trình được tạo mới đồng thời cấp 1 ô trong bảng tiến trình.
- Tạo không gian nhớ (môi trường) cho tiến trình và PCB (Process Control Block - Khối điều khiển tiến trình).
- Bắt đầu khởi tạo PCB.
- Liên kết PCB của tiến trình vào các danh sách quản lý.
2/ Chuyển đổi tiến trình
- Thông tin về tiến trình hiện hành (đang chứa trong PCB) đƣợc gọi là ngữ cảnh (Context) của tiến trình đó.
- Việc chuyển giữa tiến trình còn đƣợc gọi là chuyển đổi ngữ cảnh (Context Switch).
- Việc chuyển đổi ngữ cảnh xảy ra khi ngắt cứng hoặc tiến trình từ lời gọi hệ thống.
- Trước khi chuyển đổi sang tiến trình khác thì ngữ cảnh, trạng thái hoạt động tạm thời được lưu vào PCB.
- Khi được cấp phát tài nguyên CPU, tiến trình từ trạng thái chờ đợi do bị ngắt trước đó, ngữ cảnh của tiến trình sẽ được khôi phục lại bằng cách đọc các thông tin trạng thái đã lưu trong bảng PCB trước đó để biết được trạng thái tạm ngưng là gì, vị trí tạm ngưng ở đâu để tiến trình có thể tiếp tục công việc một cách chính xác. (Lưu ý ngữ cảnh có thể gồm các thông tin có thể bị hàm xử lí ngắt thay đổi, nội dung thanh ghi, trạng thái CPU, số hiệu tiến trình, con trỏ hiện hành...)
- Sau khi thực hiện ngắt, hệ thống vận hành tiến trình khác
+ Thay đổi trạng thái tiến trình (Process Status).
+ Cập nhậ tthông tin thống kê trong PCB.
+ Chuyển con trỏ (địa chỉ liên kết) PCB của tiến trình vào danh sách ứng với trạng thái mới.
+ Cập nhật PCB của tiến trình mới được chọn.
+ Cập nhật nội dung thanh ghi và trạng thá iCPU.
=> Ta thấy rằng chuyển đổi tiến trình đòi hỏi thời gian.
3/ Kết thúc tiến trình
- Kết thúc bình thường: Hệ điều hành sẽ kết thúc tiến trình bằng lời gọi hệ thống Exit ().
- Bị kết thúc:
+ Bị tiến trìnhcha kết thúc.
+ Do các lỗi (Errors).
+ Tiến trình yêu cầu nhiều bộ nhớ hơn so với tài nguyên có thể cung cấp.
+ Tiến trình thực hiện thời gian lâu hơn giới hạn.
Ta thấy việc tạo mới tiến trình tới khi kết thúc tiến trình phải luôn tuân thủ theo một trình tự, nguyên tắc có thứ tự rạch ròi, trong đời sống mọi việc của con người đều phải tuân thủ theo 1 nguyên tắc nào đó vị dụ như các bạn xếp hàng cũng giống như tiến trình tuân thủ theo thứ tự, trong một cuộc đua thì phải có điểm bắt đầu và điểm kết thúc nhưng người đua nếu muốn chạy phải chờ tín hiệu của ngưởi cầm cờ hiệu...vv...
HongGiaPhu (I22A)- Tổng số bài gửi : 25
Join date : 10/03/2013
Phần mềm tích hợp tiếng nói
1. Phần mềm VnVoice
VnVoice là tiện ích tích hợp tiếng nói trong các chương trình ứng dụng. Nó hỗ trợ rất tốt khả năng đọc các tệp văn bản từ Microsoft Word 9x, 2000, đọc tin trên các trang Web (bằng cả hai thứ tiếng Việt, Anh với các font chữ ABC, VNI, UNICODE). Là công cụ hữu hiệu tích hợp với các CSDL nhằm thực hiện hay đưa ra các thông báo tự động tới mọi người.
Môi trường
+ PC có cài hệ điều hành Windows 9x, 2000, ME, XP, NT.
chức năng chính
+Đọc văn bản từ các nguồn: trên màn hình thông qua clipboard, các khoản mục trên Menu của chương trình, văn bản từ bàn phím gõ vào, văn bản trên các Website, trong các ứng dụng Microsoft Word, Outlook Express…
Tổng hợp được 6 thanh tiếng Việt
+ Cho phép đọc các khuôn dạng phi từ: biểu thức số, ngày tháng, giờ điện tử, tiền Việt ffice:smarttags" />lace w:st="on">Namlace>, đo lường, chữ viễt tắt thông thường.
Đặc biệt: đọc tự động văn bản hỗn hợp Việt - Anh, hoặc thuần Anh rất hữu dụng cho các ứng dụng Web
2. Phần mềm Text To Speech
Text-To-Speech of Vietnam, phần mềm giúp máy tính nói tiếng việt
+ Text-To-Speech of Vietnam được thiết kế như một thư viện phần mềm, sẵn sàng cho các nhà phát triển tích hợp, đem lại khả năng nói tiếng Việt cho mọi chương trình ứng dụng.
+ Text-To-Speech of Vietnam là một trong những thành quả thuộc dự án Hệ xử lý Ngôn ngữ tiếng Việt gồm hệ thống một loạt các engine, từ đầu vào nhận dạng chữ viết - tiếng nói, đến các xử lý như dịch tự động, phân tích - hiểu ngôn ngữ, kiểm tra chính tả - ngữ pháp, tìm kiếm theo nội dung, và cuối cùng đầu ra là tổng hợp tiếng nói. Trong quá trình nghiên cứu, triển khai thực hiện các nội dung trên, Tác giả đã tích hợp vào luận văn tốt nghiệp của mình tại trường Đại Học Dân Lập Hùng Vương khoá 1999-2003 và đạt điểm thủ khoa 10/10, và nay là Text-To-Speech of Vietnam - phần mềm thực hiện chuyển văn bản tiếng Việt thành tiếng nói. Text-To-Speech of Vietnam được thiết kế như một thư viện phần mềm, sẵn sàng cho các nhà phát triển tích hợp, đem lại khả năng nói tiếng Việt cho mọi chương trình ứng dụng.
Công nghệ chuyển văn bản thành tiếng nói
Chuyển văn bản thành tiếng nói (Text To Speech - TTS) là thuật ngữ chỉ việc tự động đọc bằng tiếng nói tổng hợp các văn bản hay nội dung bất kỳ. TTS khác với PRP (Pre-Recorded Prompts), là hệ thống phát thông báo bằng tiếng nói với thông tin cần cung cấp theo một kịch bản dựng sẵn gồm các đoạn cố định và một số phần có thể thay đổi (như các thông báo ở nhà ga, bến xe hoặc báo giờ qua điện thoại).
Quá trình chuyển từ văn bản thành tiếng nói gồm hai phần:
a) Xử lý văn bản: chuẩn hóa văn bản, cách đọc các ký hiệu của ngôn ngữ, xác định các thông tin ngữ âm, ngữ điệu từ văn bản sau đó chuyển thành dạng biểu diễn thích hợp với bộ tổng hợp tiếng nói.
b) Tổng hợp tiếng nói: là phần trực tiếp tạo ra tín hiệu tiếng nói, phần này sẽ sinh ra tín hiệu tiếng nói tương ứng với văn bản ở phần trước. Có nhiều phương pháp tạo tiếng nói tổng hợp nhưng hiện chỉ có hai phương pháp được sử dụng trong các hệ TTS: một là tổng hợp bằng cách ghép nối các đoạn ngắn của tiếng nói tự nhiên được ghi âm trước, sau đó phát lại; hai là tổng hợp bằng các luật dựa trên mô hình tạo tiếng nói con người và các quy tắc ngữ âm.
• Tổng hợp tiếng nói dựa trên ghép nối: Đơn giản và tự nhiên nhất là ghi âm chính tiếng nói con người và sau đó phát lại, kỹ thuật này có thể áp dụng với mọi âm thanh chứ không chỉ riêng tiếng nói! Vấn đề mấu chốt của phương pháp này là làm trơn chỗ ghép các đơn vị khi tổng hợp và thay đổi được các tham số đặc trưng để diễn tả ngữ điệu của câu. Do đó, chọn độ dài của đoạn tiếng nói tự nhiên làm đơn vị để lưu trữ là điều quan trọng. Các ngôn ngữ như tiếng Anh, Pháp, đơn vị thường được chọn là diphone (hai nửa của hai âm vị liền nhau), còn tiếng Việt, đoạn tiếng nói thường là phụ âm đầu, vần và có thể là cả âm tiết. Ưu điểm của phương pháp là ban đầu dễ triển khai, tiếng nói tạo ra chính là tiếng người (đương nhiên!), hạn chế của nó là dữ liệu lớn, thêm giọng nói là công việc tốn kém và các tham số đặc trưng chỉ có thể điều khiển hạn chế, điều này dễ dẫn đến méo tiếng và sẽ rất không tự nhiên khi ghép thành đoạn dài ứng với cả câu.
• Tổng hợp tiếng nói bằng các luật: Tìm hiểu bản chất, các đặc trưng của tiếng nói, và quy luật để tạo tiếng nói con người là mục tiêu của ngành khoa học nghiên cứu xử lý tiếng nói từ rất lâu. Các nghiên cứu về xử lý tiếng nói đã chỉ ra rằng, về mặt tín hiệu, bộ máy phát âm của con người tương đương với một hệ thống gồm nguồn âm, các bộ lọc và sự tán xạ. Mô hình được áp dụng nhiều nhất là mô hình nguồn âm - bộ lọc (source-filter), phương pháp tổng hợp theo mô hình này được gọi là tổng hợp formant. Phương pháp tổng hợp formant có ưu điểm là kích thước toàn hệ thống rất nhỏ gọn vì không yêu cầu dữ liệu mà chỉ gồm các quy tắc, mọi tham số tiếng nói có thể điều khiển dễ dàng, không giới hạn, thuận tiện khi cần tạo thêm giọng mới, tuy nhiên, tiếng nói của nó tạo ra vẫn còn một chút kiểu "robot". Để tổng hợp được một ngôn ngữ, cần phải nghiên cứu để xác định các đặc trưng ngữ âm của hệ thống âm vị, và các quy tắc cấu âm của ngôn ngữ. Do vậy, không nhiều ngôn ngữ có thể tổng hợp được bằng phương pháp này, hệ Text-To-Speech of Vietnam được giới thiệu dưới đây là kết quả đầu tiên thực hiện thành công cho tiếng Việt.
Hệ TTS tiếng việt - Text-To-Speech of Vietnam
Text-To-Speech of Vietnam là hệ TTS tiếng Việt dựa trên tiếng nói được tổng hợp bằng phương pháp tổng hợp formant, có nghĩa là tiếng nói của Text-To-Speech of Vietnam tạo ra không phải là tiếng nói tự nhiên được ghi từ trước sau đó phát lại, mà bằng phương pháp sinh ra tín hiệu tiếng nói trên cơ sở các thông số đặc trưng của ngữ âm và luật cấu âm của tiếng Việt (xem sơ đồ).
Sơ đồ khối hệ Text-To-Speech of Vietnam
Text-To-Speech of Vietnam là phần mềm đầu tiên có thể tổng hợp được tiếng Việt bằng các luật từ các thành phần đặc trưng của ngữ âm tiếng Việt, tự động đọc không hạn chế văn bản tiếng Việt. Ngoài ra, Text-To-Speech of Vietnam còn là một công cụ mới để nghiên cứu ngữ âm tiếng Việt - Phân tích bằng Tổng hợp. Text-To-Speech of Vietnam thực hiện phân tích và chuẩn hóa văn bản tiếng Việt, đọc khá rõ tất cả các âm tiết tiếng Việt, thể hiện hợp lý ngữ điệu khi đọc các loại câu khác nhau, có thể điều khiển không hạn chế tốc độ đọc, cao độ của giọng nói để thành các giọng nói khác nhau. Đặc biệt, kích thước toàn bộ của Text-To-Speech of Vietnam rất nhỏ, không cần file dữ liệu riêng, toàn bộ đều nằm trên file thực thi (chương trình minh hoạ chỉ 350KB), thuận tiện để tích hợp vào mọi loại ứng dụng trên các hệ điều hành, phần cứng khác nhau, hoặc các thiết bị có tài nguyên hạn chế (như thiết bị cầm tay, di động,...). Text-To-Speech of Vietnam xử lý văn bản tiếng Việt đầu vào thuộc bảng mã TCVN 5712 và Unicode dựng sẵn, tạo dãy tín hiệu tiếng nói đầu ra mã hóa theo chuẩn PCM (16 bit, mono, có thể thay đổi tần số lấy mẫu tùy ý), có thể ghi lên đĩa thành các file theo định dạng WAV hoặc phát trực tiếp ra loa.
Phần mềm minh họa
Phần mềm VTTSDemo.exe minh họa các tính năng của Text-To-Speech of Vietnam, chạy trên MS Windows có thể tải xuống tại
http://www.text-to-speech.r8.org. Phần mềm này cho phép khảo sát một số đặc tính như điều chỉnh tốc độ đọc, cao độ của giọng nói, cũng như một số khả năng xử lý văn bản tiếng Việt để tạo thành tiếng nói tương ứng. Cách sử dụng và ý nghĩa của một số điều khiển của phần mềm như sau:
• Nhập đoạn văn bản tiếng Việt vào ô soạn thảo (đánh máy hoặc dán từ Clipboard) theo mã TCVN3 (mọi phiên bản Windows) hoặc Unicode dựng sẵn (Windows XP, Server 2003).
• Chọn (bôi đen) một đoạn hoặc đặt con trỏ về đầu đoạn cần đọc.
• Nhấn nút Speak để đọc đoạn văn bản được chọn, nhấn nút Stop để dừng giữa chừng, nếu ô soạn thảo trống (rỗng) chương trình sẽ đọc bản thông báo thời gian hiện tại.
• Chương trình có thể đọc được các dãy số, ngày-tháng, viết tắt theo kiểu tiếng Việt.
• Thay đổi giá trị Speed (tốc độ, tính bằng số âm tiết sẽ đọc trong 1 phút) để khảo sát sự điều khiển tốc độ đọc.
• Thay đổi giá trị Pitch (cao độ) để khảo sát sự điều khiển cao độ giọng nói.
Phát triển ứng dụng với thư viện lập trình
Toàn bộ thư viện lập trình chuyển văn bản thành tiếng nói cho tiếng Việt dựa trên tổng hợp formant - Text-To-Speech of Vietnam được đóng gói trong chương trình, trong thư viện hàm DLL hoặc trong Component (OCX).
Để sử dụng, tích hợp nó cùng với ứng dụng quy cách ứng với từng ngôn ngữ lập trình cụ thể.
Để thử nghiệm, chỉ cần gọi duy nhất hàm TTSvn, hàm này sẽ chuyển đoạn văn bản mong muốn thành tín hiệu tiếng nói và tự động phát ra loa.
Hình thức cung cấp Text-To-Speech of Vietnam
Text-To-Speech of Vietnam được thiết kế thành một engine, có thể cung cấp ở các dạng:
• Thư viện phần mềm lập trình dạng DLL, COM.
• Ứng dụng trên server
• Phần mềm ứng dụng độc lập
• Hợp tác phát triển các ứng dụng đặc thù
• Đóng gói tương thích với SAPI
• Phát triển thành phần mềm nhúng (firmware) hay cứng hoá, tích hợp phần cứng theo yêu cầu (thiết bị tài nguyên hạn chế, máy chuyên dụng, đồ chơi, robot...)
Khả năng ứng dụng của Text-To-Speech of Vietnam
Thư viện lập trình Text-To-Speech of Vietnam sẵn sàng để tích hợp vào lớp lớn các ứng dụng:
• Hệ thống đáp ứng bằng tiếng nói
• Hệ thống giao tiếp người-máy bằng tiếng nói
• Thêm lựa chọn cung cấp thông báo bằng tiếng Việt cho các ứng dụng
• Các ứng dụng hỗ trợ người tàn tật (khiếm thị)
• Các hệ thống telematics
• Các hệ thống thông điệp hợp nhất
• Các hệ thống khai thác thông tin qua điện thoại
• Các ứng dụng thông báo bằng tiếng nói với nội dung thay đổi như: các hệ thống xếp chỗ tự động trong các ngân hàng, phòng bán vé...
• Ứng dụng soát lỗi chính tả, đọc các thông tin trên màn hình giúp người dùng
• Các ứng dụng trong giáo dục
VnVoice là tiện ích tích hợp tiếng nói trong các chương trình ứng dụng. Nó hỗ trợ rất tốt khả năng đọc các tệp văn bản từ Microsoft Word 9x, 2000, đọc tin trên các trang Web (bằng cả hai thứ tiếng Việt, Anh với các font chữ ABC, VNI, UNICODE). Là công cụ hữu hiệu tích hợp với các CSDL nhằm thực hiện hay đưa ra các thông báo tự động tới mọi người.
Môi trường
+ PC có cài hệ điều hành Windows 9x, 2000, ME, XP, NT.
chức năng chính
+Đọc văn bản từ các nguồn: trên màn hình thông qua clipboard, các khoản mục trên Menu của chương trình, văn bản từ bàn phím gõ vào, văn bản trên các Website, trong các ứng dụng Microsoft Word, Outlook Express…
Tổng hợp được 6 thanh tiếng Việt
+ Cho phép đọc các khuôn dạng phi từ: biểu thức số, ngày tháng, giờ điện tử, tiền Việt ffice:smarttags" />lace w:st="on">Namlace>, đo lường, chữ viễt tắt thông thường.
Đặc biệt: đọc tự động văn bản hỗn hợp Việt - Anh, hoặc thuần Anh rất hữu dụng cho các ứng dụng Web
2. Phần mềm Text To Speech
Text-To-Speech of Vietnam, phần mềm giúp máy tính nói tiếng việt
+ Text-To-Speech of Vietnam được thiết kế như một thư viện phần mềm, sẵn sàng cho các nhà phát triển tích hợp, đem lại khả năng nói tiếng Việt cho mọi chương trình ứng dụng.
+ Text-To-Speech of Vietnam là một trong những thành quả thuộc dự án Hệ xử lý Ngôn ngữ tiếng Việt gồm hệ thống một loạt các engine, từ đầu vào nhận dạng chữ viết - tiếng nói, đến các xử lý như dịch tự động, phân tích - hiểu ngôn ngữ, kiểm tra chính tả - ngữ pháp, tìm kiếm theo nội dung, và cuối cùng đầu ra là tổng hợp tiếng nói. Trong quá trình nghiên cứu, triển khai thực hiện các nội dung trên, Tác giả đã tích hợp vào luận văn tốt nghiệp của mình tại trường Đại Học Dân Lập Hùng Vương khoá 1999-2003 và đạt điểm thủ khoa 10/10, và nay là Text-To-Speech of Vietnam - phần mềm thực hiện chuyển văn bản tiếng Việt thành tiếng nói. Text-To-Speech of Vietnam được thiết kế như một thư viện phần mềm, sẵn sàng cho các nhà phát triển tích hợp, đem lại khả năng nói tiếng Việt cho mọi chương trình ứng dụng.
Công nghệ chuyển văn bản thành tiếng nói
Chuyển văn bản thành tiếng nói (Text To Speech - TTS) là thuật ngữ chỉ việc tự động đọc bằng tiếng nói tổng hợp các văn bản hay nội dung bất kỳ. TTS khác với PRP (Pre-Recorded Prompts), là hệ thống phát thông báo bằng tiếng nói với thông tin cần cung cấp theo một kịch bản dựng sẵn gồm các đoạn cố định và một số phần có thể thay đổi (như các thông báo ở nhà ga, bến xe hoặc báo giờ qua điện thoại).
Quá trình chuyển từ văn bản thành tiếng nói gồm hai phần:
a) Xử lý văn bản: chuẩn hóa văn bản, cách đọc các ký hiệu của ngôn ngữ, xác định các thông tin ngữ âm, ngữ điệu từ văn bản sau đó chuyển thành dạng biểu diễn thích hợp với bộ tổng hợp tiếng nói.
b) Tổng hợp tiếng nói: là phần trực tiếp tạo ra tín hiệu tiếng nói, phần này sẽ sinh ra tín hiệu tiếng nói tương ứng với văn bản ở phần trước. Có nhiều phương pháp tạo tiếng nói tổng hợp nhưng hiện chỉ có hai phương pháp được sử dụng trong các hệ TTS: một là tổng hợp bằng cách ghép nối các đoạn ngắn của tiếng nói tự nhiên được ghi âm trước, sau đó phát lại; hai là tổng hợp bằng các luật dựa trên mô hình tạo tiếng nói con người và các quy tắc ngữ âm.
• Tổng hợp tiếng nói dựa trên ghép nối: Đơn giản và tự nhiên nhất là ghi âm chính tiếng nói con người và sau đó phát lại, kỹ thuật này có thể áp dụng với mọi âm thanh chứ không chỉ riêng tiếng nói! Vấn đề mấu chốt của phương pháp này là làm trơn chỗ ghép các đơn vị khi tổng hợp và thay đổi được các tham số đặc trưng để diễn tả ngữ điệu của câu. Do đó, chọn độ dài của đoạn tiếng nói tự nhiên làm đơn vị để lưu trữ là điều quan trọng. Các ngôn ngữ như tiếng Anh, Pháp, đơn vị thường được chọn là diphone (hai nửa của hai âm vị liền nhau), còn tiếng Việt, đoạn tiếng nói thường là phụ âm đầu, vần và có thể là cả âm tiết. Ưu điểm của phương pháp là ban đầu dễ triển khai, tiếng nói tạo ra chính là tiếng người (đương nhiên!), hạn chế của nó là dữ liệu lớn, thêm giọng nói là công việc tốn kém và các tham số đặc trưng chỉ có thể điều khiển hạn chế, điều này dễ dẫn đến méo tiếng và sẽ rất không tự nhiên khi ghép thành đoạn dài ứng với cả câu.
• Tổng hợp tiếng nói bằng các luật: Tìm hiểu bản chất, các đặc trưng của tiếng nói, và quy luật để tạo tiếng nói con người là mục tiêu của ngành khoa học nghiên cứu xử lý tiếng nói từ rất lâu. Các nghiên cứu về xử lý tiếng nói đã chỉ ra rằng, về mặt tín hiệu, bộ máy phát âm của con người tương đương với một hệ thống gồm nguồn âm, các bộ lọc và sự tán xạ. Mô hình được áp dụng nhiều nhất là mô hình nguồn âm - bộ lọc (source-filter), phương pháp tổng hợp theo mô hình này được gọi là tổng hợp formant. Phương pháp tổng hợp formant có ưu điểm là kích thước toàn hệ thống rất nhỏ gọn vì không yêu cầu dữ liệu mà chỉ gồm các quy tắc, mọi tham số tiếng nói có thể điều khiển dễ dàng, không giới hạn, thuận tiện khi cần tạo thêm giọng mới, tuy nhiên, tiếng nói của nó tạo ra vẫn còn một chút kiểu "robot". Để tổng hợp được một ngôn ngữ, cần phải nghiên cứu để xác định các đặc trưng ngữ âm của hệ thống âm vị, và các quy tắc cấu âm của ngôn ngữ. Do vậy, không nhiều ngôn ngữ có thể tổng hợp được bằng phương pháp này, hệ Text-To-Speech of Vietnam được giới thiệu dưới đây là kết quả đầu tiên thực hiện thành công cho tiếng Việt.
Hệ TTS tiếng việt - Text-To-Speech of Vietnam
Text-To-Speech of Vietnam là hệ TTS tiếng Việt dựa trên tiếng nói được tổng hợp bằng phương pháp tổng hợp formant, có nghĩa là tiếng nói của Text-To-Speech of Vietnam tạo ra không phải là tiếng nói tự nhiên được ghi từ trước sau đó phát lại, mà bằng phương pháp sinh ra tín hiệu tiếng nói trên cơ sở các thông số đặc trưng của ngữ âm và luật cấu âm của tiếng Việt (xem sơ đồ).
Sơ đồ khối hệ Text-To-Speech of Vietnam
Text-To-Speech of Vietnam là phần mềm đầu tiên có thể tổng hợp được tiếng Việt bằng các luật từ các thành phần đặc trưng của ngữ âm tiếng Việt, tự động đọc không hạn chế văn bản tiếng Việt. Ngoài ra, Text-To-Speech of Vietnam còn là một công cụ mới để nghiên cứu ngữ âm tiếng Việt - Phân tích bằng Tổng hợp. Text-To-Speech of Vietnam thực hiện phân tích và chuẩn hóa văn bản tiếng Việt, đọc khá rõ tất cả các âm tiết tiếng Việt, thể hiện hợp lý ngữ điệu khi đọc các loại câu khác nhau, có thể điều khiển không hạn chế tốc độ đọc, cao độ của giọng nói để thành các giọng nói khác nhau. Đặc biệt, kích thước toàn bộ của Text-To-Speech of Vietnam rất nhỏ, không cần file dữ liệu riêng, toàn bộ đều nằm trên file thực thi (chương trình minh hoạ chỉ 350KB), thuận tiện để tích hợp vào mọi loại ứng dụng trên các hệ điều hành, phần cứng khác nhau, hoặc các thiết bị có tài nguyên hạn chế (như thiết bị cầm tay, di động,...). Text-To-Speech of Vietnam xử lý văn bản tiếng Việt đầu vào thuộc bảng mã TCVN 5712 và Unicode dựng sẵn, tạo dãy tín hiệu tiếng nói đầu ra mã hóa theo chuẩn PCM (16 bit, mono, có thể thay đổi tần số lấy mẫu tùy ý), có thể ghi lên đĩa thành các file theo định dạng WAV hoặc phát trực tiếp ra loa.
Phần mềm minh họa
Phần mềm VTTSDemo.exe minh họa các tính năng của Text-To-Speech of Vietnam, chạy trên MS Windows có thể tải xuống tại
http://www.text-to-speech.r8.org. Phần mềm này cho phép khảo sát một số đặc tính như điều chỉnh tốc độ đọc, cao độ của giọng nói, cũng như một số khả năng xử lý văn bản tiếng Việt để tạo thành tiếng nói tương ứng. Cách sử dụng và ý nghĩa của một số điều khiển của phần mềm như sau:
• Nhập đoạn văn bản tiếng Việt vào ô soạn thảo (đánh máy hoặc dán từ Clipboard) theo mã TCVN3 (mọi phiên bản Windows) hoặc Unicode dựng sẵn (Windows XP, Server 2003).
• Chọn (bôi đen) một đoạn hoặc đặt con trỏ về đầu đoạn cần đọc.
• Nhấn nút Speak để đọc đoạn văn bản được chọn, nhấn nút Stop để dừng giữa chừng, nếu ô soạn thảo trống (rỗng) chương trình sẽ đọc bản thông báo thời gian hiện tại.
• Chương trình có thể đọc được các dãy số, ngày-tháng, viết tắt theo kiểu tiếng Việt.
• Thay đổi giá trị Speed (tốc độ, tính bằng số âm tiết sẽ đọc trong 1 phút) để khảo sát sự điều khiển tốc độ đọc.
• Thay đổi giá trị Pitch (cao độ) để khảo sát sự điều khiển cao độ giọng nói.
Phát triển ứng dụng với thư viện lập trình
Toàn bộ thư viện lập trình chuyển văn bản thành tiếng nói cho tiếng Việt dựa trên tổng hợp formant - Text-To-Speech of Vietnam được đóng gói trong chương trình, trong thư viện hàm DLL hoặc trong Component (OCX).
Để sử dụng, tích hợp nó cùng với ứng dụng quy cách ứng với từng ngôn ngữ lập trình cụ thể.
Để thử nghiệm, chỉ cần gọi duy nhất hàm TTSvn, hàm này sẽ chuyển đoạn văn bản mong muốn thành tín hiệu tiếng nói và tự động phát ra loa.
Hình thức cung cấp Text-To-Speech of Vietnam
Text-To-Speech of Vietnam được thiết kế thành một engine, có thể cung cấp ở các dạng:
• Thư viện phần mềm lập trình dạng DLL, COM.
• Ứng dụng trên server
• Phần mềm ứng dụng độc lập
• Hợp tác phát triển các ứng dụng đặc thù
• Đóng gói tương thích với SAPI
• Phát triển thành phần mềm nhúng (firmware) hay cứng hoá, tích hợp phần cứng theo yêu cầu (thiết bị tài nguyên hạn chế, máy chuyên dụng, đồ chơi, robot...)
Khả năng ứng dụng của Text-To-Speech of Vietnam
Thư viện lập trình Text-To-Speech of Vietnam sẵn sàng để tích hợp vào lớp lớn các ứng dụng:
• Hệ thống đáp ứng bằng tiếng nói
• Hệ thống giao tiếp người-máy bằng tiếng nói
• Thêm lựa chọn cung cấp thông báo bằng tiếng Việt cho các ứng dụng
• Các ứng dụng hỗ trợ người tàn tật (khiếm thị)
• Các hệ thống telematics
• Các hệ thống thông điệp hợp nhất
• Các hệ thống khai thác thông tin qua điện thoại
• Các ứng dụng thông báo bằng tiếng nói với nội dung thay đổi như: các hệ thống xếp chỗ tự động trong các ngân hàng, phòng bán vé...
• Ứng dụng soát lỗi chính tả, đọc các thông tin trên màn hình giúp người dùng
• Các ứng dụng trong giáo dục
NgoVanTuyen(I22B)- Tổng số bài gửi : 32
Join date : 22/02/2013
Chọn tiến trình từ ready sang running
Giả sử có 1 tiến trình (process A) đang ở trạng ready, sau đó được chuyển sang running, sau 1 khoảng thời gian thì hđh ngắt, process A trở lại trạng thái ready, tuy nhiên trong ready queue lúc này đã có sẵn 2 tiến trình (process B&C)vừa được đưa vào từ newly queue. Khi process A trở lại ready queue thì phải xếp sau 2 tiến trình này (theo thứ tự thời gian đẩy vào ready queue). Cho mình hỏi nếu hđh muốn gọi process A thực hiện trước 2 process B&C thì có được không và cách chọn thì như thế nào? Thanks
NguyenHoangThien(I22B)- Tổng số bài gửi : 38
Join date : 15/03/2013
Tiến Trình Xây Dựng Nhằm Mục Đích Gì ?
Để hỗ trợ sự đa chương, máy tính phải có khả năng thực hiện nhiều tác vụ đồng thời. Nhưng việc điều khiển nhiều hoạt động song song ở cấp độ phần cứng là rất khó khăn. Vì thế các nhà thiết kế hệ điều hành đề xuất một mô hình song song gỉả lặp bằng cách chuyển đổi bộ xử lý qua lại giữa các chương trình để duy trì hoạt động của nhiều chương trình cùng lúc, điều này tạo cảm giác có nhiều hoạt động được thực hiện đồng thời. Trong mô hình này, tất cả các phần mềm trong hệ thống được tổ chức thành một số những tiến trình (process).
VoMinhDien(I22B)- Tổng số bài gửi : 34
Join date : 11/03/2013
Re: Thảo luận Bài 4
DangQuangBinh(I22B) đã viết:Theo em là thầy ghi nhớ vào não.TranVuSang (I22B) đã viết:theo em là PCBTranVuSang (I22B) đã viết:
Có ba tuyến thời gian, dành cho 3 thực thể trong máy tính : P0, P1 và Operating system(thực thể điều phối).
Tuyến thời gian công việc của P0 xuất phát, thời gian từ trên xuống, phía trên là sớm hơn, phía dưới là muộn hơn. Giả sử lúc 8h sáng tiến trình P0 bắt đầu khởi động, nó chạy đến 8h5 thì ngắt hoặc là lời gọi hệ thống xảy ra thì nó không được chạy nữa, lúc này HĐH bắt được tín hiệu và nó phải xử lý sự kiện đó, CPU lúc này sẽ dành cho tiến trình HĐH, và việc của HĐH là “save state into PCB0” có nghĩa là ghi trạng thái của P0 vào PCB0, PCB0 chính là khối kiểm soát tiến trình dành cho P0, tiếp theo HĐH lại lấy trạng thái lại từ PCB1 “reload state from PCB1” nạp lại trạng thái của PCB1 mà PCB1 chứa trạng thái của P1 và lúc này P1 sẽ được chạy và P0 không được chạy nữa. Đến khoảng 8h10, sau khi khôi phục lại được trạng thái thì P1 sẽ được chạy tiếp cho đến 8h15 phút. Đến 8h15 phút thì P1 không được chạy nữa do nhu cầu về xử lý ngắt “interrupt or system call” phát ra từ P1, lúc này HĐH sẽ tiến hành ghi trạng thái của P1 vào PCB1, sau đó khôi phục trạng thái hệ thống từ PCB0 để P0 lại được chạy tiếp. Lúc này 8h20 thì P0 lại được chạy tiếp.
VD: Thầy(operating system) mời 2 bạn A và B lên bảng làm lại bài tập của ngày hôm qua và bạn A lên làm trước. Mỗi bạn có 5 phút để làm bài, trước khi bạn A lên làm tiếp bài tập của A ngày hôm qua thì thầy cần 5 phút để ghi lại trạng thái mà bạn A đã làm được ngày hôm qua lên bảng, sau đó A lên bảng làm tiếp phần bài của mình, khi A làm được 5 phút thì hết thời gian, lúc này thầy sẽ ghi nhận lại kết quả mà A đã làm thêm được và thầy xóa bảng đi cho A về chỗ và gọi B lên làm tiếp bài của B ngày hôm qua và thầy cũng cần 5 phút để ghi lại trạng thái mà B đã làm được ngày hôm qua lên bảng và lúc này thầy xóa đi hết kết quả mà A đã làm nãy giờ để B làm tiếp phần bài tập của B sau khi thầy đã ghi xong trạng thái làm việc của B ngày hôm qua lên bảng, cứ thế xoay vòng.
Admin
- Thày cần đến 5 phút để ghi "trạng thái" của mỗi bạn thì hơi "lâu" quá ! Chắc phải chụp ảnh cho nhanh.
- Thày ghi trạng thái vào đâu ?
Admin
PCB là với trường hợp máy tính.
Theo mình, trường hợp ví dụ này sẽ lưu vào vào sổ, nếu trong trường hợp máy tính sẽ lưu vào bộ nhớ cache.
(bạn nào có ý kiến nào khác không ?)
VoMinhThang(I22B)- Tổng số bài gửi : 41
Join date : 11/03/2013
Re: Thảo luận Bài 4
DoThiHaDuc(I22B) đã viết:Cộng tác giữa các tiến trình gồm 4 lý do chính sau:
- Chia sẻ thông tin (Information Sharing): một tiến trình sử dụng thông tin do tiến trình đó cung cấp.
- Tăng tốc tính toán (Computation Seepdup): các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.
- Đảm bảo tính đơn thể (Modurality): chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau.
- Đảm bảo tính tiện dụng (Convenience): người dùng có nhu cầu làm nhiều việc 1 lúc như: soạn thảo, in ấn, duyệt web, lấy file về, biên dịch chương trình, kiểm tra chính tả, …
Ví dụ : Học nhóm – Học riêng lẻ.
Mình có 1 ví dụ khác: nhu cầu việc kết nối mạng internet.
(các bạn có ý kiến khác không )
VoMinhThang(I22B)- Tổng số bài gửi : 41
Join date : 11/03/2013
Ví dụ về bài toán sản xuất và tiêu thụ !!!
Ví dụ như một lớp sử dụng chung 1 cái bảng:
- Mỗi sinh viên là một tiến trình
- Những sinh viên nào lên bảng viết hoặc trình bày quan điểm của mình về một vấn đề nào đó thì ta gọi đó là một tiến trình sản xuất.
- Những sinh viên phía dưới tập trung lắng nghe, đọc thông tin hoặc chụp hình, sao lưu thì ta gọi đó là một tiến trình tiêu thụ.
* Trong cuộc sống, hai tiến trình luôn xảy ra song song với nhau.Có tiêu thụ thì có sản xuất và ngược lại sản xuất ra thì cần phải có thứ để tiêu thụ.
- Mỗi sinh viên là một tiến trình
- Những sinh viên nào lên bảng viết hoặc trình bày quan điểm của mình về một vấn đề nào đó thì ta gọi đó là một tiến trình sản xuất.
- Những sinh viên phía dưới tập trung lắng nghe, đọc thông tin hoặc chụp hình, sao lưu thì ta gọi đó là một tiến trình tiêu thụ.
* Trong cuộc sống, hai tiến trình luôn xảy ra song song với nhau.Có tiêu thụ thì có sản xuất và ngược lại sản xuất ra thì cần phải có thứ để tiêu thụ.
NguyenVanTu(I22A)- Tổng số bài gửi : 23
Join date : 12/03/2013
Diễn giải mô hình chuyển trạng thái của tiến trình.
Trạng thái của tiến trình tại một thời điểm được xác định bởi hoạt động hiện thời của tiến trình tại thời điểm đó. Trong quá trình sống, một tiến trình thay đổi trạng thái do nhiều nguyên nhân như : phải chờ một sự kiện nào đó xảy ra, hay đợi một thao tác nhập/xuất hoàn tất, buộc phải dừng hoạt động do đã hết thời gian xử lý...
Tại một thời điểm, một tiến trình có thể nhận một trong các trạng thái sau đây :
New : tiến trình đang được tạo lập.
Ready : tiến trình chờ được cấp phát CPU để xử lý
Running : các chỉ thị của tiến trình đang được xử lý.
Waiting : tiến trình chờ được cấp phát một tài nguyên, hay chờ một
sự kiện xảy ra .
Terminated : tiến trình hoàn tất xử lý.
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái Running trên một bộ xử lý bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái Waiting hay Ready.
- Tất cả các tiến trình mới tạo lập đều được chuyển sang trạng thái NEW –trạng thái đầu tiên , sau đó đưa vào hàng đợi job queue, hệ điều hành sẽ sử dụng điều phối chậm (long-term scheduler) và không tiếm quyền để lựa chọn một tiến trình thích hợp nhất trong hàng đợi job queue để chuyển nó sang trang thái Ready và đưa tiến trình này vào hàng đợi Ready Queue.
- Những tiến trình đang ở trạng thái sẵn sang Ready được sếp vào hàng đợi Ready Queue, ở trạng thái này hệ điều hành sẽ sử dụng trình điều phối nhanh(Short- Term scheduler) và có tiếm quyền để lựa chọn tiến trình thích hợp giao CPU cho nó và chuyển nó sang trạng thái Runing. Tiến trình sau khi giao CPU thì rời khỏi hàng đợi Ready queue (tiến trình đó vẫn có thể quay trở lại hàng đợi này nếu nó chưa thục thi
xong).
- Tiến trình được giao CPU nếu đã thực thi hoàn tất thì kết thúc và chuyển sang trạng thái terminated sau đó trả lại CPU cho hệ thống , việc chuyển trạng thái này được hệ điều hành sử dụng trình điều phối chậm không tiềm quyền .
- Tiến trình được giao CPU nhưng chưa thực thi xong công việc và bị tiếm quyền thì sẽ bị chuyển từ trạng thái Runing sang trạng thái Ready và quay trở về cuối hàng đợi Ready queue để đợi đến lượt giao CPU kế tiếp , tiến trình chuyển trạng thái xong trả lại CPU cho hệ điều hành .
- Tiến trình được giao CPU nhưng chưa hoàn tất công việc của mình vì phải chờ đợi sự xuất hiện của sự kiện hay IO nào đó thì sẽ được hệ điều hành chuyển sang trạng thái waiting và chuyển nó vào hàng đợi Waiting queue , việc chuyển sang trạng thái này được hệ điều hành sử dụng trình điều phối chậm không tiếm quyền .
- Những tiến trình ở trạng thái Waiting(nằm trong hàng đợi Waiting queue) sau khi sự kiện hay IO mà nó chờ xuất hiện thì lập tức nó được hệ điều hành chuyển nó sang trạng thái sẵn sàng Ready và đưa nó vào hàng đợi Ready queue để sẵn sàng cho lần cấp CPU kế tiếp .
Tại một thời điểm, một tiến trình có thể nhận một trong các trạng thái sau đây :
New : tiến trình đang được tạo lập.
Ready : tiến trình chờ được cấp phát CPU để xử lý
Running : các chỉ thị của tiến trình đang được xử lý.
Waiting : tiến trình chờ được cấp phát một tài nguyên, hay chờ một
sự kiện xảy ra .
Terminated : tiến trình hoàn tất xử lý.
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái Running trên một bộ xử lý bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái Waiting hay Ready.
- Tất cả các tiến trình mới tạo lập đều được chuyển sang trạng thái NEW –trạng thái đầu tiên , sau đó đưa vào hàng đợi job queue, hệ điều hành sẽ sử dụng điều phối chậm (long-term scheduler) và không tiếm quyền để lựa chọn một tiến trình thích hợp nhất trong hàng đợi job queue để chuyển nó sang trang thái Ready và đưa tiến trình này vào hàng đợi Ready Queue.
- Những tiến trình đang ở trạng thái sẵn sang Ready được sếp vào hàng đợi Ready Queue, ở trạng thái này hệ điều hành sẽ sử dụng trình điều phối nhanh(Short- Term scheduler) và có tiếm quyền để lựa chọn tiến trình thích hợp giao CPU cho nó và chuyển nó sang trạng thái Runing. Tiến trình sau khi giao CPU thì rời khỏi hàng đợi Ready queue (tiến trình đó vẫn có thể quay trở lại hàng đợi này nếu nó chưa thục thi
xong).
- Tiến trình được giao CPU nếu đã thực thi hoàn tất thì kết thúc và chuyển sang trạng thái terminated sau đó trả lại CPU cho hệ thống , việc chuyển trạng thái này được hệ điều hành sử dụng trình điều phối chậm không tiềm quyền .
- Tiến trình được giao CPU nhưng chưa thực thi xong công việc và bị tiếm quyền thì sẽ bị chuyển từ trạng thái Runing sang trạng thái Ready và quay trở về cuối hàng đợi Ready queue để đợi đến lượt giao CPU kế tiếp , tiến trình chuyển trạng thái xong trả lại CPU cho hệ điều hành .
- Tiến trình được giao CPU nhưng chưa hoàn tất công việc của mình vì phải chờ đợi sự xuất hiện của sự kiện hay IO nào đó thì sẽ được hệ điều hành chuyển sang trạng thái waiting và chuyển nó vào hàng đợi Waiting queue , việc chuyển sang trạng thái này được hệ điều hành sử dụng trình điều phối chậm không tiếm quyền .
- Những tiến trình ở trạng thái Waiting(nằm trong hàng đợi Waiting queue) sau khi sự kiện hay IO mà nó chờ xuất hiện thì lập tức nó được hệ điều hành chuyển nó sang trạng thái sẵn sàng Ready và đưa nó vào hàng đợi Ready queue để sẵn sàng cho lần cấp CPU kế tiếp .
NguyenTanDat(I22B)- Tổng số bài gửi : 12
Join date : 09/03/2013
Re: Thảo luận Bài 4
TranVuSang (I22B) đã viết:_Chia sẽ thông tin(Information Sharing): một chương trình nó sẽ bao gồm nhiều tiến trình bên trong, chúng sẽ phối hợp cộng tác với nhau thì hiệu quả sẽ tốt hơn là chỉ 1 tiến trình làm việc đơn lẽ. Tiến trình này sẽ cung cấp thông tin cho tiến trình kia thực hiện.
VD: Khi họp nhóm để giải quyết một bài học khó chẳng hạng, ví dụ nhóm có 10 bạn, mỗi bạn học chủ yếu 1 phần sau đó họp lại và cùng chia sẽ những kinh nghiệm mà mình học được cho những bạn khác và học hỏi những kinh nghiệm của những bạn khác thì kiến thức sẽ phong phú hơn là tự học tất cả.
_Tăng tốc tính toán(Computation Speedup): do có nhiều tiến trình cùng làm việc như vậy thì tiến trình này làm việc này thì tiến trình khác làm việc khác và luân phiên nhau sử dụng CPU thì tốc độ hoàn thành công việc sẽ nhanh hơn.
VD: Trong bữa cơm gia đình của 1 gia đình có 4 người, nếu chỉ có 1 người vừa nấu cơm, nấu canh, kho cá, luột rau… thì bữa cơm sẽ lâu hoàn thành hơn là mỗi người làm 1 việc, và luân phiên nhau sử dụng bếp lửa(CPU).
_Đảm bảo tính đơn thể(Modularity): mỗi 1 tiến trình chỉ làm 1 chức năng riêng,tách biệt những chức năng của hệ thống thành nhiều chức năng riêng, để mỗi tiến trình làm 1 chức năng thì sẽ hiệu quả hơn là 1 tiến trình làm tất cả, đảm bảo tính đúng đắn và hiệu quả của công việc.
VD: Một công ty có các phòng ban: kinh doanh, marketing, nhân sự…thì nhân viên marketing sẽ bán hàng giỏi hơn nhân viên phòng kinh doanh và nhân sự, và nhân viên phòng nhân sự thì quản lý các giấy tờ sổ sách liên quan đến nhân viên tốt hơn là marketing và kinh doanh, và kinh doanh thì lại giỏi hơn nhân viên 2 phòng còn lại trong việc đàm phán và tìm ra giải pháp kinh doanh tốt hơn( tìm địa điểm tiêu thụ hàng hóa, đàm phán giá cả…)
_Đảm bảo tính tiện dụng(Convenience): người dùng có nhu cầu làm nhiều việc cùng 1 lúc: soạn thảo, in ấn, duyệt web,… nếu chúng ta có thể xây dựng hệ thống đáp ứng được nhu cầu của người dùng thì người dùng sẽ thích sử dụng hệ thống của chúng ta hơn
Thank bạn, mình có vài ví dụ, mong bạn cho ý kiên nhé
1/ (Information Sharing):Trong một nhóm kỹ sư xe máy tham gia nghiên cứu một dự án cải tiến mẫu xe máy mới. Nhóm kỹ thuật viên này chia tài liệu về dự án mới cho mỗi thành viên trong nhóm: 1 người cải tiến công nghệ, 1 ngườii nghiên cứu về cách thay đổi mẫu mã của xe, 1 người nghiên cứu về cách tiết kiệm xăng cho xe. Sau đó các thành viên này tập hợp những thông tin mình nghiên cứu được để hoàn thiện một chiếc xe máy mới.
2/ (Computation Speedup):Mỗi người kỹ sư sẽ áp dụng những nghiên cứu của mình trên mỗi xe riêng để kiểm thử kết quả nghiên cứu.
3/ (Modularity):Trong một dây chuyền lắp ráp một chiếc xe máy, mỗi người kỹ sư sẽ lắp ráp bộ phận do mình phụ trách. Điều này đảm bảo được tính đơn thể của sự cộng tác tiến trình
4/ (Convenience):Sau khi chiếc xe cải tiến, người sử dụng sẽ được hưởng nhiều tính năng mới như: Mẫu mã đẹp, ít hao xăng, xe chạy khỏe hơn, ....
VoMinhThang(I22B)- Tổng số bài gửi : 41
Join date : 11/03/2013
Vậy, tại sao cần phải cộng tác giữa các tiến trình ???
Các tiến trình phải cộng tác với nhau để chia sẻ thông tin với nhau,tăng tốc độ tính toán,đảm bảo tính đơn thể tốt hơn.
Trong môi trường đa chương (Bài 1), một tiến trình không đơn độc trong hệ thống , mà có thể ảnh hưởng đến các tiến trình khác , hoặc bị các tiến trình khác tác động. Nói cách khác, các tiến trình là những thực thể độc lập , nhưng chúng vẫn có nhu cầu liên lạc với nhau để :
- Chia sẻ thông tin: nhiều tiến trình có thể cùng quan tâm đến những dữ liệu nào đó, do vậy hệ điều hành cần cung cấp một môi trường cho phép sự truy cập đồng thời đến các dữ liệu chung.
- Hợp tác hoàn thành tác vụ: đôi khi để đạt được một sự xử lý nhanh chóng, người ta phân chia một tác vụ thành các công việc nhỏ có thể tiến hành song song. Thường thì các công việc nhỏ này cần hợp tác với nhau để cùng hoàn thành tác vụ ban đầu.
Trong môi trường đa chương (Bài 1), một tiến trình không đơn độc trong hệ thống , mà có thể ảnh hưởng đến các tiến trình khác , hoặc bị các tiến trình khác tác động. Nói cách khác, các tiến trình là những thực thể độc lập , nhưng chúng vẫn có nhu cầu liên lạc với nhau để :
- Chia sẻ thông tin: nhiều tiến trình có thể cùng quan tâm đến những dữ liệu nào đó, do vậy hệ điều hành cần cung cấp một môi trường cho phép sự truy cập đồng thời đến các dữ liệu chung.
- Hợp tác hoàn thành tác vụ: đôi khi để đạt được một sự xử lý nhanh chóng, người ta phân chia một tác vụ thành các công việc nhỏ có thể tiến hành song song. Thường thì các công việc nhỏ này cần hợp tác với nhau để cùng hoàn thành tác vụ ban đầu.
VoMinhThang(I22B)- Tổng số bài gửi : 41
Join date : 11/03/2013
RE: Thảo Luận Bài 4
VD: ATM (operating system) có 2 người khách A và B vào rút tiền và Khách A vào rút tiền trước. Khác A mất vài phút để rút tiền, sau đó ATM ghi nhớ số tiền còn lại lưu vào bộ nhớ khi người đó thoát. Sau đó, ATM trở lại màn hình chính. ATM tiếp tục phục vụ Khách B rút tiền, ATM hiển thị số tiền của khách B trước đó. Sau khi khách B thoát, ATM tiếp tục lưu số tiền còn lại. ATM trở lại màn hình chính. Nếu khách A trở lại rút tiền ATM sẽ hiển thị số tiền trước đó của khách A, và ghi nhận số tiền còn lại sau thao tác rút tiền. Khách A thoát, ATM trở lại màn hình chính. Cứ như vậy vòng lặp sẽ được lặp đi lặp lại...
Em ví dụ về chuyển trạng thái của tiến trình. Có gì mong thầy và các bạn góp ý. Em cảm ơn
VoMinhDien(I22B)- Tổng số bài gửi : 34
Join date : 11/03/2013
Lý do cộng tác giữa các tiến trình
Giữa các tiến trình cần sự cộng tác với nhau để đảm bảo các tiến trình được xử lí hoạt động đạt hiệu quả tối đa.
Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trình khác cung cấp.
Ví dụ : Trong một nhóm kỹ sư xe máy tham gia nghiên cứu một dự án cải tiến mẫu xe máy mới. Nhóm kỹ thuật viên này chia tài liệu về dự án mới cho mỗi thành viên trong nhóm. Thành viên thứ nhất nghiên cứu về cách thay đổi mẫu mã của xe, thành viên thứ hai nghiên cứu về cách tiết kiệm xăng cho xe. Sau đó các thành viên này tập hợp những thông tin mình nghiên cứu được để hoàn thiện một chiếc xe máy mới.
Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.
Ví dụ : Mỗi người kỹ sư sẽ áp dụng những nghiên cứu của mình trên mỗi xe riêng để kiểm thử kết quả nghiên cứu.
Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau.
Ví dụ : Trong một dây chuyền lắp ráp một chiếc xe máy, mỗi người kỹ sư sẽ lắp ráp bộ phận do mình phụ trách. Điều này đảm bảo được tính đơn thể của sự cộng tác tiến trình.
Đảm bảo tính tiện dụng (Convenience): Đảm bảo tính tiện dụng cho người dùng, người dùng sẽ được sử dụng nhiều tính năng mới.
Ví dụ : Sau khi chiếc xe cải tiến, người sử dụng sẽ được hưởng nhiều tính năng mới như: Mẫu mã đẹp, ít hao xăng, xe chạy khỏe hơn, ....
Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trình khác cung cấp.
Ví dụ : Trong một nhóm kỹ sư xe máy tham gia nghiên cứu một dự án cải tiến mẫu xe máy mới. Nhóm kỹ thuật viên này chia tài liệu về dự án mới cho mỗi thành viên trong nhóm. Thành viên thứ nhất nghiên cứu về cách thay đổi mẫu mã của xe, thành viên thứ hai nghiên cứu về cách tiết kiệm xăng cho xe. Sau đó các thành viên này tập hợp những thông tin mình nghiên cứu được để hoàn thiện một chiếc xe máy mới.
Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.
Ví dụ : Mỗi người kỹ sư sẽ áp dụng những nghiên cứu của mình trên mỗi xe riêng để kiểm thử kết quả nghiên cứu.
Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau.
Ví dụ : Trong một dây chuyền lắp ráp một chiếc xe máy, mỗi người kỹ sư sẽ lắp ráp bộ phận do mình phụ trách. Điều này đảm bảo được tính đơn thể của sự cộng tác tiến trình.
Đảm bảo tính tiện dụng (Convenience): Đảm bảo tính tiện dụng cho người dùng, người dùng sẽ được sử dụng nhiều tính năng mới.
Ví dụ : Sau khi chiếc xe cải tiến, người sử dụng sẽ được hưởng nhiều tính năng mới như: Mẫu mã đẹp, ít hao xăng, xe chạy khỏe hơn, ....
Dao Duy Thanh(I22B)- Tổng số bài gửi : 16
Join date : 13/03/2013
Age : 34
Vai trò của PCB (process control block)
Mỗi quá trình được hiện diện trong hệ điều hành bởi Khối điều khiển quá trình(Process Control Block-PCB) – cũng được gọi khối điều khiển tác vụ. Nó chứa nhiều phần thông tin được gắn liền với một quá trình xác định, gồm:
• Trạng thái quá trình (process state): trạng thái có thể là mới, sẵn sàng, đang chạy, chờ đợi, kết thúc, …
• Bộ đếm chương trình (program counter): bộ đếm hiển thị địa chỉ của chỉ thị kế tiếp được thực thi cho quá trình này.
• Các thanh ghi (registers) CPU: các thanh ghi khác nhau về số lượng và loại, phụ thuộc vào kiến trúc máy tính. Chúng gồm các bộ tổng (accumulators), các thanh ghi chỉ mục, các con trỏ ngăn xếp, và các thanh ghi đa năng (generalpurpose registers), cùng với thông tin mã điều kiện (condition-code information). Cùng với bộ đếm chương trình, thông tin trạng thái này phải được lưu khi một ngắt xảy ra, cho phép quá trình được tiếp tục một cách phù hợp sau đó.
• Thông tin lập thời biểu CPU (CPU-scheduling information): thông tin gồm : độ ưu tiên của quá trình, các con trỏ chỉ tới các hàng đợi lập thời biểu, và bất kỳ tham số lập thời biểu khác.
• Thông tin quản lý bộ nhớ (Memory-management information): thông tin này có thể gồm những thông tin như giá trị của các thanh ghi nền và thanh ghi giới hạn, các bảng trang hay các bảng phân đoạn, phụ thuộc hệ thống bộ nhớ được dùng bởi hệ điều hành.
• Thông tin tính toán (accounting information): thông tin này gồm lượng CPU và thời gian thực được dùng, công việc hay số quá trình,…
• Thông tin trạng thái nhập/xuất (I/O status information): thông tin này gồm danh sách của thiết bị nhập/xuất được cấp phát quá trình này, một danh sách các tập tin đang mở,.. PCB đơn giản phục vụ như kho chứa cho bất cứ thông tin khác nhau từ quá trình này tới quá trình khác.
• Trạng thái quá trình (process state): trạng thái có thể là mới, sẵn sàng, đang chạy, chờ đợi, kết thúc, …
• Bộ đếm chương trình (program counter): bộ đếm hiển thị địa chỉ của chỉ thị kế tiếp được thực thi cho quá trình này.
• Các thanh ghi (registers) CPU: các thanh ghi khác nhau về số lượng và loại, phụ thuộc vào kiến trúc máy tính. Chúng gồm các bộ tổng (accumulators), các thanh ghi chỉ mục, các con trỏ ngăn xếp, và các thanh ghi đa năng (generalpurpose registers), cùng với thông tin mã điều kiện (condition-code information). Cùng với bộ đếm chương trình, thông tin trạng thái này phải được lưu khi một ngắt xảy ra, cho phép quá trình được tiếp tục một cách phù hợp sau đó.
• Thông tin lập thời biểu CPU (CPU-scheduling information): thông tin gồm : độ ưu tiên của quá trình, các con trỏ chỉ tới các hàng đợi lập thời biểu, và bất kỳ tham số lập thời biểu khác.
• Thông tin quản lý bộ nhớ (Memory-management information): thông tin này có thể gồm những thông tin như giá trị của các thanh ghi nền và thanh ghi giới hạn, các bảng trang hay các bảng phân đoạn, phụ thuộc hệ thống bộ nhớ được dùng bởi hệ điều hành.
• Thông tin tính toán (accounting information): thông tin này gồm lượng CPU và thời gian thực được dùng, công việc hay số quá trình,…
• Thông tin trạng thái nhập/xuất (I/O status information): thông tin này gồm danh sách của thiết bị nhập/xuất được cấp phát quá trình này, một danh sách các tập tin đang mở,.. PCB đơn giản phục vụ như kho chứa cho bất cứ thông tin khác nhau từ quá trình này tới quá trình khác.
TruongTranThanhTu(I22B)- Tổng số bài gửi : 34
Join date : 11/03/2013
Những lý do cộng tác giữa các tiến trình(Cooperation Reasons)
Giữa các tiến trình cần sự cộng tác với nhau để đảm bảo các tiến trình được xử lí hoạt động đạt hiệu quả tối đa.
+Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trình khác cung cấp.
Ví dụ thực tế: Trong một nhóm kỹ sư xe máy tham gia nghiên cứu một dự án cải tiến mẫu xe máy mới. Nhóm kỹ thuật viên này chia tài liệu về dự án mới cho mỗi thành viên trong nhóm. Thành viên thứ nhất nghiên cứu về cách thay đổi mẫu mã của xe, thành viên thứ hai nghiên cứu về cách tiết kiệm xăng cho xe. Sau đó các thành viên này tập hợp những thông tin mình nghiên cứu được để hoàn thiện một chiếc xe máy mới.
+Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.
Ví dụ thực tế: Mỗi người kỹ sư sẽ áp dụng những nghiên cứu của mình trên mỗi xe riêng để kiểm thử kết quả nghiên cứu.
+Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau.
Ví dụ thực tế: Trong một dây chuyền lắp ráp một chiếc xe máy, mỗi người kỹ sư sẽ lắp ráp bộ phận do mình phụ trách. Điều này đảm bảo được tính đơn thể của sự cộng tác tiến trình.
+Đảm bảo tính tiện dụng (Convenience): Đảm bảo tính tiện dụng cho người dùng, người dùng sẽ được sử dụng nhiều tính năng mới.
Ví dụ thực tế: Sau khi chiếc xe cải tiến, người sử dụng sẽ được hưởng nhiều tính năng mới như: Mẫu mã đẹp, ít hao xăng, xe chạy khỏe hơn, ....
+Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trình khác cung cấp.
Ví dụ thực tế: Trong một nhóm kỹ sư xe máy tham gia nghiên cứu một dự án cải tiến mẫu xe máy mới. Nhóm kỹ thuật viên này chia tài liệu về dự án mới cho mỗi thành viên trong nhóm. Thành viên thứ nhất nghiên cứu về cách thay đổi mẫu mã của xe, thành viên thứ hai nghiên cứu về cách tiết kiệm xăng cho xe. Sau đó các thành viên này tập hợp những thông tin mình nghiên cứu được để hoàn thiện một chiếc xe máy mới.
+Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.
Ví dụ thực tế: Mỗi người kỹ sư sẽ áp dụng những nghiên cứu của mình trên mỗi xe riêng để kiểm thử kết quả nghiên cứu.
+Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau.
Ví dụ thực tế: Trong một dây chuyền lắp ráp một chiếc xe máy, mỗi người kỹ sư sẽ lắp ráp bộ phận do mình phụ trách. Điều này đảm bảo được tính đơn thể của sự cộng tác tiến trình.
+Đảm bảo tính tiện dụng (Convenience): Đảm bảo tính tiện dụng cho người dùng, người dùng sẽ được sử dụng nhiều tính năng mới.
Ví dụ thực tế: Sau khi chiếc xe cải tiến, người sử dụng sẽ được hưởng nhiều tính năng mới như: Mẫu mã đẹp, ít hao xăng, xe chạy khỏe hơn, ....
TruongTranThanhTu(I22B)- Tổng số bài gửi : 34
Join date : 11/03/2013
Sự khác nhau giữa Tiến Trình và Chương Trình
- Tiến trình (Process) là chuơng trình trong thời gian thực hiện (đặt dưới sự quản lý của HĐH).Có sự phân biệt Tiến trình hệ thống (của HĐH) với Tiến trình người dùng.
- Bản thân chương trình không là tiến trình vì là thực thể Thụ động (Passive), trong khi tiến trình là thực thể Hoạt động (Active) với nhiều thông tin về trạng thái trong đó có Bộ đếm chương trình (Program Counter) cho biết vị trí lệnh hiện hành.
- Bản thân chương trình không là tiến trình vì là thực thể Thụ động (Passive), trong khi tiến trình là thực thể Hoạt động (Active) với nhiều thông tin về trạng thái trong đó có Bộ đếm chương trình (Program Counter) cho biết vị trí lệnh hiện hành.
NguyenThiPhongLan(I22A)- Tổng số bài gửi : 3
Join date : 09/03/2013
Hiểu rõ hơn về Điều Phối Chậm và Điều Phối Nhanh
Điều phối chậm (Long-term scheduler):
- Chọn tiến trình nào sẽ được đưa vào ready queue ( tức là từ New chuyển sang Ready)
- Kiểm soát Độ đa chương (số tiến trình trong bộ nhớ)
- Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
1. Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
2. Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi thực hiện giao dịch tại chỗ (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
- Mục đích là cân bằng tải cho toàn hệ thống
Điều phối nhanh (Short-term scheduler (or CPU scheduler)) :
- Chọn tiến trình nào sẽ được chiếm CPU để xử lý (tức là từ Ready chuyển sang Running)
- Tần xuất công việc cao
Điều phối vừa (Medium-term scheduler) :
- Chuyển tiến trình từ bộ nhớ chính sang sang bộ nhớ thứ cấp (nhưng vẫn nằm trong không gian bộ nhớ ảo); khi nào cần thì nạp process từ bộ nhớ thứ cấp vào bộ nhớ chính.
Ví dụ: 1 Lớp học vi tính, nhưng quá nhiều bạn đi học (tức là có nhiều tiến trình). Thầy sẽ chỉ định một số bạn ra khỏi lớp (tức là rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong lớp học xong Thầy gọi các bạn bên ngoài vào phòng học (tức là đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
- Chọn tiến trình nào sẽ được đưa vào ready queue ( tức là từ New chuyển sang Ready)
- Kiểm soát Độ đa chương (số tiến trình trong bộ nhớ)
- Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
1. Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
2. Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi thực hiện giao dịch tại chỗ (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
- Mục đích là cân bằng tải cho toàn hệ thống
Điều phối nhanh (Short-term scheduler (or CPU scheduler)) :
- Chọn tiến trình nào sẽ được chiếm CPU để xử lý (tức là từ Ready chuyển sang Running)
- Tần xuất công việc cao
Điều phối vừa (Medium-term scheduler) :
- Chuyển tiến trình từ bộ nhớ chính sang sang bộ nhớ thứ cấp (nhưng vẫn nằm trong không gian bộ nhớ ảo); khi nào cần thì nạp process từ bộ nhớ thứ cấp vào bộ nhớ chính.
Ví dụ: 1 Lớp học vi tính, nhưng quá nhiều bạn đi học (tức là có nhiều tiến trình). Thầy sẽ chỉ định một số bạn ra khỏi lớp (tức là rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong lớp học xong Thầy gọi các bạn bên ngoài vào phòng học (tức là đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).
ToThiMy(I22A)- Tổng số bài gửi : 8
Join date : 11/03/2013
Age : 36
Re: Thảo luận Bài 4
NguyenThiPhongLan(I22A) đã viết:- Tiến trình (Process) là chuơng trình trong thời gian thực hiện (đặt dưới sự quản lý của HĐH).Có sự phân biệt Tiến trình hệ thống (của HĐH) với Tiến trình người dùng.
- Bản thân chương trình không là tiến trình vì là thực thể Thụ động (Passive), trong khi tiến trình là thực thể Hoạt động (Active) với nhiều thông tin về trạng thái trong đó có Bộ đếm chương trình (Program Counter) cho biết vị trí lệnh hiện hành.
Mình xin nói rõ hơn xíu nha^^
- Tiến trình là một thực thể điều khiển đoạn mã lệnh có riêng một không gian địa chỉ, có ngăn xếp (stack) riêng rẽ, có bảng chứa các số miêu tả file (file descriptor) Được mở cùng tiến trình và đặc biệt là có một định danh PID (process identifier) duy nhất trong toàn bộ hệ thống vào thời điểm tiến trình đang chạy.
- Chương trình hay còn gọi là phần mềm (software) là một tập hợp những câu lệnh được viết bằng một hoặc nhiều ngôn ngữ lập trình theo một trật tự xác định nhằm tự động thực hiện một số chức năng hoặc giải quyết một bài toán nào đó.
(còn thiếu chỗ nào mong các bạn bổ sung thêm)
Dao Duy Thanh(I22B)- Tổng số bài gửi : 16
Join date : 13/03/2013
Age : 34
Re: Thảo luận Bài 4
Dao Duy Thanh(I22B) đã viết:NguyenThiPhongLan(I22A) đã viết:- Tiến trình (Process) là chuơng trình trong thời gian thực hiện (đặt dưới sự quản lý của HĐH).Có sự phân biệt Tiến trình hệ thống (của HĐH) với Tiến trình người dùng.
- Bản thân chương trình không là tiến trình vì là thực thể Thụ động (Passive), trong khi tiến trình là thực thể Hoạt động (Active) với nhiều thông tin về trạng thái trong đó có Bộ đếm chương trình (Program Counter) cho biết vị trí lệnh hiện hành.
Mình xin nói rõ hơn xíu nha^^
- Tiến trình là một thực thể điều khiển đoạn mã lệnh có riêng một không gian địa chỉ, có ngăn xếp (stack) riêng rẽ, có bảng chứa các số miêu tả file (file descriptor) Được mở cùng tiến trình và đặc biệt là có một định danh PID (process identifier) duy nhất trong toàn bộ hệ thống vào thời điểm tiến trình đang chạy.
- Chương trình hay còn gọi là phần mềm (software) là một tập hợp những câu lệnh được viết bằng một hoặc nhiều ngôn ngữ lập trình theo một trật tự xác định nhằm tự động thực hiện một số chức năng hoặc giải quyết một bài toán nào đó.
(còn thiếu chỗ nào mong các bạn bổ sung thêm)
Mình có thêm vài ý kiến rằng: khác nhau là
1. Tiến trình: Là thực thể động, nó là dạng là một quá trình đang xử lý, sở hữu một tập con trỏ lệnh và các biến. Được cấp một tài nguyên cụ thể để thực hiện lệnh
2. Chương trình: Là thực thể tĩnh, là một thực thể thụ động chứa các chỉ thị điều khiển máy tính để tiến hành một hoạt động nào đó. Không được sở hữu tài nguyên cụ thể nào
Mong các bạn góp ý thêm
HoangThanhThien(I22B)- Tổng số bài gửi : 43
Join date : 14/03/2013
Trang 4 trong tổng số 9 trang • 1, 2, 3, 4, 5, 6, 7, 8, 9
Trang 4 trong tổng số 9 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết