1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Goi y giai BT ontap update full

15 110 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

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

Ngày đăng: 25/10/2019, 11:13

TỪ KHÓA LIÊN QUAN

w