Bài giảng Kiến trúc máy tính và hệ điều hành

Tóm tắt Bài giảng Kiến trúc máy tính và hệ điều hành: ...ide (cache được đặt ngang hàng với bộ nhớ chính) và kiến trúc Look Through (cache được đặt giữa CPU và bộ nhớ chính). Mỗi kiến trúc cache kể trên có ưu điểm và nhược điểm riêng. Instruction 1 Instruction 2 Instruction 3 Instruction 4 Instruction 5 End of loop Start of loop CPU Ca...g trình, dữ liệu trong thời gian dài với dung lượng lớn. Thiết bị vào ra cho phép máy tính trao đổi thông tin với thế giới bên ngoài. Quản lý tài nguyên trước hết là phân phối tài nguyên tới các ứng dụng một cách hiệu quả. Để thực hiện được, các chương trình cần tài nguyên phần cứng như khôn...ng trình đó trước tiên được tìm trong thư mục của người dùng. Nếu không tìm thấy, hệ điều hành sẽ chuyển sang tìm kiếm trong thư mục đặc biệt. Hệ điều hành UNIX (và tất nhiên là Linux) cũng sử dụng kỹ thuật tương tự. b. Thư mục cấu trúc cây Cấu trúc cây là phát triển ý tưởng của cấu trúc h...

pdf144 trang | Chia sẻ: havih72 | Lượt xem: 332 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Kiến trúc máy tính và hệ điều hành, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
 Điều độ tiến trình 
6.3.2.1 Khái niệm điều độ 
Trong hệ thống cho phép đa chương trình, nhiều tiến trình có thể tồn tại và thực hiện cùng 
một lúc. Kỹ thuật đa chương trình có nhiều ưu điểm do cho phép sử dụng CPU hiệu quả, đồng 
thời đáp ứng tốt hơn yêu cầu tính toán của người dùng. Bên cạnh đó, đa chương trình cũng đặt 
ra nhiều vấn đề phức tạp hơn đối với hệ điều hành. Một trong những vấn đề cơ bản khi thực 
hiện đa chương trình là vấn đề điều độ. 
Điều độ (scheduling) hay lập lịch là quyết định tiến trình nào được sử dụng tài nguyên 
phần cứng khi nào, trong thời gian bao lâu. Bài toán điều độ được đặt ra với mọi dạng tài 
nguyên khác nhau, chẳng hạn thiết bị vào ra, CPU, bộ nhớ, kể cả trong trường hợp có chia 
sẻ thời gian hay không. Trong phần này, chúng ta sẽ tập trung vào vấn đề điều độ đối với 
CPU, gọi là điều độ CPU, hay là điều độ tiến trình. 
Đối với hệ thống bao gồm một CPU duy nhất, tại mỗi thời điểm chỉ một tiến trình được 
cấp CPU để thực hiện. Hệ điều hành có thể chờ cho tới khi tiến trình không sử dụng CPU nữa 
hoặc chủ động điều độ lại để chuyển CPU sang thực hiện tiến trình khác, tùy thuộc vào 
phương pháp điều độ cụ thể. Như vậy điều độ tiến trình là quyết định thứ tự và thời gian sử 
dụng CPU. Đối với hệ thống nhiều CPU, việc điều độ thường phức tạp hơn, và sẽ không được 
đề cập tới ở đây. 
Điều độ tiến trình và điều độ dòng. Trong những hệ thống trước đây, tiến trình là đơn 
vị thực hiện chính, là đối tượng được cấp CPU, và việc điều độ được thực hiện đối với tiến 
trình. Hệ thống hiện nay thường hỗ trợ dòng. Trong trường hợp này, dòng mức nhân là đơn vị 
thực hiện được hệ điều hành cấp phát CPU chứ không phải tiến trình, và do vậy việc điều độ 
Đang chạy 
Sẵn sàng 
Chờ đợi đọc đĩa 
PCB 
PCB PCB PCB 
PCB PCB 
Chương 6 – Các thành phần của hệ điều hành 
 134 
