2.2.1.1. Khỏi niệm
Trong mụi trường hệ điều hành đa nhiệm, bộ phận điều phối tiến trỡnh cú nhiệm vụ xem xột và quyết định khi nào thỡ dừng tiến trỡnh hiện tại để thu hồi processor và chuyển processor cho tiến trỡnh khỏc, và khi đó cú được processor thỡ chọn tiến trỡnh nào trong số cỏc tiến trỡnh ở trạng thỏi ready để cấp processor cho nú.
Điều phối tiến trỡnh là lựa chọn tiến trỡnh đó sẵn sàng và phõn phối processor cho nú để tiến trỡnh được thực hiện. Điều phối tiến trỡnh được thực hiện bởi bộ điều phối (dispatcher), nú khụng đưa ra cỏc cơ chế mà trực tiếp đưa ra cỏc quyết định lựa chọn tiến trỡnh.
Cú 3 mức điều phối tiến trỡnh: điều phối mức cao (tỏc vụ), mức giữa (tiến trỡnh) và mức thấp (điều độ tiến trỡnh). Điều phối tỏc vụ được phải thực hiện trước điều phối tiến trỡnh. Ở mức này HĐH thực hiện việc chọn tỏc vụ để đưa vào hệ thống (BN chớnh). Khi cú một tiến trỡnh được tạo lập hoặc khi cú một tiến trỡnh kết thỳc xử lý thỡ bộ phận điều phối tỏc vụ được kớch hoạt. Điều phối tỏc vụ quyết định sự đa chương của hệ thống và hiệu quả cũng như mục tiờu của điều phối của bộ phận điều phối tiến trỡnh. Vớ dụ, để khi thỏc tối đa thời gian xử lý của processor thỡ bộ phận điều phối tỏc vụ phải đưa vào hệ thống số lượng cỏc tiến trỡnh tớnh hướng Vào/Ra cõn đối với số lượng cỏc tiến trỡnh tớnh hướng xử lý, cỏc tiến trỡnh này thuộc những tỏc vụ nào. Nếu trong hệ thống cú quỏ nhiều tiến trỡnh tớnh hướng Vào/Ra thỡ sẽ lóng phớ thời gian xử lý của processor. Nếu trong hệ thống cú quỏ nhiều tiến trỡnh tớnh hướng xử lý thỡ processor khụng thể đỏp ứng và cú thể cỏc tiến trỡnh phải đợi lõu trong hệ thống, dẫn đến hiệu quả tương tỏc sẽ thấp.
Cú thể xem cỏc mức lập lịch ứng với cỏc bộ điều phối dài hạn và bộ điều phối ngắn hạn. Bộ điều phối dài hạn lựa chọn cỏc tiến trỡnh từ bờn ngoài tải vào BN. Bộ điều phối ngắn hạn lựa chọn tiến trỡnh nào đú đó sẵn sàng để cấp phỏt BXL cho tiến trỡnh đú. Tần suất hoạt động của bộ điều phối ngắn hạn rất cao hơn so với tần suất hoạt động của
bộ điều phối dài hạn.
2.2.1.2. Căn cứ điều phối tiến trỡnh
Khi tổ chức điều phối tiến trỡnh, bộ phận điều phối tiến trỡnh căn cứ vào độ (mức, chỉ số) ưu tiờn của tiến trỡnh và thời gian lượng tử:
- Độ ưu tiờn của tiến trỡnh là mức độ ưu tiờn quyết định thứ tự sử dụng BXL để tiến trỡnh được thực hiện, do HĐH gỏn cho tiến trỡnh trong suốt thời gian tồn tại tiến trỡnh. Mỗi tiến trỡnh được gỏn một độ ưu tiờn nhất định, độ ưu tiờn này cú thể được phỏt sinh tự động bởi hệ thống hoặc được gỏn tường minh trong chương trỡnh của người sử dụng. Tớnh chất độ ưu tiờn của tiến trỡnh cú hai loại: độ ưu tiờn tĩnh: là độ ưu tiờn gỏn trước cho tiến trỡnh và khụng thay đổi trong suốt thời gian tồn tại của tiến trỡnh và độ ưu tiờn động: là độ ưu tiờn được gỏn cho tiến trỡnh trong quỏ trỡnh hoạt động của nú, hệ điều hành sẽ gỏn lại độ ưu tiờn cho tiến trỡnh khi mụi trường xử lý của tiến trỡnh bị thay đổi. Lỳc này, hệ điều hành phải thay đổi độ ưu tiờn của tiến trỡnh cho phự hợp với tỡnh trạng hiện tại của hệ thống và cụng tỏc điều phối tiến trỡnh của HĐH.
Độ ưu tiờn (hay mức ưu tiờn) của tiến trỡnh được xỏc định căn cứ vào:
- Cỏc thuộc tớnh của tiến trỡnh bao gồm: Thời điểm khởi tạo, thời điểm yờu cầu kết thỳc tiến trỡnh; độ dài tiến trỡnh là thời gian sử dụng processor của tiến trỡnh để hoàn thành xử lý; thời gian tiến trỡnh đó được xử lý là thời gian tiến trỡnh đó sử dụng processor; thời gian cũn lại tiến trỡnh cần processor là khoảng thời gian cần processor để hoàn thành xử lý.
- Tớnh chất của tiến trỡnh: Tiến trỡnh thiờn hướng Vào/Ra (I/O-boundedness): là cỏc tiến trỡnh cần nhiều thời gian hơn cho việc thực hiện cỏc thao tỏc xuất/nhập dữ liệu, so với thời gian mà tiến trỡnh cần để thực hiện cỏc chỉ thị trong nú. Tiến trỡnh thiờn hướng xử lý (CPU-boundedness): là cỏc tiến trỡnh cần nhiều thời gian hơn cho việc thực hiện cỏc chỉ thị trong nú, so với thời gian mà tiến trỡnh để thực hiện cỏc thao tỏc Vào/Ra.
- Tớnh chất xử lý tiến trỡnh: Xử lý thời gian thực (tiến trỡnh tương tỏc) tiến trỡnh cần phải trả lại kết quả tức thời (như trong hệ điều hành tương tỏc); xử lý theo lụ: xử lý một loạt tiến trỡnh (như trong hệ điều hành xử lý theo lụ); xử lý theo chế độ phõn chia thời gian.
Thời gian lượng tử (quan tum) là thời gian gỏn processor cho tiến trỡnh để tiến trỡnh được thực hiện. Đối với mỗi tiến trỡnh hay cho mọi tiến trỡnh thời gian lượng tử cú thể khụng đổi, cú thể thay đổi (theo yờu cầu xử lý tiến trỡnh hoặc theo độ dài tiến trỡnh sau mỗi lần xử lý. Bộ quản lý tiến trỡnh sử dụng bộ định thời (timer) điều khiển việc chuyển quyền sử dụng BXL, thụng qua cơ chế ngắt.
2.2.1.3. Mục tiờu điều phối tiến trỡnh
Bộ phận điều phối tiến trỡnh của hệ điều hành phải đạt được cỏc mục tiờu sau đõy (đỏp ứng cho tiến trỡnh và đỏp ứng việc sử dụng processor) trong cụng tỏc điều phối của nú.
- Sự cụng bằng (Fairness): Cỏc tiến trỡnh đều cụng bằng với nhau trong việc chia sẻ thời gian xử lý của processor, khụng cú tiến trỡnh nào phải chờ đợi vụ hạn để được cấp 32
processor.
- Thời gian đỏp ứng hợp lý (Response time): Đối với cỏc tiến trỡnh tương tỏc, đõy là khoảng thời gian từ khi tiến trỡnh đưa ra yờu cầu cho đến khi nhận được sự hồi đỏp. Một tiến trỡnh đỏp ứng yờu cầu của người sử dụng, phải nhận được thụng tin hồi đỏp từ yờu cầu của nú thỡ nú mới cú thể trả lời người sử dụng. Do đú, theo người sử dụng thỡ bộ phận điều phối phải cực tiểu hoỏ thời gian hồi đỏp của cỏc tiến trỡnh, cú như vậy thỡ tớnh tương tỏc của tiến trỡnh mới tăng lờn.
- Thời gian lưu lại trong hệ thống (TTRnd - Turnaround time): Đõy là khoảng thời gian từ khi tiến trỡnh được đưa ra đến khi được hoàn thành. Bao gồm thời gian thực hiện thực tế cộng với thời gian đợi tài nguyờn (bao gồm cả đợi processor). Đại lượng này dựng trong cỏc hệ điều hành xử lý theo lụ. Do đú, bộ phận điều phối phải cực tiểu thời gian hoàn thành (lưu lại trong hệ thống) của cỏc tỏc vụ xử lý theo lụ.
- Tớnh hiệu quả (Efficiency): Tận dụng được 100% thời gian xử lý của processor. Trong cụng tỏc điều phối, khi processor rỗi bộ phận điều phối sẽ chuyển ngay nú cho tiến trỡnh khỏc, nếu trong hệ thống cú tiến trỡnh đang ở trạng thỏi chờ processor, nờn mục tiờu này dễ đạt được. Tuy nhiờn, nếu hệ điều hành đưa vào hệ thống quỏ nhiều tiến trỡnh thiờn hướng vào/ra, thỡ nguy cơ processor bị rỗi là cú thể. Do đú, để đạt được mục tiờu này hệ điều hành phải tớnh toỏn và quyết định nờn đưa vào hệ thống bao nhiờu tiến trỡnh thiờn hướng vào/ra, bao nhiờu tiến trỡnh thiờn hướng xử lý, là thớch hợp.
- Thụng lượng tối đa (Throunghtput): Chớnh sỏch điều phối phải cố gắng để cực đại được số lượng tiến trỡnh hoàn thành trờn một đơn vị thời gian. Mục tiờu này ớt phụ thuộc vào chớnh sỏch điều phối mà phụ thuộc nhiều vào thời gian thực hiện trung bỡnh của cỏc tiến trỡnh.
Tải vào hệ thống được mụ tả bằng tốc độ tiến trỡnh đến hàng đợi và thời gian phục vụ τ(pi). Nếu λ là số lượng trung bỡnh cỏc tiến trỡnh đến hàng đợi, μ là tốc độ phục vụ trung bỡnh thỡ hệ số đỏnh giỏ khả năng đỏp ứng tải của hệ thống là ρ và được xỏc định:
; à λ ρ =
nếu ρ>1, hệ thống sẽ bị quỏ tải; hệ thống chỉ tiến tới trạng thỏi ổn định khi ρ<1.
Cụng tỏc điều phối của hệ điều hành khú cú thể thỏa món đồng thời tất cả cỏc mục tiờu trờn vỡ bản thõn cỏc mục tiờu này đó cú sự mõu thuẫn với nhau. Cỏc hệ điều hành chỉ cú thể dung hũa cỏc mục tiờu này ở một mức độ nào đú.
2.2.1.4. Cỏc cơ chế điều phối tiến trỡnh
Trong cụng tỏc điều phối tiến trỡnh bộ điều phối sử dụng hai cơ chế điều phối: Điều phối độc quyền (chia sẻ tự nguyện BXL) và điều phối khụng độc quyền (chia sẻ khụng tự nguyện BXL).
- Điều phối độc quyền: Khi cú được processor tiến trỡnh toàn quyền sử dụng processor cho đến khi tiến trỡnh kết thỳc xử lý hoặc tiến trỡnh tự động trả lại processor cho hệ thống. Cỏc quyết định điều phối xảy ra khi: Tiến trỡnh chuyển trạng thỏi từ Running sang Blocked hoặc khi tiến trỡnh kết thỳc.
- Điều phối khụng độc quyền: Bộ phận điều phối tiến trỡnh cú thể bị tạm dừng (ngắt) tiến trỡnh đang xử lý để thu hồi processor của nú, để cấp cho tiến trỡnh khỏc, sao cho phự hợp với cụng tỏc điều phối hiện tại. Cỏc quyết định điều phối xảy ra khi: Tiến trỡnh chuyển trạng thỏi hoặc khi tiến trỡnh kết thỳc.
2.4.2.5. Cỏc danh sỏch sử dụng trong điều phối tiến trỡnh
Hệ điều hành sử dụng hai loại danh sỏch để thực hiện điều phối cỏc tiến trỡnh là
danh sỏch sẵn sàng (ready list) và danh sỏch chờ đợi (waiting list).
Khi một tiến trỡnh bắt đầu đi vào hệ thống, nú được chốn vào danh sỏch cỏc tỏc vụ
(job list). Danh sỏch này bao gồm tất cả cỏc tiến trỡnh của hệ thống. Nhưng chỉ cỏc tiến trỡnh đang thường trỳ trong bộ nhớ chớnh và ở trạng thỏi sẵn sàng tiếp nhận BXL để hoạt động mới được đưa vào danh sỏch sẵn sàng.
Chỉ cú những tiến trỡnh trong ready list mới được chọn để cấp processor. Cỏc tiến trỡnh bị chuyển về trạng thỏi blocked sẽ được bổ sung vào waiting list. Hệ thống chỉ cú duy nhất một ready list, nhưng cú thể tồn tại nhiều waiting list. Thụng thường hệ điều hành thiết kế nhiều waitting list, mỗi waitting list dựng để chứa cỏc tiến trỡnh đang đợi được cấp phỏt một tài nguyờn hay một sự kiện riờng biệt nào đú. Hỡnh sau đõy minh hoạ cho việc chuyển tiến trỡnh giữa cỏc danh sỏch:
1. Tiến trỡnh trong hệ thống được cấp đầy đủ tài nguyờn chỉ thiếu processor. 2. Tiến trỡnh được bộ điều phối chọn ra để cấp processor để bắt đầu xử lý. 3. Tiến trỡnh kết thỳc xử lý và trả lại processor cho hệ điều hành.
4. Tiến trỡnh hết thời gian được quyền sử dụng processor (time-out), bị bộ điều phối tiến trỡnh thu hồi lại processor.
5. Tiến trỡnh bị khúa (blocked) do yờu cầu tài nguyờn nhưng chưa được hệ điều hành cấp phỏt. Khi đú tiến trỡnh được đưa vào danh sỏch cỏc tiến trỡnh đợi tài nguyờn (waiting list 1).
6. Tiến trỡnh bị khúa (blocked) do đang đợi một sự kiện nào đú xảy ra. Khi đú tiến trỡnh được bộ điều phối đưa vào danh sỏch cỏc tiến trỡnh đợi tài nguyờn (waiting list 2).
7. Tài nguyờn mà tiến trỡnh yờu cầu đó được hệ điều hành cấp phỏt. Khi đú tiến trỡnh được bộ điều phối chuyển sang danh sỏch cỏc tiến trỡnh ở trạng thỏi sẵn sang (ready list) để chờ được cấp processor để được hoạt động.
8. Sự kiện mà tiến trỡnh chờ đó xảy ra. Khi đú tiến trỡnh được bộ điều phối chuyển 34 1 2 3 4 5 6 7 Ready list Ready list Waitting list 1 Waitting list 1 Waitting list 2 Waitting list 2 8
Hỡnh 2.7: Sơ đồ chuyển tiến trỡnh vào cỏc danh sỏch
Processor
sang danh sỏch cỏc tiến trỡnh ở trạng thỏi sẵn sàng (ready list) để chờ được cấp processor.