Giáo trình hướng dẫn phân tích hoạt động của hệ thống multiprocessor phần 1 potx - Pdf 21

Ví dụ trên đây cho ta thấy bản chất của việc thực hiện song song (hay đồng
thời) các tiến trình trên các hệ thống uniprocessor.
Rõ ràng với mô hình tiến trình hệ thống có được 2 điều lợi:
 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, sau đó tùy theo yêu cầu mà có thể nạp
tiếp các tiến trình khác.
 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 chọn thời điểm dừng của tiến trình đang hoạt động (đang chiến giữ
processor) để thu hồi processor chuyển cho tiến trình khác hay việc chọn tiến trình
tiếp theo nào trong số các tiến trình đang ở trạng thái sẵn sàng để cấp processor là
những vấn đề khá phức tạp đòi hỏi hệ điều hành phải có một cơ chế điều phối
thích hợp thì mới có thể tạo ra được hiệu ứng song song giả và sử dụng tối ưu thời
gian xử lý của processor. 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.
I.1.11. Tiểu trình và tiến trình
 Tiểu trình: Thông thường mỗi tiến trình có một không gian địa chỉ và một
dòng xử lý. Nhưng trong thực tế có 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, các dòng xử lý này có thể hoạt động song
song với nhau như các tiến trình độc lập trên hệ thống. Để thực hiện được điều này
các hệ điều hành hiện nay đưa ra một cơ chế thực thi (các chỉ thị trong chương
trình) 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ó hoàn toà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ể bao 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, nhờ đó mà các tiểu trình có thể
chia sẻ các biến toà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.
Các tiểu trình chia sẻ thời gian xử lý của processor giống như cách của tiến
trình, nhờ đó mà các tiểu trình có thể hoạt động song song (giả) với nhau. Trong

d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e

trình như một bộ đếm chương trình độc lập hoạt động trong phạm vi tác vụ). Các
thông tin thống kê về việc sử dụng các biến cục bộ của tiểu trình. Một stack thực
thi. Truy xuất đến bộ nhớ và tài nguyên của tác vụ, được chia sẻ với tất cả các tiểu
trình khác trong tác vụ.
Trong các ứng dụng server, chẳng hạn như ứng dụng file server trên mạng
cục bộ, khi có một yêu cầu hình thành một file mới, thì một tiểu trình mới được
hình thành từ chương trình quản lý file. Vì một server sẽ phải điều khiển nhiều yêu
cầu, có thể đồng thời, nên phải có nhiều tiểu trình được tạo ra và được giải phóng
trong, có thể đồng thời, một khoảng thời gian ngắn. Nếu server là một hệ thống
multiprocessor thì các tiểu trình trong cùng một tác vụ có thể thực hiện đồng thời
trên các processor khác nhau, do đó hiệu suất của hệ thống tăng lên. Sự hình thành
các tiểu trình này cũng thật sự hữu ích trên các hệ thống uniprocessor, trong trường
hợp một chương trình phải thực hiện nhiều chức năng khác nhau. Hiệu quả của
việc sử dụng tiểu trình được thấy rõ trong các ứng dụng cần có sự truyền thông
giữa các tiến trình hoặc các chương trình khác nhau.
Các thao tác lập lịch và điều phối tiến trình của hệ điều hành thực hiện trên
cơ sở tiểu trình. Nhưng nếu có một thao tác nào đó ảnh hưởng đến tấ cả các tiểu
trình trong tác vụ thì hệ điều hành phải tác động vào tác vụ.
Vì tất cả các tiểu trình trong một tác vụ chia sẻ cùng một không gian địa chỉ,
nên tất cả các tiểu trình phải được đưa vào trạng thái suspend tại cùng thời điểm.
Tương tự, khi một tác vụ kết thúc thì sẽ kết thúc tất cả các tiểu trình trong tác vụ
đó. Trạng thái suspend sẽ được giải thích ngay sau đây.
I.1.12. Các trạng thái tiến trình
Từ khi được đưa vào hệ thống cho đến khi kết thúc tiến trình tồn tại ở các trạng thái
khác nhau. Trạng thái của tiến trình tại một thời điểm được xác định bởi hoạt động
hiện thời của tiến trình tại thời điểm đó.
 Tiến trình hai trạng thái: Một số ít hệ điều hành chỉ cho phép tiến trình tồn
