Thảo luận Bài 4
+105
TranQuyThanh (I11C)
HoangThanhChuong (I11C)
Truc_Phuong(I111C)
PhamDuyPhuong87(I11C)
TranVuThuyVan_(I11C)
nguyenhoangthinh (I11C)
NguyenTienPhong083 (I11C)
HuynhVanNhut (I11C)
nguyenthanhphuong(I11C)
NguyenVietThuan11
minhgiangbc
nguyenduc_gia.18(I11c)
chipphonui
quicly_I111c
nguyen huynh nhu (102C)
LeMInhTien(I11C)
nguyenquoctruong (I11C)
LeThiThuyDuong (I11C)
NguyenXuanTri28
HuynhPhuong (I11C)
tranleanhngoc88(i11c)
AnhDuong
HuynhThiThanhHien25(I11C)
thanhnam06511c
nguyenthingocloan (I11C)
nguyenvanlinheban (I11C)
vohongcong(I111C)
hoangquocduy.i11c
TranMinh (I11C)
NguyenThiThanhThuy(I11C)
lequocthinh (I11C)
TangHuynhThanhThanh I11C
NguyenCongVinh(102C)
NguyenDoTu (I11C)
HoangNgocQuynh(I11C)
NGUYENDINHNGHIA-I11C
PhamHuyHoang (I11C)
BuiHoangTuan.131.I11C
lengocthuthao89 (i11c)
NguyenNgocMyTien(I11C)
dongocthien (I11C)
ngocquynh2091(i11C)
chauchanduong (I11C)
NgoThiCamNhung47 (I11C)
TranCamThu(I11C)
nguyenthithutrang (I11C)
DuongTrungTinh(I11C)
TranTrungKien (I11C)
08H1010052
caotanthanh(i11c)
dangminhthinh2107
NguyenThiMinhHuong(I11C)
LeMinhDuc (I11C)
NguyenTrongHuy(I11C)
TranVanDucHieu I11c
nguyenminhlai.(I11C)
PhamAnhKhoa(I11C)
VOTHANHTRUNG(I11C)
HoangThiVe (I11C)
tranvanhai_21(I11c)
NguyenMinhNhut.(I11c)
Nguyenminhduc (I11C)
PhanThiThanhNguyen_72I11C
DuongKimLong(I111C)
buithithudung24 (i11c)
DoThiNgocNuong (I11C)
luuphuvinh1985
LaVanKhuong (I11C)
NguyThiGai (I11C)
nguyenvulinh_i11c
BuiHuuThanhLuan(I11C)
TranThanhHoang(I91C)
namzhou(I11C)
TruongThiThuyPhi(I11C)
VanTanVu(I11c)
lakhaiphat-i11c
phamdieptuan (I11C)
LeTanDat (I11C)
DoThuyTien16 (I11C)
nguyenthithuylinh (I11C)
Tranvancanh(I11C)
nguyenthaihiep (I11C)
Duongthithanhhuynh (I11C)
TranTrungTinh(I11C)
XuanThai_I11C
DaoQuangSieu (I11C)
hongthuanphong (I11C)
NguyenDongGiang
HoiHoangHongVu I11C
tranphanhieu36_i11c
NguyenHuuHung(I11C)
lamhuubinh(I91C)
TranHaDucHuy (I11c)
BuiVanHoc(I11C)
NgoDucTuan (I11C)
DaoVanHoang (I11C)
TranThiMyTien18(i11c)
VoMinhHoang (I11C)
ToThiThuyTrang (I11C)
NguyenThanhTam (I11C)
tranvantoan83(I11c)
NgoLeYen48(I11C)
tannamthanh(I11C)
TruongHanhPhuc (I11C)
Admin
109 posters
Trang 12 trong tổng số 13 trang
Trang 12 trong tổng số 13 trang • 1, 2, 3 ... , 11, 12, 13
trang web đọc văn bản (text-to-speech)
Mọi người có thể vào đây để tham khảo những trang web chuyển văn bản trực tuyến thành giọng nói
IVONA (www.ivona.com): Trang web hỗ trợ chức năng text-to-speech theo tôi là tốt và dễ dùng nhất hiện nay. Điểm mạnh của trang này là có thể thay đổi nhiều giọng đọc khác nhau. Chỉ riêng tiếng Anh thôi, trang này cung cấp các giọng đọc theo kiểu Mỹ (American English) và giọng Anh (British English), vừa bổ sung giọng xứ Wales (Welsh English)- bản beta, giọng nam hoặc giọng nữ. Ngoài ra, trang này cũng hỗ trợ các ngôn ngữ khác như tiếng Pháp, tiếng Đức, tiếng Ba-lan, Rumani và mới nhất là tiếng Tây Ban Nha giọng Mỹ (American Spanish). Ưu điểm thứ hai là trang web này không phải là “máy đọc”, mà vẫn có nhấn giọng, ngừng nghỉ (tùy theo dấu câu), và đặc biệt là ngữ điệu (intonation) rất tốt. Ngược lại, nhược điểm của trang này là tốc độ load khá… chậm. Tùy vào số lượng từ mà bạn muốn đọc, hoặc tùy vào chất lượng đường truyền internet mà tốc độ load khi bạn PLAY sẽ khác nhau. Một điểm yếu khác của IVONA là số lượng từ bị hạn chế hơn so với các trang web khác cùng chủ đề, chỉ có 250 ký tự (character) cho phép.
iSpeech (www.ispeech.org): Trang web này có những đặc điểm hoàn toàn ngược lại với IVONA. Ưu điểm: gọn nhẹ, tốc độ load nhanh; nhưng nhược điểm lại là: chỉ có một giọng đọc duy nhất. Điểm chung với IVONA ở iSpeech chính là giọng đọc chuẩn mà trang web cung cấp, với ngữ điệu rất tự nhiên và chuẩn xác. Ngoài ra, iSpeech hỗ trợ nhiều giọng đọc khác nhau, và có thể tùy chỉnh được tốc độ đọc. Cách sử dụng: Ở trang chủ, bạn chọn mục DEMO ngay trên đầu trang để nhập đoạn văn bản cần đọc. Không thấy giới hạn số lượng ký tự. Tôi thử test bằng một đường link như sau: http://www.ispeech.org/ mà vẫn đọc luôn cả từng dấu “/” (slash) và “.” (dot). Ngoài ra, bạn cũng có thể upload một file văn bản và iSpeech sẽ đọc giúp bạn, thậm chí xuất ra file MP3 để phục vụ công việc của bạn. Tuy nhiên, bạn sẽ phải đăng ký làm thành viên với khoản phí hàng năm.
vozMe (www.vozme.com): Tốc độ load của trang này khá nhanh, ngang ngửa với iSpeech. Nhưng giọng đọc không được tự nhiên, kiểu giống với LacViet MTD hoặc Acrobat Reader (có chức năng text-to-speech miễn phí), nghĩa là ráp cách đọc từng từ riêng biệt thành một câu hoàn chỉnh. Hỗ trợ 2 giọng đọc duy nhất: nam và nữ. Có thể xuất dưới dạng file MP3.
YAKiToMe (www.yakitome.com): Tôi chưa thử qua trang web này, lý do là vì phải đăng ký thành viên (dù là MIỄN PHÍ) mới có thể sử dụng được. Theo như quảng cáo trên trang của họ, YAKI hỗ trợ upload các file văn bản (doc, pdf, txt) thậm chí đọc từ RSS Feed, đồng thời có thể xuất thành fille MP3.
Zamzar (www.zamzar.com): Nổi tiếng về chức năng chuyển đổi tập tin (convert file). Đối với tính năng đọc văn bản, người dùng chỉ việc upload file văn bản, hoặc nhập vào đường link của trang web, sau đó chuyển đổi thành định dạng fil MP3, MP4, RM hoặc các định dạng khác. Dung lượng cho phép của file văn bản có thể lên đến 100MB, nhưng phải nhập email để nhận được link để tải về.
Spoken Text (www.spokentext.net): Giọng đọc vẫn không được tự nhiên như IVONA hay iSpeech, mặt khác lại có kèm theo… quảng cáo trước và sau đoạn văn bản người dùng cần đọc. Giới hạn số lượng ký tự là… 100.
IVONA (www.ivona.com): Trang web hỗ trợ chức năng text-to-speech theo tôi là tốt và dễ dùng nhất hiện nay. Điểm mạnh của trang này là có thể thay đổi nhiều giọng đọc khác nhau. Chỉ riêng tiếng Anh thôi, trang này cung cấp các giọng đọc theo kiểu Mỹ (American English) và giọng Anh (British English), vừa bổ sung giọng xứ Wales (Welsh English)- bản beta, giọng nam hoặc giọng nữ. Ngoài ra, trang này cũng hỗ trợ các ngôn ngữ khác như tiếng Pháp, tiếng Đức, tiếng Ba-lan, Rumani và mới nhất là tiếng Tây Ban Nha giọng Mỹ (American Spanish). Ưu điểm thứ hai là trang web này không phải là “máy đọc”, mà vẫn có nhấn giọng, ngừng nghỉ (tùy theo dấu câu), và đặc biệt là ngữ điệu (intonation) rất tốt. Ngược lại, nhược điểm của trang này là tốc độ load khá… chậm. Tùy vào số lượng từ mà bạn muốn đọc, hoặc tùy vào chất lượng đường truyền internet mà tốc độ load khi bạn PLAY sẽ khác nhau. Một điểm yếu khác của IVONA là số lượng từ bị hạn chế hơn so với các trang web khác cùng chủ đề, chỉ có 250 ký tự (character) cho phép.
iSpeech (www.ispeech.org): Trang web này có những đặc điểm hoàn toàn ngược lại với IVONA. Ưu điểm: gọn nhẹ, tốc độ load nhanh; nhưng nhược điểm lại là: chỉ có một giọng đọc duy nhất. Điểm chung với IVONA ở iSpeech chính là giọng đọc chuẩn mà trang web cung cấp, với ngữ điệu rất tự nhiên và chuẩn xác. Ngoài ra, iSpeech hỗ trợ nhiều giọng đọc khác nhau, và có thể tùy chỉnh được tốc độ đọc. Cách sử dụng: Ở trang chủ, bạn chọn mục DEMO ngay trên đầu trang để nhập đoạn văn bản cần đọc. Không thấy giới hạn số lượng ký tự. Tôi thử test bằng một đường link như sau: http://www.ispeech.org/ mà vẫn đọc luôn cả từng dấu “/” (slash) và “.” (dot). Ngoài ra, bạn cũng có thể upload một file văn bản và iSpeech sẽ đọc giúp bạn, thậm chí xuất ra file MP3 để phục vụ công việc của bạn. Tuy nhiên, bạn sẽ phải đăng ký làm thành viên với khoản phí hàng năm.
vozMe (www.vozme.com): Tốc độ load của trang này khá nhanh, ngang ngửa với iSpeech. Nhưng giọng đọc không được tự nhiên, kiểu giống với LacViet MTD hoặc Acrobat Reader (có chức năng text-to-speech miễn phí), nghĩa là ráp cách đọc từng từ riêng biệt thành một câu hoàn chỉnh. Hỗ trợ 2 giọng đọc duy nhất: nam và nữ. Có thể xuất dưới dạng file MP3.
YAKiToMe (www.yakitome.com): Tôi chưa thử qua trang web này, lý do là vì phải đăng ký thành viên (dù là MIỄN PHÍ) mới có thể sử dụng được. Theo như quảng cáo trên trang của họ, YAKI hỗ trợ upload các file văn bản (doc, pdf, txt) thậm chí đọc từ RSS Feed, đồng thời có thể xuất thành fille MP3.
Zamzar (www.zamzar.com): Nổi tiếng về chức năng chuyển đổi tập tin (convert file). Đối với tính năng đọc văn bản, người dùng chỉ việc upload file văn bản, hoặc nhập vào đường link của trang web, sau đó chuyển đổi thành định dạng fil MP3, MP4, RM hoặc các định dạng khác. Dung lượng cho phép của file văn bản có thể lên đến 100MB, nhưng phải nhập email để nhận được link để tải về.
Spoken Text (www.spokentext.net): Giọng đọc vẫn không được tự nhiên như IVONA hay iSpeech, mặt khác lại có kèm theo… quảng cáo trước và sau đoạn văn bản người dùng cần đọc. Giới hạn số lượng ký tự là… 100.
VOTHANHTRUNG(I11C)- Tổng số bài gửi : 26
Join date : 26/08/2011
Trang web đọc văn bản tiếng việt của Đại học quốc gia TPHCM
http://www.ailab.hcmus.edu.vn/slp/vos/default.aspx
Chào các bạn,không biết có ai đã vào trang web này chưa,đây là thành quả do Nhóm nghiên cứu thuộc Phòng thí nghiệm Trí tuệ nhân tạo (AILAB), trường ĐH Khoa học tự nhiên, ĐH Quốc gia TP.HCM xây dựng thành công hệ thống tổng hợp tiếng Việt có tên gọi “tiếng nói phương Nam” (VOS) phiên bản 1.0.
Mình thường xuyên vào trang web này,đây là trang web có giọng đọc rất thật ,từ một phát thanh viên trên đài phát thanh thành phố nên chắc chắn nghe qua các bạn sẽ có cảm giác quen thuộc và hấp dẫn
Bạn có thể nhập một đoạn văn bản tiếng Việt khoảng 100 từ, click nút "Synthesize" trang web sẽ trả về cho bạn một file âm thanh (.wav) giọng phát thanh viên đọc đoạn văn của bạn bằng tiếng Việt khá chuẩn.Đương nhiên là ở vài chỗ ,nhất là đoạn văn dài,giọng người đọc ghép lại còn bị vấp.Phòng thí nghiệm trí tuệ nhân tạo cho biết,nhóm đang nghiên cứu để trong tương lai cho ra đời một phiên bẳn tốt hơn và có thể xóa bỏ được các nhược điểm trên,để phần mềm trở nên hoàn thiện hơn và mang đến cho người nghe một cảm giác như có một người ngồi bên cạnh đọc lại.Hy vọng là như vây.
Chào các bạn,không biết có ai đã vào trang web này chưa,đây là thành quả do Nhóm nghiên cứu thuộc Phòng thí nghiệm Trí tuệ nhân tạo (AILAB), trường ĐH Khoa học tự nhiên, ĐH Quốc gia TP.HCM xây dựng thành công hệ thống tổng hợp tiếng Việt có tên gọi “tiếng nói phương Nam” (VOS) phiên bản 1.0.
Mình thường xuyên vào trang web này,đây là trang web có giọng đọc rất thật ,từ một phát thanh viên trên đài phát thanh thành phố nên chắc chắn nghe qua các bạn sẽ có cảm giác quen thuộc và hấp dẫn
Bạn có thể nhập một đoạn văn bản tiếng Việt khoảng 100 từ, click nút "Synthesize" trang web sẽ trả về cho bạn một file âm thanh (.wav) giọng phát thanh viên đọc đoạn văn của bạn bằng tiếng Việt khá chuẩn.Đương nhiên là ở vài chỗ ,nhất là đoạn văn dài,giọng người đọc ghép lại còn bị vấp.Phòng thí nghiệm trí tuệ nhân tạo cho biết,nhóm đang nghiên cứu để trong tương lai cho ra đời một phiên bẳn tốt hơn và có thể xóa bỏ được các nhược điểm trên,để phần mềm trở nên hoàn thiện hơn và mang đến cho người nghe một cảm giác như có một người ngồi bên cạnh đọc lại.Hy vọng là như vây.
VOTHANHTRUNG(I11C)- Tổng số bài gửi : 26
Join date : 26/08/2011
Ưu nhược điểm của "Sendkeys"
Ưu điểm: easy
Nhược điểm: Flaky, undependable, requires focus on receiving control.
cái này mình dịch ra tiếng việt không rõ nên xin dữ nguyên bản gốc, mong các bạn chỉ thêm
Nhược điểm: Flaky, undependable, requires focus on receiving control.
cái này mình dịch ra tiếng việt không rõ nên xin dữ nguyên bản gốc, mong các bạn chỉ thêm
DoThuyTien16 (I11C)- Tổng số bài gửi : 15
Join date : 26/08/2011
Age : 36
Đến từ : Lâm Đồng
So sánh Job Queue và Ready Queue
Job Queue: là hàng chờ công việc, chứa các tiến trình chờ được vận hành.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
vd:trò chơi hãy chọn giá đúng
nhận phiếu tham gia tò chơi, chọn khoảng 5 người đưa vào ready queue trả lời nhanh, để tại 1 thời điểm chọn 1 người tham chơi chính thức.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
vd:trò chơi hãy chọn giá đúng
nhận phiếu tham gia tò chơi, chọn khoảng 5 người đưa vào ready queue trả lời nhanh, để tại 1 thời điểm chọn 1 người tham chơi chính thức.
nguyenduc_gia.18(I11c)- Tổng số bài gửi : 22
Join date : 07/09/2011
Re: Thảo luận Bài 4
VOTHANHTRUNG(I11C) đã viết:http://www.ailab.hcmus.edu.vn/slp/vos/default.aspx
Chào các bạn,không biết có ai đã vào trang web này chưa,đây là thành quả do Nhóm nghiên cứu thuộc Phòng thí nghiệm Trí tuệ nhân tạo (AILAB), trường ĐH Khoa học tự nhiên, ĐH Quốc gia TP.HCM xây dựng thành công hệ thống tổng hợp tiếng Việt có tên gọi “tiếng nói phương Nam” (VOS) phiên bản 1.0.
Mình thường xuyên vào trang web này,đây là trang web có giọng đọc rất thật ,từ một phát thanh viên trên đài phát thanh thành phố nên chắc chắn nghe qua các bạn sẽ có cảm giác quen thuộc và hấp dẫn
Bạn có thể nhập một đoạn văn bản tiếng Việt khoảng 100 từ, click nút "Synthesize" trang web sẽ trả về cho bạn một file âm thanh (.wav) giọng phát thanh viên đọc đoạn văn của bạn bằng tiếng Việt khá chuẩn.Đương nhiên là ở vài chỗ ,nhất là đoạn văn dài,giọng người đọc ghép lại còn bị vấp.Phòng thí nghiệm trí tuệ nhân tạo cho biết,nhóm đang nghiên cứu để trong tương lai cho ra đời một phiên bẳn tốt hơn và có thể xóa bỏ được các nhược điểm trên,để phần mềm trở nên hoàn thiện hơn và mang đến cho người nghe một cảm giác như có một người ngồi bên cạnh đọc lại.Hy vọng là như vây.
ok.Mình thấy cái này cũng hay thật,nhưng hạn chế của nó có 150 từ trở lại.Tuy giọng đọc diễn cảm,có cảm xúc nhưng vẫn chưa hoàn hảo cho lắm.Còn ưu điểm phần mềm của thầy là có thể đọc bao nhiêu cũng được do thầy lập trình ghép nhiều phân mãnh lại với nhau.Khuyết điểm cái phần mềm của thầy là giọng đọc ko được hay.Trên mạng mình thấy Zing và VDC(vngame) có thể phát âm 2 giọng đọc 2 miền ko biết là nó có sự dụng Vnvoice hay ko nữa.
Hàm của API Win32
1 vài hàm dùng để lập trình đa luồng:
- CreateThread: tạo một luồng để thực thi trong địa chỉ lời gọi tiến trình.
- ExitThread: dùng để kết thúc một luồng.
- GetCurrentThread: có chức năng trả về mục quản tạm cho luồng hiện tại.
- TerminateThread: có chức ngắt luồng.
- SetThreadPriority: có chức năng thiết lập giá trị ưu tiên cho một luồng.
- CreateThread: tạo một luồng để thực thi trong địa chỉ lời gọi tiến trình.
- ExitThread: dùng để kết thúc một luồng.
- GetCurrentThread: có chức năng trả về mục quản tạm cho luồng hiện tại.
- TerminateThread: có chức ngắt luồng.
- SetThreadPriority: có chức năng thiết lập giá trị ưu tiên cho một luồng.
minhgiangbc- Tổng số bài gửi : 24
Join date : 16/09/2011
Age : 37
Đến từ : lâm đồng
Re: Thảo luận Bài 4
NguyenThanhTam (I11C) đã viết:Job Queue: là hàng chờ công việc, chứa các tiến trình chờ được vận hành.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
Job Queue : Có nhiều thời gian xử lý hơn.
Ready Queue : Có ít thời gian so với Job Queue.
Thực ra, về phía Job queue, do nó phải "sơ tuyển" các process ở trạng thái new nên dĩ nhiên là phải tốn nhiều thời gian, và cũng chính vì lý do đó Ready Queue sẽ ít tốn thời gian hơn. Bạn có thể tham khảo ví dụ của bạn NguyenTranSyTuan(I92C)
VD: thầy giáo gọi tên 5 bạn trong lớp để lên danh sách chuẩn bị lên bảng làm bài tập(điều phối chậm, 5 bạn được đưa từ Job Queue(danh sách lớp) vào Ready Queue(danh sách làm bài)). Sau đó thầy gọi từng bạn trong danh sách đó lên bảng làm bài(điều phối nhanh).
Các bạn tham khảo, bổ sung thêm!
NguyenVietThuan11- Tổng số bài gửi : 34
Join date : 30/08/2011
Age : 36
Đến từ : Đồng Nai
Thuật giải điều phối
*\Thuật giải điều phối FCFS:
-Tới trước – Phục vụ trước (First-Come, First-Served Scheduling)
- Đơn giản, dễ thực hiện
- Các tiến trình trong Ready Queue được cấp CPU từ đầu đến cuối dãy theo qui tắc FIFO(First In,First Out)
- Thời gian chờ là khá lớn
* \Thuật giải điều phối PS:
- Mỗi tiến trình được cấp một số nguyên(Priority Number) dùng để ấn định Độ ưu tiên
- CPU luôn dành tiến trình với độ ưu tiên cao hơn (Priority Number nhỏ hơn=Độ ưu tiên cao hơn) với 2 phương án:
Có tiếm quyền(Preemptive)
Không tiếm quyền (Non- Preemptive)
- SJFS là truờng hợp đặc biệt của PS với độ ưu tiên: P=(Khoảng CPU kế tiếp)
* \Thuật giải điều phối SJFS:
-Ngắn hơn-Chạy trước(Shortest-Job-First Scheduling-SJFS)
- Tiến trình có khoảng CPU kế tiếp nhỏ hơn thì được chạy trước (Shortest-Next-CPU-Burst). Trong trường hợp bằng nhau, dung thuật giải FCFS Là giải thuật khá tối ưu, nhưng phải biết cách ước đoán khoảng CPU kế tiếp
- SJFS không tiếm quyền(Non-Preemptive SJFS) tiến trình hiện thời được thực hiện đến hết khoảng CPU của nó
- SJFS có tiếm quyền(Preemptive SJFS) tiến trình mới có Next CPU Burst nhỏ hơn khoảng thời gian CPU còn lại của tiến trình đang vận hành sẽ được chọn thay thế (Shortest Remaining First)
* \Thuật giải điều phối RRS:
- Như điều phối kiểu FCFS nhưng cho phép tiếm quyền khi tiến trình đang chạy bị hết thời lượng
- Mỗi tiến trình được cấp 1 thời lượng CPU (Time Quantum), thường từ 10-100 mili giây. Sau khoảng thời gian này, nó bị tiếm quyền và được đưa vào cuối hàng chờ Ready . Tiến trình đầu tiên trong hàng chờ Ready được chọn kế tiếp
- Nếu có n tiến trình và thời lượng là q, mỗi tiến trình nhận 1/n thời gian CPU bao gồm các đoạn không quá q đơn vị thời gian
* \Thuật giải điều phối MQS:
- Hàng chờ Ready được phân thành nhiều mức có cấp độ ưu tiên khác nhau
ví dụ: mức các tiến trình tương tác (Interactive)chạy ở mặt trước (Foreground) có độ ưu tiên cao nhất và mức các tiến trình lô(Batch) vận hành trong hậu trường (Background)
- Mỗi hàng chờ có thuật giải điều phối riêng
ví dụ:Foreground dung RRS, Background dung FCFS
- Quan hệ giữa các mức: Ưu tiên xong hết các tiến trình mức trên rổi mới chuyển xuống mức dưới. Đang chạy tiến trình mức dưới mà xuất hiện tiến trình mới mức cao hơn, tiến trình mức dưới sẽ bị tiếm quyền cho tiến trình mới có độ ưu tiên cao hơn(Hệ Solaris 2 dùng cách này).Phân bổ theo tỉ lệ thời lượng:
ví dụ:80% thời lượng CPU dành cho Foreground, 20% cho Background
*\ Thuật giải điều phối MFQS:
- Như MQS nhưng cho phép điều tiết tiến trình sang mức khác, ví dụ: những tiến trình hướng CPU được đưa xuống mức dưới , trong khi tiến trình hướng I/O hoặc chờ lâu được chuyển lên trên
- MFQS đặc trưng bởi các thong số:
Số mức (số hang chờ),điều phối cho mỗi mức.Phương thức nâng cấp tiến trình, hạ cấp tiến trình,chọn hàng chờ (chọn mức)cho tiến trình mới
-Tới trước – Phục vụ trước (First-Come, First-Served Scheduling)
- Đơn giản, dễ thực hiện
- Các tiến trình trong Ready Queue được cấp CPU từ đầu đến cuối dãy theo qui tắc FIFO(First In,First Out)
- Thời gian chờ là khá lớn
* \Thuật giải điều phối PS:
- Mỗi tiến trình được cấp một số nguyên(Priority Number) dùng để ấn định Độ ưu tiên
- CPU luôn dành tiến trình với độ ưu tiên cao hơn (Priority Number nhỏ hơn=Độ ưu tiên cao hơn) với 2 phương án:
Có tiếm quyền(Preemptive)
Không tiếm quyền (Non- Preemptive)
- SJFS là truờng hợp đặc biệt của PS với độ ưu tiên: P=(Khoảng CPU kế tiếp)
* \Thuật giải điều phối SJFS:
-Ngắn hơn-Chạy trước(Shortest-Job-First Scheduling-SJFS)
- Tiến trình có khoảng CPU kế tiếp nhỏ hơn thì được chạy trước (Shortest-Next-CPU-Burst). Trong trường hợp bằng nhau, dung thuật giải FCFS Là giải thuật khá tối ưu, nhưng phải biết cách ước đoán khoảng CPU kế tiếp
- SJFS không tiếm quyền(Non-Preemptive SJFS) tiến trình hiện thời được thực hiện đến hết khoảng CPU của nó
- SJFS có tiếm quyền(Preemptive SJFS) tiến trình mới có Next CPU Burst nhỏ hơn khoảng thời gian CPU còn lại của tiến trình đang vận hành sẽ được chọn thay thế (Shortest Remaining First)
* \Thuật giải điều phối RRS:
- Như điều phối kiểu FCFS nhưng cho phép tiếm quyền khi tiến trình đang chạy bị hết thời lượng
- Mỗi tiến trình được cấp 1 thời lượng CPU (Time Quantum), thường từ 10-100 mili giây. Sau khoảng thời gian này, nó bị tiếm quyền và được đưa vào cuối hàng chờ Ready . Tiến trình đầu tiên trong hàng chờ Ready được chọn kế tiếp
- Nếu có n tiến trình và thời lượng là q, mỗi tiến trình nhận 1/n thời gian CPU bao gồm các đoạn không quá q đơn vị thời gian
* \Thuật giải điều phối MQS:
- Hàng chờ Ready được phân thành nhiều mức có cấp độ ưu tiên khác nhau
ví dụ: mức các tiến trình tương tác (Interactive)chạy ở mặt trước (Foreground) có độ ưu tiên cao nhất và mức các tiến trình lô(Batch) vận hành trong hậu trường (Background)
- Mỗi hàng chờ có thuật giải điều phối riêng
ví dụ:Foreground dung RRS, Background dung FCFS
- Quan hệ giữa các mức: Ưu tiên xong hết các tiến trình mức trên rổi mới chuyển xuống mức dưới. Đang chạy tiến trình mức dưới mà xuất hiện tiến trình mới mức cao hơn, tiến trình mức dưới sẽ bị tiếm quyền cho tiến trình mới có độ ưu tiên cao hơn(Hệ Solaris 2 dùng cách này).Phân bổ theo tỉ lệ thời lượng:
ví dụ:80% thời lượng CPU dành cho Foreground, 20% cho Background
*\ Thuật giải điều phối MFQS:
- Như MQS nhưng cho phép điều tiết tiến trình sang mức khác, ví dụ: những tiến trình hướng CPU được đưa xuống mức dưới , trong khi tiến trình hướng I/O hoặc chờ lâu được chuyển lên trên
- MFQS đặc trưng bởi các thong số:
Số mức (số hang chờ),điều phối cho mỗi mức.Phương thức nâng cấp tiến trình, hạ cấp tiến trình,chọn hàng chờ (chọn mức)cho tiến trình mới
minhgiangbc- Tổng số bài gửi : 24
Join date : 16/09/2011
Age : 37
Đến từ : lâm đồng
Ung dung cua VnVoice 1.0
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 Nam, đ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.
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 Nam, đ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.
TranTrungKien (I11C)- Tổng số bài gửi : 8
Join date : 29/08/2011
Câu hỏi: Những ứng dụng của TTS ngoài việc nghe ,đọc báo?Tại sao phải dùng TTS trong khi mắt bạn còn tốt?
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.
Tại sao phải dùng TTS trong khi mắt bạn còn tốt??
Như các ứng dụng đã nêu trên thì TTS không những giúp cho người khiếm thị tiếp cận được máy tính,công nghệ một cách dễ dàng ,người nước ngoài,người bình thường…,nghe đọc- hiểu được những nội dung,thông tin mà họ cần...,mà còn giúp họ có thể phát âm chuẩn,đúng tiếng Việt hay truyền thông tin cho người khác hiểu bạn đang nói gì.Có thể giúp các em nhỏ học cách phát âm,cách đọc,hay viết chính tả..một cách thích thú.Tiết kiệm được thời gian ngồi đọc Ebook trên máy tính...
• 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.
Tại sao phải dùng TTS trong khi mắt bạn còn tốt??
Như các ứng dụng đã nêu trên thì TTS không những giúp cho người khiếm thị tiếp cận được máy tính,công nghệ một cách dễ dàng ,người nước ngoài,người bình thường…,nghe đọc- hiểu được những nội dung,thông tin mà họ cần...,mà còn giúp họ có thể phát âm chuẩn,đúng tiếng Việt hay truyền thông tin cho người khác hiểu bạn đang nói gì.Có thể giúp các em nhỏ học cách phát âm,cách đọc,hay viết chính tả..một cách thích thú.Tiết kiệm được thời gian ngồi đọc Ebook trên máy tính...
TranCamThu(I11C)- Tổng số bài gửi : 11
Join date : 02/09/2011
Ngoài VNVoice còn có những phần mềm nào trên thị trường?Nêu ưu và khuyết điểm?
Vspeech: phần mềm nhận dạng giọng nói tiếng Việt trên máy tính: do nhóm BK02 của Đại học Bách khoa TP.HCM chế tạo thành công vào cuối năm 2004.
Ưu điểm:
Ngoài việc diều khiển máy tính bằng tiếng Việt, phần mềm này cũng là công cụ nhận dạng và điều khiển máy tính bằng tiếng Anh rất tốt.
Một trong những độc đáo và tiện dụng nhất là VSpeech được tích hợp với Internet Explorer.
Nhược điểm:
Vspeech chưa đủ khả năng điều khiển hoàn toàn một máy tính nhưng ít ra đây cũng là một công cụ giải trí tuyệt hảo, tránh sự nhàm chán cho những người phải làm việc với máy tính thường xuyên. Qua thử nghiệm dường như VSpeech “xung khắc” với các chương trình English Study (4.0, 4.1) nên nó tự động báo lỗi và thoát ra khi kích hoạt English Study hoạt động.
VNSpeech phần mềm giúp máy tính nói tiếng Việt
Ưu điểm:
Ưu điểm của phương pháp là dễ triển khai, tiếng nói tạo ra chính là tiếng người .
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.
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. Vnspeech 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.
Kích thước toàn bộ của Vnspeech 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,...).
Vnspeech 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.
Nhược điểm:
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.
DovisocoTextAloRec phần mềm đọc tiếng Việt, chuyển sang mp3...
Ưu điểm:
Đây là phần mềm được phát triển từ dovisocoTextAloud với độ tuỳ biến cao.
Tự động nhận diện mã tiếng Việt (Unicode, VNI, TCVN-3 ABC) để chọn giọng nói cho thích hợp.
Hỗ trợ từ điển riêng cho mỗi giọng đọc: ví dụ: Thanh Vi.txt là từ điển cho giọng Thanh Vi (mã VNI), Minh Du.txt là từ điển dùng cho giọng đọc Minh Du (mã Unicode),...
Khắc phục được lỗi ngắt dấu câu cho gói giọng nói SaoMai.
Chức năng Text to mp3 cho phép chuyển sang định dạng mp3 với nhiều tuỳ chọn.
Chức năng After reading cho phép tắt, ngủ máy tính sau khi vừa đọc xong văn bản trong bộ nhớ.
Tăng giảm tốc độ, âm lượng cho giọng đọc...
Ưu điểm:
Ngoài việc diều khiển máy tính bằng tiếng Việt, phần mềm này cũng là công cụ nhận dạng và điều khiển máy tính bằng tiếng Anh rất tốt.
Một trong những độc đáo và tiện dụng nhất là VSpeech được tích hợp với Internet Explorer.
Nhược điểm:
Vspeech chưa đủ khả năng điều khiển hoàn toàn một máy tính nhưng ít ra đây cũng là một công cụ giải trí tuyệt hảo, tránh sự nhàm chán cho những người phải làm việc với máy tính thường xuyên. Qua thử nghiệm dường như VSpeech “xung khắc” với các chương trình English Study (4.0, 4.1) nên nó tự động báo lỗi và thoát ra khi kích hoạt English Study hoạt động.
VNSpeech phần mềm giúp máy tính nói tiếng Việt
Ưu điểm:
Ưu điểm của phương pháp là dễ triển khai, tiếng nói tạo ra chính là tiếng người .
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.
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. Vnspeech 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.
Kích thước toàn bộ của Vnspeech 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,...).
Vnspeech 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.
Nhược điểm:
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.
DovisocoTextAloRec phần mềm đọc tiếng Việt, chuyển sang mp3...
Ưu điểm:
Đây là phần mềm được phát triển từ dovisocoTextAloud với độ tuỳ biến cao.
Tự động nhận diện mã tiếng Việt (Unicode, VNI, TCVN-3 ABC) để chọn giọng nói cho thích hợp.
Hỗ trợ từ điển riêng cho mỗi giọng đọc: ví dụ: Thanh Vi.txt là từ điển cho giọng Thanh Vi (mã VNI), Minh Du.txt là từ điển dùng cho giọng đọc Minh Du (mã Unicode),...
Khắc phục được lỗi ngắt dấu câu cho gói giọng nói SaoMai.
Chức năng Text to mp3 cho phép chuyển sang định dạng mp3 với nhiều tuỳ chọn.
Chức năng After reading cho phép tắt, ngủ máy tính sau khi vừa đọc xong văn bản trong bộ nhớ.
Tăng giảm tốc độ, âm lượng cho giọng đọc...
TranCamThu(I11C)- Tổng số bài gửi : 11
Join date : 02/09/2011
Re: Thảo luận Bài 4
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 Nam, đ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.
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 Nam, đ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.
nguyenthanhphuong(I11C)- Tổng số bài gửi : 18
Join date : 30/08/2011
BỔ SUNG SO SÁNH JOB QUEUE VÀ Ready Queue.
Job Queue: là hàng chờ công việc, chứa các tiến trình chờ được vận hành.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
VD: thầy giáo gọi tên 5 bạn trong lớp để lên danh sách chuẩn bị lên bảng làm bài tập(điều phối chậm, 5 bạn được đưa từ Job Queue(danh sách lớp) vào Ready Queue(danh sách làm bài)). Sau đó thầy gọi từng bạn trong danh sách đó lên bảng làm bài(điều phối nhanh).
Các bạn tham khảo, bổ sung thêm!
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
VD: thầy giáo gọi tên 5 bạn trong lớp để lên danh sách chuẩn bị lên bảng làm bài tập(điều phối chậm, 5 bạn được đưa từ Job Queue(danh sách lớp) vào Ready Queue(danh sách làm bài)). Sau đó thầy gọi từng bạn trong danh sách đó lên bảng làm bài(điều phối nhanh).
Các bạn tham khảo, bổ sung thêm!
DuongKimLong(I111C)- Tổng số bài gửi : 29
Join date : 26/08/2011
LIÊN LẠC GIỮA CÁC TIẾN TRÌNH
. Nhu cầu liên lạc giữa các tiến trình
Trong môi trường đa chương, 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, ví dụ dữ liệu kết xuất của tiến trình này lại là dữ liệu nhập cho tiến trình khác .Trong các trường hợp đó, hệ điều hành cần cung cấp cơ chế để các tiến trình có thể trao đổi thông tin với nhau.
2. Các vấn đề nảy sinh trong việc liên lạc giữa các tiến trình
Do mỗi tiến trình sỡ hữu một không gian địa chỉ riêng biệt, nên các tiến trình không thể liên lạc trực tiếp dễ dàng mà phải nhờ vào các cơ chế do hệ điều hành cung cấp. Khi cung cấp cơ chế liên lạc cho các tiến trình, hệ điều hành thường phải tìm giải pháp cho các vấn đề chính yếu sau :
Liên kết tường minh hay tiềm ẩn (explicit naming/implicit naming) : tiến trình có cần phải biết tiến trình nào đang trao đổi hay chia sẻ thông tin với nó ? Mối liên kết được gọi là tường minh khi được thiết lập rõ ràng , trực tiếp giữa các tiến trình, và là tiềm ẩn khi các tiến trình liên lạc với nhau thông qua một qui ước ngầm nào đó.
Liên lạc theo chế độ đồng bộ hay không đồng bộ (blocking / non-blocking): khi một tiến trình trao đổi thông tin với một tiến trình khác, các tiến trình có cần phải đợi cho thao tác liên lạc hoàn tất rồi mới tiếp tục các xử lý khác ? Các tiến trình liên lạc theo cơ chế đồng bộ sẽ chờ nhau hoàn tất việc liên lạc, còn các tiến trình liên lạc theo cơ chế nonblocking thì không.
Liên lạc giữa các tiến trình trong hệ thống tập trung và hệ thống phân tán: cơ chế liên lạc giữa các tiến trình trong cùng một máy tính có sự khác biệt với việc liên lạc giữa các tiến trình giữa những máy tính khác nhau?
Hầu hết các hệ điều hành đưa ra nhiều cơ chế liên lạc khác nhau, mỗi cơ chế có những đặc tính riêng, và thích hợp trong một hoàn cảnh chuyên biệt.
Trong môi trường đa chương, 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, ví dụ dữ liệu kết xuất của tiến trình này lại là dữ liệu nhập cho tiến trình khác .Trong các trường hợp đó, hệ điều hành cần cung cấp cơ chế để các tiến trình có thể trao đổi thông tin với nhau.
2. Các vấn đề nảy sinh trong việc liên lạc giữa các tiến trình
Do mỗi tiến trình sỡ hữu một không gian địa chỉ riêng biệt, nên các tiến trình không thể liên lạc trực tiếp dễ dàng mà phải nhờ vào các cơ chế do hệ điều hành cung cấp. Khi cung cấp cơ chế liên lạc cho các tiến trình, hệ điều hành thường phải tìm giải pháp cho các vấn đề chính yếu sau :
Liên kết tường minh hay tiềm ẩn (explicit naming/implicit naming) : tiến trình có cần phải biết tiến trình nào đang trao đổi hay chia sẻ thông tin với nó ? Mối liên kết được gọi là tường minh khi được thiết lập rõ ràng , trực tiếp giữa các tiến trình, và là tiềm ẩn khi các tiến trình liên lạc với nhau thông qua một qui ước ngầm nào đó.
Liên lạc theo chế độ đồng bộ hay không đồng bộ (blocking / non-blocking): khi một tiến trình trao đổi thông tin với một tiến trình khác, các tiến trình có cần phải đợi cho thao tác liên lạc hoàn tất rồi mới tiếp tục các xử lý khác ? Các tiến trình liên lạc theo cơ chế đồng bộ sẽ chờ nhau hoàn tất việc liên lạc, còn các tiến trình liên lạc theo cơ chế nonblocking thì không.
Liên lạc giữa các tiến trình trong hệ thống tập trung và hệ thống phân tán: cơ chế liên lạc giữa các tiến trình trong cùng một máy tính có sự khác biệt với việc liên lạc giữa các tiến trình giữa những máy tính khác nhau?
Hầu hết các hệ điều hành đưa ra nhiều cơ chế liên lạc khác nhau, mỗi cơ chế có những đặc tính riêng, và thích hợp trong một hoàn cảnh chuyên biệt.
DuongKimLong(I111C)- Tổng số bài gửi : 29
Join date : 26/08/2011
VnVoice và những kiến thức thiết thực
Em chào thầy ạ! qua bài giảng vừa rồi của thầy về chương trình VnVoice, em đã học hỏi được thêm rất nhiều kiến thức về lập trình windows. Nhờ kiến thức này em cảm thấy tự tin thêm trong vấn đền quản lý hệ điều hành windows về vấn đề sử dụng cũng như lập trình kiểm soát mục quản handle.Admin đã viết:Thảo luận những vấn đề liên quan đến Bài 4
Chân thành cám ơn những kiến thức quí báu của thầy!
08H1010052- Tổng số bài gửi : 52
Join date : 02/07/2010
Tiến trình khác chương trình như thế nào?
- Tiến trình là chương trình trong thời gian thực hiện (đặt dưới sự quản lý của hệ điều hành). 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, trong khi tiến trình là thực thể hoạt động với nhiều thông tin trạng thái trong đó có bộ đếm chương trình 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, trong khi tiến trình là thực thể hoạt động với nhiều thông tin trạng thái trong đó có bộ đếm chương trình cho biết vị trí lệnh hiện hành.
TranTrungTinh(I11C)- Tổng số bài gửi : 28
Join date : 30/08/2011
Re: Thảo luận Bài 4
Mình có tham khảo trên diễn đàn mấy khóa trước thấy có thêm một vài ý nữa. Mình bổ sung thêm.DuongKimLong(I111C) đã viết:Job Queue: là hàng chờ công việc, chứa các tiến trình chờ được vận hành.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.
VD: thầy giáo gọi tên 5 bạn trong lớp để lên danh sách chuẩn bị lên bảng làm bài tập(điều phối chậm, 5 bạn được đưa từ Job Queue(danh sách lớp) vào Ready Queue(danh sách làm bài)). Sau đó thầy gọi từng bạn trong danh sách đó lên bảng làm bài(điều phối nhanh).
Các bạn tham khảo, bổ sung thêm!
- Job Queue : Có nhiều thời gian xử lý hơn.
- Ready Queue : Có ít thời gian so với Job Queue.
- Ready Queue chứa hỗn hợp 2 loại tiến trình Hướng CPU và Hướng I/O sao cho tối ưu nhất vì đảm bảo được độ cân bằng tải (Load-Balancing) cần thiết.
TranTrungTinh(I11C)- Tổng số bài gửi : 28
Join date : 30/08/2011
Tại sao Visual stdio 6.0 được 13 tuổi vẫn còn nguyên giá trị?
Visual C++ 6.0, MFC 6.0, ra đời vào tháng 6 năm 1998, cải thiện thêm cho Visual Studio 97, đã và đang được sử dụng rộng rãi cho các project lớn và nhỏ.
- Theo em nghĩ :
+Đây là một môi trường lập trình đa năng:gồm các ngôn ngử C/C++,VB.
+Visual Stdio 6.0 là phần mềm cơ bản và căn bản nhất để lập trình.
+Visual Stdio 60 mạnh về ngôn ngữ lập trình VB (Visual Basic).
+Là môi trường lập trình trên hệ điều hành Windows.
- Về DOT NET hiện nay thì phát triển dựa trên nền tảng của Visual Stdio 6.0 để phát triển lên và thêm vào đó các ngôn ngữ như là CSharp (C#), JSharp (J#), ASP.Net, v.v...
-Anh , Chị và các bạn có ý kiến khác xin góp ý thêm nhé!.....
- Theo em nghĩ :
+Đây là một môi trường lập trình đa năng:gồm các ngôn ngử C/C++,VB.
+Visual Stdio 6.0 là phần mềm cơ bản và căn bản nhất để lập trình.
+Visual Stdio 60 mạnh về ngôn ngữ lập trình VB (Visual Basic).
+Là môi trường lập trình trên hệ điều hành Windows.
- Về DOT NET hiện nay thì phát triển dựa trên nền tảng của Visual Stdio 6.0 để phát triển lên và thêm vào đó các ngôn ngữ như là CSharp (C#), JSharp (J#), ASP.Net, v.v...
-Anh , Chị và các bạn có ý kiến khác xin góp ý thêm nhé!.....
chauchanduong (I11C)- Tổng số bài gửi : 18
Join date : 26/08/2011
Tại sao trên mạng có nhiều phần mềm Chat nhưng chúng ta học và làm theo đễ làm gi?
Theo em nghỉ:
- Là phải học và làm theo tuy đã có nhiều phần mềm chat trên mạng vì 1 lý do đơn giản là chúng ta chưa biết được ý tưởng lập trình.
- Học làm theo để biết cách lập trình về Chat và dựa trên nền tảng đã học để từ đó phát triển thêm cái mới do mình sáng tạo ra.
-Tóm lại : HỌC ĐỂ BIẾT THÊM KIẾN THỨC MỚI --> KẾ THỪA LẠI CÁI ĐÃ CÓ --> DỰA TRÊN SỰ KẾ THỪA ĐỂ BỔ SUNG, PHÁT TRIỂN VÀ NÂNG CẤP.
*HỌC , KẾ THỪA VÀ PHÁT TRIỂN (EDUCATION, INHERITANCE AND DEVELOPMENT)*
-Anh , Chị và các bạn cùng thảo luận và đóng góp ý kiến thêm nhé!.....
- Là phải học và làm theo tuy đã có nhiều phần mềm chat trên mạng vì 1 lý do đơn giản là chúng ta chưa biết được ý tưởng lập trình.
- Học làm theo để biết cách lập trình về Chat và dựa trên nền tảng đã học để từ đó phát triển thêm cái mới do mình sáng tạo ra.
-Tóm lại : HỌC ĐỂ BIẾT THÊM KIẾN THỨC MỚI --> KẾ THỪA LẠI CÁI ĐÃ CÓ --> DỰA TRÊN SỰ KẾ THỪA ĐỂ BỔ SUNG, PHÁT TRIỂN VÀ NÂNG CẤP.
*HỌC , KẾ THỪA VÀ PHÁT TRIỂN (EDUCATION, INHERITANCE AND DEVELOPMENT)*
-Anh , Chị và các bạn cùng thảo luận và đóng góp ý kiến thêm nhé!.....
chauchanduong (I11C)- Tổng số bài gửi : 18
Join date : 26/08/2011
Thuật giải bài toán sản xuất - tiêu thụ có trên 2 Producer, 2 Consumer
Theo mình biết, Thuật giải trên chỉ áp dụng cho trường hợp có 1 Producer và 1 Consumer mà trong ví dụ minh họa của Thầy có tới 2 Producer và 2 Consumer. Vậy thuật giải của nó như thế nào? và mình đã tìm được một thuật giải áp dụng cho trên 2 Producer, 2 Consumer. Mình post lên, các bạn góp ý nhé!nguyenthingocloan (I11C) đã viết:* Phát biểu bài toán Sản xuất-Tiêu thụ.
- Giả sử có bộ nhớ đệm (buffer) bao gồm nhiều khoang chứa (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
- Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
- Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi buffer đầy, không được lấy ra khi chưa có sản phẩm.
* Thuật giải chờ bận (Busy-Waiting).
- Tiến trình sản xuất:
Code:
item nextProduced;
while (1)
{
while (((in + 1) % BUFFER_SIZE) == out);
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
}
- Tiến trình tiêu thụ.
Code:
item nextConsumed;
while (1)
{
while (in == out);
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
}
- Trường hợp có trên 2 Producer, 2 Consumer khi đó:
o Ngoài việc kiểm tra hàng đợi, ta còn phải kiểm tra vị trí tiếp theo trong hàng đợi có bị Producer khác có sử dụng hay không.
o Ngược lại nhà tiêu thụ cũng phải kiểm tra hàng đợi tiếp theo có bị Consumer khác lấy rồi hay không.
o Và cùng lúc lấy ra và đưa vào sản phảm nhưng thời gian thực thi đồng thời.
o Như vậy với hơn 2 tiến trình cùng làm 1 việc hoặc Producer hoặc Consumer thì sẽ xảy ra tình trang tranh chấp nếu 2 tiến trình đồng thời cùng hoạt động (thuật ngữ gọi là vùng tương tranh). Để giải quyết vấn đề này ta phải quản lý buffer dùng chung bằng cách tạo ra 2 vùng là vùng đăng nhập(entry section) và vùng đăng xuất(exit section)
Dưới đây là cấu trúc của phần quản lý buffer
while (1) {
remainder section
entry section // Vùng đăng nhập
critical section //vùng tranh chấp
exit section // Vùng đăng xuất
remainder section
}
Cuối cùng bài toán hoàn chỉnh được giải quyết như sau:
Sản xuất.
item nextProduced;
while (1) { //lặp vô hạn
/* tạo 1 sản phẩm và đưa vào nextProduced */
entry section
while (((in + 1) % BUFFER_SIZE) == out)
; // Quẩn tại đây khi buffer đầy
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE; // chia lấy phần dư của số nguyên
exit section
}
Tiêu thụ
item nextConsumed;
while (1) {
while (in == out); // Quẩn tại đây khi buffer rỗng
entry section
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
// Tiêu thụ sản phảm trong nextConsumed
exit section
}
NguyThiGai (I11C)- Tổng số bài gửi : 28
Join date : 26/08/2011
Age : 37
QUẢN LÝ TIẾN TRÌNH
1. Các trạng thái của tiến trình
Tại một thời điểm, một tiến trình có thể nhận trong một các trạng thái sau đây :
Mới tạo : tiến trình đang được tạo lập.
Running : các chỉ thị của tiến trình đang được xử lý.
Blocked : 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 .
Ready : tiến trình chờ được cấp phát CPU để xử lý
Kết thúc : tiến trình hoàn tất xử lý.
2. Chế độ xử lý của tiến trình.
Để đảm bảo hệ thống hoạt động đúng đắn, hệ điều hành cần phải được bảo vệ khỏi sự xâm phạm của các tiến trình. Bản thân các tiến trình và dữ liệu cũng cần được bảo vệ để tránh các ảnh hưởng sai lạc lẫn nhau. Một cách tiếp cận để giải quyết vấn đề là phân biệt hai chế độ xử lý cho các tiến trình : chế độ không đặc quyền và chế độ đặc quyền nhờ vào sự trợ giúp của cơ chế phần cứng. Tập lệnh của CPU được phân chia thành các lệnh đặc quyền và lệnh không đặc quyền. Cơ chế phần cứng chỉ cho phép các lệnh đặc quyền được thực hiện trong chế độ đặc quyền. Thông thường chỉ có hệ điều hành hoạt động trong chế độ đặc quyền, các tiến trình của người dùng hoạt động trong chế độ không đặc quyền, không thực hiện được các lệnh đặc quyền cơ nguy cơ ảnh hưởng đến hệ thống. Như vậy hệ điều hành được bảo vệ. Khi một tiến trình người dùng gọi đến một lời gọi hệ thống, tiến trình của hệ điều hành xử lý lời gọi này sẽ hoạt động trong chế độ đặc quyền, sau khi hoàn tất thì trả quyền điều khiển về cho tiến trình người dùng trong chế độ không đặc quyền.
3. Cấu trúc dữ liệu khối quản lý tiến trình
Định danh của tiến trình (1) : giúp phân biệt các tiến trình
Trạng thái tiến trình (2): xác định hoạt động hiện hành của tiến trình.
Ngữ cảnh của tiến trình (3): mô tả các tài nguyên tiến trình đang trong quá trình, hoặc để phục vụ cho hoạt động hiện tại, hoặc để làm cơ sở phục hồi hoạt động cho tiến trình, bao gồm các thông tin về:
Trạng thái
Bộ xử lý
Bộ nhớ chính
Tài nguyên sử dụng
Tài nguyên tạo lập
Thông tin giao tiếp (4): phản ánh các thông tin về quan hệ của tiến trình với các tiến trình khác trong hệ thống :
Tiến trình cha
Tiến trình con
Độ ưu tiên
Thông tin thống kê (5): đây là những thông tin thống kê về hoạt động của tiến trình, như thời gian đã sử dụng CPU,thời gian chờ. Các thông tin này có thể có ích cho công việc đánh giá tình hình hệ thống và dự đoán các tình huống tương lai.
4. Thao tác trên tiến trình
Hệ điều hành cung cấp các thao tác chủ yếu sau đây trên một tiến trình :
tạo lập tiến trình (create)
kết thúc tiến trình (destroy)
tạm dừng tiến trình (suspend)
tái kích hoạt tiến trình (resume)
thay đổi độ ưu tiên tiến trình
5. Cấp phát tài nguyên cho tiến trình
Khi có nhiều người sử dụng đồng thời làm việc trong hệ thống, hệ điều hành cần phải cấp phát các tài nguyên theo yêu cầu cho mỗi người sử dụng. Do tài nguyên hệ thống thường rất giới hạn và có khi không thể chia sẻ, nên hiếm khi tất cả các yêu cầu tài nguyên đồng thời đều được thỏa mãn. Vì thế cần phải nghiên cứu một phương pháp để chia sẻ một số tài nguyên hữu hạn giữa nhiều tiến trình người dùng đồng thời. Hệ điều hành quản lý nhiều loại tài nguyên khác nhau (CPU, bộ nhớ chính, các thiết bị ngoại vi), với mỗi loại cần có một cơ chế cấp phát và các chiến lược cấp phát hiệu qủa. Mỗi tài nguyên được biễu diễn thông qua một cấu trúc dữ liệu, khác nhau về chi tiết cho từng loại tài nguyên, nhưng cơ bản chứa đựng các thông tin sau :
Định danh tài nguyên
Trạng thái tài nguyên : đây là các thông tin mô tả chi tiết trạng thái tài nguyên : phần nào của tài nguyên đã cấp phát cho tiến trình, phần nào còn có thể sử dụng ?
Hàng đợi trên một tài nguyên : danh sách các tiến trình đang chờ được cấp phát tài nguyên tương ứng.
Bộ cấp phát : là đoạn code đảm nhiệm việc cấp phát một tài nguyên đặc thù. Một số tài nguyên đòi hỏi các giải thuật đặc biệt (như CPU, bộ nhớ chính, hệ thống tập tin), trong khi những tài nguyên khác (như các thiết bị nhập/xuất) có thể cần các giải thuật cấp phát và giải phóng tổng quát hơn.
Các mục tiêu của kỹ thuật cấp phát :
Bảo đảm một số lượng hợp lệ các tiến trình truy xuất đồng thời đến các tài nguyên không chia sẻ được.
Cấp phát tài nguyên cho tiến trình có yêu cầu trong một khoảng thời gian trì hoãn có thể chấp nhận được.
Tối ưu hóa sự sử dụng tài nguyên.
Để có thể thõa mãn các mục tiêu kể trên, cần phải giải quyết các vấn đề nảy sinh khi có nhiều tiến trình đồng thời yêu cầu một tài nguyên không thể chia sẻ.
Tại một thời điểm, một tiến trình có thể nhận trong một các trạng thái sau đây :
Mới tạo : tiến trình đang được tạo lập.
Running : các chỉ thị của tiến trình đang được xử lý.
Blocked : 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 .
Ready : tiến trình chờ được cấp phát CPU để xử lý
Kết thúc : tiến trình hoàn tất xử lý.
2. Chế độ xử lý của tiến trình.
Để đảm bảo hệ thống hoạt động đúng đắn, hệ điều hành cần phải được bảo vệ khỏi sự xâm phạm của các tiến trình. Bản thân các tiến trình và dữ liệu cũng cần được bảo vệ để tránh các ảnh hưởng sai lạc lẫn nhau. Một cách tiếp cận để giải quyết vấn đề là phân biệt hai chế độ xử lý cho các tiến trình : chế độ không đặc quyền và chế độ đặc quyền nhờ vào sự trợ giúp của cơ chế phần cứng. Tập lệnh của CPU được phân chia thành các lệnh đặc quyền và lệnh không đặc quyền. Cơ chế phần cứng chỉ cho phép các lệnh đặc quyền được thực hiện trong chế độ đặc quyền. Thông thường chỉ có hệ điều hành hoạt động trong chế độ đặc quyền, các tiến trình của người dùng hoạt động trong chế độ không đặc quyền, không thực hiện được các lệnh đặc quyền cơ nguy cơ ảnh hưởng đến hệ thống. Như vậy hệ điều hành được bảo vệ. Khi một tiến trình người dùng gọi đến một lời gọi hệ thống, tiến trình của hệ điều hành xử lý lời gọi này sẽ hoạt động trong chế độ đặc quyền, sau khi hoàn tất thì trả quyền điều khiển về cho tiến trình người dùng trong chế độ không đặc quyền.
3. Cấu trúc dữ liệu khối quản lý tiến trình
Định danh của tiến trình (1) : giúp phân biệt các tiến trình
Trạng thái tiến trình (2): xác định hoạt động hiện hành của tiến trình.
Ngữ cảnh của tiến trình (3): mô tả các tài nguyên tiến trình đang trong quá trình, hoặc để phục vụ cho hoạt động hiện tại, hoặc để làm cơ sở phục hồi hoạt động cho tiến trình, bao gồm các thông tin về:
Trạng thái
Bộ xử lý
Bộ nhớ chính
Tài nguyên sử dụng
Tài nguyên tạo lập
Thông tin giao tiếp (4): phản ánh các thông tin về quan hệ của tiến trình với các tiến trình khác trong hệ thống :
Tiến trình cha
Tiến trình con
Độ ưu tiên
Thông tin thống kê (5): đây là những thông tin thống kê về hoạt động của tiến trình, như thời gian đã sử dụng CPU,thời gian chờ. Các thông tin này có thể có ích cho công việc đánh giá tình hình hệ thống và dự đoán các tình huống tương lai.
4. Thao tác trên tiến trình
Hệ điều hành cung cấp các thao tác chủ yếu sau đây trên một tiến trình :
tạo lập tiến trình (create)
kết thúc tiến trình (destroy)
tạm dừng tiến trình (suspend)
tái kích hoạt tiến trình (resume)
thay đổi độ ưu tiên tiến trình
5. Cấp phát tài nguyên cho tiến trình
Khi có nhiều người sử dụng đồng thời làm việc trong hệ thống, hệ điều hành cần phải cấp phát các tài nguyên theo yêu cầu cho mỗi người sử dụng. Do tài nguyên hệ thống thường rất giới hạn và có khi không thể chia sẻ, nên hiếm khi tất cả các yêu cầu tài nguyên đồng thời đều được thỏa mãn. Vì thế cần phải nghiên cứu một phương pháp để chia sẻ một số tài nguyên hữu hạn giữa nhiều tiến trình người dùng đồng thời. Hệ điều hành quản lý nhiều loại tài nguyên khác nhau (CPU, bộ nhớ chính, các thiết bị ngoại vi), với mỗi loại cần có một cơ chế cấp phát và các chiến lược cấp phát hiệu qủa. Mỗi tài nguyên được biễu diễn thông qua một cấu trúc dữ liệu, khác nhau về chi tiết cho từng loại tài nguyên, nhưng cơ bản chứa đựng các thông tin sau :
Định danh tài nguyên
Trạng thái tài nguyên : đây là các thông tin mô tả chi tiết trạng thái tài nguyên : phần nào của tài nguyên đã cấp phát cho tiến trình, phần nào còn có thể sử dụng ?
Hàng đợi trên một tài nguyên : danh sách các tiến trình đang chờ được cấp phát tài nguyên tương ứng.
Bộ cấp phát : là đoạn code đảm nhiệm việc cấp phát một tài nguyên đặc thù. Một số tài nguyên đòi hỏi các giải thuật đặc biệt (như CPU, bộ nhớ chính, hệ thống tập tin), trong khi những tài nguyên khác (như các thiết bị nhập/xuất) có thể cần các giải thuật cấp phát và giải phóng tổng quát hơn.
Các mục tiêu của kỹ thuật cấp phát :
Bảo đảm một số lượng hợp lệ các tiến trình truy xuất đồng thời đến các tài nguyên không chia sẻ được.
Cấp phát tài nguyên cho tiến trình có yêu cầu trong một khoảng thời gian trì hoãn có thể chấp nhận được.
Tối ưu hóa sự sử dụng tài nguyên.
Để có thể thõa mãn các mục tiêu kể trên, cần phải giải quyết các vấn đề nảy sinh khi có nhiều tiến trình đồng thời yêu cầu một tài nguyên không thể chia sẻ.
HuynhVanNhut (I11C)- Tổng số bài gửi : 12
Join date : 07/09/2011
Các loại tiến trình
Các tiến trình trong hệ thống có thể chia thành hai loại: tiến trình tuần tự và tiến trình song song. Tiến trình tuần tự là các tiến trình mà điểm khởi tạo của nó là điểm kết thúc của tiến trình trước đó. Tiến trình song song là các tiến trình mà điểm khởi tạo của tiến trình này mằn ở thân của các tiến trình khác, tức là có thể khởi tạo một tiến trình mới khi các tiến trình trước đó chưa kết thúc. Tiến trình song song được chia thành nhiều loại:
- Tiến trình song song độc lập: là các tiến trình hoạt động song song nhưng không có quan hệ thông tin với nhau, trong trường hợp này hệ điều hành phải thiết lập cơ chế bảo vệ dữ liệu của các tiến trình, và cấp phát tài nguyên cho các tiến trình một cách hợp lý.
- Tiến trình song song có quan hệ thông tin: trong quá trình hoạt động các tiến trình thường trao đổi thông tin với nhau, trong một số trường hợp tiến trình gởi thông báo cần phải nhận được tín hiệu từ tiến trình nhận để tiếp tục, điều này dễ dẫn đến bế tắc khi tiến trình nhận tín hiệu không ở trong trạng thái nhận hay tiến trình gởi không ở trong trạng thái nhận thông báo trả lời.
- Tiến trình song song phân cấp: Trong qua trình hoạt động một tiến trình có thể khởi tạo các tiến trình khác hoạt động song song với nó, tiến trình khởi tạo được gọi là tiến trình cha, tiến trình được tạo gọi là tiến trình con. Trong mô hình này hệ điều hành phải giải quyết vấn đề cấp phát tài nguyên cho các tiến trình con. Tiến trình con nhận tài nguyên ở đâu, từ tiến trình cha hay từ hệ thống. Để giải quyết vấn đề này hệ điều hành đưa ra 2 mô hình quản lý tài nguyên: Thứ nhất, mô hình tập trung, trong mô hình này hệ điều hành chịu trách nhiệm phân phối tài nguyên cho tất cả các tiến trình trong hệ thống. Thứ hai, mô hình phân tán, trong mô hình này hệ điều hành cho phép tiến trình con nhận tài nguyên từ tiến trình cha, tức là tiến trình khởi tạo có nhiệm vụ nhận tài nguyên từ hệ điều hành để cấp phát cho các tiến trình mà nó tạo ra, và nó có nhiệm vụ thu hồi lại tài nguyên đã cấp phát trả về cho hệ điều hành trước khi kết thúc.
- Tiến trình song song đồng mức: là các tiến trình hoạt động song song sử dụng chung tài nguyên theo nguyên tắc lần lượt, mỗi tiến trình sau một khoảng thời gian chiếm giữ tài nguyên phải tự động trả lại tài nguyên cho tiến trình kia.
- Các tiến trình tuần tự chỉ xuất hiện trong các hệ điều hành đơn nhiệm đa chương, như hệ điều hành MS_DOS, loại tiến trình này tồn tại nhiều hạn chế, điển hình nhất là không khai thác tối đa thời gian xử lý của processor.
Các tiến trình song song xuất hiện trong các hệ điều hành đa nhiệm đa chương, trên cả hệ thống uniprocessor và multiprocessor. Nhưng sự song song thực, chỉ có ở các hệ thống multiprocessor, trong hệ thống này mỗi processor chịu trách nhiệm thực hiện một tiến trình. Sự song song trên các hệ thống uniprocessor là sự song song giả, các tiến trình song song trên hệ thống này thực chất là các tiến trình thay nhau sử dụng processor, tiến trình này đang chạy thì có thể dừng lại để nhường processor cho tiến trình khác chạy và sẽ tiếp tục lại sau đó khi có được processor.
Hình vẽ sau đây minh họa sự khác nhau về mặt thực hiện giữa các tiến trình song song trong hệ thống uniprocessor với trong hệ thống multiprocessor.
- Tiến trình song song độc lập: là các tiến trình hoạt động song song nhưng không có quan hệ thông tin với nhau, trong trường hợp này hệ điều hành phải thiết lập cơ chế bảo vệ dữ liệu của các tiến trình, và cấp phát tài nguyên cho các tiến trình một cách hợp lý.
- Tiến trình song song có quan hệ thông tin: trong quá trình hoạt động các tiến trình thường trao đổi thông tin với nhau, trong một số trường hợp tiến trình gởi thông báo cần phải nhận được tín hiệu từ tiến trình nhận để tiếp tục, điều này dễ dẫn đến bế tắc khi tiến trình nhận tín hiệu không ở trong trạng thái nhận hay tiến trình gởi không ở trong trạng thái nhận thông báo trả lời.
- Tiến trình song song phân cấp: Trong qua trình hoạt động một tiến trình có thể khởi tạo các tiến trình khác hoạt động song song với nó, tiến trình khởi tạo được gọi là tiến trình cha, tiến trình được tạo gọi là tiến trình con. Trong mô hình này hệ điều hành phải giải quyết vấn đề cấp phát tài nguyên cho các tiến trình con. Tiến trình con nhận tài nguyên ở đâu, từ tiến trình cha hay từ hệ thống. Để giải quyết vấn đề này hệ điều hành đưa ra 2 mô hình quản lý tài nguyên: Thứ nhất, mô hình tập trung, trong mô hình này hệ điều hành chịu trách nhiệm phân phối tài nguyên cho tất cả các tiến trình trong hệ thống. Thứ hai, mô hình phân tán, trong mô hình này hệ điều hành cho phép tiến trình con nhận tài nguyên từ tiến trình cha, tức là tiến trình khởi tạo có nhiệm vụ nhận tài nguyên từ hệ điều hành để cấp phát cho các tiến trình mà nó tạo ra, và nó có nhiệm vụ thu hồi lại tài nguyên đã cấp phát trả về cho hệ điều hành trước khi kết thúc.
- Tiến trình song song đồng mức: là các tiến trình hoạt động song song sử dụng chung tài nguyên theo nguyên tắc lần lượt, mỗi tiến trình sau một khoảng thời gian chiếm giữ tài nguyên phải tự động trả lại tài nguyên cho tiến trình kia.
- Các tiến trình tuần tự chỉ xuất hiện trong các hệ điều hành đơn nhiệm đa chương, như hệ điều hành MS_DOS, loại tiến trình này tồn tại nhiều hạn chế, điển hình nhất là không khai thác tối đa thời gian xử lý của processor.
Các tiến trình song song xuất hiện trong các hệ điều hành đa nhiệm đa chương, trên cả hệ thống uniprocessor và multiprocessor. Nhưng sự song song thực, chỉ có ở các hệ thống multiprocessor, trong hệ thống này mỗi processor chịu trách nhiệm thực hiện một tiến trình. Sự song song trên các hệ thống uniprocessor là sự song song giả, các tiến trình song song trên hệ thống này thực chất là các tiến trình thay nhau sử dụng processor, tiến trình này đang chạy thì có thể dừng lại để nhường processor cho tiến trình khác chạy và sẽ tiếp tục lại sau đó khi có được processor.
Hình vẽ sau đây minh họa sự khác nhau về mặt thực hiện giữa các tiến trình song song trong hệ thống uniprocessor với trong hệ thống multiprocessor.
minhgiangbc- Tổng số bài gửi : 24
Join date : 16/09/2011
Age : 37
Đến từ : lâm đồng
Re: Thảo luận Bài 4
chauchanduong (I11C) đã viết:Visual C++ 6.0, MFC 6.0, ra đời vào tháng 6 năm 1998, cải thiện thêm cho Visual Studio 97, đã và đang được sử dụng rộng rãi cho các project lớn và nhỏ.
- Theo em nghĩ :
+Đây là một môi trường lập trình đa năng:gồm các ngôn ngử C/C++,VB.
+Visual Stdio 6.0 là phần mềm cơ bản và căn bản nhất để lập trình.
+Visual Stdio 60 mạnh về ngôn ngữ lập trình VB (Visual Basic).
+Là môi trường lập trình trên hệ điều hành Windows.
- Về DOT NET hiện nay thì phát triển dựa trên nền tảng của Visual Stdio 6.0 để phát triển lên và thêm vào đó các ngôn ngữ như là CSharp (C#), JSharp (J#), ASP.Net, v.v...
-Anh , Chị và các bạn có ý kiến khác xin góp ý thêm nhé!.....
Theo mình là tùy theo nhu cầu của người lập trình mà lựa chọn ngôn ngữ phù hợp nhất. VD: khi muốn viết chương trình lập trình làm việc với các cấp thấp của máy tính thì ASSEMBLER là phù hợp, nhưng nếu cần lập trình hướng đối tượng nhiều thì sử dụng công cụ này sẽ gặp khó khăn. Cũng như cần lập trình đồ họ thì càng khó khăn hơn trong vấn đề giao tiếp. Bên dưới là tất cả các ngôn ngữ lập trình tổng quát cơ bản từ trước cho tới nay.
Các ngôn ngữ cơ bản
1. Assembly
2. Fortran
3. Cobol
4. Ngôn ngữ lập trình PASCAL
5. Ngôn ngữ lập trình C
6. Ngôn ngữ lập trình C++
7. Ngôn ngữ lập trình JAVA
8. VISUAL BASIC
9. C# .NET
Tuân.
BuiHoangTuan.131.I11C- Tổng số bài gửi : 44
Join date : 26/08/2011
Re: Thảo luận Bài 4
Khối kiểm soát tiến trình
Mỗi tiến trình được hiện diện trong hệ điều hành bởi một khối kiểm soát tiến trình (Process Control Block – PCB). Nó chứa nhiều phần thông tin được gắn liền với một tiến trình xác định gồm:
- Trạng thái tiến 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…
+ Mới (New) – Tiến trình vừa được tạo lập.
+Đang chạy (Running) – Các lệnh đang thực hiện.
+ Đang chờ (Waiting) – Tiến trình chờ một sự kiện, phải xảy ra (kết thúc I/O, tín hiệu từ tiến trình khác..).
+ Sẵn sàng (Ready) – Tiến trình chờ để được ấn định CPU.
+ Kết thúc (Terminated) – Tiến trình vừa thực hiện xong công việc.
- Bộ đếm chương trình (program conter) : Bộ đếm hiển thị địa chỉ của chỉ thị kế tiếp được thực thi cho tiến 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 (accumulors), các thanh ghi chỉ mục, các con trỏ ngăn xếp, và các thanh ghi đa năng(general – purpose register), 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 lưu một khi ngắt xảy ra, cho phép tiến trình được tiếp tục một cách phù hợp sau đó
- Thông tin lịch biểu CPU (CPU –scheduling information): thông tin gồm độ ưu tiên của tiến trình, các con trỏ chỉ tới các hàng đợi lịch biểu, và bất kỳ tham số lập lịch biểu khác.
- Thông tin quản lý bộ nhớ (Memory –management information) : thông tin này 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ản 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 được dùng, công việc hay số tiến 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 tến 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ừ tiến trình này tới tiến trình khác.
Lược đồ khối kiểm soát tiến trình
Mỗi tiến trình được hiện diện trong hệ điều hành bởi một khối kiểm soát tiến trình (Process Control Block – PCB). Nó chứa nhiều phần thông tin được gắn liền với một tiến trình xác định gồm:
Lược đồ hiển thị việc chuyển CPU từ tiến trình này sang tiến trình khác
- Trạng thái tiến 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…
+ Mới (New) – Tiến trình vừa được tạo lập.
+Đang chạy (Running) – Các lệnh đang thực hiện.
+ Đang chờ (Waiting) – Tiến trình chờ một sự kiện, phải xảy ra (kết thúc I/O, tín hiệu từ tiến trình khác..).
+ Sẵn sàng (Ready) – Tiến trình chờ để được ấn định CPU.
+ Kết thúc (Terminated) – Tiến trình vừa thực hiện xong công việc.
- Bộ đếm chương trình (program conter) : Bộ đếm hiển thị địa chỉ của chỉ thị kế tiếp được thực thi cho tiến 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 (accumulors), các thanh ghi chỉ mục, các con trỏ ngăn xếp, và các thanh ghi đa năng(general – purpose register), 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 lưu một khi ngắt xảy ra, cho phép tiến trình được tiếp tục một cách phù hợp sau đó
- Thông tin lịch biểu CPU (CPU –scheduling information): thông tin gồm độ ưu tiên của tiến trình, các con trỏ chỉ tới các hàng đợi lịch biểu, và bất kỳ tham số lập lịch biểu khác.
- Thông tin quản lý bộ nhớ (Memory –management information) : thông tin này 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ản 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 được dùng, công việc hay số tiến 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 tến 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ừ tiến trình này tới tiến trình khác.
NguyenTienPhong083 (I11C)- Tổng số bài gửi : 37
Join date : 26/08/2011
Age : 36
Re: Thảo luận Bài 4
Chao ban,chauchanduong (I11C) đã viết:Visual C++ 6.0, MFC 6.0, ra đời vào tháng 6 năm 1998, cải thiện thêm cho Visual Studio 97, đã và đang được sử dụng rộng rãi cho các project lớn và nhỏ.
- Theo em nghĩ :
+Đây là một môi trường lập trình đa năng:gồm các ngôn ngử C/C++,VB.
+Visual Stdio 6.0 là phần mềm cơ bản và căn bản nhất để lập trình.
+Visual Stdio 60 mạnh về ngôn ngữ lập trình VB (Visual Basic).
+Là môi trường lập trình trên hệ điều hành Windows.
- Về DOT NET hiện nay thì phát triển dựa trên nền tảng của Visual Stdio 6.0 để phát triển lên và thêm vào đó các ngôn ngữ như là CSharp (C#), JSharp (J#), ASP.Net, v.v...
-Anh , Chị và các bạn có ý kiến khác xin góp ý thêm nhé!.....
Theo mình theo ý của thầy nói thì đúng là ngôn ngữ nào cũng có điểm mạnh của nó, túy theo yêu cầu thực tế: Ví dụ như hệ thống máy móc trong 1 công ty đó chỉ đáp ứng chạy được ứng dụng viết bằng VB6.0 vì nếu viết bằng .NET sẽ phại thay lại toàn bộ thiết bị phần cứng máy móc sẽ rất tốn kém vì .NET đòi hỏi cấu hình cao hơn
Theo mình thì cũng có thể là hệ thống trước đó được viết bằng VB6.0 hiện tại nó chạy vẫn ổn định và vẫn đáp ứng được nhu cầu sàn xuất của cty nên không cần chuyển đổi công nghệ vì như vậy sẽ rất tốn kém.
Theo mình thì điều quan trọng là yêu cầu của khách hàng, họ thích gì mình viết cái đó, miễn là đáp ứng được nhu cầu của họ là được
Trang 12 trong tổng số 13 trang • 1, 2, 3 ... , 11, 12, 13
Trang 12 trong tổng số 13 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết