Tải bản đầy đủ (.pdf) (85 trang)

Bài giảng Hệ điều hành - Chương 2: Quản lý tiến trình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.43 MB, 85 trang )

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



 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



×