Tin học
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

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 3 trong tổng số 13 trang Previous  1, 2, 3, 4 ... 11, 12, 13  Next

Go down

Thảo luận Bài 4 - Page 3 Empty Phân loại hốc liên lạc (Two types of Sockets)?

Bài gửi  LeTanDat (I11C) 16/9/2011, 13:00

- Có kết nối (TCP): Thiết lập sẵn mối liên kết giữa hai máy trước khi truyền. Trao đổi dữ liệu an toàn giữa hai đầu, dữ liệu nào gửi trước tới trước đảm bào tính trật tự.
VD: Khi đi qua sông thì phải nối sợi dây cáp từ bờ bên này tới bờ bên kia, rồi men theo sợi dây cáp để đi qua.
- Không kết nối (UDP):Không phải thiết lập sẵn mối liên kết trước khi truyền, do đó dễ dàng liên lạc với nhiều máy cùng một lúc. Nhưng không đảm bảo bằng TCP. Không gắn hai đầu chặt chẽ với nhau, không theo trật tự gửi tin.
VD: Khi qua sông nhưng không đi theo sợi dây cáp có sẵn mà tự do đi qua sông.
Tuy nhiên, TCP và UDP là như nhau, bình đẳng, không có cái nào hơn hẳn cái nào

LeTanDat (I11C)

Tổng số bài gửi : 24
Join date : 30/08/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Re: Thảo luận Bài 4

Bài gửi  DoThuyTien16 (I11C) 16/9/2011, 13:35

DaoQuangSieu (I11C) đã viết:
NguyenHuuHung(I11C) đã viết:Ta lấy ví dụ một người bán trà đá:
Người bán trà đá sẽ đóng vai trò là người sản xuất.
Người mua trà đá và uống sẽ là người tiêu thụ.
Những ly trà đá sẽ đóng vai trò là sản phẩm.
Hệ thống tiến trình như sau:
Người bán trà đá sẽ pha trà và rót ra từng ly để bán. Các vị khách (người mua trà đá) sẽ mua từng ly trà và lần lượt hoặc cùng nhau uống trà. Như vậy, cứ người mua uống hết ly trà thứ nhất người bán trà lạ rót trà vào ly bừa hết. Người khách thứ 2 uống ly trà thứ 2 xong, người bán lại rót trà vào ly thứ 2 để tiếp tục bán. Tiến trình này cứ xảy ra song song như vậy giữa các ly trà, người mua và người bán.
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ình có ví dụ như sau:
-Sinh viên đi xe buýt và trả tiền : Tiến trình
- Bác tài lái xe: Người sản xuất.
- Vé xe: Sản phẩm.
Khi sinh viên trả tiền và có vé,chuyến xe tiếp tục cùng các hành khách khác. Quá trình này diễn ra liên tục giữa hành khách và bác tài.

* Mình thì hiểu như thế, nếu sai các bạn góp ý dùm mình. Cám ơn mọi người.
flower flower flower flower flower flower flower flower

DoThuyTien16 (I11C)

Tổng số bài gửi : 15
Join date : 26/08/2011
Age : 35
Đến từ : Lâm Đồng

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Re: Thảo luận Bài 4

Bài gửi  Tranvancanh(I11C) 16/9/2011, 14:00

DoThuyTien16 (I11C) đã viết:
DaoQuangSieu (I11C) đã viết:
NguyenHuuHung(I11C) đã viết:Ta lấy ví dụ một người bán trà đá:
Người bán trà đá sẽ đóng vai trò là người sản xuất.
Người mua trà đá và uống sẽ là người tiêu thụ.
Những ly trà đá sẽ đóng vai trò là sản phẩm.
Hệ thống tiến trình như sau:
Người bán trà đá sẽ pha trà và rót ra từng ly để bán. Các vị khách (người mua trà đá) sẽ mua từng ly trà và lần lượt hoặc cùng nhau uống trà. Như vậy, cứ người mua uống hết ly trà thứ nhất người bán trà lạ rót trà vào ly bừa hết. Người khách thứ 2 uống ly trà thứ 2 xong, người bán lại rót trà vào ly thứ 2 để tiếp tục bán. Tiến trình này cứ xảy ra song song như vậy giữa các ly trà, người mua và người bán.
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ình có ví dụ như sau:
-Sinh viên đi xe buýt và trả tiền : Tiến trình
- Bác tài lái xe: Người sản xuất.
- Vé xe: Sản phẩm.
Khi sinh viên trả tiền và có vé,chuyến xe tiếp tục cùng các hành khách khác. Quá trình này diễn ra liên tục giữa hành khách và bác tài.

* Mình thì hiểu như thế, nếu sai các bạn góp ý dùm mình. Cám ơn mọi người.
flower flower flower flower flower flower flower flower
Mình đồng ý với quan điểm của bạn, thanks bạn về bài viết nhé.

Tranvancanh(I11C)

Tổng số bài gửi : 39
Join date : 16/09/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Tiến trình khác Chương trình như thế nào?

Bài gửi  phamdieptuan (I11C) 16/9/2011, 14:38

- Tiến trình(Process) là chươ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 giữa 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.


phamdieptuan (I11C)

Tổng số bài gửi : 21
Join date : 26/08/2011
Age : 36
Đến từ : Đồng Nai

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Trình Điều Phối

Bài gửi  lakhaiphat-i11c 16/9/2011, 14:53

Trình Điều Phối gồm có:
Đ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).

lakhaiphat-i11c

Tổng số bài gửi : 12
Join date : 25/08/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Hàm API

Bài gửi  phamdieptuan (I11C) 16/9/2011, 14:58

API là giao diện lập trình ứng dụng ( Application Programming Interface) Nó là 1 giao tiếp phần mềm được dùng bởi các ứng dụng khác nhau. Cũng giống như bàn phím là một thiết bị giao tiếp giữa người dùng và máy tính, API là 1 giao tiếp phần mếm chẳng hạn như giữa chương trình và hệ điều hành (HĐH). Bộ API của từng HĐH là khác nhau, làm cho các HĐH khác nhau và thường không tương thích với nhau. Ví dụ những phần mềm trên máy Macintosh không thể chạy được trên máy Windows bởi vì Macintosh và Windows có các API hòan tòan khác nhau.
Windows API quản lý mọi vấn đề làm ra Windows. Tuy nhiên nó đồng thời cũng cung cấp hầu hết các tính năng thông dụng (Open, Save As, Choose Font,…), các thiết lập HĐH, các sự kiện,… Các ứng dụng trên nền Windows dùng Windows API hầu như trong mỗi tác vụ. Thậm chí nếu bạn không dùng API trong khi lập trình thì ngôn ngữ lập trình cũng sẽ gọi các API trong chương trình được tạo ra để quản lý nhiều tác vụ khác nhau.
Hầu hết các hàm API được chứa trong các file DLL (Dynamic Link Library – thư viện liên kết động) chứa trong thư mục hệ thống của Windows. Các file DLL cho phép các chương trình bên ngòai dùng các hàm của chúng.

Bốn thư viện DLL chính của Windows :
KERNEL32 : Các hàm của HĐH
GDI32 : Các hàm giao tiếp thiết bị đồ họa
WINMM : Các hàm âm thanh, video
USER32 : Các hàm giao diện người dùng

Ví dụ:
GetWindowsDirectory -> KERNEL32.DLL
ShellExecute -> shell32.dll
ExitWindowsEx -> user32
GetModuleFileNameA -> kernel32.dll
ShowWindow -> user32
PlaySound -> winmm.dll

Các hàm API dùng tạo mới tiến trình và khởi động chương trình:
CreateProcess, CreateProcessWithLogon
WinExec
ShellExecute, ShellExecuteEx
CreateProcess, CreateProcessWithLogon
WinExec
ShellExecute, ShellExecuteEx
Các hàm API dùng để Gửi/Nhận thông điệp:
SendMessage: Gửi có chờ
PostMessage: Gửi không chờ
SendMessageTimeout: Gửi có chờ nhưng với thời hạn
WaitMessage: Chờ thông điệp
GetMessage: Nhận có chờ
PeekMessage: Nhận không chờ.




phamdieptuan (I11C)

Tổng số bài gửi : 21
Join date : 26/08/2011
Age : 36
Đến từ : Đồng Nai

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Điều phối theo vòng là gì ??? (Round Robin Scheduling - RRS).

Bài gửi  VanTanVu(I11c) 16/9/2011, 16:45

Round-robin (RR) là thuật toán lập chương trình (danh mục) cho các tiến trình trong hệ điều hành, được thiết kế đặc biệt cho hệ thống chia sẻ thời gian.
Tương tự như thuật giải FCFS (First-Come First-Served Scheduling) nhưng sự trưng dụng CPU được thêm vào để chuyển CPU giữa các tiến trình. Đơn vị thời gian nhỏ được gọi là định mức thời gian (time quantum) hay phần thời gian (time slice) được định nghĩa.
Định mức thời gian thường từ 10 đến 100 mili giây. Hàng đợi (ở trạng thái sẳn sàng) được xem như một hàng đợi vòng. Bộ định thời CPU di chuyển vòng quanh hàng đợi, cấp phát CPU tới mỗi tiến trình có khoảng thời gian tối đa bằng một định mức thời gian.
Để cài đặt RR, chúng ta quản lý hàng đợi sẳn sàng như một hàng đợi FIFO của các tiến trình. Các tiến trình mới được thêm vào đuôi hàng đợi. Bộ định thời CPU chọn tiến trình đầu tiên từ hàng đợi, đặt bộ đếm thời gian để ngắt sau 1 định mức thời gian và gởi tới tiến trình.
Sau đó, một trong hai trường hợp sẽ xảy ra. Tiến trình có 1 chu kỳ CPU ít hơn 1 định mức thời gian. Trong trường hợp này, tiến trình sẽ tự giải phóng. Sau đó, bộ định thời biểu sẽ xử lý tiến trình tiếp theo trong hàng đợi. Ngược lại, nếu chu kỳ CPU của tiến trình đang chạy dài hơn 1 định mức thời gian thì bộ đếm thời gian sẽ báo và gây ra một ngắt tới hệ điều hành. Chuyển đổi ngữ cảnh sẽ được thực thi và tiến trình được đặt trở lại tại đuôi của hàng đợi. Sau đó, bộ định thời biểu CPU sẽ chọn tiến trình tiếp theo trong hàng đợi.