được hệ điều hành thực hiện trực tiếp với dòng. Tuy nhiên, thuật ngữ điều độ tiến trình vẫn 
được sử dụng rộng rãi và được hiểu tương đương với điều độ dòng, trừ khi có giải thích cụ 
thể. 
6.3.2.2 Các dạng điều độ 
Điều độ dài hạn và ngắn hạn 
Trong một số hệ thống, điều độ tiến trình được phân chia thành một số mức khác nhau, bao 
gồm: điều độ dài hạn, điều độ trung hạn, và điều độ ngắn hạn. Theo như tên gọi, điều độ dài 
hạn được thực hiện cho những khoảng thời gian dài và ít diễn ra nhất. Ngược lại, điều độ ngắn 
hạn diễn ra thường xuyên, điều độ trung hạn chiếm vị trí ở giữa. 
Điều độ dài hạn được thực hiện khi mới tạo ra tiến trình. Hệ điều hành quyết định xem 
tiến trình có được thêm vào danh sách đang hoạt động hay không. Nếu được chấp nhận, trong 
hệ thống sẽ thêm tiến trình mới. Ngược lại, tiến trình sẽ phải chờ tới thời điểm khác để được 
tạo ra và thực hiện. Điều độ dài hạn ảnh hưởng tới mức độ đa chương trình, tức là số lượng 
tiến trình tối đa trong hệ thống. Trong máy tính cá nhân, người dùng ít cảm nhận được ảnh 
hưởng của điều độ dài hạn do hầu hết tiến trình đều được chấp nhận tạo mới. Đối với những 
máy tính lớn được sử dụng chung, điều độ dài hạn đóng vai trò quan trọng và rõ ràng hơn. 
Điều độ trung hạn là quyết định tiến trình có được cấp bộ nhớ để thực hiện không. Để 
thực hiện được, tiến trình cần được tải vào bộ nhớ hoàn toàn, hoặc một phần nếu sử dụng bộ 
nhớ ảo. Trong một số trường hợp như khi mới khởi tạo và bộ nhớ được nạp trang theo nhu 
cầu, hay khi tiến trình bị trao đổi ra đĩa (swapping) để nhường chỗ cho tiến trình khác, hệ điều 
hành cần quyết định có cho phép tải tiến trình vào bộ nhớ để thực hiện không. Điều độ trung 
hạn cũng ảnh hưởng tới mức độ đa chương trình và được quyết định dựa trên mức độ ưu tiên 
cùng tình trạng hệ thống. Các tiến trình đã được tạo mới và được tải vào bộ nhớ do kết quả 
điều độ dài hạn và trung hạn được xếp vào hàng đời để điều độ ngắn hạn. 
Điều độ ngắn hạn là quyết định tiến trình nào được cấp CPU để thực hiện. Việc điều độ 
ngắn hạn được thực đối với những tiến trình đang ở trạng thái sẵn sàng. Hệ điều hành lựa 
chọn một tiến trình đang trong bộ nhớ và sẵn sàng thực hiện để cấp phát CPU. Việc lựa chọn 
tiến trình được thực hiện theo một thuật toán nào đó. 
Các dạng điều độ gắn liền với việc chuyển tiến trình tự trạng thái này sang trạng thái 
khác. Hình 114 minh họa quan hệ giữa trạng thái tiến trình và ba dạng điều độ trên. 
Chương 6 – Các thành phần của hệ điều hành 
 135 
