HỆ ĐIỀU HÀNH
Quản lý tiến trình
2
NHÓM 2:
•
NGUYỄN THỊ HỒNG ANH
•
ĐỖ THỊ NGOC BÍCH
•
NGUYỄN THỊ NGỌC BÍCH
•
VŨ THỊ NGỌC BÍCH
•
NGUYỄN THỊ LINH CHI
3
NỘ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 )
4
I. Mô hình tiến trình
1. Khái niệm
•
Tiến trình (process):
–
Là một chương trình đang xử lý
–
Sở hữu 1 con trỏ lệnh, tập các thanh ghi, và
các biến.
–
Cần 1 số tài nguyên: CPU, memory,các tập
tin, và thiết bị xuất/nhập.
5
- Sự thực hiện tiến trình phải tiến hành theo kiểu tuần
tự.
•
Một tiến trình bao gồm:
- Program counter - bộ đếm chương trình
- Stack - ngăn xếp
- Data section – đoạn dữ liệu
6
Tiến trình trong bộ nhớ
7
2. 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.
8
3.Các trạng thái của tiến trình
Mới tạo Kết thúc
Ready
Ready
Running
Running
Blocked
Blocked
(1)
(5) (3)
(2)
(6)
(4)
9
Cá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ý.
10
4. Chuyển đổi trạng thái của tiế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.
11
5. 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.
OS
Hardware
Shell, editor
users
Chế độ không đặc quyền
Chế độ đặc quyền
12
6. 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
13
Khối điều khiển tiến trình
Process Control Block (PCB)
14
Khố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
CPU time
Unit 1 Unit 2
RCB 1 RCB 2
RCB 1 RCB 2
PCB
PCB 1 PCB 2
…
Ngữ cảnh của ttrình
Thông tin giao tiếp
Thông tin thống kê
Trạng thái ttrình
Định danh ttrình
15
7. 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.
- Tạo lập ttrình con
•
Destroy: Thu hồi tài nguyên đã cấp phát, huỷ PCB.
•
Suspend (tạm dừng): hệ thống thực chức năng 1 cách
yếu kém, có thể bị thất bại.
•
Resume (tái kích hoạt)
•
Thay đổi độ ưu tiên
16
8. Đ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)
17
II. Lập lịch tiến trình (process
scheduling)
•
Mục tiêu của multiprogramming là có nhiều tiến trình
cù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ến
trì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.
18
1. 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
bộ nhớ chính, đã sẵn sàng và chờ được thực hiện.
•
FIFO queue
•
Priority queue
•
Tree
•
Danh sách liên kết
•
Device queues – tập hợp các tiến trình đang chờ một
thiết bị vào/ra.
•
Tiến trình có thể di trú giữa các queue khác nhau.
19
Sơ đồ lập lịch tiến trình
20
2. Các trình lập lịch - Schedulers
•
Long-term scheduler (trình lập lịch dài kỳ) còn được gọi là job
scheduler.
•
lựa chọn những tiến trình nào nên được đưa từ đĩa vào trong
ready queue.
•
được sử dụng đến rất không thường xuyên (seconds, minutes)
may be slow.
•
kiểm soát mức đa chương trình (degree of multiprogramming),
vd: số tiến trình.
•
Short-term scheduler (trình lập lịch ngắn kỳ) còn được gọi là
CPU scheduler.
•
lựa chọn tiến trình nào nên được thực hiện kế tiếp và phân phối
CPU cho nó.
•
được sử dụng đến rất thường xuyên (milliseconds) must be fast.
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
22
3. 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.
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.
24
III. 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.
25