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

BÁO cáo THỰC HÀNH LAB4 Định thời CPU

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 (608.54 KB, 11 trang )

BÀI BÁO CÁO LAB 4
Họ và tên: Bùi Hữu Khôi
MSSV: 13520405
Câu 1: Khái niệm, ưu điểm, nhược điểm của các giải thuật FCFS, SJF, RR, SRT:
- First Come First Seved(FCFS) :
+ Khái niệm: giải thuật FCFS là giải thuật có đọ ưu tiên phục vụ giữa vào thời
điểm hình thành tiến trình (tiến trình nào yêu cầu CPU trước sẽ được cấp phát
CPU trước), hàng đợi các tiến trình được tổ chức theo kiểu FIFO. Mọi tiến trình sẽ
thực thi tuần tự theo thứ tự xuất hiện cho đến khi kết thúc hoặc bị blocked do I/O.
+ Ưu điểm: giờ CPU không bị phân phối lại (bị ngắt) và có chi phí thực hiện thấp
nhất (vì do không 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 là như nhau. nếu hệ
thống có tiến trình có thời gian thực thi lớn đến trước thì khi đó các tiến trình khác
phải đợi mặc dù thời gian thực thi của chúng là ít, điều này sẻ làm giảm tính đáp
ứng của hệ thống.
- Round Robin (RR):
+ Khái niệm: giải thuật RR là giải thuật được thiết kế đặc biệt cho hệ thống chia sẽ
thời gian, tương tự như định thời FIFO nhưng sự trưng dụng CPU được thêm vào
để chuyển CPU giữa các tiến trình. Mỗi project được nhận một đơn vị nhỏ thời
gian CPU (hay còn gọi là quantum time hay time slice) thông thường từ 10-100
msec để thực thi. Sau thời gian đó project bị đạt quyền và trởn về cuối hàng đợi
Ready (cho dù chưa thực thi xong).
+ Ưu điểm: Các quá trình sẽ được luân phiên cho CPU xử lý nên thời gian chờ đợi
sẽ ít. Đối với các quá trình liên quan đến nhập xuất IO thì rất hiệu quả. Việc cài đặt
không quá phức tạm.
+ Nhược điểm: thời gian chờ đợt trung bình là quá dài. Nếu thời gian định mức
cho việc xử lý quá dài thì RR trở thành FCFS. Nếu thời gian quá ngắn so với thời
gian xử lý của một tiến trình trong danh sách hàng đợi thì việc chờ và xử lý luân
phiên sẽ nhiều (tốn chi phí ngữ cảnh).
- Shortest Job First (SJF):
+ Khái niệm: giải thuật SJF là giải thuật định thời công việc ngắn nhất trước. giải


thuật này gán tới mỗi tiến trình chiều dài của chu kì CPU tiếp theo cho quá trình
sau đó. Khi CPU sẵn dùng, nó được gán tới tiến trình có chu kỳ CPU ngắn nhất.
Nếu hai quá trình có cùng chiều dài chu kỳ CPU kế tiếp thì định thời FCFS dược
dùng.
+ Ưu điểm: giải thuật được xem là tối ưu, thời gian chờ đợi trung bình giảm. Tận
dụng hết năng lực của CPU.
+Nhược điểm: Cài đặt thuât toán phức tạm, tốn nhiều xử lý do quá trình quản lý.
Mặc dù SJF là tối ưu nhưng nó không được cài đặt tại cấp định thời CPU ngắn vì
không có cách nào để biết chiều dài chu kỳ CPU tiếp theo. Giải thuật SJP có thể
trưng dụng hoặc không CPU, dẫn tới giải thuật này có nhiều dị bản khác nhau và
sẽ tối ưu hay không tối ưu phụ thuộc vào trưng dụng CPU.
- Shortest Remain Time(SRT):
+ Khái niệm; tương tự như SJF nhưng trong thuật toán này, độ ưu tiên thực hiện
các tiến trình dựa vào thời gian cần thiết để thực hiện nốt tiến trình(bang tổng thời
gian trừ đi thời gian đã thực hiện).
+ Ưu điểm: Thời gian chờ đợi, tồn tại trong hệ thống của mỗi tiến trình đều ngắn.
Thuật toán tối ưu nhất.
+ Nhươc điểm: Việc cài đặt thuật toán khá phức tạp. cần quản lý chặt chẽ việc điều
phối các tiến trình. Quản lý thời gian đến mỗi tiến trình.
Câu 2: Sơ đồ khối hoạt động của các giải thuật định thời trên:
- Sơ đồ khối giải thuật FCFS:
S
S
S
S
Đ
Đ
Đ
Đ
i++

Kết thúc
totwt, tottat
Bắt đầu
i<n
start[i]=arr[i];
finish[i]=start[i]+bur[i];
wt[i]=0; tat[i]=bur[i];
totwt+=wt[i];
tottat+=tat[i]
i==0
start=finish[i-1]
arr[i]<=finish[i-1]
start[i]=arr[i];
finish[i]=start[i]+bur[i];
wt[i]=0; tat[i]=bur[i];
totwt+=wt[i];
tottat+=tat[i]
i=0
i++
Nhập pn[i],arr[i],bur[i]
Sort
i<n
i=0
Nhập số Process n
int
pn[10],arr[10],bur[10],start[10],finish[10],t
at[10],wt[10],i,n,j,totwt=0,tottat=0
- Sơ đồ khối giải thuật SJF:
int
pn[10],arr[10],bur[10],start[10],finish[10],tat[10],wt

[10],I,tmp,,n,j,totwt=0,tottat=0,time=0;
S
S
Đ
Đ
i++
Kết thúc
totwt, tottat
Bắt đầu
i<n
i=0
i++
Nhập pn[i],arr[i],bur[i]
Sort
i<n
i=0
Nhập số Process n
S
S
Sort(j,tmp); start[i]=time;
finish[i]=start[i]+bur[i];
wt[i]=start[i]-arr[i]; tat[i]=finish[i]-
arr[i]; time=finish[i];
totwt+=wt[i]; tottat+=tat[i]
start[i]=arr[i];
finish[i]=start[i]+bur[i];
wt[i]=0; tat[i]=bur[i];
time=finish[i];
totwt+=wt[i];
tottat+=tat[i]

j++
Đ
Đ
tmp=j
arr[i]<time
j<n
S
j=i
Đ
i++
time<arr[i]
S
Đ
i==0
- Sơ đồ khối giải thuật RR:
Bắt đầu
int
pn[10],arr[10],bur[10],start[10],finish[10],tat[10],wt[
10],i,QTime,,n,j,totwt=0,tottat=0,time=0,PFinish;
S
S
Đ
tat[i]=finish[i]-arr[i];
wt[i]=start[i]-arr[i];
totwt+=wt[i];
tottat+=tat[i];
Kết thúc
totwt, tottat
i<n
i=0

Đ
S
Đ
time=time+QTime;
bur1[0]=bur1[0]-QTime;
arr1[0]=time; Sort(n-1-PFinish);
time=time+bur1[0];
finish[0]=time; Swap(0,n-
1-PFinish); PFinish++;
Sort(n-1-PFinish);
Bbur1[0]<=QTime
arr[0]==arr1[0]
start[0]=time
S
Đ
arr1[0]>time
S
Đ
time++
S
Đ
PFinish<n
i++
Nhập pn[i],arr[i],bur[i]
Sort
i<n
i=0
Nhập số Process n, QTime
Câu 3: Chương trình mô phỏng các giải thuật:
- Giải thuật FCFS:

Code:
Kết quả thực thi:
Hình mô phỏng:
20
P2
P3
P1
45
300
t
35
10
0
- Giải thuật SJF:
Code:
Kết quả thực thi:
Hình mô phỏng:
- Giải thuật RR:
Code:
t
P3
P4
P1
P5
P2
85
60
40
35
10

25
0
Kết quả thực thi:
Hình mô phỏng:
t
P5
P4
P1
P3
P2
P2
P1
90
0
10
20
30
35
45
55
60
65

×