VanTanVu(I11c)

Tổng số bài gửi : 13
Join date : 31/08/2011
Age : 36
Đến từ : TP.HCM

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Một số bài tập về Điều Phối các bạn tham khảo và tìm lời giai, tranh luận

Bài gửi  VanTanVu(I11c) 16/9/2011, 16:48

Bài 1. Xét tập các tiến trình sau (với thời gian yêu cầu CPU và độ ưu tiên kèm theo) :
https://2img.net/h/i18.photobucket.com/albums/b109/pieras/untitled-1.jpg
Giả sử các tiến trình cùng được đưa vào hệ thống tại thời điểm 0
a)Cho biết kết quả điều phối hoạt động của các tiến trình trên theo thuật toán FIFO; SJF; điều phối theo độ ưu tiên độc quyền (độ ưu tiên 1 > 2 > ...); và RR (quantum=2).
b)Cho biết thời gian lưu lại trong hệ thống (turnaround time) của từng tiến trình trong từng thuật toán điều phối ở câu a.
c)Cho biết thời gian chờ trong hệ thống (waiting time) của từng tiến trình trong từng thuật toán điều phối ở câu a.
d)Thuật toán điều phối nào trong các thuật toán ở câu a cho thời gian chờ trung bình là cực tiểu ?
Bài 2. Giả sử có các tiến trình sau trong hệ thống :
https://2img.net/h/i18.photobucket.com/albums/b109/pieras/untitled2.jpg
Sử dụng nguyên tắc điều phối độc quyền và các thông tin có được tại thời điểm ra quyết định để trả lời các câu hỏi sau đây :
a)Cho biết thời gian lưu lại trung bình trong hệ thống (turnaround time) của các tiến trình trong thuật toán điều phối FIFO.
b)Cho biết thời gian lưu lại trung bình trong hệ thống (turnaround time) của các tiến trình trong thuật toán điều phối SJF.
c)Thuật toán SJF dự định cải tiến sự thực hiện của hệ thống , nhưng lưu ý chúng ta phải chọn điều phối P1 tại thời điểm 0 vì không biết rằng sẽ có hai tiến trình ngắn hơn vào hệ thống sau đó . Thử tính thời gian lưu lại trung bình trong ệ thống nếu để CPU nhàn rỗi trong 1 đơn vị thời gian đầu tiên và sau đó sử dụng SJF để điều phối. Lưu ý P1 và P2 sẽ phải chờ trong suốt thời gian nhàn rỗi này, do vậy thời gian chờ của chúng tăng lên. Thuật toán điều phối này được biết đến như điều phối dựa trên thông tin về tương lai.
Bài 3. Phân biệt sự khác nhau trong cách tiếp cận để ưu tiên cho tiến trình ngắn trong các thuật toán điều phối sau :
a) FIFO.
b)RR
c)Điều phối với độ ưu tiên đa cấp
Bài 4. Cho biết hai ưu điểm chính của mô hình đa tiểu trình so với đa tiến trình. Mô tả một ứng dụng thích hợp vớ mô hình đa tiểu trình và một ứng dụng khác không thích hợp.
Bài 5. Mô tả các xử lý hệ điều hành phải thực hiện khi chuyển đổi ngữ cảnh giữa :

a)các tiến trình
b)các tiểu trình
Bài 6. Xác định thời lượng quantum q là một nhiệm vụ khó khăn. Giả sử chi phí trung bình cho một lần chuyển đổi ngữ cảnh là s, và thời gian trung bình một tiến trình hướng nhập xuất sử dụng CPU trước khi phát sinh một yêu cầu nhập xuất là t ( t>>s). Thảo luận các tác động đến sự thực hiện của hệ thống khi chọn q theo các quy tắc sau : a)q bất định
b)q lớn hơn 0 1 ít
c)q = s
d)s < q < t
e)q = t
f)q > t
Bài 7. Giả sử một hệ điều hành áp dụng giải thuật điều phối multilevel feedback với 5 mức ưu tiên (giảm dần). Thời lượng quantum dành cho hàng đợi cấp 1 là 0,5s. Mỗi hàng đợi cấp thấp hơn sẽ có thời lượng quantum dài gấp đôi hàng đợi ứng với mức ưu tiên cao hơn nó. Một tiến trình khi vào hệ thống sẽ được đưa vào hàng đợi mức cao nhất, và chuyển dần xuống các hàng đợi bên dưới sau mỗi lượt sử dụng CPU. Một tiến trình chỉ có thể bị thu hồi CPU khi đã sử dụng hết thời lượng quantum dành cho nó. Hệ thống có thể thực hiện các tác vụ xử lý theo lô hoặc tương tác, và mỗi tác vụ lại có thể hướng xử lý hay hướng nhập xuất. a)Giải thích tại sao hệ thống này hoạt động không hiệu quả ?
b)Cần phải thay đổi (tối thiểu) như thế nào để hệ thống điều phối các tác vụ với những bản chất khác biệt như thế tốt hơn ?


Trước tiên là phần lý thuyết của phần này nhé. Phần điều phối tiến trình chúng ta có 4 cách là FIFO , RR , SJF, và độ ưu tiên. Với những bài toán của điều phối tiến trình chúng ta sẽ phải tính một trong những thông số sau :


Thời gian xử lý,Thời gian xử lý trung bình
Thời gian đợi,Thời gian đợi trung bình
Thời gian lưu lại trong hệ thống

1.Điều phối FIFO
CPU được cấp phát cho tiến trình đầu tiên trong danh sách sẵn sàng có yêu cầu, là tiến trình được đưa vào hệ thống sớm nhất. Đây là thuật toán điều phối theo nguyên tắc độc quyền. Một khi CPU được cấp phát cho tiến trình, CPU chỉ được tiến trình tự nguyện giải phóng khi kết thúc xử lý hay khi có một yêu cầu nhập/xuất.
https://2img.net/h/i18.photobucket.com/albums/b109/pieras/fifo.jpg

*Thời gian xử lý : P1=24,P2=3,P3=3
* Thời gian xử lý trung bình : (24+3+3)/3=10
*Thời gian đợi : P1=0; P2=24-1 =23 ; P3 = 24+3-2 = 25
*Thời gian đợi trung bình: (0+23+25)/3 = 16
* Thời gian lưu lại trong hệ thống : P1=24 ; P2=3; P3=3
* Thời gian lưu lại trung bình : (24+3+3)/3 =10

2.Chiến lược điều phối xoay vòng :
Danh sách sẵn sàng được xử lý như một danh sách vòng, bộ điều phối lần lượt cấp phát cho từng tiến trình trong danh sách một khoảng thời gian sử dụng CPU gọi là quantum. Đây là một giải thuật điều phối không độc quyền : khi một tiến trình sử dụng CPU đến hết thời gian quantum dành cho nó, hệ điều hành thu hồi CPU và cấp cho tiến trình kế tiếp trong danh sách. Nếu tiến trình bị khóa hay kết thúc trước khi sử dụng hết thời gian quantum, hệ điều hành cũng lập tức cấp phát CPU cho tiến trình khác. Khi tiến trình tiêu thụ hết thời gian CPU dành cho nó mà chưa hoàn tất, tiến trình được đưa trở lại vào cuối danh sách sẵn sàng để đợi được cấp CPU trong lượt kế tiếp.
https://2img.net/h/i18.photobucket.com/albums/b109/pieras/rr.jpg



