Tải bản đầy đủ (.docx) (12 trang)

Đề cương môn nguyên lý hệ điều hành 1

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (113.83 KB, 12 trang )

Đề cương môn Nguyên lý hệ điều hành
Chương 2: Các giải thuật lập lịch CPU
1.

Một số khái niệm
- Giờ CPU: là time mà CPU phục vụ hoạt động cho các tiến trình, nó có
thể xử lí các dòng lệnh, các chỉ thị, các tính toán. Tại mỗi thời điểm chỉ
có một tiến trình được phân phối giờ CPU đê hoạt động
- Lập lịch cho CPU: là tổ chức 1 hàng đợi cho các tiến trình sẵn sang để
phân phối giờ CPU cho chúng dựa vào độ ưu tiên của các tiến trình sao
cho việc sử dụng CPU hiệu quả nhất.
+ Độ ưu tiên của các tiến trình phụ thuộc vào thuật toán mà hệ thống
dùng để lập lịch: time xuất hiện tiến trình trong hàng đợi, time thực hiện
các tiến trình, time kết thúc các tiến trình
Một số thuật toán lập lịch CPU

2.
a. Bài toán
- Xét n

tiến trình Pi song hành có thời điểm vào RL tương ứng là ti và thời
gian xử lý là ai
- Yêu cầu bài toán đưa ra thứ tự của Pi để được thực hiện phân phối tới
CPU và cho ra thời gian TB là nhỏ nhất.
+ Thời gian chờ Pi = thời điểm xử lý - ti
+ Thời gian chờ TB = ∑ thời gian chờ Pi / n

b.
c.

d.



Thuật toán lập lịch vào trước phục vụ trước (FCFS)
- Quy tắc: + Thời điểm xuất hiện ti trong RL
+ Thực hiện theo chế độ độc quyền
- Cách thực hiện: giả sử Pi, ti, ai và Pj, tj, aj với ti < tj
 Pi được phụ vụ hết aI rồi Pj được thực hiên sau
- Ưu điểm: giờ CPU ko bị phân phối lại (ko bị ngắt) và chi phí tổ chức
thực hiện thấp nhất (do ko phải thay đổi thứ tự ưu tiên phục vụ)
- Nhược điểm: thời gian trung bình chờ phục vụ của các tiến trình là như
nhau (ko kể tiến trình dài hay ngắn) dẫn đến 3 nhược điểm
+ Thời gian chờ trung bình sẽ tăng vô hạn khi hệ thống tiếp cận tới hạn
khả năng phục vụ của mình
+ Nếu độ phát tán thời gian thực hiện tiến trình tăng thì thời gian chờ
trung bình cũng tăng theo
+ Khi có tiến trình dài, ít bị ngắt thì các tiến trình khác sẽ phải chờ đợi
lâu hơn.
Thuật toán lập lịch xoay vòng RR (Round Robin)
1


Quy tắc: + Thời điểm ti xuất hiện Pi trong RL
+ Time hệ thống phục vụ các tiến trình bằng nhau được gọi là
quantum (q)
+ Thực hiện theo chế độ độc quyền
- Cách thực hiện: giả sử Pi, ti, ai và Pj, tj, aj với ti < tj
 Pi được phụ vụ trước
+ ai q: Pi được xử lí xong và kết thúc ra ngoài hê thống
+ ai > q: Pi được xử lí hết time hệ thống yêu cầu là q và đẩy ra ngoài
RL và xếp ở cuối hàng đợi chờ đến lượt xử lí tiếp theo
- Ưu điểm: cho phép hệ thống ưu tiên cho các tiến trình ngắn (vì nó kết

thúc sớm) nhưng ko gây tổn hại lớn cho các tiến trình dài
- Nhược điểm: do thường xuyên phải phân phối lại giờ CPU nên thời gian
chờ đợi trung bình của RR có thể lớn hơn FCFS.
Thuật toán lập lịch với độ ưu tiên
- Quy tắc: + Thời điểm ti xuất hiện Pi trong RL
+ Độ ưu tiên được gắn cho mỗi tiến trình Pi tương ứng là bi
+ Thực hiện theo chế độ độc quyền và không độc quyền
- Cách thực hiện: giả sử Pi, ti, ai, bi và Pj, tj, aj, bj với ti < tj, bi< bj
+ Độc quyền: Pi đang được xử lí, Pj vào RL và bi< bj thì Pi tiếp tục được
thực hiện, Pj phải chờ
+ Không độc quyền: : Pi đang được xử lí, Pj vào RL và bi< bj làm cho Pi
bị đẩy ra ngoài hàng đợi, Pj được vào phục vụ ngay
-

e.

f.

Thuật toán lập lịch thời gian công việc ngắn nhất (SJF)
- Quy tắc: + Thời điểm ti xuất hiện Pi trong RL
+ Time xử lí Pi là ai
+ Thực hiện theo chế độ độc quyền và không độc quyền
- Cách thực hiện: giả sử Pi, ti, ai và Pj, tj, aj với ti < tj
+ Độc quyền: Pi đang được xử lí, Pj vào RL và ai> aj thì Pi được xử lí
bình thường, Pj phục vụ sau khi Pi hết time yêu cầu
+ Không độc quyền: Pi đang được xử lí, Pj vào RL, Pi bị đẩy ra hàng đợi,
Pj được vào phục vụ
- Ưu điểm: Thời gian chờ trung bình của tiến trình ngắn hơn FCFS, SJF
nhanh chóng loại bỏ các tiến trình ngắn -> giảm số lượng tiến trình trong
hàng đợi.

- Nhược điểm: chế độ phân phối lại giờ CPU cũng đc áp dụng trong trường
hợp ngắt các tiến trình dài đang thực hiện để phục vụ các tiến trình ngắn
hơn mới xuất hiện trong hàng đợi. Nếu tiến trình mới xuất hiện có tổng
2


thời gian thực hiện ngắn nhưng vẫn dài hơn thời gian để thực hiện nốt
tiến trình đang thực hiện thì việc ngắt tiến trình là ko hợp lý.
Chương 3: Các giải thuật thay thế trang
1.

2.
3.

Thuật toán FIFO
- Chọn trang thay thế là trang được nạp vào lâu nhất trong bộ nhớ
- Dễ cài đặt
- Hiệu suất phụ thuộc vào số lượng khung trang trống và tần suất xuất hiện
của trang
Thuật toán tối ưu (Optimal)
- Chọn trang thay thế là trang lâu được sử dụng nhất trong tương lai
Thuật toán LRU
- Chọn trang thay thế là trang có thời điểm truy xuất lâu nhất trong quá
khứ

Chương 4: Các thuật toán định vị đầu từ đọc/Ghi
1.

2.


3.

4.

5.

6.

FCFS
- Nguyên tắc: Để truy nhập tới 1 file hệ thống sẽ tổ chức 1 hàng đợi các
yêu cầu phục vụ của các track ( lưu dữ liệu của 1 file cần truy nhập).
Track nào có yêu cầu cần phục vụ trước thì đầu từ đọc/ghi sẽ dịch chuyển
tới đó trước
SSTF
- Thuật toán này chọn track nào có time di chuyển đầu từ đọc/ghi ngắn
nhất thì phục vụ trước
Scan
- Thuật toán này đầu từ đọc/ghi quét từ track nhỏ nhất đến track lớn nhất,
sau đó quét ngược lại track nào có nhu cầu sẽ phục vụ
C-scan
- Thuật toán này đầu từ đọc/ghi quét từ track nhỏ nhất đến track lớn nhất
nhưng đầu từ đọc ghi không quét đường về
Look
- Thuật toán này đầu từ đọc ghi quét từ track nhỏ nhất đến track lớn nhất
sau đó quét ngược lại nhưng chỉ quét trong phạm vi các track có nhu cầu
phục vụ không quét tới track đầu tiên hoặc cuối cùng (nếu các track này
không có yêu cầu phục vụ)
C-look
- Thuật toán này đầu từ đọc ghi quét từ track nhỏ nhất đến track lớn nhất
nhưng không quét ngược lại nhưng chỉ quét trong phạm vi các track có

