BÀI TẬP HỆ ĐIỀU HÀNH ( CÁC GIẢI THUẬT LẬP LỊCH, CẤP PHÁT BỘ NHỚ, GIẢI PHÁP ĐỒNG BỘ,... CÓ LỜI GIẢI) + Giải pháp đồng bộ • Busy – waiting tốn thời gian CPU • Sleep Wake up trợ giúp của HĐH 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 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 = Ax3; C= A + x4; D= B + C; E = Dx5 + C; Giả sử có 5 process mỗi process sẽ thực hiện 1 biểu thức. 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 ? 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
Trang 1Trường Đại học Công Nghệ Thông Tin (UIT)
Nội Dung Thi
Trang 2Trường Đại học Công Nghệ Thông Tin (UIT)
Trang 7Bà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
Trang 8Trường Đại học Công Nghệ Thông Tin (UIT)
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 :
- Độ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:
Trang 9Trường Đại học Công Nghệ Thông Tin (UIT)
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
Sử dụng 2 semaphore S1, S2; S1.value = S2.value = 0;
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
S2 S1
S5
S2 S1
S4 S3 S1
Trang 10Trường Đại học Công Nghệ Thông Tin (UIT)
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;
Chươ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 ý:
Trang 11Trường Đại học Công Nghệ Thông Tin (UIT)
a Bảng Need = Bảng Max – Bảng Allocation
Trang 12Trường Đại học Công Nghệ Thông Tin (UIT)
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
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
Trang 13Trường Đại học Công Nghệ Thông Tin (UIT)
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
Next 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)
Trang 14Trường Đại học Công Nghệ Thông Tin (UIT)
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ự
3 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ý
Trang 15Trường Đại học Công Nghệ Thông Tin (UIT)
Chú ý đơn vị trang nhớ là byte
Kích thước của trang nhớ = 1024* 2 = 2048 byte
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ý)
Trang 16Trường Đại học Công Nghệ Thông Tin (UIT)
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:
a 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 17Trường Đại học Công Nghệ Thông Tin (UIT)
5 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?
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:
Trang 18Trường Đại học Công Nghệ Thông Tin (UIT)
a 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
Trang 19Trường Đại học Công Nghệ Thông Tin (UIT)
0001010001|010100010010 0000000101|010100010010 Đúng
0000000101|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à:
Trang 20Trường Đại học Công Nghệ Thông Tin (UIT)
- 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ểnprocess 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
Trang 21Trường Đại học Công Nghệ Thông Tin (UIT)
LRU: Thay thế cho trang không được tham chiếu lâu nhất
Cơ 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 đợibit 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