Về chế độ trưng dụng Preemptive và Non-Preemptive FCFS: chắc chắn theo cơ chế Non-Preemptive SJF: có thể theo Non-Preemptive hoặc Preemptive SJF với Preemptive còn gọi là SRTF Pri
Trang 1Một số câu hỏi từ các bạn sinh viên và một số chú ý
1 Về chế độ trưng dụng (Preemptive và Non-Preemptive)
FCFS: chắc chắn theo cơ chế Non-Preemptive
SJF: có thể theo Non-Preemptive hoặc Preemptive
SJF với Preemptive còn gọi là SRTF
Priority: có thể theo Non-Preemptive hoặc Preemptive
Round Robin (RR): hơi đặc biệt một chút so với các giải thuật trên
Với RR, khi một process nhận CPU, đang trong quantum time của nó thì nó không bao giờ nhường CPU cho bất kỳ process nào khác (nếu xem xét góc
độ này thì nó là Non-Preemptive) Nhưng khi hết quantum time, process vẫn chưa thực thi xong, thì nó về cuối hàng đợi, nhường CPU lại cho process khác; đứng trên góc độ một process chưa xong, vẫn nhường CPU thì RR lại
là Preemptive
Theo sách tham khảo chính, RR vẫn được xếp vào nhóm Preemptive
Vì vậy, mình theo sách tham khảo chính là RR là giải thuật Preemptive
Hôm thứ 4, trên lớp, cô nhớ có nói RR theo Non-Preemptive khi cô xét trên góc độ một process đang thực thi trong quantum time của nó thì nó không nhường ai hết Nhưng như phân tích ở trên, đứng trên góc độ process nếu hết quantum time, vẫn chưa xong thì vẫn nhả CPU ra để process khác vào làm, thì RR là Preemptive
2 Về SJF có thể theo Non-Preemptive hoặc Preemptive SJF với Preemptive còn gọi là SRTF
Câu hỏi đặt ra là nếu đề thi ghi SJF không, không nói gì thêm, thì em có mặc nhiên xem nó là Non-Preemptive không, vì SRTF đã được xem là SJF Non-Preemptive rồi
Trả lời:
Trên lớp làm bài, cô sẽ nói SJF là với Non-Preemptive hoặc Preemptive rõ ràng
Còn trong đề thi, nếu đề dùng mỗi SJF và không nói gì thêm thì tụi em xem đó là Non-Preemptive vì với Preemptive sẽ là SRTF
Liên quan đến vấn đề này, xem câu 10 và 11 trắc nghiệm trong file “Ly thuyet trac nghiem 1”
10 Giả thuật định thời nào có chế độ quyết định là non-preemptive:
a SJF, SRTF
b SRTF, RR
c RR, FCFS
Trang 2c RR, FCFS
d FCFS, SJF
e FCFS
Câu 10 chỉ yêu cầu là “có chế độ quyết định” Non-preemptive; trong khi đó câu 11 hỏi là “chỉ với duy nhất”
Đáp án trong câu 11 hiện tại chỉ chọn e vì đang xem SJF là với cả preemptive và non-preemptive Theo thống nhất trong ở trên, khi làm bài, các bạn xem SJF là chỉ với non-preemptive, còn SRTF là preemptive, thì câu 11 này đáp án d cũng đúng
3 Khi dùng hàm fork() để tạo process con, process con sinh ra từ chỗ hàm fork() sẽ chia sẽ code với
cha; nhưng tất cả các biến của cha thì process con sẽ tạo bản sao mới
Tuy nhiên, khi code để in ra thử địa chỉ của một biến mà process con tạo bản sao từ cha thì địa chỉ của biến này trong process con và process cha là một, tại sao?
Trả lời:
Địa chỉ được in ra này là địa chỉ ảo (virtual), không phải là địa chỉ vật lý thật (physical) Sang chương
8 các bạn sẽ học địa chỉ ảo và thật
4
Bài tập về cho đoạn code, hỏi trạng thái các tiến trình Cứ có bao nhiêu chỗ cần ngoại vi (printf thì cần màn hình, scanf thì cần bàn phím) thì process sẽ vào hàng đợi waiting bấy nhiêu lần
Câu hỏi là nếu đề có cho printf hai lần liên tục thì vào hàng đợi waiting một lần luôn cho tiện được không (Sáng thứ 5 trên lớp cũng có bạn hỏi tương tự)
Trả lời:
Lúc trên lớp cô có nói là 2 printf liên tục, thì có hai trường hợp:
Hệ thống có thể nhìn trước, và dữ liện để print ra của lần 2 không cần tính toán gì thêm, thì có thể dùng màn hình in ra cho cùng một lúc 2 printf luôn Tức chỉ xem vào hàng đợi một lần
Còn hệ thống không thể nhìn trước thì printf lần nào thì sẽ vào waiting chờ cho lần đó thôi Tức vào hàng đợi 2 lần
Khi làm bài thi, nếu có trường hợp này thì các bạn làm cách nào cũng có điểm Tuy nhiên, vì dữ liệu printf của lần 2 nhiều khi cần phải tính toán xong thì mới in được (tức cần CPU lúc này), và vì sách/slide cũng không nói gì về vấn đề nhìn trước, nên khuyến khích chọn cách thứ 2, tức cứ mấy lần printf thì process sẽ vào chờ trong waiting mấy lần, xem như hệ thống không nhìn trước gì cả