3






nhu cầu phục vụ không quét tới track đầu tiên hoặc cuối cùng (nếu các
track này không có yêu cầu phục vụ)
Ba phương pháp cấp phát bộ nhớ trong của hệ điều hành
Khi có 1 tiến trình cần được nạp vào bộ nhớ mà trong bộ nhớ có nhiều hơn 1
khối nhớ trống (free block) có kích thước lớn hơn kích thước của tiến trình
đó, thì hệ điều hành phải quyết định chọn 1 khối nhớ trống phù hợp để nạp
tiến trình sao cho việc lựa chọn này dẫn đến việc sử dụng bộ nhớ chính là
hiệu quả nhất. Có 3 thuật toán để lựa chọn:
- First fit: hệ điều hành sẽ quét qua các khối nhớ trống bắt đầu từ khối nhớ
trống đầu tiên trong bộ nhớ và sẽ chọn khối nhớ trống đầu tiên có kích
thước đủ lớn để nạp tiến trình
- Best fit: chọn khối nhớ có kích thước vừa đúng bằng kích thước của tiến
trình cần được nạp vào bộ nhớ
- Worst fit: hệ điều hành bắt đầu quét từ khối nhớ trống kế sau khối nhớ
vừa được cấp phát và chọn khối nhớ trống kế tiếp đủ lớn để nạp tiến trình
Phương pháp cấp phát không gian nhớ tự do cho đĩa từ
Cấp phát liên tục : Để phân bổ không gian nhớ cho một file hệ thống chọn
một đoạn liên tục các khối đĩa tự do để cấp phát cho file đó. Với phương pháp
này , để định vị file hệ thống chỉ cần biết địa chỉ của khối đĩa tự do đầu tiên và
số lượng block đã dùng.
- Ưu điểm:
+ Hỗ trợ cho phương pháp truy nhập tuần tự và truy nhập trực tiếp.
- Nhược điểm :

+ Phải chọn được thuật toán tối ưu để tìm các vùng không gian tự do cấp phát chi
file ( first fit , best fit , worst fit)
+ Có thế xảy ra trường hợp không đủ số khối đĩa tự do liên tiếp cần thiết để cấp
phát cho các file.
+ Trong trường hợp các khối đĩa tự do nằm tản mạn sẽ không sử dụng được gây
lãng phí không gian nhớ.
- Cấp phát liên kết : Trong trường hợp này mối file định vị thư mục thiết bị
bằng hai con trỏ một con trỏ tới khối đĩa đầu tiên , một con trỏ tới khối đĩa cuối
cùng đã cấp cho file. Trong mỗi khối đĩa cấp phát cũng có một con trỏ để trỏ tới
khối đĩa kế tiếp.
- Ưu điểm : Sử dụng được các khối đĩa tự do nằm tản mạn .
- Nhược điểm : chỉ hỗ trợ truy nhập tuân tự không hỗ trợ truy nhập trực tiếp ,độ
tin cậy không đảm bảo nếu bị mất các con trỏ.
- Cấp phát theo chỉ số :Để cấp phát không gian cho 1 file hệ thống sử dụng 1
khối đĩa đặc biệt gọi lag khối đĩa chỉ số cho mỗi file. Trong khối đĩa chỉ số chứa
địa chỉ của các khối đĩa đã cấp phát cho file,trong thư mục thiết bị địa chỉ của các
khối đĩa chỉ số.Khi một khối đĩa đượccấp phát cho file thì hệ thống loại bỏ địac hỉ
-

4


