CHƯƠNG 2
Quản lý tiến trình
1. TỔNG QUAN VỀ TIẾN TRÌNH
Vì sao muốn xử lý đồng thời nhiều công việc trên
máy tính ?
Job 1
CPU
CPU
IO
CPU
IO
CPU
IO
CPU
IO
CPU
IO
CPU
Job 1
Job 2
CPU
Xử lý đồng thời để tăng hiệu suất sử dụng CPU
3
Vì sao muốn xử lý đồng thời nhiều công việc trên
máy tính ?
Job : kq = a*b + c*d;
1
Xửù lý đồng hành
CPU #2
CPU #1
x=a*b
y=c*d
y = c *d
2
kq = x+y
kq = x+y
3
Xứ lý tuần tự
CPU #1
x=a*b
Xử lý đồng thời để tăng tốc độ xử lý
4
Xử lý đồng hành, những khó khăn ?
Excel
Visual C++
CDplayer
Winword
- Tài nguyên giới hạn, ứng dụng
“vô hạn”
- Nhiều hoạt động đan xen
??? Phân chia tài nguyên ?
??? Chia sẻ tài nguyên ?
??? Bảo vệ?
HĐH : “Giải quyết nhiều công việc đồng thời, đâu có dễ !”
5
Giải pháp
Winword
-“Chia để trị”, cô lập các
hoạt động.
- Mỗi thời điểm chỉ giải
quyết 1 yêu cầu.
CDPlayer
Excel
- o hoá tài nguyên: biến
ít thành nhiều
Visual C ++
HĐH: “Ai cũng có phần khi đến lượt mà!”
6
1. Tng quan v tin trỡnh
Trạng thái của một hệ thống tính toán tại một thời
điểm đ-ợc hiểu là một bộ thông tin của tất cả các
thành phần trong hệ thống tính toán.
Một dÃy chuyển trạng thái của hệ thống tính toán ký
hiệu là S0, S1,..Sn trong đó S0 là trạng thái đầu, Sn là
trạng thái kết thúc thì ta gọi đó là một tiến trình.
A
S0
S1
S2
S3 S4
S5
. . . . Sn-1 Sn
Sn+1 . . . .
B
ViƯc chun trạng thái hệ thống tính toán phải
dựa vào một sự kiện phát sinh trong hệ thống gọi
là hiện t-ợng ngắt.
7
Khái niệm tiến trình (process)
Tiến trình là một bộ phận của một chương trình
đang thực hiện, đơn vị thực hiện tiến trình là
processor.
Tiến trình 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ỉ trong bộ nhớ chính và tất cả các thơng tin cần
thiết khác để tiến trình có thể hoạt động được.
Vd:
Một chương trình Word có thể được chạy 2
lần sẽ tạo ra 2 tiến trình khác nhau:
Microsoft Word – [Bai tap1.doc]
Microsoft Word – [Bai tap2.doc]
8
Khái niệm khác
9
Saltzer: Tiến trình là một chương trình do một
processor logic thực hiện.
Horning & Rendell: Tiến trình là một quá trình
chuyển từ trạng thái này sang trạng thái khác
dưới tác động của hàm hành động, xuất phát
từ một trạng thái ban đầu nào đó.
Các loại tiến trình
Có thể chia thành hai loại: tiến trình tuần tự (MS_DOS)
và tiến trình
multiprocessor)
song
song
(uniprocessor
và
Tiến trình tuần tự là các tiến trình mà điểm khởi tạo của
nó là điểm kết thúc của tiến trình trước đó.
Tiến trình song song là các tiến trình mà điểm khởi tạo
của tiến trình này nằm ở thân của các tiến trình khác:
BEGIN
A
B
Begin
10
END
t
Phân loại tiến trình song song
A a
A
a
A
A
a
B
b
C
c
Z
z
I
B b
B
b
B
C c
C
c
C
z
Z
I
Z z
c lập
11
Z
Quan hệ
thông
tin
b
c
z
Phân
cấp
Đồng mức
P1
P2
P3
Time
a. Trong hệ thống uniprocessor
P1
P2
P3
Time
b. Trong hệ thống Multiprocessor
Sự thực hiện đồng thời của các tiến trình trong hệ thống uniprocessor
(a) và hệ thống multiprocessor (b).
12
Các loại tiến trình
Nếu nhìn ở góc độ người dùng thì có 2 loại tiến trình:
Tiến trình của hệ điều hành: Được chạy ở chế độ đặc
quyền và được truy xuất đến các vùng dữ liệu được
bảo vệ của hệ thống.
Tiến trình của chương trình ứng dụng: Chạy ở chế độ
không đặc quyền và không được truy xuất đến các dữ
liệu được bảo vệ một cách trực tiếp mà phải thông
qua lời gọi hệ thống.
13
Mơ hình tiến trình
Về ngun tắc, hệ thống phải có nhiều processor,
mỗi processor có nhiệm vụ thực hiện một chương
trình.
Tuy nhiên, mong muốn là thực hiện sự đa
chương trên các hệ thống chỉ có một processor.
Tức là, có thể có nhiều chương trình hoạt động
đồng thời (concurrence) Sử dụng mơ hình tiến
trình để tạo ra sự song song giả hay tạo ra các
processor logic từ processor vật lý.
14
Mụ hỡnh tin trỡnh
Chế độ đa ch-ơng trình phân chia thời gian
mỗi ng-ời sử dụng có cảm giác nh- chỉ có
một mình mình là ng-ời duy nhất sử dụng toàn
bộ hệ thống.
Tất cả các hệ điều hành thực hiƯn song song
®Ịu do mét processor cđa hƯ thèng –
processor vật lý điều khiển.
Ng-ời sử dụng đánh giá hoạt động processor
trên cơ sở quan sát tiến trình của mình thực
hiện -> Processor ng-ời sử dụng quan sát và
đánh giá: processor lôgic
Processor logic gắn với tiến trình.
15
Processor lô gíc và Processor vật lý
Chế độ xử lý kế tiếp đơn ch-ơng trình:
Một tiến trình đ-ợc thực hiện xong mới khởi tạo và thực hiện tiến
trình khác -> có thể đồng nhất processor logic với processor vật
lý.
Kém hiệu quả vì tài nguyên processor bị lÃng phí nhiều.
Nâng cao hiệu quả khai thác của toàn hƯ thèng nãi
chung:
Ph©n chia bé nhí
Ph©n phèi thêi gian của processor cho nhiều tiến trình đồng thời
tồn tại.
Đối với mỗi tiến trình, tốc độ thực hiện sẽ bị giảm :
Thời gian truy nhập bộ nhớ tăng
Không đ-ợc quyền sử dụng processor liên tục.
Đối với ng-ời sử dụng: thay đổi tâm lý khai thác hệ
thống.
16
Các vấn đề cần phải giải quyết đối
với các hệ thống nhiều processor
a)Số l-ợng processor logic nên tạo ra là bao
nhiêu?
b) Độ dài khoảng thời gian gắn liên tục processor
vật lý cho một processor lôgic là bao nhiêu thì
hợp lý?
c)Sau khi mét processor l«gic hÕt qun sư dơng
processor vËt lý thì cần chọn tiến trình nào để
phân phối processor vật lý?
Các cách giải quyết khác nhau ba vấn đề nêu trên
tạo ra các chiến l-ợc điều độ tiến trình khác
nhau.
17
Mơ hình tiến trình
Hệ điều hành sẽ chia các chương trình thành các
tiến trình, khởi tạo, đưa vào hệ thống và cấp phát đầy
đủ tài nguyên (trừ processor) cho tiến trình và đưa
các tiến trình sang trạng thái sẵn sàng.
Hệ điều hành cấp processor cho một tiến trình trong
số các tiến trình ở trạng thái sẵn sàng, sau một
khoảng thời gian hệ điều hành thu hồi processor của
tiến trình này để cấp cho một tiến trình sẵn sàng
khác.
Khoảng thời gian đó là rất nhỏ tạo ra cảm giác các
tiến trình đều sở hữu processor song song giả
18
Mơ hình tiến trình
Ví dụ:
Giả sử trong hệ thống có 3 tiến trình sẵn sàng P1, P2, P3 thì
quá trình chuyển processor giữa 3 tiến trình này có thể minh
họa như sau:
Thời điểm
Trạng thái các tiến trình
t1
P1: được cấp processor
t2
P1: bị thu hồi processor (khi chưa kết thúc)
P3: được cấp processor
t3
P3: bị thu hồi processor (khi chưa kết thúc)
P1: được cấp processor
t4
P1: kết thúc và trả lại processor
P2: được cấp processor
t5
P2: kết thúc và trả lại processor
P3: được cấp processor
t6
P3: kết thúc và trả lại processor
19
Mơ hình tiến trình
Ví dụ:
Hình sau đây minh họa q trình thực hiện
của 3 tiến trình P1, P2, P3 ở trên:
P1
P2
P3
Time
t1
t2
t3
t4
t5
t6
Sự hoạt động “song song” của các tiến trình P1, P2, P3 uniprocessor
20
Mơ hình tiến trình
Ưu điểm: Tiết kiệm được bộ nhớ vì khơng phải
nạp tất cả chương trình vào bộ nhớ mà chỉ nạp
các tiến trình cần thiết nhất.
Cho phép các chương trình hoạt động song song
nên tốc độ xử lý của toàn hệ thống tăng lên và
khai thác tối đa thời gian xử lý của processor.
Việc thu hồi processor chuyển cho tiến trình khác
là những vấn đề phức tạp. Bộ phận thực hiện
chức năng này của hệ điều hành được gọi là bộ
điều phối (dispatcher) tiến trình.
21
Mô hình đa tiến trình (MultiProcesses)
Hệ thống là một tập các tiến trình hoạt động đồng thời
Các tiến trình độc lập với nhau => không có sự trao đổi
thông tin hiển nhiên…
VD: Giờ thi lý thuyết môn Hệ Điều hành
Mỗi sinh viên là một tiến trình :
Cùng làm bài => Hoạt động đồng hành
Có bài thi , bút, giấy…riêng => Tài nguyên riêng biệt
Độc lập => Không trao đổi (về nguyên tắc)
winword
22
Excel
Visual C
OS
CDplayer
Tiểu trình
Mỗi tiến trình có một khơng gian địa chỉ và một
dòng xử lý.
Một số ứng dụng cần nhiều dịng xử lý cùng chia
sẻ một khơng gian địa chỉ tiến trình, điều này đưa
đến một cơ chế thực thi mới, được gọi là tiểu trình.
Tiểu trình là một đơn vị xử lý cơ bản trong hệ
thống, nó hồn tồn tương tự như tiến trình. Tức là
nó cũng phải xử lý tuần tự các chỉ thị máy, nó cũng
sở hữu con trỏ lệnh, một tập các thanh ghi, và một
khơng gian stack riêng.
Một tiến trình bao gồm nhiều tiểu trình.
23
Tiểu trình - Thread
Tiểu trình
Tiểu trình là một đơn vị xử lý cơ bản trong hệ
thống, nó hồn tồn tương tự như tiến trình.
Tức là nó cũng phải xử lý tuần tự các chỉ thị máy
của nó, nó cũng sở hữu con trỏ lệnh, một tập các
thanh ghi, và một không gian stack riêng.
Một tiến trình đơn có thể gồm nhiều tiểu trình.
Các tiểu trình trong một tiến trình chia sẻ một
khơng gian địa chỉ chung => có thể chia sẻ các
biến tồn cục của tiến trình và có thể truy xuất lên
các vùng nhớ stack của nhau.
25