Hình 114. Các dạng điều độ 
Trong các phần tiếp theo, chúng ta chỉ xem xét vấn đề điều độ ngắn hạn. Vì vậy, nếu 
không nói gì thêm, điều độ tiến trình được hiểu là điều độ ngắn hạn hay điều độ CPU. 
Điều độ có phân phối lại 
Tùy thuộc vào việc hệ điều hành có thể thực hiện điều độ khi một tiến trình đang sử 
dụng CPU hay không, ta phân biệt điều độ không phân phối lại (nonpreemptive) và điều độ 
có phân phối lại (preemptive). 
Điều độ có phân phối lại là kiểu điều độ trong đó hệ điều hành có thể sử dụng cơ chế 
ngắt để thu hồi CPU của một tiến trình đang trong trạng thái chạy. Với kiểu điều độ này, hệ 
điều hành có thể phân phối lại CPU một cách chủ động, không cần chờ cho tới khi tiến trình 
đang chạy kết thúc hoặc chuyển sang trạng thái chờ đợi. 
Điều độ không phân phối lại là kiểu điều độ trong đó tiến trình đang ở trạng thái chạy sẽ 
được sử dụng CPU cho đến khi xảy ra một trong các tình huống sau: tiến trình kết thúc, hoặc 
tiến trình phải chuyển sang trạng thái chờ đợi do thực hiện yêu cầu vào/ra hoặc lời gọi hệ 
thống, hoặc chờ đợi tín hiệu đồng bộ từ tiến trình khác. Điều độ không phân phối lại còn gọi 
lại điều độ hợp tác (cooperative), do việc điều độ chỉ có thể thực hiện khi tiến trình thể hiện 
thái độ hợp tác và nhường lại CPU do không cần dùng nữa. Trong trường hợp tiến trình 
không hợp tác và chiếm CPU vô hạn, ví dụ khi sử dụng vòng lặp vô hạn không chứa lời gọi 
hệ thống, các tiến trình khác sẽ không bao giờ được cấp CPU. 
Các phiên bản đầu tiên của Windows là Windows 3.x sử dụng điều độ không phân phối 
lại. Windows 95, NT và các phiên bản sau sử dụng điều độ có phân phối lại, cho phép thực 
hiện đa chương trình và chia sẻ thời gian đúng nghĩa và tin cậy hơn. 
So với điều độ không phân phối lại, điều độ có phân phối lại có nhiều ưu điểm hơn do 
hệ điều hành chủ động hơn, không phụ thuộc vào hoạt động của tiến trình. Chỉ có điều độ 
phân phối lại mới đảm bảo chia sẻ thời gian thực sự. Tuy nhiên, điều độ có phân phối lại đòi 
hỏi phần cứng phải có bộ định thời gian (timer) và một số hỗ trợ khác. 
Mới 
khởi 
tạo 
Sẵn 
sàng 
Chạy 
Kết 
thúc 
Chờ 
đợi 
Điều độ ngắn hạn 
Điều độ 
trung hạn 
Điều độ 
dài hạn 
Chương 6 – Các thành phần của hệ điều hành 
 136 