của khối này khỏi danh sách các khối đĩa tự do và cập nhật vào khổi chỉ số của
file.
- Ưu điểm : hỗ trợ truy nhập trực tiếp.
- Nhược điểm : Lãng phí không gian nhwos dành cho khối đĩa chỉ số.
1. Bài tập ví dụ về lập lịch CPU

Xét các tiến trình sau
Tiến trình

P1
P2
P3
P4
P5

Thời điểm vào RL
0
1
2,5
3
4,5

Thời gian CPU
10
1
2
1
5

Độ ưu tiên
3
1
3
4
2

Hãy cho biết kết quả điều phối theo các chiến lược FCFS, SJF, Round Robin với
q=2, độ ưu tiên độc quyền- không độc quyền.
Tính thời gian chờ cho từng tiến trình và time chờ trung bình trong các chiến lược

trên
Bài làm
a.

FCFS

Pi
Thời điểm xử

Thời gian xử lí

P1
0

P2
10

P3
11

P4
13

P5
14

10

1


2

1

5

Thời gian chờ:
P1 = 0- 0 = 0

P3= 11- 2,5= 8,5

P2= 10- 1 =9

P4= 13- 3= 10

P5= 14- 4,5= 9,5

Thời gian chờ trung bình: = 7,4
b.

SJF độc quyền
Pi
Thời điểm xử


P1
0

P2
10


P4
11

P3
12

P5
14
5


Thời gian xử lí

10

1

1

2

5

Thời gian chờ:
P1= 0- 0= 0
P3= 12- 2,5= 9,5
P2= 10- 1= 9
P4= 11- 3= 8
Thời gian trung bình: 7,2




P5= 14- 4,5= 9,5

SJF không độc quyền
Pi
Thời điểm xử

Thời gian xử


P1
0

P2
1

P1
2

P3
2,5

P4
3

P3
4


P5
5,5

P1
10,5

1

1

0,5

0,5

1

1,5

5

8,5

Thời gian chờ:
P1= (0-0) + (2-1) + (10-2,5)= 9
P2= 1-1 =0
P3= (2,5- 2,5) + (4- 3)= 1
P4= 3- 3= 0
P5= 5,5- 4,5= 1
Thời gian chờ TB: 2,2


c.

Round Robin với q= 2

Pi
Thời điểm xử

Thời gian xử


P1
0

P2
2

P3
3

P4
5

P5
6

P1
8

P5
10


P1
12

P5
14

P1
15

P1
17

2

1

2

1

2

2

2

2

1


2

2

6


Thời gian chờ:
P1= (0-0) +(8-2)+ (12-10)+ (15-14)= 9
P2= 2-1= 1
P3= 3- 2,5= 0,5
P4= 5-3= 2
P5= (6- 4,5) +(10-8)+ (14- 12)= 5,5
Thời gian chờ TB; 3,6
d.

Độ ưu tiên độc quyền
Pi
Thời điểm xử

Thời gian xử


P1
0

P2
10


P5
11

P3
16

P4
18

10

1

5

2

1

Thời gian chờ:
P1= 0- 0= 0
P2= 10- 1= 9
Thời gian chờ TB: 8,8



P3= 16- 2,5= 13,5
P4= 18- 3= 15

P5= 11- 4,5= 6,5


Độ ưu tiên không độc quyền
Pi
Thời điểm xử

Thời gian xử


P1
0

P2
1

P1
2

P5
4,5

P3
9,5

P1
11,5

P4
18

1


1

2,5

5

2

6,5

1

Thời gian chờ:
7


P1= (0-0)+ (2-1)+ (11,5- 4,5)= 8
P2= 1-1= 0
P3= 9,5- 2,5= 7
P4= 18- 3= 15
P5= 4,5- 4,5= 0
Thời gian chờ TB: 6

1.

Bài tập ví dụ về thay thế trang

Cho các trang có thứ tự yêu cầu lần lượt như sau:
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1

