ÔN THI GIỮA KÌ HỆ ĐIỀU HÀNH Vấn đề 1: Các phương pháp điều phối thời gian ngắn 1. Độ ưu tiên (Priorities). Mỗi Process có 1 độ ưu tiên. Process nào có độ ưu tiên cao nhất được thực thi. Process có độ ưu tiên thấp có thể chờ mãi mãi (không có bài tập) Đề: Bảng số liệu Process Thời điểm xuất hiện Thời gian thực thi P1 0 3 P2 2 6 P3 4 4 P4 6 5 P5 8 2 2. First – In – First – Out (FIFO) Dạng NonPreemptive 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 P1 X P2 X P3 X P4 X P5 X Thời gian thực thi hiện thực: ( tính từ dấu X đến khi kết thúc ) P1: 3 P2: 7 P3: 9 P4: 12 P5: 12 Tổng thời gian: 43 Thời gian trung bình: 8.5 Dấu X là chỉ thời điểm xuất hiện mà đề bài cho, em ko cần quan tâm cái này, chỉ cần đề cho lúc nào thì em đánh dấu vào lúc đó. FIFO thực hiện theo thứ tự, P1 thực hiện 3 ( 012), xong đến P2 thực hiện 6 ( 345678), tuần tự cho đến hết.
Trang 1ÔN THI GIỮA KÌ HỆ ĐIỀU HÀNH Vấn đề 1: Các phương pháp điều phối thời gian ngắn
1 Độ ưu tiên (Priorities).
Mỗi Process có 1 độ ưu tiên Process nào có độ ưu tiên cao nhất được thực thi Process có độ
ưu tiên thấp có thể chờ mãi mãi (không có bài tập)
Đề: Bảng số liệu
Process Thời điểm xuất hiện Thời gian thực thi
2 First – In – First – Out (FIFO)
Dạng Non-Preemptive
P1 X
Thời gian thực thi hiện thực: ( tính từ dấu X đến khi kết thúc )
Tổng thời gian: 43
Thời gian trung bình: 8.5
Dấu X là chỉ thời điểm xuất hiện mà đề bài cho, em ko cần quan tâm cái này, chỉ cần đề cho
FIFO thực hiện theo thứ tự, P1 thực hiện 3 ( 0-1-2), xong đến P2 thực hiện 6 ( 3-4-5-6-7-8), tuần tự cho đến hết
3 Round Robin (RR)
Dạng Preemptive
quantum (q) = 1 ( tức mỗi lần 1process chỉ được thực thi 1 thời gian)
Trang 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 P1 X
1 2 3 2 43 32 254 543 432 325 254 543 432 32 24 4
Hàng cuối cùng ghi chỉ số process đợi, tức hàng đợi
- Ở thời điểm 0, (a viết tắt thời điểm = t nhé), P0 vào, ko có p (process) nào đợi, nên hàng đợi
ko có
- Kết thúc t1, ko có p nào vào t2, p1 tiếp tục hiện hiện t1, ở thời điểm này, ko có p nào đợi, queue = rỗng
- Đến t2, do hàng đợi ở t1 ko có process nào đợi, nên đến t2 phải ưu tiên p2 vào, do thứ tự xuất hiện của p2 là ở t2, p1 vào hàng đợi, do thời gian thực thi của p1 là 3, trong khi mới thực hiện 2
- Đến t3, p1 ra khỏi hàng đợi, thực thi, p2 chưa thực thi xong, p2 vào hàng đợi của t3
- Đến t4, lẽ ra p3 phải vào thực thi, nhưng trong hàng đợi còn p2, nên p2 vào thực thi, p3 vào hàng đợi
- Đến t5, trong queue có p3, p3 thực thi, p2 vào hàng đợi
- Đến t6, lẽ ra p4 phải thực thi, nhưng p2 ở hàng đợi dc ưu tiên thực thi, p4 đợi, trong khi p3 chưa thực thi, nên thứ tự đợi là p4 đến p3 ( viết là 43)
- Đến t7, p4 vào thực thi, p3 đợi, p2 mới vừa thực thi ở p6, nên p2 phải đợi cuối, thứ tự đợi là 32
- Đến t8, lẽ ra đến thời đến xuất hiện của p5, nhưng do p3 ở hàng đợi, nên p3 thực thi trước, trong hàng đợi trước đó đã có p2, nên p5 phải vào sau p2, sau đó là đến p4, thứ tự đợi là 254 (
em cần phân biệt chỗ này với t6, do trước t6, là t5 hàng đợi chỉ có p2, nên khi đến p2 thực hiện, thì hàng đợi ở t6 ko có process nào, rồi mới có p4 đợi, và p3 đợi Còn ở t8 này, do trước đó là t7, hàng đợi có p3 và p2, nên p3 thực thi thì còn lại p2, p5 ko chen trước p2 dc)
- Cứ thế em làm cho đến hết
Thời gian thực thi hiện thực:
Tổng thời gian: 54
Thời gian trung bình: 10.8
Process Thời điểm xuất hiện Thời gian thực thi
quantum (q) = 2
P1 X
Trang 3P4 X
1 1 32 2 24 43 435 352 352 524 524 24 24 4 4
Phần này giống trên, nhưng chỉ khác quantum = 2, tức mỗi lần process thực thi 2 đơn vị thời gian Nhưng em chú ý kĩ ở t4, do p1 thời gian thực thi chỉ có 3, nên tới t4 còn 1 thời gian thực thi, nên
nó chỉ có 1
Thời gian thực thi hiện thực:
Tổng thời gian: 50
Thời gian trung bình: 10
4 Shortest Job First (SJF)
Process Thời điểm xuất hiện Thời gian thực thi
Dạng Non-Preemptive
P1 X
Shortest Job First – tức là ở thời điểm đó, cái nào có thời gian thực thi ngắn nhất thì thực thi trước
Dạng non-preemptive, tức là ko ưu tiên, cái nào thực thi, thì 1 lần sẽ thực thi tất cả, ngược lại với
- Ở t0, chỉ có p1 vào, nên p1 thực thi (0-1-2)
- Đến tới t2, chỉ có p2 vào, p2 thực thi (3-4-5-6-7-8)
- Tới t9, lúc này theo thời điểm xuất hiện thì p3 ở thời điểm 6, p4 ở thời điểm 6, p5 ở thời điểm t8 Tức là tới t9, thì p3,p4,p5 đều có quyền xuất hiện, nhưng p5 có thời gian thực thi ngắn nhất (2 đơn vị), nên p5 thực thi trước, tương tự đến p3 rồi p4
Thời gian thực thi hiện thực:
Tổng thời gian: 38
Thời gian trung bình: 7.6
Trang 45 Shortest Remaining Time (SRT)
Process Thời điểm xuất hiện Thời gian thực thi
6.
Dạng Preemptive
P1 X
Shortest remaining time – tức process nào còn thời gian thực thi còn lại ngắn nhất, dc ưu tiên thực thi trước, và dc ngắt quãng do đây là dạng preemptive
- Ở thời điểm t0, p1 vào thực hiện đến t1 Đến t2 thì p2 cũng vào, lúc này p1 còn 1 đv time
- Ở t3, chỉ có p2 thực thi
- Đến t4, có p3 vào, p2 cũng còn thời gian thực thi So sánh, p2 còn 5, p3 còn 4, p3 thực thi t4
- T5, chỉ có p2 và p3, so sánh, p3 thực thi trước Tương tự cho đến hết
Thời gian thực thi hiện thực:
Tổng thời gian: 36
Thời gian trung bình: 7.2
7 Multi-level Feedback Queues (MFQ)
Dạng Preemptive
2 queue: q0 = 1, q1 = 1( tức khi rơi vào q0, thì tới phiên thực hiện nó sẽ thực thi 1 đơn vị, sau q0 mà chưa xong, nó sẽ rơi xuống q1, tới phiên thực hiện, nó cũng sẽ thực thi 1 đơn vị ).
(Q0)
Em chú ý ở dưới p5 cũng là 1 hàng đợi là q0, tuy nhiên do ko có process nào đợi nên e thấy nó rỗng
- Ở t0, p1 dc đưa vào q0, ko có process nào cạnh tranh, p1 thực thi luôn
Trang 5- Kết thúc t0, p1 sau khi thực hiện ở Q0, thì bị giáng xuống Q1 Tuy nhiên tới t1, ko có process cạnh tranh, p1 đưa vào thực thi tiếp
- Kết thúc t1, t2 bắt đầu, p1 được đưa lại vào Q1 ( do ko có queue cấp thấp hơn, nên sau khi đã giáng nó xuống thấp nhất, thì mỗi lượt thực thi xong, nếu chưa hoàn thành, nó sẽ tiếp tục nằm ở đó),lúc này p2 xuất hiện, p2 dc đựa vào Q0, và ko có process nào nằm ở Q0, p1 thì nằm ở Q1 có mức ưu tiên thấp hơn, nên p2 dc thực thi ngay Lúc này e thấy có p1 đang đợi
Kết thúc t2, t3 bắt đầu, p2 sau khi đưa vào Q0 và đưa vào thực hiện ở t2, p2 giáng xuống Q1 ở t3 Lúc này p1 ra khỏi Q1, thực thi và kết thúc
- Kết thúc t3, t4 bắt đầu, lúc này p2 đang nằm ở Q1, p3 tới thời điểm xuất hiện, được đưa vào Q0,
có mức độ ưu tiên cao hơn nên thực thi ngay
- Kết thúc t4, t5 bắt đầu, p3 bị giáng xuống Q1, tới p2 từ Q1 ra thực thi
- Kết thúc t5, t6 bắt đầu, lúc này ở Q1 đang có p3, p2 sau khi thực hiện xong, bị giáng xuống Q1, nên em sẽ thấy thứ tự là 3-2 Lúc này p4 vào Q0, và thực thi
- Kết thúc t6,t7 bắt đầu, p4 giáng xuống Q1, do trước đó đang có p2 đang đợi, nên p4 phải đứng sau (thứ tự 24), p3 ra thực thi
- Kết thúc t7, t8 bắt đầu, lúc này Q1 đang có 24, p3 vừa thực thi trước đó, nên khi quay lại Q1 phải đứng sau 24, ( thứ tự lúc này là 243), và có p5 vào Q0, ko có tranh chấp với process khác, p5 thực thi
- Tuần tự cho đến hết
Thời gian thực thi hiện thực:
Tổng thời gian: 52
Thời gian trung bình: 10.4
3 queue: q0=1, q1=2, q2=4 ( thời gian thực thi khi vào q0 là 1 đơn vị thời gian, ở q1 là 2 đơn vị thời gian, ở q2 là 4 đơn vị thời gian )
- Ở t0, p1 vào Q0, ko có tranh chấp, p1 thực thi 1đv
- Kết thúc t0, bắt đầu t1,P1 xuống Q1, ko có process nào vào Q0, p1 thực thi 1 lúc 2 đơn vị ( do q1=2)
- Kết thúc t2, p1 cũng đã hoàn thành, tuy nhiên ở thời điểm t2, p2 vào q0, và bị vướng p1, do t1
từ q1 thực thi 1 lúc 2 đơn vị time (2-3), nên lúc đó P2 phải đợi ở Q0 Bắt đầu t3, P2 ko có cạnh tranh, p2 thực thi 1 đơn vị (q0 =1)
- Kết thúc t3, bắt đầu t4, p2 bị giáng xuong1 Q1, lúc này p3 vào Q0, ko có tranh chấp , nên thực thi 1 đơn vị
- Kết thúc t4, bắt đầu t5, p3 bị giáng xuống Q1, p2 từ Q1 thực thi 2 đơn vị (5-6) Trong lúc ở t6,
có P4 vào Q0, nhưng bị vướng p2 đang thực thi, nên phải đợi ở Q0, cùng thời gian đó cũng có p3 đang ở Q1 Bắt đầu t7, p2 sau khi thực thi từ Q1, bị giáng xuống Q2,p4 từ Q0 thực thi 1 đơn vị
- Cứ tuần tự làm như thế, nhưng em chú ý cái nào ở Q2, thì mỗi lần được thực hiện, nó dc phép
Trang 6thực hiện 4 đơn vị, nhưng tùy theo còn bào nhiêu thời gian hoàn thành, thì nó thực hiện nhiêu đó Giả sử ở t14, p2 được thực thi 4 đơn vị, nhưng nó chỉ cần 3 đơn vị là hoàn tất, nên nó sẽ thực thi
3 và hoàn thành
Thời gian thực thi hiện thực:
Tổng thời gian: 52
Thời gian trung bình: 10.4
Vấn đề 2: Giải thuật ngân hàng
Dạng 1 Kiểm tra xem trạng thái có an toàn hay không?
Cách giải: phải tìm cho được ít nhất C, R, A
Vd1: E=(6,3,4,2) A=(1,0,2,0)
C = R =
Kiểm tra xem trạng thái có an toàn hay không?
Bài làm:
R4 A
Đáp ứng yêu cầu của P4
P4 thực thi hoàn tất và giao trả tài nguyên
A=A+C4=(2,1,2,1)
Mark(P4)
R1 A
Đáp ứng yêu cầu của P1
P1 thực thi hoàn tất và giao trả tài nguyên
A=A+C1=(5,1,3,2)
Mark(P1)
R 2 A
Đáp ứng yêu cầu của P2
P2 thực thi hoàn tất và giao trả tài nguyên
A=A+C2=(5,2,3,2)
Mark(P2)
R 3 A
Đáp ứng yêu cầu của P3
Trang 7 P3 thực thi hoàn tất và giao trả tài nguyên
A=A+C3=(6,3,4,2)
Mark(P3)
R 5 A
Đáp ứng yêu cầu của P5
P5 thực thi hoàn tất và giao trả tài nguyên
A=A+C5=(6,3,4,2)
Mark(P5)
Nhận xét: A = E
Tồn tại một trình tự điều khiển để các process thực thi hoàn tất <P4,P1,P2,P3,P5>
Kết luận: hệ thống ở trạng thái an toàn
Vd2: 1 hệ thống có 12 ổ băng từ và 3 tiến trình với bảng cấp phát tài nguyên như sau:
Tiến trình Đã được cấp (số ổ băng) Tối đa cần (số ổ băng)
Dùng giải thuật nhà băng xác định trạng thái có an toàn hay không?
Bài làm
Max =
C =
R =Max – C =
E = (12)
A = E – C = (12) – ( 5 + 2 + 2 ) = (3)
R 2 A
Đáp ứng yêu cầu của P2
P2 thực thi hoàn tất và giao trả tài nguyên
A=A+C2=(5)
Mark(P2)
R 1 A
Đáp ứng yêu cầu của P1
P1 thực thi hoàn tất và giao trả tài nguyên
A=A+C1=(10)
Trang 8 Mark(P1)
R 3 A
Đáp ứng yêu cầu của P3
P3 thực thi hoàn tất và giao trả tài nguyên
A=A+C3=(12)
Mark(P3)
Vậy tồn tại một trình tự điều khiển để các process thực thi hoàn tất <P2, P1, P3>
Kết luận: hệ thống ở trạng thái an toàn
Cách trình bày khác: miêu tả trạng thái theo thời gian
A R Proces
s
C
Vd3: Một hệ thống có 5 tiến trình với tình trạng tài nguyên như sau:
Trạng thái có an toàn hay không?
Bài làm:
R = Max – C =
Vậy tồn tại một trình tự điều khiển để các process thực thi hoàn tất <P0, P2, P1, P3, P4>
Kết luận: hệ thống ở trạng thái an toàn
t
Trang 9Dạng 2: Cấp phát tài nguyên cho 1 process nào đó được hay không?
Cách giải: giả định đã cấp phát, quy về dạng 1, nếu an toàn thì cấp được
Vd1: Cho bảng số liệu.
Loại tài nguyên Được các process yêu cầu Đã cấp cho các process
Với tình trạng này thì có cấp phát R2 cho P2 hay không?
Bài làm:
Thông tin hệ thống khi giả định đã cấp R2 cho P2
E = (1, 1)
A = (0, 0)
C =
R =
Nhận xét:
Kết luận: Hệ thống ở trạng thái không an toàn, nên không cấp R2 cho P2 được
Dạng 3: Bài toán trên RAG (đồ thị cấp phát/phân phối tài nguyên)
Cách giải: Vẽ hình và nhận xét
Vd1: Cho bảng số liệu:
Loại tài nguyên Số phiên bản Được các process yêu cầu Đã cấp cho các process
Hãy thể hiện trạng thái này bằng Đồ thị cấp phát tài nguyên
Bài làm:
Trang 10Vd2: Cho bảng số liệu:
Loại tài nguyên Số phiên bản Được các process yêu cầu Đã cấp cho các process
Có deadlock hay không? Vì sao?
Bài làm:
RAG bị deadlock do tồn tại các chu trình và không có process nào có thể kết thúc
Vấn đề 3: Thay thế trang trong bộ nhớ ảo dạng phân trang - Chọn phần tử thay thế
Vd: Cho trình tự các trang: 2 3 2 1 5 2 4 5 3 2 5 2
Optimal
Trang 112 3 2 1 5 2 4 5 3 2 5 2
6 lỗi trang
FIFO
20 21 22 23 50 50 51 52 30 31 32 33
30 31 32 33 20 21 22 23 24 50 51
10 11 12 40 41 42 43 44 20
9 lỗi trang
LRU
20 21 20 21 22 20 21 22 30 31 32 33
30 31 32 50 51 52 50 51 52 50 51
10 11 12 40 41 42 20 21 20
7 lỗi trang
Second Chance
Clock
Vấn đề 4: Sơ đồ chuyển đổi địa chỉ
1 Bộ nhớ ảo dạng phân trang
Trang 122 Tổ chức bảng trang dạng nhiều cấp
3 Tổ chức bảng trang dạng bảng băm
Trang 134 Bảng trang nghịch đảo
Trang 145 Sơ đồ chuyển đổi địa chỉ với TLB
6 Bộ nhớ ảo dạng phân đoạn
7 Bộ nhớ ảo dạng phân đoạn có phân trang
Trang 158 Bộ nhớ ảo trên MULTICS
9 Bộ nhớ ảo trên Pentium
Trang 16Vấn đề 5: Chuyển đổi địa chỉ
Dạng 1: Cho dung lượng bộ nhớ ảo, kích thước trang, dung lượng bộ nhớ thực, cho số liệu 1 bảng trang Xác định địa chỉ vật lí (nếu có) ứng với địa chỉ ảo
Cách giải: Tìm cấu trúc địa chỉ ảo, cấu trúc địa chỉ vật lí, dựa theo cấu trúc tìm các thành phần
Tìm page# đối chiếu bảng trang để lấy ra frame# điều kiện làm tiếp là present bit = 1 Ghép frame# với offset
Vd:
Dung lượng bộ nhớ ảo Kích thước trong Dung lượng bộ nhớ thực
Page# Frame# Present bit
Trang 17… … … …
Áp dụng sơ đồ trình bày trên để xác định địa chỉ vật lí (nếu có) ứng với địa chỉ ảo
Câu a 0x0A0A0A
Câu b 0x1A2B3C
Bài làm:
- Cấu trúc địa chỉ ảo:
Tìm kích thước địa chỉ ảo
Ta có dung lượng bộ nhớ ảo là 16MB = 224 Byte
Địa chỉ ảo dài 24 bit
Tìm kích thước phần offset
Ta có kích thước 1 trang là 1KB = 210 Byte
Phần offset dài 10 bit
Địa chỉ ảo dài 24 bit, offset dài 10 bit Phần page# dài 24 – 10 = 14 bit
Cấu trúc: page# | offset
14 bit 10 bit
- Cấu trúc địa chỉ vật lí:
Tìm kích thước địa chỉ vật lí
Ta có dung lượng bộ nhớ vật lí là 4MB = 222 Byte
Địa chỉ vật lí dài 22 bit
Phần frame# dài: 22 – 10 = 12 bit
Cấu trúc: frame# | offset
12 bit 10 bit
Trang 18- Chuyển đổi địa chỉ:
Câu a.
Địa chỉ ảo:0x0A0A0A = 0000 1010 0000 1010 0000 10102
offset: 1000001010
page#: 00001010000010 = 0x282
Đối chiếu với bảng trang, ta có được frame# = 0x1FE , present bit = 1
Frame# = 0x1FE = 1111111102
Địa chỉ vật lí của 0x0A0A0A là : 1111111101000001010 = 0x7FA0A
Câu b.
Địa chỉ ảo: 0x1A2B3C = 0001101000101011001111002
offset: 1100111100
page#: 00011010001010 = 0x68A
Đối chiếu với bảng trang, ta có được frame# = 0x2FE, present bit = 0
Vậy trang chưa được nạp vào bộ nhớ nên không tồn tại địa chỉ vật lí của 0x1A2B3C