Các trạng thái của tiến trình - Tại một thời điểm: Processor Pause Chỉ có một tiến trình ở trạng thái Running Có thể có nhiều tiến trình ở trạng thái Not Running - Sơ đồ chuyển tiến
Trang 1KIẾN TRÚC MÁY TÍNH
VÀ HỆ ĐIỀU HÀNH
Trang 27.1 Khái niệm về các tiến trình
7.2 Sự điều phối tiến trình
Trang 37.1 Khái niệm về các tiến trình
7.1.1 Định nghĩa:
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
+ Tiến trình là một chương trình đang hoạt động, sở hữu:
- Một con trỏ lệnh - Một con trỏ stack
- Một tập các thanh ghi - Một không gian địa chỉ
Chương trình Dữ liệuTrạng thái tiến trình Nguồn tài nguyên
Môi trường máy tính lý thuyết
Trang 47.1 Khái niệm về các tiến trình
Trang 57.1 Khái niệm về các tiến trình
7.1.2 Phân loại:
+ Tiến trình tuần tự:
- Điểm khởi tạo là điểm kết thúc của tiến trình trước đó
+ Tiến trình song song:
- Điểm khởi tạo nằm ở thân của các tiến trình khác
Trang 67.1 Khái niệm về các tiến trình
7.1.2 Phân loại:
+ Một số loại tiến trình song song:
- Song song độc lập: không có quan hệ thông tin với nhau
- Song song có quan hệ thông tin với nhau
- Song song phân cấp: tiến trình đang hoạt động khởi tạo các tiến trình khác hoạt động song song với nó
Mô hình tập trung Mô hình phân tán
- Song song đồng mức: sử dụng chung tài nguyên theo nguyên tắc lần lượt
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 77.1 Khái niệm về các tiến trình
7.1.3 Các trạng thái của tiến trình
+ Tiến trình hai trạng thái:
Not Running Running
Enter
Dispatch
Pause
Exit
Tiến trình vừa mới
khởi tạo và đưa vào
hệ thống hoặc bị thu
hồi processor
Tiến trình ở trạng thái Not Running được cấp processor
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 87.1 Khái niệm về các tiến trình
7.1.3 Các trạng thái của tiến trình
- Tại một thời điểm:
Processor
Pause
Chỉ có một tiến trình ở trạng thái Running
Có thể có nhiều tiến trình ở trạng thái Not Running
- Sơ đồ chuyển tiến trình vào hàng đợi:
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 97.1 Khái niệm về các tiến trình
7.1.3 Các trạng thái của tiến trình
2
Đang chờ cấp
phát processor
Đang được sở hữu processor
Đang chờ để: cấp phát thêm tài nguyên, quá trình vào/ra kết thúc; một sự kiện nào đó xảy ra
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 107.1 Khái niệm về các tiến trình
7.1.3 Các trạng thái của tiến trình
Release: Tiến trình hoàn thành xử lý và kết thúc
Time_out: Tiến trình bị thu hồi processor do hết thời gian được quyền sử dụng processor
Event wait: Tiến trình đang chờ:
một sự kiện;
một thao tác vào/ra; một tài nguyên
Event Occurs:
Sự kiện mà tiến trình chờ đã xảy ra
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 117.1 Khái niệm về các tiến trình
7.1.3 Các trạng thái của tiến trình
- Bộ phận điều phối tiến trình thu hồi processor khi:
Tiến trình đang thực hiện hết thời gian sử dụng processor
Có tiến trình mới phát sinh có độ ưu tiên cao hơn
Có tiến trình mới phát sinh có thời gian sử dụng processor nhỏ hơn nhiều so với thời gian sử dụng processor còn lại của tiến trình
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 127.1 Khái niệm về các tiến trình
7.1.3 Các trạng thái của tiến trình
Processor
Time - out Ready Queue
Blocked Queue
Event Wait
Event
Occurs
- Sơ đồ chuyển tiến trình vào các hàng đợi:
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 137.1 Khái niệm về các tiến trình
7.1.3 Các trạng thái của tiến trình
+ Tiến trình bốn trạng thái:
- Trong môi trường đa nhiệm:
Tồn tại nhiều tiến trình trong Queue
Sử dụng tài nguyên không hợp lý
- Thiết kế thêm 1 trạng thái tiến trình Suspend (tạm dừng):
Tiến trình đang được lưu trên bộ nhớ phụ
Tiến trình đang ở trạng thái Blocked, Ready
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 147.1 Khái niệm về các tiến trình
7.1.3 Các trạng thái của tiến trình
Trang 157.1 Khái niệm về các tiến trình
7.1.3 Các trạng thái của tiến trình
+ Tiến trình năm trạng thái:
- Hệ điều hành thiết kế 2 trạng thái suspend:
Blocked - Suspend: trạng thái suspend dành cho các tiến trình từ blocked chuyển đến
Ready - Suspend: trạng thái suspend dành cho các tiến trình từ Ready chuyển đến
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 167.1 Khái niệm về các tiến trình
7.1.3 Các trạng thái của tiến trình
Suspend
Exit
Event Occurs
Ready Suspend
Event Occurs
Activate
Admit Admit
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 177.1 Khái niệm về các tiến trình
7.1.4 Các thao tác điều khiển tiến trình
+ Khối điều khiển tiến trình là một cấu trúc dữ liệu gồm:
- Trạng thái hiện thời của tiến trình
- Định danh của tiến trình (PID)
- Một con trỏ đến tiến trình mẹ
- Các con trỏ đến các tiến trình con
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 187.1 Khái niệm về các tiến trình
7.1.4 Các thao tác điều khiển tiến trình
+ Khối điều khiển tiến trình là một cấu trúc dữ liệu gồm:
- Mức ưu tiên của tiến trình
- Các con trỏ xác định vị trí nguồn tài nguyên
- Không gian lưu trữ
- Bộ vi xử lý đang sử dụng
Sự biểu hiện của tiến trình trong hệ điều hành
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 197.1 Khái niệm về các tiến trình
7.1.4 Các thao tác điều khiển tiến trình
+ Khi thay đổi trạng thái tiến trình, hệ điều hành thực hiện:
- Lưu ngữ cảnh của tiến trình (PC, các thanh ghi khác)
- Cập nhật PCB của tiến trình
- Di chuyển PCB của tiến trình đến một hàng đợi thích hợp
- Chọn 1 tiến trình khác để thực hiện và cập nhật PCB
- Cập nhật các thông tin liên quan đến quản lý bộ nhớ
- Khôi phục lại ngữ cảnh cho phù hợp với tiến trình mới
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 207.2 Sự điều phối tiến trình (Process Scheduling)
7.2.1 Hàng đợi điều phối
+ Hàng đợi sẵn sàng:
- Các tiến trình ở bộ nhớ chính sẵn sàng và chờ thực thi
- Được lưu thành 1 danh sách liên kết:
Đầu hàng đợi chứa các con trỏ trỏ đến PCB của tiến trình đầu và tiến trình cuối
Mỗi PCB có 1 con trỏ trỏ đến tiến trình kế tiếp+ Hàng đợi thiết bị vào/ra
+ Hàng đợi yêu cầu vào ra
+ Hàng đợi tạo tiến trình con+ Hàng đợi ngắt
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 217.2 Sự điều phối tiến trình (Process Scheduling)7.2.1 Hàng đợi điều phối
Hàng đợi sẵn sàng
Tiến trình con chấm dứt
Thực thi tiến trình con Ngắt phát sinh
Hàng đợi vào/ra
Tạo ra tiến trình con
Khoảng thời gian cho đã hết
Trang 227.2 Sự điều phối tiến trình (Process Scheduling)
7.2.2 Khái niệm
+ Trong hệ thống thực thi theo lô:
- Số tiến trình được nạp nhiều hơn số tiến trình được thực thi ngay
- Các tiến trình được đưa vào thiết bị lưu trữ
- Bộ điều phối dài hạn chọn tiến trình nạp vào bộ nhớ
- Bộ điều phối ngắn hạn (bộ điều phối CPU) chọn tiến trình
để chuyển giao CPU
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 237.2 Sự điều phối tiến trình (Process Scheduling)
7.2.2 Khái niệm
+ Trong hệ thống đa nhiệm:
- Xem xét và quyết định khi nào 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
- Chọn tiến trình nào trong số các tiến trình ở trạng thái ready để cấp processr cho nó
- Phân biệt sự khác nhau giữa điều phối tiến trình và điều
độ tiến trình
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 247.2 Sự điều phối tiến trình (Process Scheduling)
+ Các cơ chế điều phối:
- Điều phối độc quyền:
Toàn quyền sử dụng processor cho đến khi tiến trình kết thúc hoặc tự động trả processor
Quyết định điều phối xảy ra khi tiến trình chuyển từ trạng thái Running sang Blocked hoặc kết thúc
7.2.2 Khái niệm
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 257.2 Sự điều phối tiến trình (Process Scheduling)
+ Các cơ chế điều phối:
- Điều phối không độc quyền:
Bộ điều phối có thể tạm dừng tiến trình đang xử
lý để thu hồi processor và cấp cho tiến trình khác
Quyết định điều phối xảy ra khi tiến trình chuyển trạng thái hoặc kết thúc
7.2.2 Khái niệm
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 267.2 Sự điều phối tiến trình (Process Scheduling)
+ Các đặc điểm của tiến trình:
- Tiến trình thiên hướng vào/ra
7.2.2 Khái niệm
- Tiến trình thiên hướng xử lý
- Tiến trình tương tác hay xử lý theo lô
- Độ ưu tiên của tiến trình: tĩnh hay động
- Thời gian sử dụng processor của tiến trình
- Thời gian còn lại tiến trình cần processor
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 277.2 Sự điều phối tiến trình (Process Scheduling)7.2.3 Mục tiêu điều phối:
+ Sự công bằng (Fairness)
+ Tính hiệu quả (Efficiency)
+ Thời gian đáp ứng hợp lý (Response time)
+ Thời gian lưu lại trong hệ thống (Turnaround time)+ Thông lượng tối đa (Throughtput)
Dung hòa các mục tiêu
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 287.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Mục tiêu điều phối:
+ Ví dụ: P1, P2, P3, P4 có thời gian sử dụng processor lần lượt là: 1, 12, 2, 1 được nạp vào tại thời điểm 0, 1, 2, 3
Thời
điểm
Tiến trình đang xử lý
Thời gian
đã xử lý
Thời gian còn lại
Các tiến trình chờ
Trang 297.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
+ Chiến lược FIFO hay FCFS:
- Tiến trình đầu tiên yêu cầu CPU sẽ được nhận CPU
- Tiến trình mới được tạo gắn vào đuôi hàng đợi
- Khi CPU rỗi, tiến trình đầu tiên trong hàng đợi được chọn
- Tiến trình chờ vào/ra được chuyển về cuối hàng đợi
Không hiệu quả khi tính toán thời gian chờ trung bình
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 307.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
+ Chiến lược FIFO hay FCFS:
TT Phương pháp tổ hợp Phương pháp tính
Thời gian trung bình (ms)
Trang 317.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
Luôn tạo ra thời gian chờ trung bình ngắn nhất
- Có thể độc quyền hoặc không độc quyền
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 327.2 Sự điều phối tiến trình (Process Scheduling)7.2.3 Các chiến lược điều phối:
+ Chiến lược SJF:
- Ví dụ có 5 tiến trình: P1, P2, P3, P4, P5
WT (wait time): thời gian chờ
ET (execution time): thời gian thực thi
WT = 4*ET1 + 3*ET2 + 2*ET3 + ET4
WT min thì ET1 < ET2 < ET3 < ET4
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 337.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
Trang 347.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
Trang 357.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
+ Chiến lược ưu tiên (Priority Scheduling):
- Mỗi tiến trình được cài cho một mức độ ưu tiên
- Mức ưu tiên càng nhỏ thì độ ưu tiên càng lớn
- Tiến trình có mức ưu tiên nhỏ nhất sẽ được chọn
- Có nhiều tiến trình có cùng mức ưu tiên thì điều phối dựa trên nguyên tắc FCFS
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 367.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
+ Chiến lược ưu tiên (Priority Scheduling):
- Ví dụ có 5 tiến trình được nạp vào cùng 1 thời điểm
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 377.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
+ Chiến lược ưu tiên (Priority Scheduling):
- 5 tiến trình được nạp vào các thời điểm khác nhau
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 387.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
+ Chiến lược xoay vòng (RRS - Round Robin Scheduling):
- Tăng sự đáp ứng của các hệ thống tương tác
- Các tiến trình được sắp xếp theo một hàng đợi tròn
- Bộ điều phối chuyển từ tiến trình này đến tiến trình tiếp:
Cuối mỗi khoảng thời gian quy định
Sự chờ vào/ra xảy ra sớm hơn một khoảng thời gian quy định
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 397.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
+ Chiến lược xoay vòng (RRS - Round Robin Scheduling):
- Thường kết hợp với chiến lược ưu tiên
- Là chiến lược không độc quyền
- Mô tả cách xử lý n công việc với khoảng thời gian q:
Mỗi công việc nhận 1/n thời gian xử lý
Một khoảng thời gian quy định dài tối đa là q đơn vị
Mỗi công việc sẽ chờ không quá (n-1)*q đơn vị
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 407.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
+ Chiến lược xoay vòng (RRS - Round Robin Scheduling):
Khoảng thời gian quy định
Trang 417.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
+ Chiến lược điều phối hàng đợi nhiều mức:
- Phân chia hàng đợi sẵn sàng ra nhiều hàng đợi độc lập
- Các tiến trình được phân chia cố định cho 1 hàng đợi dựa trên tính chất của tiến trình
- Mỗi hàng đợi có chiến lược điều phối riêng
- Giữa các hàng đợi cũng có chiến lược điều phối
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 427.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
+ Chiến lược điều phối với nhiều mức ưu tiên:
- Các tiến trình sẵn sàng được phân thành nhiều danh sách riêng biệt theo mức độ ưu tiên
- Giữa các danh sách có chiến lược điều phối
- Tiến trình được cấp CPU khi các danh sách cấp ưu tiên cao hơn đã rỗng
- Mỗi danh sách áp dụng 1 chiến lược điều phối
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 437.2 Sự điều phối tiến trình (Process Scheduling)
7.2.3 Các chiến lược điều phối:
+ Chiến lược điều phối với nhiều mức ưu tiên:
- Ưu điểm:
- Nhược điểm:
Giảm chi phí điều phối
Thiếu linh động
- Hướng giải quyết:
Thay đổi mức độ ưu tiên
1 Số lượng mức ưu tiên
2 Chiến lược điều phối
3 Xác định thời điểm
4 Xác định mức ưu tiên
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 447.3 Sự liên lạc và quan hệ giữa các tiến trình
7.3.1 Sự liên lạc giữa các tiến trình (IPC)
+ Cung cấp cơ chế liên lạc và đồng bộ giữa các tiến trình
Trang 457.3 Sự liên lạc và quan hệ giữa các tiến trình
7.3.1 Sự liên lạc giữa các tiến trình (IPC)
* Cấu trúc cơ bản:
send (message) receive (message)
kết nối
?
+ Thiết lập kết nối, một chiều hay hai chiều
+ Số lượng tiến trình liên kết thông qua một kết nối
+ Số lượng kết nối giữa hai tiến trình
+ Dung lượng của kết nối, độ lớn thông điệp
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 467.3 Sự liên lạc và quan hệ giữa các tiến trình
7.3.1 Sự liên lạc giữa các tiến trình (IPC)
* Cách thức liên lạc: trực tiếp hoặc gián tiếp
+ Liên lạc trực tiếp:
- Send (P, message): gửi 1 thông điệp cho tiến trình P
- Receive (Q, message): nhận 1 thông điệp từ tiến trình Q
- Tính chất:
Tự động
1 kết nối chỉ liên kết giữa 2 tiến trình và ngược lại
Kết nối có thể là 1 chiều nhưng thường là 2 chiều
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 477.3 Sự liên lạc và quan hệ giữa các tiến trình
7.3.1 Sự liên lạc giữa các tiến trình (IPC)
* Cách thức liên lạc: trực tiếp hoặc gián tiếp
+ Liên lạc trực tiếp:
- Ví dụ: bài toán người sản xuất - người tiêu thụ
Tiến trình của người sản xuất:
Repeat
…Tạo ra SP trong nextp
…Send (NTT, nextp) Until false;
Tiến trình của người tiêu thụ:
Repeat
…Receive (NSX, nextp)
…Tiêu thụ SP trong nextc Until false;
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 487.3 Sự liên lạc và quan hệ giữa các tiến trình
7.3.1 Sự liên lạc giữa các tiến trình (IPC)
* Cách thức liên lạc: trực tiếp hoặc gián tiếp
+ Liên lạc gián tiếp:
- Các thông điệp được gửi và nhận từ hộp thư (mailbox)
- Mỗi hộp thư có một định danh duy nhất
- Các tiến trình liên lạc được với nhau khi có cùng hộp thư dùng chung
- Send (A, message): gửi 1 thông điệp đến hộp thư A
- Receive (A, message): nhận 1 thông điệp từ hộp thư A
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 497.3 Sự liên lạc và quan hệ giữa các tiến trình
7.3.1 Sự liên lạc giữa các tiến trình (IPC)
* Cách thức liên lạc: trực tiếp hoặc gián tiếp
+ Liên lạc gián tiếp:
- Tính chất:
Kết nối hình thành khi có hộp thư chung
1 kết nối có thể liên kết với hơn 2 tiến trình
Giữa 2 tiến trình có thể có nhiều kết nối
1 kết nối có thể 1 chiều hay 2 chiều
- Hộp thư có thể được sở hữu bởi tiến trình hay hệ thống
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH
Trang 507.3 Sự liên lạc và quan hệ giữa các tiến trình
7.3.1 Sự liên lạc giữa các tiến trình (IPC)
* Vùng chứa (buffer):
+ Hàng đợi của các thông điệp liên quan đến sự kết nối
- Dung lượng 0: 2 tiến trình phải được đồng bộ cho việc truyền thông điệp hẹn trước
+ Hàng đợi thực hiện theo 3 cách:
- Dung lượng giới hạn
- Dung lượng không giới hạn
CHƯƠNG 7: QUẢN LÝ TIẾN TRÌNH