tại ở một trong hai trạng thái: Not Running và Running. Khi hệ điều hành tạo ra
một tiến trình mới, hệ điều hành đưa tiến trình đó vào hệ thống ở trạng thái Not
Running, tiến trình ở trạng thái này để chờ được chuyển sang trạng thái Running.

o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w


Tại một thời điểm xác định chỉ có duy nhất một tiến trình ở trạng thái
Runnig, nhưng có thể có nhiều tiến trình ở trạng thái Not running, các tiến trình ở
trạng thái Not running được chứa trong một hàng đợi (Queue). Tiến trình đang ở
trạng thái Running bị chuyển sang trạng thái Not running sẽ được đưa vào hàng
đợi. Hình vẽ sau đây mô tả việc chuyển trạng thái tiến trình trong các hệ điều hành
sử dụng 2 trạng thái tiến trình.
 Tiến trình ba trạng thái: Đa số hệ điều hành đều cho phép tiến trình tồn tại
ở một trong ba trạng thái, đó là: ready, running, blocked:
 Trạng thái Ready (sẵn sàng): Ngay sau khi khởi tạo tiến trình, đưa tiến
trình vào hệ thống và cấp phát đầy đủ tài nguyên (trừ processor) cho tiến trình, hệ
điều hành đưa tiến trình vào trạng thái ready. Hay nói cách khác, trạng thái ready là
trạng thái của một tiến trình trong hệ thống đang chờ được cấp processor để bắt đầu
thực hiện.
 Trạng thái Running (thực hiện): Là trạng thái mà tiến trình đang được
sở hữu processor để hoạt động, hay nói cách khác là các chỉ thị của tiến trình đang
được thực hiện/ xử lý bởi processor.
 Trạng thái Blocked (khoá): Là trạng thái mà tiến trình đang chờ để
được cấp phát thêm tài nguyên, để một sự kiện nào đó xảy ra, hay một quá trình
vào/ra kết thúc.
Quá trình chuyển trạng thái của các tiến trình trong được mô tả bởi sơ đồ
Hình 2.3.b: Sơ đồ chuyển tiến trình vào hàng đợi
Enter
Queue

d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e

Trong đó:
1. (Admit) Tiến trình được khởi tạo, được đưa vào hệ thống, được cấp phát
đầy đủ tài nguyên chỉ thiếu processor.
2. (Dispatch) Tiến trình được cấp processor để bắt đầu thực hiện/ xử lý.
3. (Release) Tiến trình hoàn thành xử lý và kết thúc.
4. (Time_out) Tiến trình bị bộ điều phối tiến trình thu hồi processor, do
hết thời gian được quyền sử dụng processor, để cấp phát cho tiến trình khác.
5. (Event wait) Tiến trình đang chờ một sự kiện nào đó xảy ra hay đang
chờ một thao vào/ra kết thúc hay tài nguyên mà tiến trình yêu cầu chưa được
hệ điều hành đáp ứng.
6. (Event Occurs) Sự kiện mà tiến trình chờ đã xảy ra, thao tác vào/ra mà
tiến trình đợi đã kết thúc, hay tài nguyên mà tiến trình yêu cầu đã được hệ
điều hành đáp ứng,
Bộ phận điều phối tiến trình thu hồi processor từ một tiến trình đang thực
hiện trong các trường hợp sau:
 Tiến trình đang thực hiện hết thời gian (time-out) được quyền sử dụng
processor mà bộ phận điều phối dành cho nó.
 Có một tiến trình mới phát sinh và tiến trình mới này có độ ưu tiên cao
hơn tiến trình hiện tại.
 Có một tiến trình mới phát sinh và tiến trình này mới cần một khoảng
thời gian của processor nhỏ hơn nhiều so với khoảng thời gian còn lại mà tiến trình
hiện tại cần processor.
Tại một thời điểm xác định trong hệ thống có thể có nhiều tiến trình đang ở
trạng thái Ready hoặc Blocked nhưng chỉ có một tiến trình ở trạng thái Running.
Các tiến trình ở trạng thái Ready và Blocked được chứa trong các hàng đợi (Queue)
riêng.

Runnin
g



Time-
Event
Event
Occurs

Processor
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.

w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m Có nhiều lý do để một tiến trình đang ở trạng thái running chuyển sang trạng


Suspend

Running

Activate
Suspend
Hình
2.5.a:
S
ơ

