Thực hành Hệ điều hành - Bài thực hành số 2.1: Multiprogramming
Ở chế độ mono-programming, từng thời điểm chỉ có 1 process được nạp vào bộ nhớ
và thực thi. Khi process hiện hành đã hoàn thành, HĐH mới phục vụ process khác
nếu có.
Ở chế độ multi-programming, từng thời điểm có thể có nhiều process được nạp vào
bộ nhớ và được chạy đồng thời (theo cảm nhận của người dùng). Tuy nhiên, về mặt
vật lý, từng thời điểm chỉ có 1 process thực sự chiếm CPU và đang chạy.
Ta nói 1 process đang ở trạng thái Ready nếu nó không chờ thiết bị I/O. Các process
Ready sẽ được chạy luân phiên nhau, khi cần thiết ta sẽ thực hiện chuyển ngữ cảnh
để thay đổi process chạy. Có 2 cơ chế thực hiện Multi-programming : theo lô (batch)
hay phân chia thời gian.
và thực thi. Khi process hiện hành đã hoàn thành, HĐH mới phục vụ process khác
nếu có.
Ở chế độ multi-programming, từng thời điểm có thể có nhiều process được nạp vào
bộ nhớ và được chạy đồng thời (theo cảm nhận của người dùng). Tuy nhiên, về mặt
vật lý, từng thời điểm chỉ có 1 process thực sự chiếm CPU và đang chạy.
Ta nói 1 process đang ở trạng thái Ready nếu nó không chờ thiết bị I/O. Các process
Ready sẽ được chạy luân phiên nhau, khi cần thiết ta sẽ thực hiện chuyển ngữ cảnh
để thay đổi process chạy. Có 2 cơ chế thực hiện Multi-programming : theo lô (batch)
hay phân chia thời gian.
Bạn đang xem tài liệu "Thực hành Hệ điều hành - Bài thực hành số 2.1: Multiprogramming", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- thuc_hanh_he_dieu_hanh_bai_thuc_hanh_so_2_1_multiprogramming.pdf
Nội dung text: Thực hành Hệ điều hành - Bài thực hành số 2.1: Multiprogramming
- Trang 2 create Ready elected finish I/O Running Blocked I/O finish Hãy vẽ sơ đồ chuyển trạng thái của từng process trong chế độ phân chia thời gian, lưu ý mỗi process có thể bị mất CPU vì cần đồng bộ hóa với process khác. create synchro : up, wakeup Ready Suspend elected finish finish I/O quantum synchro : Running Blocked down, sleep I/O finish III. Các tỉ lệ dùng CPU Giả sử cần thi hành 3 tác vụ : T1, T2 và T3 với thông tin như sau : T1 chạy tốn 200 ms (không kể thời gian I/O) và có thực hiện I/O 1 lần ở thời điểm 110ms sau khi chạy. T2 chạy tốn 50 ms và có thực hiện I/O 1 lần ở thời điểm 5ms sau khi chạy. T3 chạy tốn 120 ms và không thực hiện I/O lần nào. T1 và T2 được kích hoạt tại thời điểm 0, T3 được kích hoạt tại thời điểm 140ms. Mỗi hoạt động I/O tốn 10 ms. Quantum là 100ms (dùng trong chế độ phân chia thời gian). III.1 Vẽ lược đồ Gantt miêu tả việc thực thi 3 tác vụ : Tính tổng thời gian thực thi T và tỉ lệ chiếm giữ CPU P ở chế độ lô :
- Trang 4 Nếu chỉ có T1 được kích hoạt chạy ở thời điểm t (T2 không có), hãy vẽ lược đồ Gantt miêu tả việc thực thi tác vụ T1, tính tổng thời gian thực chạy T của T1, tỉ lệ dùng CPU P và dùng I/O U. Ta có thể suy diễn T, P et U khi 2 tác vụ T1 và T2 cùng chạy ở chế độ monoprogramming ? Cho w = 5 ms, c = 7 ms, r = 8 ms, n = 4. Read Write I/O controller CPU T1 r=8 c=7 w=5 Lặp thực hiện n = 4 lần Tổng thời gian tốn thực tế T : T = n. (r + c + w) n.c Tỉ lệ dùng CPU : = = c / (r + c + w) P P T Tỉ lệ dùng I/O U : U = (r + w) / (r + c + w) Thế các số liệu cụ thể vào các công thức, ta có : Tổng thời gian tốn thực tế T : T = 4. (8 + 7 + 5) = 80ms n.c Tỉ lệ dùng CPU : = = 7 / (8 + 7 + 5) = 8/20 = 35% P P T Tỉ lệ dùng I/O U : U = (r + w) / (r + c + w) = 13/20 = 65% Nếu 2 tác vụ T1 và T2 được chạy ở chế độ monoprogramming, việc thi hành T2 sẽ đi ngay sau T1 và diễn biến giống hệt T1. Tổng thời gian tốn thực tế T sẽ nhân đôi. Tuy nhiên, P và U không đổi vì thời gian chạy CPU và truy xuất I/O cũng được nhân đôi. Thế các giá trị được cho ta có : T = 160 ms P = 35% U = 65% Hãy vẽ lược đồ Gantt miêu tả việc thực thi 2 tác vụ T1 và T2 trong chế độ lô. Cho e = 5 ms, c = 7 ms, l = 8 ms, n = 4, như vậy w< c < r. Tính tổng thời gian thực chạy T, P et U cho 2 tác vụ T1 và T2. So sánh với chế độ monoprogramming. T1.R T2.R T1.W T2.W I/O controller T2 CPU T1 r=8 r=8 c=7 w=5