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

Goi y giai BT ontap update full

15 112 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

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 277,8 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

Nộ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 3

Sử 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 4

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 ý:

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 5

Allocation 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 6

b 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 7

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)

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 8

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ý

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 9

b 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 10

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 11

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?

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 12

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

0001010001|010100010010  0000000101|010100010010  Đúng

Trang 13

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à:

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 14

2,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 15

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 đợ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

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

TỪ KHÓA LIÊN QUAN

w