BÀI BÁO CÁO LAB 4Họ và tên: Bùi Hữu Khôi 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 SevedFCFS : + Khái niệm: giải thuật FCFS là giải
Trang 1BÀI BÁO CÁO LAB 4
Họ và tên: Bùi Hữu Khôi
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)
Trang 2- 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:
Trang 3S 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], tat[10],wt[10],i,n,j,totwt=0,tottat=0
Trang 4- 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
Trang 5- 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
Đ
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
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
Trang 6Câu 3: Chương trình mô phỏng các giải thuật:
- Giải thuật FCFS:
Code:
Trang 7Kết quả thực thi:
Hình mô phỏng:
20
P1
45 30
t
35 10
0
Trang 8- Giải thuật SJF: Code:
Trang 9Kết quả thực thi:
Hình mô phỏng:
- Giải thuật RR:
Code:
t
P2
85 60
40 35
0
Trang 11Kết quả thực thi:
Hình mô phỏng:
t P5
P4 P1 P3 P2
90