đ
ồ chuyển trạng thái tiến tr
ình có
End
New
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e


C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o

Hình 2.5.b:
S
ơ

đ
ồ chuyển trạng thái tiến tr
ình v
ới 2
suspend

Ready

Blocked

Running

Activate
Blocked

suspend

Event
Occurs


e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h

Sau đây chúng ta xem xét sự chuyển trạng thái tiến trình trong sơ đồ trên:
1. Blocked sang Blocked-suspend: nếu không còn tiến trình ready trong
bộ nhớ chính và bộ nhớ chính không còn không gian nhớ trống thì phải có ít nhất
một tiến trình blocked bị chuyển ra ngoài, blocked-suspend, để dành bộ nhớ cho
một tiến trình không bị khoá (not blocked) khác.
2. Blocked-suspend sang Ready-suspend: một tiến trình đang ở trạng thái
blocked-suspend được chuyển sang trạng thái ready-suspend khi sự kiện mà nó đợi
đã xảy ra.
3. Ready-suspend sang Ready: có 2 lý do để hệ điều hành chọn khi
chuyển một tiến trình ở trạng thái ready-suspend sang trạng thái ready:
 Không còn tiến trình ready trong bộ nhớ chính, hệ điều hành phải
nạp một tiến trình mới vào để nó tiếp tục thực hiện
 Nếu có tiến trình ready-suspend có độ ưu tiên cao hơn so với các
tiến trình ready hiện tại thì hệ điều hành có thể chuyển nó sang trạng thái
ready để nó nhiều cơ hội để được thực hiện hơn.
4. Ready sang Ready suspend: Hệ điều hành thường chuyển các tiến trình
blocked sang suspend hơn là các tiến trình ready, vì các tiến trình ở trạng thái
blocked không thể thực hiện ngay lập tức nhưng lại chiếm nhiều không gian bộ nhớ
chính hơn so với các tiến trình ở trạng thái ready. Tuy nhiên, nếu việc chọn tiến
trình để chuyển sang suspend dựa vào 2 điều kiện: chiếm ít không gian bộ nhớ hơn
và có độ ưu tiên thấp hơn thì hệ điều hành có thể chuyển một tiến trình ready sang
trạng thái suspend.
Như vậy với việc chuyển tiến trình sang trạng thái suspend hệ điều hành sẽ
chủ động hơn trong việc cấp phát bộ nhớ và ngăn chặn các tình huống tắc nghẽn
có thể xảy ra do sự tranh chấp về tài nguyên, nhờ vậy mà hệ điều hành tiết kiệm
được bộ nhớ, chia sẻ được tài nguyên cho nhiều tiến trình và tăng được mức độ đa
chương của hệ thống. Tuy nhiên, để có được những lợi ích trên hệ điều hành đã

o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w

bộ nhớ chính dành cho tiến trình. Không gian bộ nhớ phụ dành cho tiến trình. Các
thuộc tính bảo vệ bộ nhớ chính và bộ nhớ ảo. Các thông tin cần thiết để quản lý bộ
nhớ ảo. Ở đây chúng tôi điểm qua một vài thông tin về memory table, là để lưu ý
với các bạn rằng: nhiệm vụ quản lý tiến trình và quản lý bộ nhớ của hệ điều hành
có quan hệ chéo với nhau, bộ phận quản lý tiến trình cần phải có các thông tin về
bộ nhớ để điều khiển sự hoạt động của tiến trình, ngược lại bộ phận quản lý bộ nhớ
phải có các thông tin về tiến trình để tổ chức nạp tiến trình vào bộ nhớ, … Điều này
cũng đúng với các bộ phận quản lý Vào/ ra và quản lý tập tin. Trong phần trình bày
sau đây chúng tôi chỉ đề cập đến Process Table của hệ điều hành.
Để quản lý và điều khiển được một tiến trình, thì hệ điều hành phải biết được
vị trí nạp tiến trình trong bộ nhớ chính, phải biết được các thuộc tính của tiến trình
cần thiết cho việc quản lý tiến trình của nó:
 Định vị của tiến trình (process location): định vị của tiến trình phụ thuộc
