Bài tập điều phối tiến trình trong hệ điều hành năm 2024

Để c� thể thõa mãn các mục tiêu kể trên, cần phải giải quyết các vấn đề nảy sinh khi c� nhiều tiến trình đồng thời yêu cầu một tài nguyên không thể chia sẻ.

II. Điều phối tiến trình

Trong môi trường đa chương, có thể xảy ra tình huống nhiều tiến trình đồng thời sẵn sàng để xử l�. Mục tiêu của các hệ phân chia thời gian (time-sharing) là chuyển đổi CPU qua lại giữa c�c tiến trình một cách thường xuyên để nhiều người sử dụng có thể tương tác cùng lúc với từng chương trình trong quá trình xử lý.

Để thực hiện đ

ược mục tiêu này, hệ điều hành phải lựa chọn tiến trình được xử lý tiếp theo. Bộ điều phối sẽ sử dụng một giải thuật điều phối th�ch hợp để thực hiện nhiệm vụ này. Một thành phần khác của hệ điều hành cũng tiềm ẩn trong công tác điều phối là bộ phân phối (dispatcher). Bộ phân phối sẽ chịu trách nhiệm chuyển đổi ngữ cảnh và trao CPU cho tiến trình được chọn bởi bộ điều phối để xử l�.

Bài tập điều phối tiến trình trong hệ điều hành năm 2024
II.1. Giới thiệu

Bài tập điều phối tiến trình trong hệ điều hành năm 2024
II.1.1. Mục tiêu điều phối
Bộ điều phối kh�ng cung cấp cơ chế, mà đưa ra các quyết định. C�c hệ điều hành xây dựng nhiều chiến lược khác nhau để thực hiện việc điều phối, nhưng tựu chung cần đạt được các mục tiêu sau :
a) Sự công bằng ( Fairness) :
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
  1. Tính hiệu qủa (Efficiency) :
    Hệ thống phải tận dụng được CPU 100% thời gian.
  1. Thời gian đ�p ứng hợp l� (Response time) :
    Cực tiểu hoá thời gian hồi đ�p cho c�c tương tác của người sử dụng
  1. Thời gian lưu lại trong hệ thống ( Turnaround Time) :
    Cực tiểu hóa thời gian hoàn tất các tác vụ xử lý theo lô.
  1. Thông lượng tối đa (Throughput ) :
    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 với nhau mà chỉ có thể dung hòa chúng ở mức độ nào đ�.

Bài tập điều phối tiến trình trong hệ điều hành năm 2024
II.1.2. Các đặc điểm của tiến trình

Điều phối hoạt động của c�c tiến tr

ình là một vấn đề rất phức tạp, đòi hỏi hệ điều hành khi giải quyết phải xem xét nhiều yếu tố khác nhau để c� thể đạt được những mục tiêu đề ra. Một số đặc t�nh của tiến trình cần được quan tâm như tiêu chuẩn điều phối :

  1. Tính hướng xuất / nhập của tiến trình ( I/O-boundedness):
    Khi một tiến trình nhận được CPU, chủ yếu nó chỉ sử dụng CPU đến khi ph�t sinh một yêu cầu nhập xuất ? Hoạt động của c�c tiến trình như thế thường bao gồm nhiều lượt sử dụng CPU , mỗi lượt trong một thời gian khá ngắn.
  1. Tính hướng xử lý của tiến trình ( CPU-boundedness):
    Khi một tiến trình nhận được CPU, nó có khuynh hướng sử dụng CPU đến khi hết thời gian dành cho nó ? Hoạt động của c�c tiến trình như thế thường bao gồm một số ít lượt sử dụng CPU , nhưng mỗi lượt trong một thời gian đủ dài.
  1. Tiến trình tương tác hay xử lý theo lô :
    Người sử dụng theo kiểu tương tác thường yêu cầu được hồi đ�p tức thời đối với c�c yêu cầu của họ, trong khi các tiến trình của tác vụ được xử lý theo lô nói chung có thể trì hoãn trong một thời gian chấp nhận được.
  1. Độ ưu tiên của tiến trình :
    Các tiến trình có thể được phân cấp theo một số tiêu chuẩn đ�nh gi� nào đ�, một c�ch hợp l�, c�c tiến trình quan trọng hơn ( có độ ưu tiên cao hơn) cần được ưu tiên hơn.
  1. Thời gian đã sử dụng CPU của tiến trình :
    Một số quan điểm ưu tiên chọn những tiến trình đã sử dụng CPU nhiều thời gian nhất vì hy vọng chúng sẽ cần ít thời gian nhất để hoàn tất và rời khỏi hệ thống . Tuy nhiên cũng có quan điểm cho rằng c�c tiến trình nhận được CPU trong ít thời gian là những tiến trình đã phải chờ lâu nhất, do vậy ưu tiên chọn chúng.
  1. Thời gian còn lại tiến trình cần để hoàn tất :
    Có thể giảm thiểu thời gian chờ đợi trung bình của các tiến trình bằng cách cho các tiến trình cần ít thời gian nhất để hoàn tất được thực hiện trước. Tuy nhiên đ�ng tiếc là rất hiếm khi biết được tiến trình cần bao nhiêu thời gian nữa để kết th�c xử l�.

Bài tập điều phối tiến trình trong hệ điều hành năm 2024
II.1.3. Điều phối kh�ng độc quyền và điều phối độc quyền (preemptive/nopreemptive)

Thuật toán điều phối cần xem x�t và quyết định thời điểm chuyển đổi CPU giữa c�c tiến trình. Hệ điều hành có thể thực hiện cơ chế điều phối theo nguyên lý độc quyền hoặc không độc quyền.

Bài tập điều phối tiến trình trong hệ điều hành năm 2024
Điều phối độc quyền

: Nguyên lý điều phối độc quyền 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ự nguyện giải phóng CPU. Khi đ� quyết định điều phối CPU sẽ xảy ra trong c�c tình huống sau:

Bài tập điều phối tiến trình trong hệ điều hành năm 2024
Khi tiến trình chuyển từ trạng thái đang xử l�(running) sang trạng th�i bị kh�a blocked ( v� dụ chờ một thao t�c nhập xuất hay chờ một tiến trình con kết thúc�).
Bài tập điều phối tiến trình trong hệ điều hành năm 2024
Khi tiến trình kết thúc.

Các giải thuật độc quyền thường đơn giản và dễ cài đặt. Tuy nhiên chúng thường không thích hợp với các hệ thống tổng quát nhiều người dùng, vì nếu cho phép một tiến trình có quyền xử lý bao lâu tùy ý, có nghĩa là tiến trình này có thể giữ CPU một thời gian không xác định, c� thể ngăn cản những tiến trình còn lại trong hệ thống có một cơ hội để xử l�.

Bài tập điều phối tiến trình trong hệ điều hành năm 2024
Đ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 một tiến trình đang sẵn sàng xử lý. Khi một tiến trình nhận được CPU, nó vẫn được sử dụng CPU đế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 có thể dành quyền sử dụng CPU của tiến trình ban đầu. Như vậy là tiến trình có thể bị tạm 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 :

Bài tập điều phối tiến trình trong hệ điều hành năm 2024
Khi tiến trình chuyển từ trạng thái đang xử l� (running) sang trạng th�i bị kh�a blocked ( v� dụ chờ một thao t�c nhập xuất hay chờ một tiến tr