1. Trang chủ
  2. » Công Nghệ Thông Tin

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)

21 1,9K 6
Tài liệu đã được kiểm tra trùng lặp

Đ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 21
Dung lượng 1,21 MB

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

Nội dung

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 1

Trường Đại học Công Nghệ Thông Tin (UIT)

Nội Dung Thi

Trang 2

Trường Đại học Công Nghệ Thông Tin (UIT)

Trang 7

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

Trang 8

Trườ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 9

Trườ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 10

Trườ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 11

Trường Đại học Công Nghệ Thông Tin (UIT)

a Bảng Need = Bảng Max – Bảng Allocation

Trang 12

Trườ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 13

Trườ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 14

Trườ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 15

Trườ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 16

Trườ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 17

Trườ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 18

Trườ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 19

Trườ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 20

Trườ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 21

Trườ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

Ngày đăng: 18/11/2018, 13:41

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w