vào chiến lược quản lý bộ nhớ đang sử dụng. Trong trường hợp đơn giản nhất, tiến
trình, hay chính xác hơn là hình ảnh tiến trình, được lưu giữa tại các khối nhớ liên
tục trên bộ nhớ phụ (thường là đĩa), để tiến trình thực hiện được thì tiến trình phải
được nạp vào bộ nhớ chính. Do đó, hệ điều hành cần phải biết định vị của mỗi tiến
trình trên đĩa và cho mỗi tiến trình đó trên bộ nhớ chính. Trong một số chiến lược
quản lý bộ nhớ, hệ điều hành chỉ cần nạp một phần tiến trình vào bộ nhớ chính,
phần còn lại vẫn nằm trên đĩa. Hay tiến trình đang ở trên bộ nhớ chính thì có một
phần bị swap-out ra lại đĩa, phần còn lại vẫn còn nằm ở bộ nhớ chính. Trong các
trường hợp này hệ điều hành phải theo dõi tiến trình để biết phần nào của tiến trình
là đang ở trong bộ nhớ chính, phần nào của tiến trình là còn ở trên đĩa.
Đa số các hệ điều hành hiện nay đều sử dụng chiến lược quản lý bộ nhớ mà
trong đó không gian địa chỉ của tiến trình là một tập các block, các block này có thể
không liên tiếp nhau. Tùy theo chiến lược bộ nhớ sử dụng mà các block này có thể
có chiều dài cố định (chiến lược phân phân trang bộ nhớ) hay thay đổi (chiến lược
phân đoạn bộ nhớ) hay kết hợp cả hai. Hệ điều hành cho phép không nạp tất cả các
trang (page) và/hoặc các đoạn (segment) của tiến trình vào bộ nhớ. Do đó, process
Click to buy NOW!

c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d

dụng.
 Thông tin trạng thái processor (processor state information): bao gồm
các thanh ghi User-visible, các thanh ghi trạng thái và điều khiển, các con trỏ stack.
 Thông tin điều khiển tiến trình (process control information): bao gồm
thông tin trạng thái và lập lịch, cấu trúc dữ liệu, truyền thông liên tiến trình, quyền
truy cập tiến trình, quản lý bộ nhớ, tài nguyên khởi tạo và tài nguyên sinh ra.
PCB là một trong những cấu trúc dữ liệu trung tâm và quan trọng của hệ điều
hành. Mỗi PCB chứa tất cả các thông tin về tiến trình mà nó rất cần cho hệ điều
hành. Có nhiều modun thành phần trong hệ điều hành có thể read và/hoặc modified
PCB như: lập lịch tiến trình, cấp phát tài nguyên cho tiến trình, ngắt tiến trình, vv.
Có thể nói các thiết lập trong PCB định nghĩa trạng thái của hệ điều hành.
I.1.14. Các thao tác điều khiển tiến trình
 Khi khởi tạo tiến trình hệ điều hành thực hiện các thao tác sau:
 Hệ điều hành gán PID cho tiến trình mới và đưa tiến trình vào danh
sách quản lý của hệ thống, tức là, dùng một entry trong PCB để chứa các thông tin
liên quan đến tiến trình mới tạo ra này.
 Cấp phát không gian bộ nhớ cho tiến trình. Ở đây hệ điều hành cần phải
xác định được kích thước của tiến trình, bao gồm code, data và stack. Giá trị kích
thước này có thể được gán mặt định dựa theo loại của tiến trình hoặc được gán theo
yêu cầu của người sử dụng khi có một công việc (job) được tạo. Nếu một tiến trình
được sinh ra bởi một tiến trình khác, thì tiến trình cha có thể chuyển kích thước của
Click to buy NOW!
P
D
F
-
X
C
h
a

D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c

nó. Sau đây là các bước mà hệ điều hành phải thực hiện đầy đủ khi thay đổi trạng
thái tiến trình:
 Lưu (save) ngữ cảnh của processor, bao gồm thanh ghi bộ đếm chương
trình (PC: program counter) và các thanh ghi khác.
 Cập nhật PCB của tiến trình, sao cho phù hợp với trạng thái mới của
tiến trình, bao gồm trạng thái mới của tiến trình, các thông tin tính toán, vv.
 Di chuyển PCB của tiến trình đến một hàng đợi thích hợp, đế đáp ứng
được các yêu cầu của công tác điều phối tiến trình.
 Chọn một tiến trình khác để cho phép nó thực hiện.
 Cập nhật PCB của tiến trình vừa được chọn thực hiện ở trên, chủ yếu là
thay đổi trạng thái của tiến trình đến trạng thái running.
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r


V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status