• Tiến trình tương tác hay xử lý theo lô • Độ ưu tiên của ttrình • Thời gian đã sử dụng CPU của ttrình • Thời gian còn lại để ttrình hoàn tất... Các trạng thái của tiến trình tt• Mới tạo
Trang 1HỆ ĐIỀU HÀNH
Quản lý tiến trình
Trang 3NỘI DUNG
I Mô hình tiến trình
II Lập lịch tiến trình
III Các hoạt động trên tiến trình
IV Các tiến trình hợp tác ( Cooperating
Processes )
V.Giao tiếp Liên tiến trình ( Interprocess
comunication )
Trang 5- Sự thực hiện tiến trình phải tiến hành theo
Trang 6Tiến trình trong bộ nhớ
Trang 72 Các đặc điểm của tiến trình
• Tính hướng xuất/nhập
– nhiều lượt sử dụng CPU, mỗi lượt trong thời gian khá ngắn.
• Tính hướng xử lý
– Ít lượt sử dụng CPU, mỗi lượt trong thời gian đủ dài.
• Tiến trình tương tác hay xử lý theo lô
• Độ ưu tiên của ttrình
• Thời gian đã sử dụng CPU của ttrình
• Thời gian còn lại để ttrình hoàn tất
Trang 83.Các trạng thái của tiến trình
Trang 9Các trạng thái của tiến trình (tt)
• Mới tạo: 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 lệnh của ttrình đang được xử lý.
• Blocked: tiến trình chờ cấp phát tài nguyên,
hay chờ 1 sự kiện xảy ra.
• Kết thúc: tiến trình hoàn tất xử lý.
Trang 104 Chuyển đổi trạng thái của t iến trình
• (1): ttrình mới tạo được đưa vào hệ thống.
• (2): Bộ điều phối cấp phát cho ttrình 1 khoảng thời
gian sử dụng CPU
• (3): ttrình kết thúc.
• (4): ttrình yêu tài nguyên nhưng chưa được đáp ứng;
hoặc phải chờ 1 sự kiện hay thao tác xuất/nhập
• (5): Bộ điều phối chọn ttrình khác để cho xử lý.
• (6): tài nguyên yêu cầu đã sẵn sàng; hoặc sự kiện hay
tao tác xuất/nhập đã hoàn tất
Trang 115 Chế độ xử lý của tiến trình
• HĐH được bảo vệ khỏi sự xâm phạm của các ttrình
• Chế độ đặc quyền và không đặc quyền (htrợ bởi phần cứng): tập lệnh CPU chia thành 2 tập
Trang 126 Khối điều khiển tiến trình Process Control Block (PCB)
• Mỗi tiến trình được biểu diễn trong HĐH bởi một PCB.
• Mỗi PCB chứa các thông tin được gắn với mỗi tiến trình:
• Trạng thái tiến trình
• Bộ đếm chương trình
• Các thanh ghi của CPU
• Thông tin lịch trình CPU
• Thông tin quản lý bộ nhớ
• Thông tin sử dụng CPU, thời gian, các số hiệu tiến trình…
• Thông tin trạng thái vào/ra
Trang 13Khối điều khiển tiến trình Process Control Block (PCB)
Trang 14Khối quản lý/điều khiển ti ến trình
• Process Control Block (PCB)
status pid
Waiting/waiting list CPU-state-rec Processor Main store Resource Created recource
Parent Progency Priority
Trang 157 Các thao tác trên tiến trình
• Create: - Tạo PCB, xác định độ ưu tiên, cấp
phát tài nguyên ban đầu.
• Resume (tái kích hoạt)
• Thay đổi độ ưu tiên
Trang 168 Điều phối tiến trình
• Chia sẻ thời gian – để chuyển đổi CPU qua lại
giữa các ttrình.
• Bộ phân phối (dispatcher)
– Lựa chọn ttrình để xử lý tiếp theo.
– Chuyển ngữ cảnh (context).
• Mục tiêu điều phối (scheduling)
– Sự công bằng (fairness)
– Hiệu quả (efficiency)
– Thời gian đáp ứng hợp lý (response time)
– Thời gian lưu lại hệ thống (turnaround time)
– Thông lượng tối đa (throughput)
Trang 17II Lập lịch tiến trình (process
scheduling)
• Mục tiêu của multiprogramming là có nhiều tiến trìnhcùng chạy tại mọi thời điểm để tối đa hóa sử dụng CPU Mục tiêu của time-sharing là chuyển CPU giữa các tiếntrình càng thường xuyên càng tốt để người sử dụng cóthể tương tác với mỗi chương trình khi nó đang chạy
• Một HĐH đơn processor chỉ có thể chạy 1 tiến trình
• Nếu có nhiều tiến trình tồn tại, chúng phải đợi đến
khi CPU rỗi và được lập lịch lại
Trang 181 Các queue lập lịch tiến trình
• Job queue – tập hợp tất cả các tiến trình trong hệ thống.
• Ready queue – tập hợp tất cả các tiến trình cư trú trong
Trang 19Sơ đồ lập lịch tiến trình
Trang 21• Một số HĐH, như HĐH chia sẻ thời gian, có thể có thêm trình lập
• lịch trung kỳ (medium-term scheduler)
• Tư tưởng là thực hiện swapping (kỹ thuật hoán
chuyển):
• Đưa tiến trình ra khỏi bộ nhớ khi cần thiết
• Khi cân đối giữa các tiến trình tính toán nhiều và tiến trình vào/ra
• nhiều
• Khi cần giải phóng bộ nhớ cho việc khác
• Sau đó đưa tiến trình trở lại bộ nhớ để thực hiện tiếp
Trang 223 Chuyển ngữ cảnh - Context
Switch
Các tiến trình có thể được mô tả là:
• I/O-bound process – sử dụng nhiều thời gian thực
hiện vào/ra hơn việc tính toán, nhiều lần chiếm dụng CPU ngắn Cần chuyển ngữ cảnh thường xuyên tại thời điểm bắt đầu và kết thúc I/O
• CPU-bound process – sử dụng nhiều thời gian cho
việc tính toán hơn; ít lần chiếm dụng CPU dài Cũng cần chuyển ngữ cảnh thường xuyên để
• tránh tr.hợp một tiến trình ngăn chặn các tiến trình
khác sử dụng CPU
Trang 23• Khi CPU chuyển tới một tiến trình khác, hệ thống phải lưu
trạng thái
• của tiến trình trước và nạp trạng thái đã lưu cho tiến trình mới.
• Thời gian chuyển ngữ cảnh phụ thuộc vào sự hỗ trợ phần cứng.
• Hệ thống thực hiện công việc vô ích trong khi chuyển (ngữ
cảnh).
• 3.3 Các hoạt động trên tiến trình
• Các tiến trình trong hệ thống có thể thực hiện đồng
• thời, và chúng phải được tạo (create) và xóa
• (delete) một cách tự động.
• Do đó HĐH phải cung cấp kỹ thuật tạo và xóa tiến
• trình.
Trang 24III Các hoạt động trên tiến trình
Các tiến trình trong hệ thống có thể thực hiện đồng thời, và chúng phải được tạo (create) và xóa (delete) một cách tự động Do đó HĐH phải cung cấp kỹ thuật tạo và xóa tiến trình
1 Sự tạo tiến trình - Process Creation
• Tiến trình cha (parent process) tạo ra các tiến trình
con (children processes), chúng lần lượt tạo ra các tiến trình con khác tạo thành cây tiến trình (tree of processes)
• Tạo tiến trình là một công việc "nặng nhọc" vì phải
phân phối bộ nhớ và tài nguyên
Trang 26Sự tạo tiến trình (tiếp)
• Các lựa chọn chia sẻ tài nguyên (resource sharing)
• Tiến trình cha và con chia sẻ tất cả tất cả các tài nguyên.
• Tiến trình con chia sẻ tập con các tài nguyên của tiến trình cha.
• Tiến trình cha và con không có sự chia sẻ tài nguyên.
• Không gian địa chỉ (Address space)
• Tiến trình con sao chép tiến trình cha.
• Tiến trình con có một chương trình được nạp vào trong nó.
• Sự thực hiện (execution)
• Tiến trình cha và con thực hiện đồng thời.
• Tiến trình cha đợi cho đến khi tiến trình con kết thúc.
Trang 272 Sự kết thúc tiến trình
• Tiến trình thực hiện câu lệnh cuối cùng và yêu cầu HĐH tự kết thúc (exit) +Dữ liệu ra từ tiến trình con đến tiến trình cha (qua lệnh wait).
+Các tài nguyên của tiến trình được HĐH phân phối lại.
• Tiến trình cha có thể chấm dứt việc thực hiện tiến trình con (abort).
+Tiến trình con dùng quá tài nguyên được phân phối.
+ Nhiệm vụ mà tiến trình con thực hiện không còn cần thiết.
+Tiến trình cha đang kết thúc HĐH có thể lựa chọn:
-Dừng tiến trình con Xếp tầng sự chấm dứt (Cascading termination): tiến trình cháu cũng bị dừng,…
-Tiến trình cháu tồn tại do được tiến trình ông chấp nhận.
Trang 28IV Các tiến trình hợp tác
• Tiến trình độc lập (Independent process): không thể
tác động hay chịu tác động bởi sự thực hiện của tiến trình khác
• Tiến trình hợp tác (Cooperating process): có thể tác
động hoặc chịu tác động bởi sự thực hiện của tiến
trình khác
vd: tiến trình này chia sẻ dữ liệu với tiến trình khác
• Các lợi điểm của tiến trình hợp tác
Tăng tốc độ tính toán - Computation speed-up
Trang 29 Mô-đun hóa - Modularity
Sự tiện lợi - Convenience (vd người sử dụng cùng thực hiện soạn thảo, in ấn, biên dịch song song)
• Mô hình các tiến trình hợp tác: tiến trình sản xuất
(producer process) tạo ra các thông tin để tiến trình tiêu thụ (consumer process) sử dụng.
unbounded-buffer : giả thiết kích thước buffer
vô hạn
bounded-buffer : thừa nhận có một kích thước
buffer cố định
Trang 30V Giao tiếp liên tiến trình Interprocess Communication (IPC)
- Là cơ chế để các tiến trình giao tiếp và để đồng bộ các hành động của chúng mà không phải chia sẻ không gian địa chỉ chung
- Khả năng IPC cung cấp 2 hoạt động:
+ send (message)– kích thước của message cố
định hoặc biến đổi
Trang 31A.Giao tiếp trực tiếp
- Các tiến trình phải xác định rõ tên của nhau:
+ send (P, message) – gửi một message tới tiến
trình P
+ receive (Q, message) – nhận message từ tiến
trình Q
- Các đặc tính của communication link:
+ Các liên kết được thiết lập tự động.
+ Mỗi liên kết được gắn với duy nhất một cặp tiến trình giao tiếp với nhau.
Trang 32+ Giữa mỗi cặp tiến trình tồn tại duy nhất 1 liên kết.
+ Liên kết thường là 2 chiều (bi-directional), hoặc
có thể có 2 liên kết một chiều (unidirectional) P-to-Q, Q-to-P
Trang 33B Giao tiếp gián tiếp
- Các message được gửi và nhận từ các mailbox (còn được gọi là port).
+ Mỗi mailbox có duy nhất một id.
+ Các tiến trình chỉ có thể giao tiếp nếu chúng chia sẻ một mailbox.
- Các đặc tính của communication link:
+ Các liên kết được thiết lập chỉ khi các tiến trình chia sẻ một mailbox chung.
Trang 34+ Một liên kết có thể được gắn với nhiều tiến
Trang 35- Giải pháp:
+ Một liên kết được gắn với tối đa 2 tiến trình
+ Cho phép tại một thời điểm chỉ 1 tiến trình thực hiện nhận message
+ Cho phép hệ thống tuỳ chọn tiến trình nhận
Tiến trình gửi được thông báo tiến trình nào nhận
message
+ Các tiến trình khác nhận được một bản copy
Trang 36VI Tiểu trình (thread)
Mong muốn nhiều tiến trình chia sẻ 1 không gian địa chỉ
và các dòng xử lý hoạt động song song
Trang 37Phân bổ thông tin lưu trữ
• Tiến trình
– Không gian địa chỉ
– Tài nguyên toàn cục
– Các thông tin thống kê
• Tiểu trình
– Con trỏ lệnh + các thanh ghi, stack
– Tài nguyên cục bộ
Trang 38Cơ chế điều phối của HĐH
• Điều phối độc quyền (preemptive)
– Tiến trình 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.
– Quyết định điều phối xảy ra khi:
• Tiến trình chuyển từ tthái running sang blocked
• Tiến trình kết thúc
Trang 39Cơ chế điều phối của HĐH (tt)
• Điều phối không độc quyền (non-preemptive)
– Ttrình nhận được CPU vẫn được sử dụng CPU đến khi hoàn tất xử lý hoặc tự nguyện giải phóng CPU – Nhưng ttrình khác có độ ưu tiên có thể dành quyền
sử dụng CPU
– Quyết định điều phối xảy ra khi:
• Ttrình chuyển từ tthái running sang blocked
• Ttrình chuyền từ running sang ready
• Ttrình chuyền từ blocked sang ready
• Ttrình kết thúc
Trang 40Interval timer/ interrupting clock
• HĐH sử dụng một bộ đếm thời gian / đồng hồ ngắt giờ
• Khoảng thời gian t thích hợp ứng với 1 lượt cấp phát
CPU cho 1 ttrình
• Sau khoảng thời gian t xảy ra ngắt báo hiệu hết thời
gian xử lý của ttrình hiện hành Khi đó, HĐH được kích hoạt, và bộ điều phối se quyết định ttrình nào sẽ được cấp phát CPU trong lượt kế tiếp
Trang 41Độ ưu tiên của tiến trình
• Được gán bởi hệ thống hay gán tường minh bởi user
• Độ ưu tiên tĩnh: không thay đổi bất kể sự biến động của môi trường
• Độ ưu tiên động: thay đổi theo thời gian va môi
trường xử lý
Trang 42VI Tổ chức điều phối
• Danh sách sẵn sàng (ready list) chứa các ttrình đã
được nạp vào bộ nhớ chính và ở trạng thái sẵn sàng (ready) tiếp nhận CPU
• Danh sách chờ đợi (waiting list): chứa các ttrình chờ
đợi 1 thao tác xuất nhập hoàn tất, yêu cầu tài nguyên chưa được thoả mãn, yêu cầu tạm dừng
• Mỗi tài nguyên (tbị ngoại vi) có danh sách chờ đợi riêng bao gồm các ttrình đang chờ được cấp tài
nguyên đó
Trang 431 Các danh sách điều phối
head trail
head trail
head trail
Trang 442 Sơ đồ chuyển đổi giữa các danh
I/O
CPU
Trang 453 Các cấp độ điều phối
• Điều phối theo tác vụ (job scheduling)
– Quyết định lựa chọn tác vụ nào đưa vào hệ thống và nạp những ttrình của tác vụ đó vào bộ nhớ chính.
– Tạo lập 1 ttrình hay có 1 ttrình kết thúc: kích hoạt chức năng điều phối tác vụ mới.
– Chức năng điều phối tác vụ có tần xuất hoạt động thấp
do tính đa chương tương đối ổn định.
– Cần phân biệt ttrình theo hướng xuất/nhập hay hướng
xử lý
– Cân bằng hoạt động CPU và tbị ngoại vi: pha trộn hợp
lý giữa các ttrình hướng xuất/nhập và hướng xử lý.
Trang 474 Cấp độ điều phối trung gian
Tiến trình trong bộ nhớ phụ được
nạp từng phần để xử lý
Ready list
Danh sách chờ đợi Tài nguyên
CPU
I/O
Swap out Swap in
Trang 48VII Các chiến lược điều phối tiến
trình
• Chiến lược FIFO
• Chiến lược phân phối xoay vòng (round robin)
• Chiến lược điều phối theo độ ưu tiên
• Chiến lược theo công việc ngắn nhất Job-First) SJF
(shortest-• Chiến lược điều phối theo nhiều mức độ ưu
tiên
Trang 491 Chiến lược FIFO
• CPU cấp cho tiến trình đầu tiên trong ready list.
Tiến trình Thời điểm vào Thời gian xử lý
Trang 502 Chiến lược FIFO (tt)
• Thảo luận:
– Thời gian chờ trung bình không đạt cực tiểu
– Có thể xảy ra hiện tượng tích luỹ thời gian chờ
– Không phù hợp với HĐH phân chia theo thời gian
Trang 513 Chiến lược round robin
• Bộ điều phối lần lượt cấp phát cho từng tiến
trình trong ready list 1 khoảng thời gian sử
dụng CPU là quantum.
• Hết thời gian quantum mà ttrình chưa hoàn tất, ttrình đưa trở lại vào cuối ready list.
Trang 524 Chiến lược round robin (tt)
Tiến trình Thời điểm vào Thời gian xử lý
Trang 535 Chiến lược round robin (tt)
• n ttrình trong ready list; Quantum q
• Mỗi ttrình không đợi quá (n-1)q đvị thời gian để đến lượt nhận CPU.
• Thao luận:
– Độ dài quantum ?
• bé: phát sinh nhiều chuyển đổi giữa các ttrình
• Lớn: tăng thời gian phản hồi, giảm khả năng tương tác
Trang 546 Chiến lược điều phối theo độ
ưu tiên
• Gán độ ưu tiên cho mỗi ttrình
• Ttrình có độ ưu tiên cao nhất sẽ được chọn.
• Độ ưu tiên xác định
– đ/nghĩa nội tại (e.g giới hạn thời gian, nhu cầu bộ nhớ,…)
– nhờ yếu tố bên ngoài ( e.g tầm quan trọng của
ttrình, loại user sỡ hữu ttrình)
• Có thể hoạt động theo nguyên tắc độc quyền hay không độc quyền.
Trang 557.Chiến lược điều phối theo độ
ưu tiên (tt)
• Khi ttrình được đưa vào ready list
– Trong chế độ không độc quyền: so sánh độ ưu tiên với ttrình đang được xử lý hiện hành nếu độ
ưu tiên cao hơn -> cấp phát CPU cho ttrình mới.– Trong chế độ độc quyền: chèn ttrình mới vào
Trang 568 Chiến lược điều phối theo độ ưu
tiên (tt)
• Thảo luận:
– Trình trạng đói CPU (starvation): ttrình có
độ ưu tiên thấp chờ đợi vô thời hạn
• Khắc phục giảm độ ưu tiên của các ttrình có độ
ưu tiên cao sau mỗi ngắt đồng hồ
độ ưu tiên của ttrình giảm xuống thấp hơn ttrình
có độ ưu tiên cao thứ nhì -> chuyển đổi quyền
sử dụng CPU ( “lão hoá” (aging) ttrình)
Trang 579 Chiến lược theo công việc ngắn
nhất (shortest-Job-First) SJF
• Giải thuật đặc biệt của giải thuật điều phối
theo độ ưu tiên
• Độ ưu tiên p =1/t; t: thời gian xử lý yêu cầu
• Giải thuật này có thể độc quyền hay không độc quyền.
– Không độc quyền: dừng ttrình hiện hành, khi có 1 ttrình mới có độ ưu tiên cao hơn vào ready list
– Độc quyền: ttrình hiện hành tiếp tục xử lý
Trang 5810 Chiến lược theo công việc ngắn nhất (shortest-Job-First) SJF (tt)
Tiến trình Thời gian xử lý
– Thời gian chờ trung bình đạt cực tiểu
– Làm sao biết thời gian yêu cầu còn lại xử lý ?
Trang 5911 Chiến lược theo công việc ngắn nhất (shortest-Job-First)
SJF (tt)
• Dự đoán thời gian xử lý còn lại:
01
n n
Trang 6012 Chiến lược điều phối theo
nhiều mức độ ưu tiên
• Phân lớp các ttrình tuỳ theo độ ưu tiên của
chúng -> cách thức điều phối thích hợp cho từng nhóm.
• Ready list được phân thành các list riêng biệt theo cấp độ ưu tiên.
• Ttrình trong list ở cấp độ ưu tiên i chỉ được
cấp phát CPU khi các list ở cấp ưu tiên lớn
hơn i đã trống.
Trang 6113 Chiến lược điều phối theo
nhiều mức độ ưu tiên (tt)
• 1 ttrình gán vĩnh viễn cho 1 list ở cấp ưu tiên i;
ttrình không chuyển giữa các lists
=> Giảm chi điều phối, thiếu linh động và có thể dẫn đến “đói CPU”
• Xây dựng giải thuật điều phối nhiều cấp ưu
tiên và xoay vòng.
– 1 ttrình từ list có độ ưu tiên cao xuống list có độ ưu tiên thấp hơn sau mỗi lần sử dụng CPU 1 ttrình từ list có độ ưu tiên thấp -> cao hơn
– Các tham số liên quan