Bên cạnh đó, điều độ có phân phối lại cũng làm cho vấn đề quản lý tiến trình phức tạp 
hơn, đặc biệt trong trường hợp các tiến trình chia sẻ dữ liệu dùng chung hoặc có cạnh tranh về 
tài nguyên. Lấy ví dụ hai tiến trình cùng sử dụng một mảng dữ liệu chung. Do có phân phối 
lại, CPU có thể được thu hồi từ tiến trình thứ nhất để cấp cho tiến trình thứ hai khi chưa tiến 
trình thứ nhất chưa cập nhật xong dữ liệu. Nếu tiến trình thứ hai đọc dữ liệu khi đó sẽ nhận 
được dữ liệu không nhất quán. 
6.3.2.3 Các tiêu chí điều độ 
Các tiến trình trong trạng thái sẵn sàng được xếp vào hàng đợi chờ được điều độ, tức là 
chờ được cấp CPU để thực hiện. Hệ điều hành sử dụng thuật toán điều độ để lựa chọn tiến 
trình được cấp CPU tiếp theo. Mỗi thuật toán thường tốt cho một số trường hợp cụ thể tùy vào 
điều kiện hệ thống và tiêu chí điều độ. 
Có nhiều tiêu chí được sử dụng khi điều độ CPU và đánh giá thuật toán. Một số tiêu chí 
chú trọng tới việc khai thác hiệu quả hệ thống trong khi một số tiêu chí tập trung nâng cao 
tính tiện lợi cho người dùng. Sau đây là một số tiêu chí thường sử dụng: 
- Lượng tiến trình được thực hiện xong. Tiêu chí này được tính bằng số lượng tiến 
trình thực hiện xong trong một đơn vị thời gian. Trên thực tế, thời gian thực hiện tiến 
trình rất khác nhau, có tiến trình cần nhiều thời gian, có tiến trình ít hơn. Tuy nhiên, 
tiêu chí này mang tính trung bình và là một độ đo tính hiệu quả của hệ thống. 
- Hiệu suất sử dụng CPU. Một trong những yêu cầu sử dụng hiệu quả hệ thống là cố 
gắng để CPU càng ít phải nghỉ càng tốt. Tỷ lệ phần trăm thời gian CPU trong trạng 
thái hoạt động thay đổi tùy hệ thống cụ thể. 
- Thời gian vòng đời trung bình tiến trình. Được tính bằng thời gian từ lúc có yêu 
cầu khởi tạo tiến trình tới khi tiến trình kết thúc. Thời gian này bằng tổng thời gian tải 
tiến trình, thời gian chờ đợi, chạy, vào/ra dữ liệu. 
- Thời gian chờ đợi. Tính bằng tổng thời gian tiến trình nằm trong trạng thái sẵn sàng 
và chờ được cấp CPU. Lưu ý rằng, thời gian chờ đợi lớn hay nhỏ chịu ảnh hưởng trực 
tiếp của thuật toán điều độ CPU. 
- Thời gian đáp ứng. Đây là tiêu chí hướng tới người dùng và thường được sử dụng 
trong hệ thống tương tác trực tiếp. Đối với hệ thống như vậy, tiêu chí quan trọng là 
đảm bảo thời gian từ lúc nhận được yêu cầu cho tới khi hệ thống có phản ứng hay đáp 
ứng đầu tiên không quá lâu. 
Trong số các tiêu chí nói trên, ba tiêu chí đầu tiên có giá trị càng lớn càng tốt, trong khi 
đó hai tiêu chí cuối là thời gian chờ đợi và thời gian đáp ứng càng nhỏ càng tốt. Riêng đối với 
thời gian đáp ứng, bên cạnh việc đảm bảo giá trị đáp ứng trung bình nhỏ cũng cần đảm bảo để 
không tiến trình nào có thời gian đáp ứng quá lâu. 
Bên cạnh những tiêu chí nói trên, một yêu cầu quan trọng là đảm bảo tính ổn định của 
hệ thống, thể hiện qua việc giá trị tiêu chí trong từng trường hợp cụ thể không lệch quá xa so 
với giá trị trung bình của tiêu chí đó. Ngoài ra những tiến trình giống nhau cần được đối xử 
công bằng. Các yêu cầu này được thể hiện qua hai tiêu chí bổ sung sau: 
Chương 6 – Các thành phần của hệ điều hành 
 137 
- Tính dự đoán được. Vòng đời, thời gian chờ đợi, và thời gian đáp ứng của một tiến 
trình cụ thể phải ổn định, không phụ thuộc vào tải của hệ thống. Ví dụ, người sử dụng 
phải nhận được đáp ứng từ hệ thống trong một thời gian chấp nhận được và không bị 
thay đổi lớn trong bất kể tình huống nào. 
- Tính công bằng. Những tiến trình cùng độ ưu tiên phải được đối xử như nhau, không 
tiến trình nào bị đói tài nguyên hơn những tiến trình khác. 
Trong phần sau, ta sẽ sử dụng những tiêu chí trên khi xem xét thuật toán điều độ cụ thể. 
6.3.2.4 Các thuật toán điều độ 
Nhiều thuật toán điều độ tiến trình được đề xuất và sử dụng trên thực tế. Sau đây là những 
thuật toán tiêu biểu hoặc thường gặp nhất. 
a. Thuật toán đến trước phục vụ trước 
Đến trước phục vụ trước (First Come First Served – viết tắt là FCFS) là phương pháp điều độ 
đơn giản nhất, cả về nguyên tắc và cách thực hiện. Tiến trình yêu cầu CPU trước sẽ được cấp 
CPU trước. 
Hệ điều hành xếp tiến trình sẵn sàng vào hàng đợi FIFO. Tiến trình mới được xếp vào cuối 
hàng đợi, khi CPU được giải phóng, hệ điều hành sẽ lấy tiến trình từ đầu hàng đợi và cấp 
CPU cho tiến trình đó thực hiện. 
Mặc dù đơn giản và đảm bảo tính công bằng, FCFS có thời gian chờ đợi trung bình của tiến 
trình lớn do phải chờ đợi tiến trình có chu kỳ CPU dài trong trường hợp những tiến trình như 
vậy nằm ở đầu hàng đợi. Để minh họa, ta xét ví dụ: cho 3 tiến trình với thứ tự xuất hiện và độ 
dài chu kỳ CPU như sau: 
Tiến trình Độ dài chu kỳ CPU 
P1 10 
P2 4 
P3 2 
Kết quả điều độ theo thuật toán FCFS thể hiện trên hình sau: 
 10 14 
10 4 2 
P1 P2 P3 
Thời gian chờ đợi của P1, P2, P3 lần lượt là 0, 10, và 14. 
Thời gian chờ đợi trung bình = (0 + 10 + 14)/3 = 8. 
Chương 6 – Các thành phần của hệ điều hành 
 138 
Có thể thấy thời gian chờ đợi trung bình như vậy là rất lớn, chẳng hạn so với trường hợp tiến 
trình được cấp CPU theo thứ tự P3, P2, P1. Khi đó thời gian chờ đợi trung bình giảm xuống 
chỉ còn (6 + 2 + 0)/3 = 2,67. 
Cần lưu ý rằng việc tăng thời gian chờ đợi CPU của tiến trình ảnh hưởng rất lớn tới hiệu suất 
chung của hệ thống do nhiều tiến trình phải dồn lại chờ một tiến trình trong khoảng thời gian 
quá lâu, dẫn tới tình trạng không tiến trình nào thực hiện được công việc của mình, kể cả vào 
ra. Kết quả là toàn hệ thống phải dừng lại chờ giải phóng CPU. 
Thuật toán FCFS thông thường là thuật toán điều độ không phân phối lại. Sau khi tiến trình 
được cấp CPU, tiến trình đó sẽ sử dụng CPU cho đến khi kết thúc hoặc phải dừng lại để chờ 
kết quả vào ra. Để có thể sử dụng được trong những hệ thống chia sẻ thời gian, thuật toán đến 
trước phục vụ trước được cải tiến để thêm cơ chế phân phối lại. Ta sẽ xem xét thuật toán điều 
độ như vậy trong một phần sau. 
b. Điều độ quay vòng 
Điều độ quay vòng (round robin - RR) là phiên bản sửa đổi của FCFS được dùng cho các hệ 
chia sẻ thời gian. Điều độ quay vòng tương tự FCFS nhưng có thể cơ chế phân phối lại bằng 
cách sử dụng ngắt của đồng hồ. Hệ thống định nghĩa những khoảng thời gian nhỏ gọi là lượng 
tử thời gian (time quantum) hay lát cắt thời gian (time slice) có độ dài từ vài mili giây tới vài 
trăm mili giây tùy vào cấu hình cụ thể. Tiến trình sẽ lần lượt được cấp CPU trong những 
khoảng thời gian như vậy trước khi bị ngắt và CPU được cấp cho tiến trình khác. 
Giống như FCFS, tiến trình sẵn sàng được xếp vào hàng đợi sao cho tiến trình đến sau được 
thêm vào cuối hàng. Khi CPU được giải phóng, hệ điều hành đặt thời gian của đồng hồ bằng 
độ dài lượng tử, lấy một tiến trình ở đầu hàng đợi và cấp CPU cho tiến trình. 
Sau khi được cấp CPU, tiến trình chuyển sang trạng thái chạy. Nếu tiến trình kết thúc chu kỳ 
sử dụng CPU trước khi hết thời gian lượng tử, tiến trình sẽ giải phóng CPU và trả lại quyền 
điều khiển cho hệ điều hành. Trong trường hợp ngược lại, khi hết độ dài lượng tử, đồng hồ sẽ 
sinh ngắt. Tiến trình đang thực hiện phải dừng lại và quyền điều khiển chuyển cho hàm xử lý 
ngắt của hệ điều hành. Hệ điều hành thực hiện việc chuyển đổi ngữ cảnh và chuyển tiến trình 
về cuối hàng đợi sau đó chọn một tiến trình ở đầu và lặp lại quá trình trên. 
Điều độ quay vòng cho phép cải thiện thời gian đáp ứng của tiến trình so với FCFS nhưng vẫn 
có thời gian chờ đợi trung bình tương đối dài. Sau đây là minh họa cho phương pháp điều độ 
này với ba tiến trình P1, P2, P3 lấy từ ví dụ ở phần trước và lượng tử thời gian có độ dài bằng 
2. 
 2 4 6 8 10 12 14 
2 2 2 2 2 2 2 2 
P1 P2 P3 P1 P2 P1 P1 P1 
Thời gian chờ đợi của P1, P2, P3 lần lượt là 6, 6, và 4. 
Thời gian chờ đợi trung bình = (6 + 6 + 4)/3=5,33. 
Chương 6 – Các thành phần của hệ điều hành 
 139 
Một vấn đề quan trọng khi điều độ quay vòng là lựa chọn độ dài lượng tử thời gian. Nếu 
lượng tử ngắn, thời gian đáp ứng sẽ giảm. Tuy nhiên, việc chuyển đổi tiến trình diễn ra 
thường xuyên đòi hỏi nhiều thời gian hơn cho việc chuyển đổi ngữ cảnh. Độ dài lượng tử nên 
lựa chọn lớn hơn thời gian cần thiết để tiến trình thực hiện một thao tác tương tác tiêu biểu 
hoặc. Ngược lại, lượng tử càng lớn càng tốn ít thời gian chuyển đổi giữa các tiến trình nhưng 
tính đáp ứng cũng kém đi. Khi lượng tử lớn tới một mức nào đó, điều độ quay vòng sẽ trở 
thành FCFS. 
c. Điều độ ưu tiên tiến trình ngắn nhất 
Một phương pháp điều độ cho phép giảm thời gian chờ đợi trung bình là điều độ ưu tiên tiến 
trình ngắn nhất trước (Shortest Process First - SPF), hay còn có các tên gọi khác như công 
việc ngắn nhất trước (Shortest Job Fist), tiến trình ngắn nhất tiếp theo (Shortest Process Next). 
Phương pháp điều độ này lựa chọn trong hàng đợi tiến trình có chu kỳ sử dụng CPU tiếp theo 
ngắn nhất để phân phối CPU. Trong trường hợp có nhiều tiến trình với chu kỳ CPU tiếp theo 
bằng nhau, tiến trình đứng trước sẽ được chọn. 
Ưu điểm lớn nhất của SPF so với FCFS là thời gian chờ đợi trung bình nhỏ hơn nhiều. Xét ví 
dụ điều độ cho các tiến trình như ở phần trên nhưng sử dụng SPF. 
 2 6 
2 4 10 
P3 P2 P1 
Thời gian chờ đợi trung bình = (6 + 2 +0)/3 = 2,67. 
Mặc dù điều độ ưu tiên tiến trình ngắn nhất có thời gian chờ đợi trung bình tối ưu, phương 
pháp này rất khó sử dụng trên thực tế do đòi hỏi phải biết trước độ dài chu kỳ sử dụng CPU 
tiếp theo của tiến trình. Có hai cách để giải quyết phần nào khó khăn này. Cách thứ nhất được 
áp dụng đối với hệ thống xử lý theo mẻ như tại các trung tâm tính toán hiệu năng cao hiện 
nay. Quản trị hệ thống căn cứ vào thời gian đăng ký tối đa do lập trình viên cung cấp để xếp 
những ứng dụng có thời gian đăng ký ngắn hơn lên trước. Lưu ý, đây là thời gian thực hiện cả 
ứng dụng chứ không phài một chu kỳ sử dụng CPU cụ thể. 
Cách thứ hai là dự đoán độ dài chu kỳ sử dụng CPU tiếp theo. Cách dự đoán đơn giản nhất là 
dựa trên độ dài trung bình các chu kỳ CPU trước đó để dự đoán độ dài chu kỳ tiếp theo và ra 
quyết định cấp CPU. 
Điều độ ưu tiên tiến trình ngắn nhất trước là điều độ không có phân phối lại. Nếu một tiến 
trình được cấp CPU, tiến trình sẽ thực hiện cho tới khi không cần CPU nữa, kể cả trong 
trường hợp xuất hiện tiến trình mới với chu kỳ sử dụng CPU ngắn hơn chu kỳ CPU còn lại 
của tiến trình đang thực hiện. Trong phần tiếp theo ta sẽ xem xét việc thêm cơ chế phân phối 
lại cho điều độ ưu tiên tiến trình ngắn nhất trước. 
Chương 6 – Các thành phần của hệ điều hành 
 140 
d. Điều độ ưu tiên thời gian còn lại ngắn nhất 
Phiên bản ưu tiên tiến trình ngắn nhất có thêm cơ chế phân phối lại được gọi là điều độ ưu 
tiên thời gian còn lại ngắn nhất trước (Shortest Remaining Time First – SRTF). Khi một tiến 
trình mới xuất hiện trong hàng đợi, hệ điều hành so sánh thời gian còn lại của tiến trình đang 
chạy với thời gian còn lại của tiến trình mới xuất hiện. Nếu tiến trình mới xuất hiện có thời 
gian còn lại ngắn hơn, hệ điều hành sẽ thu hồi CPU của tiến trình đang chạy và phân phối cho 
tiến trình mới. 
Cũng giống như điều độ ưu tiên tiến trình ngắn nhất, điều độ ưu tiên thời gian còn lại ngắn 
nhất có thời gian chờ đợi trung bình nhỏ nhưng đòi hỏi hệ điều hành phải dự đoán được độ dài 
chu kỳ sử dụng CPU của tiến trình. So với điều độ quay vòng, việc chuyển đổi tiến trình diễn 
ra ít hơn và do vậy không tốn nhiều thời gian chuyển đổi ngữ cảnh. 
e. Điều độ có mức ưu tiên 
Theo phương pháp này, mỗi tiến trình có một mức ưu tiên. Tiến trình được ưu tiên hơn sẽ 
được cấp CPU trước. Các tiến trình có mức ưu tiên như nhau được điều độ theo nguyên tắc 
FCFS. 
Có thể thấy hai phương pháp STF và SRTF ở trên là trường hợp riêng của điều độ có mức ưu 
tiên trong đó tiến trình có thời gian chu kỳ CPU hoặc thời gian chu kỳ CPU còn lại ngắn hơn 
được ưu tiên hơn. Trong trường hợp tổng quát, mức ưu tiên được xác định theo nhiều tiêu chí 
khác nhau như yêu cầu bộ nhớ, hạn chế thời gian Mức ưu tiên cũng có thể do người quản 
trị hệ thống xác định dựa trên mức độ quan trọng của tiến trình. 
Hệ điều hành quy định mức ưu tiên dưới dạng số nguyên trong một khoảng nào đó, ví dụ từ 0 
đến 31. Tuy nhiên, không có quy tắc chung về việc mức ưu tiên cao tương ứng với số nhỏ 
hay số to. Một số hệ điều hành coi số 0 ứng với mức ưu tiên cao nhất trong khi một số hệ điều 
hành sử dụng 0 cho mức ưu tiên thấp nhất. 
 141 
TÀI LIỆU THAM KHẢO 
1. Stallings W., Computer Organization and Architecture: Designing for Performance, 8th 
Edition, Prentice – Hall 2009. 
2. Mostafa Abd-El-Barr and Hesham El-Rewini, Fundamentals of Computer Organization 
and Architecture, John Wiley & Sons, Inc, 2005. 
3. Hennesy J.L. and Patterson D.A., Computer Architecture. A Quantitative Approach, 
Morgan Kaufmann, 4
th
 Edition, 2006. 
4. A. Silbeschatz, P.B. Galvin, G. Gagne, Operating system concepts, 8th edition. John Wiley 
& Sons, 2009. 
5. W. Stallings, Operating Systems: Internals and Design Principles, 5th edition, Prentice 
Hall, 2005. 
6. Hồ Khánh Lâm, Kỹ thuật vi xử lý, Nhà xuất bản Bưu điện, 2005. 
7. Trần Quang Vinh, Cấu trúc máy vi tính, Nhà xuất bản Giáo dục, 1999. 
8. Hà Quang Thụy, Giáo trình Nguyên lý các hệ điều hành, In lần thứ ba, NXB KHKT 
2009. 
9. Trang Wikipedia.org, tham khảo năm 2009 và 2010, 2012. 
10. Trang Howstuffworks.com, tham khảo năm 2009 và 2010. 
11. Trang PCGuide.com, tham khảo năm 2009 và 2010. 

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_va_he_dieu_hanh.pdf