Cho biết quá trình thay thế trang và số lỗi trang dùng thuật toán FIFO, thuật toán
tối ưu Optimal, thuật toán RLU biết có 3 khung trang trống
Bài làm
a.

1

FIFO: chọn trang thay thế là trang được nạp vào lâu nhất trong bộ nhớ
7

0

1

2

0

3

0

4

2

3

0


3

2

1

2

0

1

7

0

1

7

7

7

2

2

2


2

4

4

4

0

0

0

0

0

0

0

7

7

7

0


0

0

0

3

3

3

2

2

2

2

2

1

1

1

1


1

0

0

1

1

1

1

0

0

0

3

3

3

3

3


2

2

2

2

2

1

2
3


Có 15 lỗi trang

b.

1
2

Thuật toán tối ưu Optimal: chọn trang thay thế là trang lâu được sử dụng
nhất trong tương lai
7

0

1


2

0

3

0

4

2

3

0

3

2

1

2

0

1

7


0

1

7

7

7

2

2

2

2

2

2

2

2

2

2


2

2

2

2

7

7

7

0

0

0

0

0

0

4

4


4

0

0

0

0

0

0

0

0

0

0

8


3


1


2
3


1

3

3

3

3

3

3

3

3

1

1

1

1


1

1

1

Có 9 lỗi trang
c.

1

1

Thuật toán RLU: chọn trang thay thế là trang có thời điểm truy xuất lâu
nhất trong quá khứ
7

0

1

2

0

3

0


4

2

3

0

3

2

1

2

0

1

7

0

1

7

7


7

2

2

2

2

4

4

4

0

0

0

1

1

1

1


1

1

1

0

0

0

0

0

0

0

0

3

3

3

3


3

3

0

0

0

0

0

1

1

1

3

3

3

2

2


2

2

2

2

2

2

2

7

7

7

Có 12 lỗi trang

Bài tập ví dụ về sơ đồ di chuyển đầu từ đọc ghi
File F1 được phân bổ lần lượt tại các track có số thứ tự sau:
98, 183, 37, 122, 14, 124, 65, 67
Đầu từ đọc ghi đang định vị tại track có STT là 53
Hãy sử dụng các thuật toán để vẽ sơ đồ: FCFS, SSTF, Scan, C-Scan, Look,
C-Look
Bài làm


9


a.

FCFS: track nào có yêu cầu phục vụ trước thì đầu từ đọc ghi sẽ dịch
chuyển tơi trước.

14

37

53

65

67

98

122

124

183

1
2
3
4

5
6
7
8
9
b.

SSTF: thuật toán này chọn track nào có thời gian di chuyển ngắn nhất thì
phục vụ trước
14

37

53

65

67

98

122

124

183

1
2
3

4
5
6
7
8
9
c.

Scan: thuật toán này, đầu từ đọc ghi quét từ track nhỏ nhất đến track lớn
nhất sau đó quét ngược lại, track nào có nhu cầu sẽ phục vụ
0

14

37

53

65

67

98

122

124

183


Ma
x

1
2
3
10


4
5
6
7
8
9
10
11

d.

C-Scan: thuật toán này tương tự Scan nhưng đầu từ đọc ghi không phục
vụ đường về (không quét ngược lại)
0

14

37

53


65

67

98

122

124

183

Ma
x

1
2
3
4
5
6
7
8
9
10
11
e.

Look: tương tự Scan nhưng trong thuật toán này đầu từ đọc ghi chỉ quét
trong phạm vi các track có nhu cầu phục vụ không quét tới track đầu tiên

hay track cuối cùng (nếu các track này không có nhu cầu phục vụ)
14

37

53

65

67

98

122

124

183

1
2
11


3
4
5
6
7
8

9
f.

C-Look: tương tự Look nhưng đầu từ đọc ghi không phục vụ đường về
14

37

53

65

67

98

122

124

183

1
2
3
4
5
6
7
8

9

12



×