Trạng thái của tiến trình là gì


hay đợi một thao tác nhập/xuất hoàn tất, buộc phải dừng hoạt động do đã hết

thời gian xử lý .v.v.

Tại một thời điểm, một tiến trình có thể nhận một trong các trạng thái sau

đây :

- New: tiến trình đang được tạo lập.

- Ready: tiến trình chờ được cấp phát CPU để xử lý.

- Running: các chỉ thị của tiến trình đang được xử lý.

- Waiting: tiến trình chờ được cấp phát một tài nguyên, hay chờ một

sự kiện xảy ra .

- Terminated: tiến trình hoàn tất xử lý.



Hình 2.1: Sơ đồ chuyển trạng thái giữa các tiến trình

Mô tả:

Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái Running

trên một bộ xử lý bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái Waiting

hay Ready.



7



Tất cả các tiến trình mới tạo lập đều được chuyển sang trạng thái NEW

trạng thái đầu tiên, sau đó đưa vào hàng đợi, hệ điều hành sẽ lựa chọn một tiến

trình thích hợp nhất trong hàng đợi Job Queue (hàng đợi công việc) để chuyển

nó sang trang thái Ready và đưa tiến trình này vào hàng đợi Ready Queue



(hàng đợi sẵn sàng).

Hình 2.2: Sơ đồ hàng đợi

- Những tiến trình đang ở trạng thái sẵn sàng (Ready) được xếp vào hàng

đợi Ready Queue, ở trạng thái này hệ điều hành sẽ lựa chọn tiến trình thích hợp

giao CPU cho nó và chuyển nó sang trạng thái Runing. Tiến trình sau khi giao

CPU thì rời khỏi hàng đợi Ready Queue (tiến trình đó vẫn có thể quay trở lại

hàng đợi này nếu nó chưa thực thi xong).

- Tiến trình được giao CPU nếu đã thực thi hoàn tất thì kết thúc và chuyển

sang trạng thái Terminated (kết thúc) sau đó trả lại CPU cho hệ thống.

- Tiến trình được giao CPU nhưng chưa thực thi xong công việc thì sẽ bị

chuyển từ trạng thái Runing sang trạng thái Ready và quay trở về cuối hàng đợi

Ready Queue để đợi đến lượt giao CPU kế tiếp , tiến trình chuyển trạng thái

xong trả lại CPU cho hệ điều hành.

- Tiến trình được giao CPU nhưng chưa hoàn tất công việc của mình vì

phải chờ đợi sự xuất hiện của sự kiện hay IO nào đó thì sẽ được hệ điều hành

chuyển sang trạng thái Waiting và chuyển nó vào hàng đợi Waiting Queue.

- Những tiến trình ở trạng thái Waiting (nằm trong hàng đợi Waiting

Queue) sau khi sự kiện hay IO mà nó chờ xuất hiện thì lập tức nó được hệ điều

hành chuyển nó sang trạng thái sẵn sàng (Ready) và đưa nó vào hàng đợi

Ready Queue để sẵn sàng cho lần cấp CPU kế tiếp .



8



CHƯƠNG 3: ĐIỀU PHỐI TIẾN TRÌNH

I. Mục tiêu của điều phối tiến trình

- Công bằng sử dụng CPU.

- Cân bằng sử dụng các thành phần của hệ thống.

- Tận dụng CPU.

- Giảm thiểu thời gian chờ.

- Cân đối mong muốn của người dùng.

II. Các thuật toán điều phối tiến trình

1. First Come First Served (FCFS)

- Đây là thuật toán đơn giản nhất. Tiến trình nào yêu cầu CPU trước

sẽ được phục vụ trước.

- Tiêu chí lựa chọn tiến trình: Thứ tự vào hàng đợi Ready Queue.



Hình 3.1: Minh họa FCFS

- Ưu điểm:

+ Đơn giản, dễ cài đặt.

- Nhược điểm:

+ Tiến trình có thời gian xử lý ngắn phải đợi tiến trình có thời gian

xử lý dài.

+ Có thể xảy ra tình trạng độc chiếm CPU.

+ Không phù hợp với hệ thống tương tác người dùng.



9



2. Shortest Job First (SJF)

- Thuật toán cho phép tiến trình có thời gian xử lý nhỏ nhất sẽ được

xử lý trước. Nếu có nhiều tiến trình cùng thời gian xử lý thì thực hiện theo

thuật toán FCFS.



Hình 3.2: Minh họa SJF.

- Ưu điểm:

+ Tối ưu thời gian chờ.

- Nhược điểm:

+ Cần phải ước lượng thời gian cần CPU tiếp theo của các

process.



10