Tiến trình trong hệ điều hành (Phần 2)

Trong bài viết trước mình đã giới thiệu sơ lược về định nghĩa, đặc điểm và phân loại tiến trình, ở bài viết này, mình xin tiếp tục trình bày về vấn đề quan trọng đó là điều phối tiến trình trong hệ điều hành.

Các trạng thái của tiến trình

Trạng thái của tiến trình tại một thời điểm được xác định bởi hoạt động hiện thời của tiến trình tại thời điếm đó. Trong quá trình sống một tiến trình thay đổi trạng thái do nhiều nguyên nhân như: phải chờ một sự kiện nào đó xảy ra ,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ý…… 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: * Mới tạo(new): tiến trình đang được tạo lập * Running: các chỉ thị của tiến trình đang được xử lý. * Blocked: tiến trình chờ được cấp phát tài nguyên,hay chờ một sự kiện xảy ra. * Ready(ready): tiến trình chờ được cấp phát CPU để xử lý. * Waiting (đợi): tiến trình phải dừng vì thiếu tài nguyên hoặc chờ một sự kiện nào đó. * Kết thúc(halt) : tiến trình hoàn tất xử lý Các trạng thái của tiến trình được biểu diễn qua sơ đồ sau:

Mục đích

Sự công bằng: Các tiến trình chia sẻ CPU một cách công bằng,không có tiến trình nào phải chờ đợi vô hạn để được cấp phát CPU. Tính hiệu quả: Hệ thống phải tận dụng được CPU 100% thời gian.(thời gian chờ trung bình ngắn). Thời gian đáp ứng hợp lý: Cực tiểu hóa thời gian hồi đáp cho các tương tác của người sử dụng. Thời gian lưu lại trong hệ thống: Cực tiểu hóa thời gian hoàn tất các ác vụ xử lý. Thông lượng tối đa: Cực đại hóa số công việc được xử lý trong một đơn vị thời gian .

Tuy nhiên thường không thể thỏa mãn tất cả các mục tiêu kể trên vì bản thân chúng có sự mâu thuẩn nhau mà chỉ có thể dung hòa chúng ở mức độ nào đó.

Cơ chế điều phối độc quyền

Nguyên lý: Cơ chế này cho phép một tiến trình khi nhận được CPU sẽ có quyền đọc chiếm CPU đến khi hoàn tất xử lý hoặc tự giải phóng CPU.Khi đó quyết định điều phối sẻ xảy ra các trường hợp sau. • Tiến trình chuyển từ trạng thái running --> blockit • Kết thúc tiến trình. Các giải thuật độc quyền dễ cài đặt thuật toán.Tuy nhiên lại không thích hợp cho hệ thống tổng quát nhiều người dùng.Vì nếu cho tiến trình thời gian chiếm giử CPU tùy ý thì sẻ ngăn cản quá trình xử lý của các tiến trình còn lại.

Cơ chế điều phối không độc quyền.

Ngược với nguyên lý độc quyền ,điều phối theo nguyên lý không đọc quyền cho phép tạm dừng hoạt động của tiến trình đang sẵn sang xử lý.Khi một tiến trình nhận CPU nó vấn được sử dụng CPU cho đến khi hoàn tất hoặc tự nguyện giải phóng CPU,nhưng một tiến trình khác có độ ưu tiên cao hơn có thể dành quyền sử dụng CPU của tiến trình ban đầu.Như vậy tiến trình có thể dừng hoạt động bắt cứ lúc nào mà không được báo trước để tiến trình khác xử lý.Các quyết định điều phối xảy ra khi: • Tiến trình chuyển từ trạng thái running --> blocked. • Một tiến trình chờ trạng thái xử lý. • Chuyển từ trạng thái chờ(blocked) --> ready. • Khi một tiến trình kết thúc. Các thuật toán điều phối theo nguyên tắc không đọc quyến ngăn cản tình trạng một tiến trình đọc chiếm CPU.

Trong bài viết sau mình sẽ trình bày về chiến lược một hàng đợi nhiều tiến trình chờ phân phối xử lý. Trong chiến lược một hàng đợi này có 4 thuật toán chính FIFO, SJF ,RR, thuật toán ƯU TIÊN

Mr.Nara