Xét một không gian có bộ nhớ luận lý kích thước 1 trang là 2KByte... Xét một không gian có bộ nhớ luận lý có 64 trang, mỗi trang có 1024 từ, mỗi từ là 2 byte được ánh xạ vào bộ nhớ vật l
Trang 1Nội Dung Thi
• Chương 5 – Chương 8
• Thời gian: 90’
• 4 – 6 câu hỏi
• Không sử dụng tài liệu
Bài tập chương 5
+/ Giải pháp đồng bộ
• Busy – waiting tốn thời gian CPU
• Sleep & Wake up trợ giúp của HĐH
1 Xét giải pháp đồng bộ hóa sau:
Pi while (TRUE) { int j = 1-i;
flag[i]= TRUE; turn = j;
while (turn == j && flag[j]==TRUE);
critical-section ();
flag[j] = FALSE;
Noncritical-section ();
} Đây có phải là một giải pháp bảo đảm 3 điều kiện không?
Gợi Ý : 3 điều kiện của giải thuật cần đảm bảo :
Trang 2- Độc quyền truy xuất (Mutual exclusion) tại 1 thời điểmchỉ có 1 process vào vùng tranh chấp
- Progress khi 1 process không nằm trong vùng CS thì không cản các process khác vào vùng CS
- Bounded waiting các process phải chờ trong thời gian hữu hạn
Giải: (xem slide trang 19-22 chương 5-2)
Đối với mỗi Pi
- Độc quyền truy xuất thỏa turn tại 1 thời điểm chỉ có 1 process truy xuất vào
- Progress không thỏa mãn
Sau khi P0 thực thi xong thì turn = 0 (j = 1 bên P0 ) flag [0] = true; flag [1] = false;
sau khi thực thi xong, thoát ra vùng CS nhưng P0 vẫn ngăn cản P1 vào vùng CS
Để P1 vào CS được thì turn = 1; flag[0] = false;
- Bounded waiting thỏa mãn
2 Xét 2 tiến trình xử lý đoạn chương trình sau:
process P1 { A1 ; A2 } process P2 { B1 ; B2 }
Đồng bộ hóa hoạt động của 2 tiến trình này, sao cho cả A1 và B1 đều hoàn tất trước khi A2 và B2 bắt đầu
Gợi Ý: sử dụng semaphore
Semanphore value, wait, signal
Giải :
Mô hình hóa lại thứ tự thực thi theo yêu cầu bài toán
A1 B2 ; B1 A2
Bài toán này dùng 2 biến semanphore
Value của 2 biến này điều gán giá trị là 0
S2 S1
Trang 3Sử dụng 2 semaphore S1, S2; S1.value = S2.value = 0;
P1: A1 ; Signal(S1); Wait(S2) ; A2
P2: B1 ; Signal(S2); Wait(S1) ; B2
3 Sử dụng semaphore để viết lại chương trình sau theo mô hình xử lý đồng hành:
A = x1 + x2; B = A*x3; C= A + x4; D= B + C; E = D*x5 + C;
Giả sử có 5 process mỗi process sẽ thực hiện 1 biểu thức
Giải:
Sử dụng 5 Process P1,P2,P3,P4,P5 để lần lượt thực thi 5 biểu thức A, B, C, D, E
Mô hình hóa lại thứ tự thực hiện bài toán
P2
P3 Bài toán này dùng 5 biến semanphore: S1, S2, S3, S4, S5
Value của 5 biến này điều gán giá trị là 0
S1.value = S2.value = S3.value = S4.value = S5.value = 0;
P1: A; Signal (S1); Signal (S1);
P2: wait (S1); B; signal (S2);
P3: wait(S1); C; signal (S3); signal (S4);
P4: wait(S2); wait(S3); D; signal (S5);
P5: wait(S4); wait(S5); E;
S5
S2 S1
S4 S3 S1
Trang 4Chương 6
1 Xét trạng thái hệ thống với các loại tài nguyên A, B, C, và D như sau:
a Xác định nội dung bảng Need
b Hệ thống có ở trạng thái an toàn không?
c Nếu tiến trình P2 có yêu cầu thêm tài nguyên (4,0,0,4), yêu cầu này có được đáp ứng ngay lập tức hay không?
Gợi ý:
a Bảng Need = Bảng Max – Bảng Allocation
NEED
b Tìm chuỗi an toàn, nếu có thì hệ thống an toàn nếu không có thì hệ thống không an toàn
Trang 5Allocation Need Work
A B C D
2 6 2 1
6 15 16 9
Ta có chuỗi an toàn P0(4,6,3,3) -> P1(5,6,7,3) -> P3(5,12,10,5) -> P4(5,12,11,7)->
P2(6,15,16,9)
-> Hệ Thống An Toàn
c Xét P2(4,0,0,4) Available (2,6,2,1) Sai Không cấp phát
2 Cho Sơ đồ cấp phát tài nguyên hệ thống ở thời điểm T0
a.Tìm Need
Lớn hơn
Trang 6b Hệ thống có an toàn không?
c Nếu P1 yêu cầu (0, 4, 2, 0) thì có thể cấp phát cho nó hay không?
Giải
a Tự giải
b Tự giải
c Xét P1(0,4,2,0) Available (1,5,2,0) Đúng
Xét lại hệ thống ở thời điểm T1
Thay đổi bảng Allocation, Need của P1 (1,4,2,0); (0,3,3,0) và Available (1,1,0,0) Xét lại hệ thống ở trạng thái mới xem có an toàn không, nếu an toàn thì cấp phát cho P1 ngược lại thì sẽ ko cấp phát
Bài tập chương 7
1 Giả sử bộ nhớ chính được phân thành các phân vùng có kích thước là 400K, 500K, 600K, 200K ( theo thứ tự ), cho biết các tiến trình có kích thước 212K, 417K, 112K và 426K ( theo thứ tự ) sẽ được cấp phát bộ nhớ như thế nào, nếu sử dụng :
• Thuật toán First fit
• Thuật toán Best fit
• Thuật toán Worst fit
• Thuật toán Next fit
• Thuật toán nào cho phép sử dụng bộ nhớ hiệu qủa nhất trong trường hợp trên ? Giải:
Thứ tự cấp phát 212K 417K 112K 426K
First fit : đưa vào ô trống đầu tiên từ trên xuống phù hợp
Best fit: đưa vào ô trống nhỏ nhất phù hợp
Worst fit: đưa vào ô trống lớn nhất phù hợp
Trang 7Next fit: đưa vào ô trống đầu tiên phù hợp từ dưới lên.
Phần này sẽ xét 2 trường hợp,
1 ô nhớ chỉ được cấp phát cho 1 process (Tĩnh)
1 ô nhớ được cấp phát cho nhiều process (Động)
Nếu đề bài không yêu cầu rõ thì sv làm cách nào cũng được đủ điểm Tuy nhiên làm theo cách nào thì toàn bộ các giải thuật phải làm theo cách đó
Tự nhận xét
2 Xét một không gian có bộ nhớ luận lý kích thước 1 trang là 2KByte Tính số trang và
độ dời (offset) của từng địa chỉ sau:
2.575 ; 11.366 ; 25.000 ; 256
Giải:
Đơn vị của bộ nhớ luận lý là Byte
Kích thước của 1 trang là = 2x 1024 = 2.048 Byte
Số trang = phần nguyên của (địa chỉ / kích thước trang)
Offset = phần dư của (địa chỉ / kích thước trang)
2.575 số trang = 2.575/ 2.048 = 1; offset = 2.575 - 2.048*1 = 527
Còn lại tương tự
Trang 83 Xét một không gian có bộ nhớ luận lý có 64 trang, mỗi trang có 1024 từ, mỗi từ là 2 byte được ánh xạ vào bộ nhớ vật lý có 32 trang:
a.Địa chỉ bộ nhớ vật lý có bao nhiêu bit?
b.Địa chỉ bộ nhớ luận lý có bao nhiêu bit?
c.Có bao nhiêu mục trong bảng phân trang? Mỗi mục chứa bao nhiêu bit?
Giải: Xem xét quá trình chuyển đổi trang nhớ từ luận lý vật lý
Chú ý đơn vị trang nhớ là byte
Kích thước của trang nhớ = 1024* 2 = 2048 byte
a Tính số bit bộ nhớ vật lý
số bit bộ nhớ vật lý = số trang bộ nhớ vật lý * kích thước của trang
= 32 * 2048 = 2^5 * 2^11 = 2^16 có 16 bit
Trang 9b Tính số bit bộ nhớ luận lý
= 64 * 2048 = 2^6 * 2^11 = 2^17 có 17 bit
c
từ hình vẽ ta sẽ thấy:
Số mục phân trang = 64 mục (tổng số trang của bộ nhớ luận lý)
Mỗi mục có 5 bit (số bit trang của bộ nhớ vật lý)
4 Xét một hệ thống sử dụng kỹ thuật phân trang, với bảng trang được lưu trữ trong bộ nhớ chính
a.Nếu thời gian cho một lần truy xuất bộ nhớ bình thường là 150 ns, thì mất bao nhiêu thời gian cho một thao tác truy xuất bộ nhớ trong hệ thống này ?
b.Nếu sử dụng TLBs với hit-ratio ( tỉ lệ tìm thấy) là 95%, thời gian để tìm trong TLBs là 20ns , tính thời gian truy xuất bộ nhớ trong hệ thống ( effective memory reference time) Giải:
Trang 10a Nếu thời gian cho một lần truy xuất bộ nhớ bình thường là X thì mất 2X thời gian cho một thao tác truy xuất bộ nhớ trong hệ thống này
*/Một thao tác truy xuất bộ nhớ trong hệ thống = pageTable + physical
X = 150ns 2X = 300ns mất 300ns cho một thao tác truy xuất bộ nhớ trong hệ thống này
b Nếu sử dụng TLBs với hit-ratio ( tỉ lệ tìm thấy) là , thời gian để tìm trong TLBs là Thì thời gian truy xuất bộ nhớ trong hệ thống là:
– Khi chỉ số trang có trong TLB (hit) : + X
– Khi chỉ số trang không có trong TLB (miss) : + X + X
= ( + X) + ( + 2X)(1 – ) = (20+150)*0.95 + (20+300)*0.05 = ?? ns
Trang 115 Biết thời gian cho một thao tác truy xuất trong bộ nhớ là 200ns Nếu hệ thống sử dụng thêm bảng TLB để tăng hiệu suất truy xuất bộ nhớ, biết sác xuất tìm trong bảng TLB là 96% Thời gian cho một thao tác truy xuất trong bộ nhớ có sử dụng TLB là 160ns Hỏi thời gian để tìm trong bảng TLB là bao nhiêu?
Giải:
pageTable = physic
pageTable + physic = 200ns
pageTable = physic = 100ns
(TLB+physic)*0.96 + (TLB+pageTable+physic)*0.04 = 160
TLB = ?
6 Xét một bộ không gian địa chỉ bộ nhớ ảo 22bit và kích thước trang là 4096 byte
a) Có bao nhiêu bit dùng để xác định số trang? Bao nhiêu bit dùng để xác định offset?
b) Bảng trang có bao nhiêu mục?
c) Trong suốt quá trình thực thi, bộ chuyển đổi MMU chuyển đổi bộ nhớ địa chỉ ảo sang địa chỉ vật lý như sau:
0000000101101011010111 0000010110101011010111
0000011110000010110100 0010000001000010110100
0001010001010100010010 0000000101010100010010
0000000101000000010010 0000010110000000010010
Hỏi có bao bao nhiêu trang được truy xuất bởi MMU sinh ra các địa chỉ trên? Cho biết các chỉ số trang, số frame mà MMU truy xuất
Giải:
Trang 12a chú ý đơn vị bộ nhớ là byte.
4096 = 2^12
Offset = số bit biểu diễn cho kích thước trang = 12 bit
Số bit xác định số trang = không gian địa chỉ bộ nhớ ảo – offset = 22 -12 = 10 bit
b bảng trang có bao nhiêu mục = 2^10 = 1024 mục
c
Ta cần phân chia ra 2 phần, phần offset và chỉ số trang hoặc chỉ số frame
Đếm từ phải sang trái 12 bit offset – 10 bit còn lại là chỉ số frame và chỉ số page, chuyển
10 bit này từ nhị phân sang số thập phân
MMU chỉ truy suất phần nào mà offset phải bằng nhau
0000000101|101011010111 0000010110|101011010111 Đúng
0000011110|000010110100 0010000001|000010110100 Đúng
0001010001|010100010010 0000000101|010100010010 Đúng
Trang 130000000101|000000010010 0000010110|000000010010 Đúng
3 trang được truy xuất (vì trang 5 truy xuất 2 lần)
Địa chỉ trang và frame truy xuất là:
0000000101 -> 0000010110 (từ trang 5 frame 38 )
0000011110 -> 0010000001 (tự tính)
0001010001-> 0000000101 (tự tính)
0000000101 -> 0000010110 (tự tính)
7 Tính địa chỉ vật lý cho từng địa chỉ logic sau:
• 1,200 ; 1,0; 0,700 ; 2,0 ; 2,600
Giải:
Địa chỉ vật lý = Base(tra bảng) + D (Chú ý xem xét D < Limit hợp lệ ngược lại địa chỉ không hợp lệ)
1, 200 1200+200 (xét thấy 200<500) = 1400
1, 0 1200+0 = 1200
0, 700 300+ 700 = 1000
Trang 142,0 tương tự
2,600 tương tự
Bài tập chương 8
1 Xét chuỗi truy xuất bộ nhớ sau:
1, 2 , 3 , 4 , 3 , 5 , 1 , 6 , 2 , 1 , 2 , 3 , 7 , 5 , 3 , 2 , 1 , 2 , 3 , 6
Có bao nhiêu lỗi trang xảy ra khi sử dụng các thuật toán thay thế sau đây, giả sử có 4 khung trang và ban đầu các khung trang đều trống ?
• LRU
• FIFO
• Optimal
• Cơ hội thứ 2
Giải:
PFSR:
- chuyển process – blocked
- đọc trang tham chiếu vào 1 frame trống hoặc frame được thay thế, process đợi I/O nhường CPU cho process khác
- I/O hoàn tất, HĐH gây ra ngắt PFSR gây ra ngắt HĐH: cập nhật page table và
chuyển process về trạng thái ready
Giải thuật
FiFO: trang cũ nhất được thay thế
OPT: thay thế trang nhớ sẽ được thay thế trễ nhất trong tương lai
LRU: Thay thế cho trang không được tham chiếu lâu nhất
Trang 15Cơ hội thứ 2:Sừ dụng giải thuật thay thề giống FIFO tuy nhiên có sử dụng thêm 1 bit, khi
frame mới được nạp vào vùng nhớ thì bật lên bit 1 có 1 con trỏ duyệt các bit này Nếu đi
qua 1 bit xét
bit 1 -> 0 và đưa trang tham khảo về cuối hàng đợi bit 0 -> thay trang này
Sinh viên tự xem slide chương 8 và làm theo giải thuật
Giải: Cơ hội thứ 2
1 1 11 11 11 11 1 0 10 6 1 61 61 61 61 61 61 61 61 61 61 61 61 6 0 1 1 11 11 11 1
1
2 1 21 21 21 21 21 21 21 2 0 20 20 7 1 71 71 71 71 71 71 71 71 71 7 0 70 5 1 5
1
3 1 31 31 31 31 31 31 31 31 31 31 3 0 30 2 1 21 21 21 21 21 21 21 21 21 2
1
4 1 41 41 41 41 41 41 41 41 41 41 41 41 4 0 40 3 1 31 31 31 31 31 31 3
1
Số page-fault = 10