*Thời gian xử lý : P1=24,P2=3,P3=3
* Thời gian xử lý trung bình : (24+3+3)/3=10
*Thời gian đợi :
P1=0
P2=4-1=3
P3=4+3-2=5
P1'=4+3+3-3=6
đến lúc này p1 sẽ được xử lý liên tục nên không phải tính thời gian chờ của p1'' p1'''...
*Thời gian đợi trung bình: (0+3+5+6)/3=4.66
* Thời gian lưu lại trong hệ thống :
P1: vòng 1 =4 vòng 2=20 khoảng cách 2 vòng là 6 => thời gian lưu lại của P1 =4+20+6 =30
P2=3
P3=3
* Thời gian lưu lại trung bình : (30+3+3)/3=12

VanTanVu(I11c)

Tổng số bài gửi : 13
Join date : 31/08/2011
Age : 36
Đến từ : TP.HCM

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Phân biệt Job Queue ( hàng chờ công việc) và Ready Queue (hàng chờ sẵn sàng)

Bài gửi  TruongThiThuyPhi(I11C) 16/9/2011, 17:40

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:- Đề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.

TruongThiThuyPhi(I11C)

Tổng số bài gửi : 17
Join date : 26/08/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Khối quản lí tiến trình

Bài gửi  TruongThiThuyPhi(I11C) 16/9/2011, 17:41

Một khối điều khiển tiến trình (Process Control Block - PCB) là một cấu trúc dữ liệu trong nhân hệ điều hành chứa thông tin cần thiết để quản lý một tiến trình nhất định.
Tuỳ thuộc vào cài đặt nhưng nói chung PCB trực tiếp hoặc gián tiếp chứa những thông tin như sau:
• Định danh của tiến trình (process identifier hay PID)
• Giá trị các thanh ghi của tiến trình, trong đó đáng chú ý là con trỏ chương trình và con trỏ stack
• Không gian địa chỉ của tiến trình
• Độ ưu tiên (trong đó tiến trình có giá trị cao hơn được ưu tiên trước, ví dụ nice trong các hệ điều hành Unix)
• Thông tin kế toán tiến trình, ví dụ như thời điểm thực thi gần nhất, bao nhiêu thời gian CPU đã sử dụng...
• Con trỏ tới PCB tiếp theo, nghĩa là con trỏ tới tiến trình tiếp theo được chạy
• Thông tin V/R (ví dụ các thiết bị V/R được cấp phát cho tiến trình, danh sách các tệp đang mở...)
Khi chuyển ngữ cảnh, tiến trình đang thực hiện bị dừng lại và một tiến trình khác có cơ hội thực hiện. Nhân dừng việc thực hiện của tiến trình, sao chép các giá trị trong thanh ghi vào PCB và cập nhật thanh ghi với các giá trị của PCB của tiến trình mới.
Vị trí của PCB
Vì PCB chứa những thông tin tối quan trọng đối với tiến trình, nó phải được giữ trong một vùng bộ nhớ được bảo vệ. Trong một số hệ điều hành,, PCB được đặt ở đầu của ngăn xếp nhân của tiến trình

TruongThiThuyPhi(I11C)

Tổng số bài gửi : 17
Join date : 26/08/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Re: Thảo luận Bài 4

Bài gửi  namzhou(I11C) 16/9/2011, 17:43


- Ta lấy ví dụ một người bán trà đá:
Người bán trà đá sẽ đóng vai trò là người sản xuất.
Người mua trà đá và uống sẽ là người tiêu thụ.
Những ly trà đá sẽ đóng vai trò là sản phẩm.
Hệ thống tiến trình như sau:
Người bán trà đá sẽ pha trà và rót ra từng ly để bán. Các vị khách (người mua trà đá) sẽ mua từng ly trà và lần lượt hoặc cùng nhau uống trà. Như vậy, cứ người mua uống hết ly trà thứ nhất người bán trà lạ rót trà vào ly bừa hết. Người khách thứ 2 uống ly trà thứ 2 xong, người bán lại rót trà vào ly thứ 2 để tiếp tục bán. Tiến trình này cứ xảy ra song song như vậy giữa các ly trà, người mua và người bán.

- 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ình có ví dụ như sau:
-Sinh viên đi xe buýt và trả tiền : Tiến trình
- Bác tài lái xe: Người sản xuất.
- Vé xe: Sản phẩm.
Khi sinh viên trả tiền và có vé,chuyến xe tiếp tục cùng các hành khách khác. Quá trình này diễn ra liên tục giữa hành khách và bác tài.
* Mình thì hiểu như thế, nếu sai các bạn góp ý dùm mình. Cám ơn mọi người.
flower flower flower flower flower flower flower flower

Uhm! Mình xin thêm ví dụ vào cho phong phú hơn theo hiểu biết của mình thì:
Trong 1 buổi họp mặt có sân khấu ngoài
- Mỗi người là 1 tiến trình
- Ai lên sấu khấu hát hay biểu diễn (hiphop, breakdance j đó Cool ) là người sản xuất
- Những người ở dưới xem (vỗ tay, huýt gió, bis bis... ) thì là người tiêu thụ tiến trình đó
Ai có góp ý j thêm thì bổ sung nhé afro
namzhou(I11C)
namzhou(I11C)

Tổng số bài gửi : 61
Join date : 07/09/2011
Age : 36
Đến từ : Tp. Hồ Chí Minh

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Re: Thảo luận Bài 4

Bài gửi  TranThanhHoang(I91C) 16/9/2011, 17:48

nguyenthithuylinh (I11C) đã viết:* Phân biệt TCP với UDP
Giống nhau : đều là các giao thức mạng TCP/IP, đều có chức năng kết nối các máy lại với nhau, và có thể gửi dữ liệu cho nhau....
Khác nhau:
các header của TCP và UDP khác nhau ở kích thước (20 và 8 byte) nguyên nhân chủ yếu là do TCP phải hỗ trợ nhiều chức năng hữu ích hơn (như khả năng khôi phục lỗi). UDP dùng ít byte hơn cho phần header và yêu cầu xử lý từ host ít hơn.
TCP :
- Dùng cho mạng WAN
- Không cho phép mất gói tin
- Đảm bảo việc truyền dữ liệu
- Tốc độ truyền thấp hơn UDP
UDP:
- Dùng cho mạng LAN
- Cho phép mất dữ liệu
- Không đảm bảo.
- Tốc độ truyền cao, VolP truyền tốt qua UDP

Thanks bạn nhiều nhan,mình đã cố gắng nhớ cái này nhiều lắm nhưng quên quài.
lần này phải cố nhớ mới được.
Cảm ơn Thầy và các bạn

TranThanhHoang(I91C)

Tổng số bài gửi : 19
Join date : 25/08/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Khái niệm tiến trình là gì? Trình bày mô hình chuyển trạng thái của tiến trình.

Bài gửi  BuiHuuThanhLuan(I11C) 16/9/2011, 19:39

Khái niệm tiến trình: là chương trình được cung cấp trong bộ nhớ Ram và được sự quản lý của hệ điều hành.
Tiến trình hệ thống: là các tiến trình vận hành, quản lý tài nguyên của máy tính.
Tiến trình người dùng: là các tiến trình do người dùng cung cấp.

Mô hình chuyển trạng thái của tiến trình:

Thảo luận Bài 4 - Page 3 4e734312_623962f9_tientrinh_resize
Một tiến trình P được đưa vào hàng đợi Job queue. Sau khi được hệ điều hành cho phép( thông qua sợ tuyển của điều phối Long-term) sẽ vào hàng đợi ready queue. Tại đây tiến trình P chưa được cấp CPU mà phải đợi trong khoảng thời gian ngắn sau đó mới được cập CPU( điều phối Short-term).
Tiến trình P sẽ trạng thái Waiting khi có yêu câu Nhập/Xuất hoặc chờ sự kiện khác diễn ra, đây là nhập xuất có chờ. Tiến trình sẽ về trạng thái Ready khi đã nhập/xuất xong hoặc sự kiện đã diễn ra xong.
Tiến trình P sẽ từ trạng thái Running-> Ready khi bị ngắt, phần lớn quá trình ngắt này là ngắt thời gian.
Tiến trình P sẽ từ trạng thái Running->Terminated khi có lệnh kết thúc, hoặc return.


Được sửa bởi BuiHuuThanhLuan(I11C) ngày 23/9/2011, 22:25; sửa lần 1. (Reason for editing : Viết nhầm Short - term với Long - term)

BuiHuuThanhLuan(I11C)

Tổng số bài gửi : 30
Join date : 30/08/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Tại sao có P0 rồi có thêm P1??!

Bài gửi  VoMinhHoang (I11C) 16/9/2011, 22:22

Tranvancanh(I11C) đã viết:Thảo luận Bài 4 - Page 3 8b4f386582fd06b0be31ae53884f7af2_35217507.untitled
Trên mô hình trên sẽ có 3 tuyến thời gian làm việc:
- Tuyến bên trái thời gian làm việc của Po.
- Tuyến bên phải thời gian làm việc của p1.
- Tuyến ở giữa thời gian làm việc của HĐH.
Các bạn vào gop ý thêm mình nghe thầy giải thích nhanh quá nên chỉ hiểu và nhớ lại bao nhiêu. Các bạn góp ý thêm nhé

Có P0 rồi tạo thêm P1 nữa mục đích là để rút gắn thời gian
VoMinhHoang (I11C)
VoMinhHoang (I11C)

Tổng số bài gửi : 26
Join date : 08/09/2011
Age : 38
Đến từ : Tp Tan An - Long An

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty mục tiêu của điều phối tiến trình

Bài gửi  nguyenvulinh_i11c 16/9/2011, 22:31

lSự công bằng. lTính hiệu quả. lThời gian đáp ứng hợp lý. lThời gian lưu lại trong hệ thống. lThông lượng tối đa.

nguyenvulinh_i11c

Tổng số bài gửi : 24
Join date : 28/08/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty mình mới tìm thấy một tài liệu quản lý tiến trình Post cho các bạn cùng tham khảo và cho ý kiến với mình nha

Bài gửi  nguyenvulinh_i11c 16/9/2011, 22:37

QUẢN LÝ TIẾN TRÌNH

Trong bài này chúng ta sẽ tìm hiểu chức năng quản lý tiến trình của Hệ điều hành : làm thế nào để phân chia CPU cho các tiến trình ? Theo vết xử lý của tiến trình ? Và các thao tác trên tiến trình ?

I. TỔ CHỨC QUẢN LÝ TIẾN TRÌNH

I.1. Các 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 qúa 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 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ý.

Hình 2.2 Sơ đồ chuyển trạng thái giữa các tiến trình

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 blocked hay ready.

Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sau sự chuyển trạng thái có thể xảy ra trong các điều kiện sau :

Tiến trình mới tạo được đưa vào hệ thống

Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU

Tiến trình kết thúc

Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tác nhập/xuất.

Bộ điều phối chọn một tiến trình khác để cho xử lý .

Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.

I.2. Chế độ xử lý của tiến trình

Để đảm bảo hệ thống hoạt động đang đắ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.



Hình vẽ 2.3 Hai chế độ xử l�

I.3. Cấu trúc dữ liệu khối quản lý tiến trình

Hệ điều hành quản lý các tiến trình trong hệ thống thông qua khối quản lý tiến trình (process control block -PCB). PCB là một vùng nhớ lưu trữ các thông tin mô tả cho tiến trình, với các thành phần chủ yếu bao gồm :

Đị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 CPU: bao gồm nội dung các thanh ghi, quan trọng nhất là con trỏ lệnh IP lưu trữ địa chỉ c�u lệnh kế tiếp tiến trình sẽ xử lý. Các thông tin này cần được lưu trữ khi xảy ra một ngắt, nhằm có thể cho phép phục hồi hoạt động của tiến trình đ�ng như trước khi bị ngắt.

Bộ xử lý: dùng cho máy có cấu hình nhiều CPU, xác định số hiệu CPU mà tiến trình đang sử dụng.

Bộ nhớ chính: danh sách các khối nhớ được cấp cho tiến trình.

Tài nguyên sử dụng: danh sách các tài mguyên hệ thống mà tiến trình đang sử dụng.

Tài nguyên tạo lập: danh sách các tài nguyên được tiến trình 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 tạo lập tiến trình này .

Tiến trình con: các tiến trình do tiến trình này tạo lập .

Độ ưu tiên : giúp bộ điều phối c� th�ng tin để lựa chọn tiến trình được cấp CPU.

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.



Hình vẽ 2.4 Khối m� tả tiến tr�nh

I.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

I.4.1. Tạo lập tiến trình

Trong quá trình xử lý, một tiến trình có thể tạo lập nhiều tiến trình mới bằng cách sử dụng một lời gọi hệ thống tương ứng. Tiến trình gọi lời gọi hệ thống để tạo tiến trình mới sẽ được gọi là tiến trình cha, tiến trình được tạo gọi là tiến trình con. Mỗi tiến trình con đến lượt nó lại có thể tạo các tiến trình mới�quá trình này tiếp tục sẽ tạo ra một cây tiến trình.



Hình vẽ2.5 Một c�y tiến tr�nh trong hệ thống UNIX

Các công việc hệ điều hành cần thực hiện khi tạo lập tiến trình bao gồm :

định danh cho tiến trình mới phát sinh

đưa tiến trình vào danh sách quản lý của hệ thống

xác định độ ưu tiên cho tiến trình

tạo PCB cho tiến trình

cấp phát các tài nguyên ban đầu cho tiến trình

Khi một tiến trình tạo lập một tiến trình con, tiến trình con có thể sẽ được hệ điều hành trực tiếp cấp phát tài nguyên hoặc được tiến trình cha cho thừa hưởng một số tài nguyên ban đầu.

Khi một tiến trình tạo tiến trình mới, tiến trình ban đầu c� thể xử l� theo một trong hai khả năng sau :

Tiến trình cha tiếp tục xử lý đồng hành với tiến trình con.

Tiến trình cha chờ đến khi một tiến trình con nào đ�, hoặc tất cả c�c tiến trình con kết thúc xử lý.

Các hệ điều hành khác nhau có thể chọn lựa các cài đặt kh�c nhau để thực hiện thao t�c tạo lập một tiến trình.

I.4.2. Kết thúc tiến trình

Một tiến trình kết thúc xử lý khi nó hoàn tất chỉ thị cuối cùng và sử dụng một lời gọi hệ thống để yêu cầu hệ điều hành hủy bỏ nó. Đ�i khi một tiến trình có thể yêu cầu hệ điều hành kết thúc xử lý của một tiến trình khác. Khi một tiến trình kết thúc, hệ điều hành thực hiện các công việc :

thu hồi các tài nguyên hệ thống đã cấp phát cho tiến trình

hủy tiến trình khỏi tất cả các danh sách quản lý của hệ thống

hủy bỏ PCB của tiến trình

Hầu hết các hệ điều hành không cho phép các tiến trình con tiếp tục tồn tại nếu tiến trình cha đã kết thúc. Trong những hệ thống như thế, hệ điều hành sẽ tự động ph�t sinh một loạt c�c thao t�c kết th�c tiến trình con.

I.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.



Hình 2.6 Khối quản lý tài nguyê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ẻ.



II. ĐIỀU PHỐI TIẾN TRÌNH

Trong môi trường đa chương, có thể xảy ra tình huống nhiều tiến trình đồng thời sẵn sàng để xử lý. Mục tiêu của các hệ phân chia thời gian (time-sharing) là chuyển đổi CPU qua lại giữa các tiến trình một cách thường xuyên để nhiều người sử dụng có thể tương tác cùng lúc với từng chương trình trong quá trình xử lý.

Để thực hiện được mục tiêu này, hệ điều hành phải lựa chọn tiến trình được xử lý tiếp theo. Bộ điều phối sẽ sử dụng một giải thuật điều phối thích hợp để thực hiện nhiệm vụ này. Một thành phần khác của hệ điều hành cũng tiềm ẩn trong công tác điều phối là bộ phân phối (dispatcher). Bộ phân phối sẽ chịu trách nhiệm chuyển đổi ngữ cảnh và trao CPU cho tiến trình được chọn bởi bộ điều phối để xử lý.

II.1. Giới thiệu

II.1.1. Mục tiêu điều phối

Bộ điều phối kh�ng cung cấp cơ chế, mà đưa ra các quyết định. Các hệ điều hành xây dựng nhiều chiến lược khác nhau để thực hiện việc điều phối, nhưng tựu chung cần đạt được các mục tiêu sau :

a) Sự công bằng ( Fairness) :

Các tiến trình chia sẻ CPU một cách công bằng, không có tiến trình nào phải chờ đợi v� hạn để được cấp phát CPU

b) Tính hiệu qủa (Efficiency) :

Hệ thống phải tận dụng được CPU 100% thời gian.

c) Thời gian đáp ứng hợp lý (Response time) :

Cực tiểu hoá thời gian hồi đáp cho các tương tác của người sử dụng

d) Thời gian lưu lại trong hệ thống ( Turnaround Time) :

Cực tiểu hóa thời gian hoàn tất các tác vụ xử lý theo lô.

e) Thông lượng tối đa (Throughput ) :

Cực đại hóa số công việc được xử lý trong một đơn vị thời gian.

Tuy nhiên thường không thể thỏa mãn tất cả các mục tiêu kể trên vì bản thân chúng có sự mâu thuẫn với nhau mà chỉ có thể dung hòa chúng ở mức độ nào đó.

II.1.2. Các đặc điểm của tiến trình

Điều phối hoạt động của các tiến trình là một vấn đề rất phức tạp, đòi hỏi hệ điều hành khi giải quyết phải xem xét nhiều yếu tố khác nhau để có thể đạt được những mục tiêu đề ra. Một số đặc tính của tiến trình cần được quan tâm như tiêu chuẩn điều phối :

a) Tính hướng xuất / nhập của tiến trình ( I/O-boundedness):

Khi một tiến trình nhận được CPU, chủ yếu nó chỉ sử dụng CPU đến khi phát sinh một yêu cầu nhập xuất ? Hoạt động của các tiến trình như thế thường bao gồm nhiều lượt sử dụng CPU , mỗi lượt trong một thời gian khá ngắn.

b) Tính hướng xử lý của tiến trình ( CPU-boundedness):

Khi một tiến trình nhận được CPU, nó có khuynh hướng sử dụng CPU đến khi hết thời gian dành cho nó ? Hoạt động của các tiến trình như thế thường bao gồm một số ít lượt sử dụng CPU , nhưng mỗi lượt trong một thời gian đủ dài.

c) Tiến trình tương tác hay xử lý theo lô :

Người sử dụng theo kiểu tương tác thường yêu cầu được hồi đáp tức thời đối với các yêu cầu của họ, trong khi các tiến trình của tác vụ được xử lý theo lô nói chung có thể trì hoãn trong một thời gian chấp nhận được.

d) Độ ưu tiên của tiến trình :

Các tiến trình có thể được phân cấp theo một số tiêu chuẩn đánh giá nào đó, một cách hợp lý, các tiến trình quan trọng hơn ( có độ ưu tiên cao hơn) cần được ưu tiên hơn.

e) Thời gian đã sử dụng CPU của tiến trình :

Một số quan điểm ưu tiên chọn những tiến trình đã sử dụng CPU nhiều thời gian nhất vì hy vọng chúng sẽ cần ít thời gian nhất để hoàn tất và rời khỏi hệ thống . Tuy nhiên cũng có quan điểm cho rằng các tiến trình nhận được CPU trong ít thời gian là những tiến trình đã phải chờ lâu nhất, do vậy ưu tiên chọn chúng.

f) Thời gian còn lại tiến trình cần để hoàn tất :

Có thể giảm thiểu thời gian chờ đợi trung bình của các tiến trình bằng cách cho các tiến trình cần ít thời gian nhất để hoàn tất được thực hiện trước. Tuy nhiên đáng tiếc là rất hiếm khi biết được tiến trình cần bao nhiêu thời gian nữa để kết thúc xử lý.

II.1.3. Điều phối không độc quyền và điều phối độc quyền (preemptive/nopreemptive)

Thuật toán điều phối cần xem xét và quyết định thời điểm chuyển đổi CPU giữa các tiến trình. Hệ điều hành có thể thực hiện cơ chế điều phối theo nguyên lý độc quyền hoặc không độc quyền.

Điều phối độc quyền : Nguyên lý điều phối độc quyền cho phép một tiến trình khi nhận được CPU sẽ có quyền độc chiếm CPU đến khi hoàn tất xử lý hoặc tự nguyện giải phóng CPU. Khi được quyết định điều phối CPU sẽ xảy ra trong các tình huống sau:

Khi tiến trình chuyển từ trạng thái đang xử lý(running) sang trạng thái bị khóa blocked ( ví dụ chờ một thao tác nhập xuất hay chờ một tiến trình con kết thúc).

Khi tiến trình kết thúc.

Các giải thuật độc quyền thường đơn giản và dễ cài đặt. Tuy nhiên chúng thường không thích hợp với các hệ thống tổng quát nhiều người dùng, vì nếu cho phép một tiến trình có quyền xử lý bao lâu tùy ý, có nghĩa là tiến trình này có thể giữ CPU một thời gian không xác định, có thể ngăn cản những tiến trình còn lại trong hệ thống có một cơ hội để xử lý.

Điều phối không độc quyền : Ngược với nguyên lý độc quyền, điều phối theo nguyên lý không độc quyền cho phép tạm dừng hoạt động của một tiến trình đang sẵn sàng xử lý. Khi một tiến trình nhận được CPU, nó vẫn được sử dụng CPU đến khi hoàn tất hoặc tự nguyện giải phóng CPU, nhưng một tiến trình khác có độ ưu tiên có thể dành quyền sử dụng CPU của tiến trình ban đầu. Như vậy là tiến trình có thể bị tạm dừng hoạt động bất cứ lúc nào mà không được báo trước, để tiến trình khác xử lý. Các quyết định điều phối xảy ra khi :

Khi tiến trình chuyển từ trạng thái đang xử lý (running) sang trạng thái bị khóa blocked ( ví dụ chờ một thao tác nhập xuất hay chờ một tiến trình con kết thúc).

Khi tiến trình chuyển từ trạng thái đang xử lý (running) sang trạng thái ready ( ví dụ xảy ra một ngắt).

Khi tiến trình chuyển từ trạng thái chờ (blocked) sang trạng thái ready ( ví dụ một thao tác nhập/xuất hoàn tất).

Khi tiến trình kết thúc.

Các thuật toán điều phối theo nguyên tắc không độc quyền ngăn cản được tình trạng một tiến trình độc chiếm CPU, nhưng việc tạm dừng một tiến trình có thể dẫn đến các mâu thuẫn trong truy xuất, đòi hỏi phải sử dụng một phương pháp đồng bộ hóa thích hợp để giải quyết.

Trong các hệ thống sử dụng nguyên lý điều phối độc quyền có thể xảy ra tình trạng các tác vụ cần thời gian xử lý ngắn phải chờ tác vụ xử lý với thời gian rất dài hoàn tất! Nguyên lý điều phối độc quyền thường chỉ thích hợp với các hệ xử lý theo lô.

Đối với các hệ thống tương tác(time sharing), các hệ thời gian thực (real time),cần phải sử dụng nguyên lý điều phối không độc quyền để các tiến trình quan trọng có cơ hội hồi đáp kịp thời. Tuy nhiên thực hiện điều phối theo nguyên lý không độc quyền đòi hỏi những cơ chế phức tạp trong việc phân định độ ưu tiên, và phát sinh thêm chi phí khi chuyển đổi CPU qua lại giữa các tiến trình.

II.2. Tổ chức điều phối

II.2.1. Các danh sách sử dụng trong quá trình điều phối.

Hệ điều hành sử dụng hai loại danh sách để thực hiện điều phối các tiến trình là danh sách sẵn sàng (ready list) và danh sách chờ đợi(waiting list).

Khi một tiến trình bắt đầu đi vào hệ thống, nó được chèn vào danh sách các tác vụ (job list). Danh sách này bao gồm tất cả các tiến trình của hệ thống. Nhưng chỉ các tiến trình đang thường trú trong bộ nhớ chính và ở trạng thái sẵn sàng tiếp nhận CPU để hoạt động mới được đưa vào danh sách sẵn sàng.

Bộ điều phối sẽ chọn một tiến trình trong danh sách sẵn sàng và cấp CPU cho tiến trình được. Tiến trình được cấp CPU sẽ thực hiện xử lý, và có thể chuyển sang trạng thái chờ khi xảy ra các sự kiện như đợi một thao tác nhập/xuất hoàn tất, yêu cầu tài nguyên chưa được thỏa mãn, được yêu cầu tạm dừng ...Khi được tiến trình sẽ được chuyển sang một danh sách chờ đợi.

Hệ điều hành chỉ sử dụng một danh sách sẵn sàng cho toàn hệ thống, nhưng mỗi một tài nguyên ( thiết bị ngoại vi ) có một danh sách chờ đợi riêng bao gồm các tiến trình đang chờ được cấp phát tài nguyên đó.



Hình 2.9 Các danh sách điều phối

Quá trình xử lý của một tiến trình trải qua những chu kỳ chuyển đổi qua lại giữa danh s�ch sẵn sàng và danh sách chờ đợi. Sơ đồ dưới đây mô tả sự điều phối các tiến trình dựa trên các danh sách của hệ thống.

Thoạt đầu tiến trình mới được đặt trong danh sách các tiến trình sẵn sàng (ready list), nó sẽ đợi trong danh sách này cho đến khi được chọn để cấp phát CPU và bắt đầu xử lý. Sau đó có thể xảy ra một trong các tình huống sau :

Tiến trình phát sinh một yêu cầu một tài nguyên mà hệ thống chưa thể đ�p ứng, khi đ� tiến trình sẽ được chuyển sang danh sách các tiến trình đang chờ tài nguyên tương ứng.

Tiến trình có thể bị bắt buộc tạm dừng xử lý do một ngắt xảy ra, khi đó tiến trình được đưa trở lại vào danh sách sẵn sàng để chờ được cấp CPU cho lượt tiếp theo.



Hình 2.10 Sơ đồ chuyển đổi giữa các danh sách điều phối

Trong trường hợp đầu tiên, tiến trình cuối cùng sẽ chuyển từ trạng thái blocked sang trạng thái ready và lại được đưa trở vào danh sách sẵn sàng. Tiến trình lặp lại chu kỳ này cho đến khi hoàn tất tác vụ thì được hệ thống hủy bỏ khỏi mọi danh sách điều phối.

II.2.2. Các cấp độ điều phối

Thực ra công việc điều phối được hệ điều hành thực hiện ở hai mức độ : điều phối t�c vụ (job scheduling) và điều phối tiến trình ( process scheduling).

a) Điều phối tác vụ

Quyết định lựa chọn tác vụ nào được đưa vào hệ thống, và nạp những tiến trình của tác vụ đó vào bộ nhớ chính để thực hiện. Chức năng điều phối tác vụ quyết định mức độ đa chương của hệ thống ( số lượng tiến trình trong bộ nhớ chính). Khi hệ thống tạo lập một tiến trình, hay có một tiến trình kết thúc xử lý thì chức năng điều phối tác vụ mới được kích hoạt. Vì mức độ đa chương tương đối ổn định nên chức năng điều phối tác vụ có tần suất hoạt động thấp .

Để hệ thống hoạt động tốt, bộ điều phối tác vụ cần biệt tính chất của tiến trình là hướng nhập xuất (I/O bounded) hay hướng xử lý ( CPU bounded). Một tiến trình được gọi là hướng nhập xuất nếu nó chủ yếu nó chỉ sử dụng CPU để thực hiện các thao tác nhập xuất. Ngược lại một tiến trình được gọi là hướng xử lý nếu nó chủ yếu nó chỉ sử dụng CPU để thực hiện các thao tác tính toán. Để cân bằng hoạt động của CPU và các thiết bị ngoại vi, bộ điều phối tác vụ nên lựa chọn các tiến trình để nạp vào bộ nhớ sao cho hệ thống là sự pha trộn hợp lý giữa các tiến trình hướng nhập xuất và các tiến trình hướng xử lý

b) Điều phối tiến trình

Chọn một tiến trình ở trạng thái sẵn sàng ( đã được nạp vào bộ nhớ chính, và có đủ tài nguyên để hoạt động ) và cấp phát CPU cho tiến trình được thực hiện. Bộ điều phối tiến trình có tần suất hoạt động cao, sau mỗi lần xảy ra ngắt ( do đồng hồ báo giờ, do các thiết bị ngoại vi...), thường là 1 lần trong khoảng 100ms. Do vậy để nâng cao hiệu suất của hệ thống, cần phải tăng tốc độ xử lý của bộ điều phối tiến trình. Chức năng điều phối tiến trình là một trong chức năng cơ bản, quan trọng nhất của hệ điều hành.

Trong nhiều hệ điều hành, có thể không có bộ điều phối tác vụ hoặc tách biệt rất ít đối với bộ điều phối tiến trình. Một vài hệ điều hành lại đưa ra một cấp độ điều phối trung gian kết hợp cả hai cấp độ điều phối tác vụ và tiến trình



Hình 2.11 Cấp độ điều phối trung gian



II.3. Các chiến lược điều phối

II.3.1. Chiến lược FIFO

Nguyên tắc : CPU được cấp phát cho tiến trình đầu tiên trong danh sách sẵn sàng có yêu cầu, là tiến trình được đưa vào hệ thống sớm nhất. Đ�y là thuật toán điều phối theo nguyên tắc độc quyền. Một khi CPU được cấp phát cho tiến trình, CPU chỉ được tiến trình tự nguyện giải phóng khi kết thúc xử lý hay khi có một yêu cầu nhập/xuất.

Hình 2.12 Điều phối FIFO
Ví dụ :

Tiến trình

Thời điểm vào RL

Thời gian xử lý
P1
0
24
P2
1
3
P3
2
3
Thứ tự cấp phát CPU cho các tiến trình là :
P1
P2

P3

0

�24

27 30

thời gian chờ đợi được xử lý là 0 đối với P1, (24 -1) với P2 và (24+3-2) với P3. Thời gian chờ trung bình là ( 0+23+25)/3 = 16 milisecondes.

Thảo luận : Thời gian chờ trung bình không đạt cực tiểu, và biến đổi đ�ng kể đối với c�c gi� trị về thời gian yêu cầu xử lý và thứ tự khác nhau của các tiến trình trong danh sách sẵn sàng. Có thể xảy ra hiện tượng tích lũy thời gian chờ, khi các tất cả các tiến trình (có thể có yêu cầu thời gian ngắn) phải chờ đợi một tiến trình có yêu cầu thời gian dài kết thúc xử lý.

Giải thuật này đặc biệt kh�ng phù hợp với các hệ phân chia thời gian, trong các hệ này, cần cho phép mỗi tiến trình được cấp phát CPU đều đặn trong từng khoảng thời gian.

II.3.2. Chiến lược phân phối xoay vòng (Round Robin)

Nguyên tắc : Danh sách sẵn sàng được xử lý như một danh sách vòng, bộ điều phối lần lượt cấp phát cho từng tiến trình trong danh sách một khoảng thời gian sử dụng CPU gọi là quantum. Đ�y là một giải thuật điều phối kh�ng độc quyền : khi một tiến trình sử dụng CPU đến hết thời gian quantum dành cho nó, hệ điều hành thu hồi CPU và cấp cho tiến trình kế tiếp trong danh sách. Nếu tiến trình bị khóa hay kết thúc trước khi sử dụng hết thời gian quantum, hệ điều hành cũng lập tức cấp phát CPU cho tiến trình khác. Khi tiến trình tiêu thụ hết thời gian CPU dành cho nó mà chưa hoàn tất, tiến trình được đưa trở lại vào cuối danh sách sẵn sàng để đợi được cấp CPU trong lượt kế tiếp.

Ví dụ :



Hình 2.13 Điều phối Round Robin

Tiến trình

Thời điểm vào RL

Thời gian xử lý

P1

0

24

P2

1

3

P3

2

3

Nếu sử dụng quantum là 4 milisecondes, thứ tự cấp phát CPU sẽ là :

P1

P2

P3

P1

P1

P1

P1

P1

0

�4

7

10

14

18

22

26 30

Thời gian chờ đợi trung bình sẽ là (0+6+3+5)/3 = 4.66 milisecondes.

Nếu có n tiến trìh trong danh sách sẵn sàng và sử dụng quantum q, thì mỗi tiến trình sẽ được cấp phát CPU 1/n trong từng khoảng thời gian q. Mỗi tiến trình sẽ không phải đợi qu� (n-1)q đơn vị thời gian trước khi nhận được CPU cho lượt kế tiếp.

Thảo luận : Vấn đề đ�ng quan t�m đối với giải thuật RR là độ dài của quantum. Nếu thời lượng quantum quá bé sẽ phát sinh quá nhiều sự chuyển đổi giữa c�c tiến trình và khiến cho việc sử dụng CPU kém hiệu qủa. Nhưng nếu sử dụng quantum quá lớn sẽ làm tăng thời gian hồi đ�p và giảm khả năng tương tác của hệ thống.

II.3.3. Điều phối với độ ưu tiên

Nguyên tắc : Mỗi tiến trình được gán cho một độ ưu tiên tương ứng, tiến trình có độ ưu tiên cao nhất sẽ được chọn để cấp ph�t CPU đầu tiên. Độ ưu tiên có thể được định nghĩa nội tại hay nhờ vào các yếu tố bên ngoài. Độ ưu tiên nội tại sử dụng các đại lượng có thể đo lường để t�nh to�n độ ưu tiên của tiến trình, ví dụ các giới hạn thời gian, nhu cầu bộ nhớ�Độ ưu tiên cũng có thể được gán từ bên ngoài dựa vào các tiêu chuẩn do hệ điều hành như tầm quan trọng của tiến trình, loại người sử dụng sỡ hữu tiến trình�

Giải thuật điều phối với độ ưu tiên có thể theo nguyên tắc độc quyền hay kh�ng độc quyền. Khi một tiến trình được đưa vào danh sách các tiến trình sẵn sàng, độ ưu tiên của nó được so sánh với độ ưu tiên của tiến trình hiện hành đang xử l�. Giải thuật điều phối với độ ưu tiên và không độc quyền sẽ thu hồi CPU từ tiến trình hiện hành để cấp ph�t cho tiến trình mới nếu độ ưu tiên của tiến trình này cao hơn tiến trình hiện hành. Một giải thuật độc quyền sẽ chỉ đơn giản chèn tiến trình mới vào danh sách sẵn sàng, và tiến trình hiện hành vẫn tiếp tục xử lý hết thời gian dành cho nó.

Ví dụ : (độ ưu tiên 1 > độ ưu tiên 2> độ ưu tiên 3)

Tiến trình

Thời điểm vào RL

Độ ưu tiên

Thời gian xử lý

P1

0

3

24

P2

1

1

3

P3

2

2

3

Sử dụng thuật giải độc quyền, thứ tự cấp ph�t CPU như sau :

P1

P2

P3

0

�24

27 30

Sử dụng thuật giải không độc quyền, thứ tự cấp ph�t CPU như sau :

P1

P2

P3

P1

0

�1

4

7 30

Thảo luận : Tình trạng �đ�i CPU� (starvation) là một vấn đề ch�nh yếu của c�c giải thuật sử dụng độ ưu tiên. Các giải thuật này có thể để c�c tiến trình có độ ưu tiên thấp chờ đọi CPU v� hạn ! Để ngăn cản c�c tiến trình có độ ưu tiên cao chiếm dụng CPU vô thời hạn, bộ điều phối sẽ giảm dần độ ưu tiên của các tiến trình này sau mỗi ngắt đồng hồ. Nếu độ ưu tiên của tiến trình này giảm xuống thấp hơn tiến trình có độ ưu tiên cao thứ nhì, sẽ xảy ra sự chuyển đổi quyền sử dụng CPU.Qu� trình này gọi là sự �lão hóa� (aging) tiến trình.

II.3.4. Chiến lược công việc ngắn nhất (Shortest-job-first SJF)

Nguyên tắc : Đ�y là một trường hợp đặc biệt của giải thuật điều phối với độ ưu tiên. Trong giải thuật này, độ ưu tiên p được gán cho mỗi tiến trình là nghịch đảo của thời gian xử l� t mà tiến trình yêu cầu : p = 1/t. Khi CPU được tự do, nó sẽ được cấp phát cho tiến trình yêu cầu ít thời gian nhất để kết th�c- tiến trình ngắn nhất. Giải thuật này cũng có thể độc quyền hay kh�ng độc quyền. Sự chọn lựa xảy ra khi c� một tiến trình mới được đưa vào danh sách sẵn sàng trong khi một tiến trình khác đang xử l�. Tiến trình mới có thể sỡ hữu một yêu cầu thời gian sử dụng CPU cho lần tiếp theo (CPU-burst) ngắn hơn thời gian còn lại mà tiến trình hiện hành cần xử lý. Giải thuật SJF không độc quyền sẽ dừng hoạt động của tiến trình hiện hành, trong khi giải thuật độc quyền sẽ cho ph�p tiến trình hiện hành tiếp tục xử lý.

Ví dụ :

Tiến trình

Thời điểm vào RL

Thời gian xử lý

P1

0

6

P2

1

8

P3

2

4

P4

3

2

Sử dụng thuật giải SJF độc quyền, thứ tự cấp ph�t CPU như sau:

P1

P4

P3

P2

0

6

8

12 20

Sử dụng thuật giải SJF không độc quyền, thứ tự cấp ph�t CPU như sau:

P1

P4

P1

P3

P2

0

3

5

8

12 20

Thảo luận : Giải thuật này cho phép đạt được thời gian chờ trung bình cực tiểu. Khó khăn thực sự của giải thuật SJF là không thể biết được thời gian yêu cầu xử lý còn lại của tiến trình ? Chỉ có thể dự đo�n gi� trị này theo cách tiếp cận sau : gọi tn là độ dài của thời gian xử lý lần thứ n, t n+1 là giá trị dự đo�n cho lần xử l� tiếp theo. Với hy vọng gi� trị dự đo�n sẽ gần giống với c�c gi� trị trước đ�, c� thể sử dụng c�ng thức:

t n+1 = a tn + (1-a )t n

Trong công thức này,tn chứa đựng th�ng tin gần nhất ; t n chứa đựng c�c th�ng tin qu� khứ được tích lũy. Tham số a ( 0 £ a £ 1) kiểm soát trọng số của hiện tại gần hay quá khứ ảnh hưởng đến c�ng thức dự đ�n.

II.3.5. Chiến lược điều phối với nhiều mức độ ưu tiên

Nguyên tắc : Ý tưởng chính của giải thuật là phân lớp các tiến trình tùy theo độ ưu tiên của chúng để c� c�ch thức điều phối th�ch hợp cho từng nh�m. Danh s�ch sẵn sàng được phân tách thành các danh sách riêng biệt theo cấp độ ưu tiên, mỗi danh sách bao gồm các tiến trình có cùng độ ưu tiên và được áp dụng một giải thuật điều phối th�ch hợp để điều phối. Ngoài ra, còn có một giải thuật điều phối giữa c�c nh�m, thường giải thuật này là giải thuật không độc quyền và sử dụng độ ưu tiên cố định.Một tiến trình thuộc về danh sách ở cấp ưu tiên i sẽ chỉ được cấp phát CPU khi các danh sách ở cấp ưu tiên lớn hơn i đã trống.



Hình 2.14 Điều phối nhiều cấp ưu tiên

Thảo luận : Thông thường, một tiến trình sẽ được gán vĩnh viễn với một danh sách ở cấp ưu tiên i khi nó được đưa vào hệ thống. Các tiến trình không di chuyển giữa các danh sách. Cách tổ chức này sẽ làm giảm chi phí điều phối, nhưng lại thiếu linh động và có thể dẫn đến tình trạng �đ�i CPU� cho c�c tiến trình thuộc về những danh sách có độ ưu tiên thấp. Do vậy có thể xây dựng giải thuật điều phối nhiều cấp ưu tiên và xoay vòng. Giải thuật này sẽ chuyển dần một tiến trình từ danh sách có độ ưu tiên cao xuống danh sách có độ ưu tiên thấp hơn sau mỗi lần sử dụng CPU. Cũng vậy, một tiến trình chờ quá lâu trong các danh sách có độ ưu tiên thấp cũng có thể được chuyển dần lên các danh sách có độ ưu tiên cao hơn. Khi xây dựng một giải thuật điều phối nhiều cấp ưu tiên và xoay vòng cần quyếtđịnh c�c tham số :

Số lượng các cấp ưu tiên

Giải thuật điều phối cho từng danh s�ch ứng với một cấp ưu tiên.

Phương pháp xác định thời điểm di chuyển một tiến trình lên danh sách có độ ưu tiên cao hơn.

Phương pháp xác định thời điểm di chuyển một tiến trình lên danh sách có độ ưu tiên thấp hơn.

Phương pháp sử dụng để x�c định một tiến trình mới được đưa vào hệ thống sẽ thuộc danh sách ứng với độ tiên nào.



Hình 2.15 Điều phối Multilevel Feedback

II.3.6. Chiến lược điều phối Xổ số (Lottery)

Nguyên tắc : Ý tưởng chính của giải thuật là phát hành một số vé số và phân phối cho các tiến trình trong hệ thống. Khi đến thời điểm ra quyết định điều phối, sẽ tiến hành chọn 1 vé "trúng giải", tiến trình nào sỡ hữu vé này sẽ được nhận CPU

Thảo luận : Giải thuật Lottery cung cấp một giải pháp đơn giản nhưng bảo đảm t�nh c�ng bằng cho thuật to�n điều phối với chi ph� thấp để cập nhật độ ưu tiên cho các tiến trình :

III. TÓM TẮT

Trong suốt chu trình sống, tiến trình chuyển đổi qua lại giữa c�c trạng th�i ready, running và blocked.

Bộ điều phối của hệ điều hành chịu trách nhiệm áp dụng một gỉai thuật điều phối th�ch hợp để chọn tiến trình thích hợp được sử dụng CPU, và bộ phân phối sẽ chuyển giao CPU cho tiến trình này.

Các giải thuật điều phối th�ng dụng : FIFO, RoundRobin, điều phối với độ ưu tiên, SJF, Multilevel Feedback

C�u hỏi cũng cố b�i học

Các câu hỏi cần trả lời được sau bài học này :

1. Thông tin lưu trữ trong PCB và TCB ?

2. Tổ chức điều phối tiến trình ?

3. Phân tích ưu, khuyết của các chiến lược điều phối

B�i tập

B�i 1. Xét tập các tiến trình sau (với thời gian yêu cầu CPU và độ ưu tiên kèm theo) :

Tiến trình

Thời điểm vào RL

Thời gian CPU

Độ ưu tiên

P1

0

10

3

P2

1

1

1

P3

2

2

3

P4

3

1

4

P5

4

5

2

Giả sử các tiến trình cùng được đưa vào hệ thống tại thời điểm 0

a)Cho biết kết quả điều phối hoạt động của c�c tiến trình trên theo thuật toán FIFO; SJF; điều phối theo độ ưu tiên độc quyền (độ ưu tiên 1 > 2 > ...); và RR (quantum=2).

b)Cho biết thời gian lưu lại trong hệ thống (turnaround time) của từng tiến trình trong từng thuật toán điều phối ở c�u a.

c)Cho biết thời gian chờ trong hệ thống (waiting time) của từng tiến trình trong từng thuật toán điều phối ở c�u a.

d)Thuật toán điều phối nào trong các thuật toán ở câu a cho thời gian chờ trung bình là cực tiểu ?

B�i 2. Giả sử có các tiến trình sau trong hệ thống :

Tiến trình

Thời điểm vào RL

Thời gian CPU

P1

0.0

8

P2

0.4

4

P3

1.0

1

Sử dụng nguyên tắc điều phối độc quyền và các thông tin có được tại thời điểm ra quyết định để trả lời c�c c�u hỏi sau đ�y :

a)Cho biết thời gian lưu lại trung bình trong hệ thống (turnaround time) của các tiến trình trong thuật toán điều phối FIFO.

b)Cho biết thời gian lưu lại trung bình trong hệ thống (turnaround time) của các tiến trình trong thuật toán điều phối SJF.

c)Thuật toán SJF dự định cải tiến sự thực hiện của hệ thống , nhưng lưu ý chúng ta phải chọn điều phối P1 tại thời điểm 0 vì không biết rằng sẽ có hai tiến trình ngắn hơn vào hệ thống sau đ� . Thử t�nh thời gian lưu lại trung bình trong ệ thống nếu để CPU nhàn rỗi trong 1 đơn vị thời gian đầu tiên và sau đ� sử dụng SJF để điều phối. Lưu ý P1 và P2 sẽ phải chờ trong suốt thời gian nhàn rỗi này, do vậy thời gian chờ của chúng tăng lên. Thuật toán điều phối này được biết đến như điều phối dựa trên thông tin về tương lai.

B�i 3. Phân biệt sự khác nhau trong cách tiếp cận để ưu tiên cho tiến trình ngắn trong các thuật toán điều phối sau :

a) FIFO.

b)RR

c)Điều phối với độ ưu tiên đa cấp

B�i 4. Cho biết hai ưu điểm ch�nh của m� hình đa tiểu trình so với đa tiến trình. Mô tả một ứng dụng thích hợp vớ mô hình đa tiểu trình và một ứng dụng khác không thích hợp.

B�i 5. Mô tả các xử lý hệ điều hành phải thực hiện khi chuyển đổi ngữ cảnh giữa :

a)các tiến trình

b)các tiểu trình

B�i 6. Xác định thời lượng quantum q là một nhiệm vụ khó khăn. Giả sử chi ph� trung bình cho một lần chuyển đổi ngữ cảnh là s, và thời gian trung bình một tiến trình hướng nhập xuất sử dụng CPU trước khi phát sinh một yêu cầu nhập xuất là t ( t>>s). Thảo luận các tác động đến sự thực hiện của hệ thống khi chọn q theo các quy tắc sau :

a)q bất định

b)q lớn hơn 0 1 ít

c)q = s

d)s < q < t

e)q = t

f)q > t

B�i 7. Giả sử một hệ điều hành áp dụng giải thuật điều phối multilevel feedback với 5 mức ưu tiên (giảm dần). Thời lượng quantum dành cho hàng đợi cấp 1 là 0,5s. Mỗi hàng đợi cấp thấp hơn sẽ có thời lượng quantum dài gấp đ�i hàng đợi ứng với mức ưu tiên cao hơn nó. Một tiến trình khi vào hệ thống sẽ được đưa vào hàng đợi mức cao nhất, và chuyển dần xuống các hàng đợi bên dưới sau mỗi lượt sử dụng CPU. Một tiến trình chỉ có thể bị thu hồi CPU khi đã sử dụng hết thời lượng quantum dành cho nó. Hệ thống có thể thực hiện các tác vụ xử lý theo lô hoặc tương tác, và mỗi tác vụ lại có thể hướng xử lý hay hướng nhập xuất.

a)Giải thích tại sao hệ thống này hoạt động kh�ng hiệu quả ?

b)Cần phải thay đổi (tối thiểu) như thế nào để hệ thống điều phối c�c t�c vụ với những bản chất kh�c biệt như thế tốt hơn ?


Được sửa bởi nguyenvulinh_i11c ngày 16/9/2011, 17:17; sửa lần 3. (Reason for editing : từ đường dẫ:http://www.uit.edu.vn/data/gtrinh/TH106/Htm/Bai03.htm)

nguyenvulinh_i11c

Tổng số bài gửi : 24
Join date : 28/08/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty UDP có thể dùng cho mạng LAN, WAN và INTERNET

Bài gửi  NguyThiGai (I11C) 17/9/2011, 01:04

nguyenthithuylinh (I11C) đã viết:* Phân biệt TCP với UDP
Giống nhau : đều là các giao thức mạng TCP/IP, đều có chức năng kết nối các máy lại với nhau, và có thể gửi dữ liệu cho nhau....
Khác nhau:
các header của TCP và UDP khác nhau ở kích thước (20 và 8 byte) nguyên nhân chủ yếu là do TCP phải hỗ trợ nhiều chức năng hữu ích hơn (như khả năng khôi phục lỗi). UDP dùng ít byte hơn cho phần header và yêu cầu xử lý từ host ít hơn.
TCP :
- Dùng cho mạng WAN
- Không cho phép mất gói tin
- Đảm bảo việc truyền dữ liệu
- Tốc độ truyền thấp hơn UDP
UDP:
- Dùng cho mạng LAN
- Cho phép mất dữ liệu
- Không đảm bảo.
- Tốc độ truyền cao, VolP truyền tốt qua UDP
Mình xin bổ sung sự khác nhau giữa TCP và UDP
TCP:
-Truyền dữ liệu tuần tự (tái sắp xếp bất kỳ dữ liệu nào nhận sai thứ tự)
-Kiểm soát dòng (dùng các cửa sổ trượt để kiểm tra các cửa sổ của máy gửi)
-Quá trình truyền dữ liệu thực hiện kết nối bắt tay 3 bước để thiết lập quá trình khởi động cổng.
UDP:
-Truyền dữ liệu không tuần tự
-Không kiểm soát dòng
-Không thực hiện quá trình bắt tay 3 bước khi gửi và nhận thông tin

Không biết mình có nhớ nhằm không. Nhưng theo mình biết thì cả 2 giao thức TCP và UDP điều dùng được cho mạng LAN, WAN và INTERNET. Khi học mình có thực hành VoIP và dùng wireshark bắt gói tin TCP, UDP qua mạng LAN, WAN.

Rất mong Thầy và các bạn góp ý giúp!!!

NguyThiGai (I11C)

Tổng số bài gửi : 28
Join date : 26/08/2011
Age : 36

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Re: Thảo luận Bài 4

Bài gửi  Tranvancanh(I11C) 17/9/2011, 09:02

NguyThiGai (I11C) đã viết:
nguyenthithuylinh (I11C) đã viết:* Phân biệt TCP với UDP
Giống nhau : đều là các giao thức mạng TCP/IP, đều có chức năng kết nối các máy lại với nhau, và có thể gửi dữ liệu cho nhau....
Khác nhau:
các header của TCP và UDP khác nhau ở kích thước (20 và 8 byte) nguyên nhân chủ yếu là do TCP phải hỗ trợ nhiều chức năng hữu ích hơn (như khả năng khôi phục lỗi). UDP dùng ít byte hơn cho phần header và yêu cầu xử lý từ host ít hơn.
TCP :
- Dùng cho mạng WAN
- Không cho phép mất gói tin
- Đảm bảo việc truyền dữ liệu
- Tốc độ truyền thấp hơn UDP
UDP:
- Dùng cho mạng LAN
- Cho phép mất dữ liệu
- Không đảm bảo.
- Tốc độ truyền cao, VolP truyền tốt qua UDP
Mình xin bổ sung sự khác nhau giữa TCP và UDP
TCP:
-Truyền dữ liệu tuần tự (tái sắp xếp bất kỳ dữ liệu nào nhận sai thứ tự)
-Kiểm soát dòng (dùng các cửa sổ trượt để kiểm tra các cửa sổ của máy gửi)
-Quá trình truyền dữ liệu thực hiện kết nối bắt tay 3 bước để thiết lập quá trình khởi động cổng.
UDP:
-Truyền dữ liệu không tuần tự
-Không kiểm soát dòng
-Không thực hiện quá trình bắt tay 3 bước khi gửi và nhận thông tin

Không biết mình có nhớ nhằm không. Nhưng theo mình biết thì cả 2 giao thức TCP và UDP điều dùng được cho mạng LAN, WAN và INTERNET. Khi học mình có thực hành VoIP và dùng wireshark bắt gói tin TCP, UDP qua mạng LAN, WAN.

Rất mong Thầy và các bạn góp ý giúp!!!
Mình xin góp ý thêm:
UDP:
- Thường dùng cho mạng ngang hàng hoặc 2 máy ngang hàng trong cùng mạng (Pear A to peer B).
- Tốc độ gửi dữ liệu nhanh, nhưng không an toàn và không theo thứ tự.
- Không có phản hồi từ máy nhận.
TCP:
- Thường áp dụng cho mô hình Server/Client.
- Tính chính xác và độ bảo mật cao.
- Có phản hồi từ máy chủ.

Tranvancanh(I11C)

Tổng số bài gửi : 39
Join date : 16/09/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty RE:TRÌNH ĐIỀU PHỐI CHẬM VÀ TRÌNH ĐIỀU PHỐI NHANH

Bài gửi  LaVanKhuong (I11C) 17/9/2011, 09:46

-Điều phối chậm(long –term queue) chọn 1 tiến trình từ job queue đưa sang qua Ready queue(chuyển từ New sang Ready). Scheduler lựa chọn kỹ các tiến trình nhằm phối hợp cân bằng giữa hai loại tiến trình
+ hướng CPU(CPU-BOUND) tính toán nhiều , ít I/O.
+ hướng I/O(I/O BOUND) tính toán ít , nhiều I/O.
Mục đích nhằm cân bằng tải giữa hai tiến trình..
Vd: trong một lần khám sức khỏe của lớp học người lớp trưởng gọi danh sach các bạn được khám (điều phối chậm ) đang trong job queue , giả sử là 5 bạn được chọn để đưa vào Ready queue sau đó mới gọi liên tục 1 trong 5 bạn này vào phòng khám (trình điều phối nhanh).
-Điều phối nhanh (Short-term scheduler):Chọn tiến trình sẽ chiếm CPU để xử lý( chuyển từ trạng thái Ready sang trạng thái Runing).
Vd: các đã được chọn mời vào phòng khám thì họ đã biết công việc của mình là phải làm gi .


LaVanKhuong (I11C)

Tổng số bài gửi : 15
Join date : 26/08/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Re: Thảo luận Bài 4

Bài gửi  HoiHoangHongVu I11C 17/9/2011, 10:12

NguyenHuuHung(I11C) đã viết: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, ....
Bài viết và ví dụ của bạn rất hay và thực tế , thanks bạn

HoiHoangHongVu I11C

Tổng số bài gửi : 37
Join date : 26/08/2011
Đến từ : Biên Hòa - Đồng Nai

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Phân biệt 3 loại hàng chờ điều phối.

Bài gửi  luuphuvinh1985 17/9/2011, 10:42

1) Hàng chờ công việc (Job Queue): Danh sách các tiến trình ở trạng thái New.
2) Hàng chờ sẵn sàng (Ready Queue): Danh sách các tiến trình ở trạng thái Ready.
3) Hàng chờ thiết bị (Device Queue): Danh sách các tiến trình chờ thiết bị Nhập/Xuất cụ thể.

luuphuvinh1985

Tổng số bài gửi : 7
Join date : 01/09/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Lý do cộng tác giữa các tiến trình

Bài gửi  DoThiNgocNuong (I11C) 17/9/2011, 11:41

- Information Sharing: Chia sẻ thông tin ( một tiến trình sử dụng thông tin do tiến trình kahsc cung cấp)
- Computation Speedup: Tăng tốc tính toán( các tiến trình cùng làm việc song song trên nhiều máy để cùng giải quyết 1 vấn đề)
- Modularity: đảm báo tính đơn thể ( các 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).
- Convenience: đảm bảo tính tiện dụng ( Người soạn có nhu cầu làm việc cùng một lúc).




DoThiNgocNuong (I11C)

Tổng số bài gửi : 17
Join date : 27/08/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Giải thích tính đơn thể??

Bài gửi  DoThiNgocNuong (I11C) 17/9/2011, 11:42

Bạn nào có thể phân tích kỹ hơn về tính đơn thể, post cho mình và các bạn tham khảo với nha! Smile

DoThiNgocNuong (I11C)

Tổng số bài gửi : 17
Join date : 27/08/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty tác dụng của khối kiểm soát tiến trình(PCB)

Bài gửi  buithithudung24 (i11c) 17/9/2011, 14:09

PCB có tác dụng lưu lại trạng thái của tiến trình tại thời điểm đang xét(thường xảy ra khi luân chuyển CPU) . Trạng thái của tiến trình này bao gồm : Các địa chỉ liên kết của tiến trình và dữ liệu, số hiệu tiến trình, bộ đếm lệnh, nội dung các thanh ghi, giới hạn bộ nhớ của tiến trình, danh sách các file đang mở, các thông tin về thời gian thống kê về tiến trình hiện tại....

buithithudung24 (i11c)

Tổng số bài gửi : 15
Join date : 25/08/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Bài Toán Sản Xuất và tiêu thụ

Bài gửi  DuongKimLong(I111C) 17/9/2011, 17:52


Sản xuất chuyên tạo sản phẩm mới và để vào kho chứa.
*Tiêu thụ chuyên lấy sản phẩm từ kho chứa ra để sử dụng.

Bài toán Sản xuất -Tiêu thụ trên có 2 vấn đề cần giải quyết :
*Làm sao để phần tử Sản xuất và Tiêu thụ không được tranh chấp nhau khi truy xuất kho chứa sản phẩm.
*Làm sao để đồng bộ tốc độ thi hành của 2 phần tử để chúng có thể hoạt động tốt theo thời gian, không gây khủng hoảng thừa hay khủng hoảng thiếu.

#define BUFFER_SIZE 10 //số lượng khoang chứa

int buffer[BUFFER_SIZE]; //bộ nhớ đệm size 10 p.tử
int in=0; //con trỏ tới vị trí trống kế tiếp
int out=0; //con trỏ tới vị trí trống tiếp theo

int nextProduced=1; //tạo 1 sản phẩm được sản xuất kế tiếp

//Hàm sản xuất:
void Producer()
{

DuongKimLong(I111C)

Tổng số bài gửi : 29
Join date : 26/08/2011

Về Đầu Trang Go down

Thảo luận Bài 4 - Page 3 Empty Re: Thảo luận Bài 4

Bài gửi  Sponsored content


Sponsored content


Về Đầu Trang Go down

Trang 3 trong tổng số 13 trang Previous  1, 2, 3, 4 ... 11, 12, 13  Next

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết