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

Giáo trình phân tích quy trình ứng dụng điều phối cung cấp processor cho bo mạch p1 pdf

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 (523.89 KB, 5 trang )

điểm vào ready list và khoảng thời gian mỗi tiến trình cần processor được mô tả
trong bảng sau:
Tiến trình thời điểm vào t/g xử lý
P
1
0 24
P
2
1 3
P
3
2 3 Quantum = 4
Thì thứ tự cấp processor cho các tiến trình lần lượt là:
Tiến trình P
1
P
2
P
3
P
1
P
1
P
1
P
1
P
1

Thời điểm 0 4 7 10 14 18 22 26


Vậy thời gian chờ đợi trung bình sẽ là: (0 + 6 + 3 + 5)/3 = 4.46
Như vậy RR có thời gian chờ đợi trung bình nhỏ hơn so với FIFO
Trong chiến lược này, vấn đề đặt ra đối với công tác thiết kế là: nên
chon quantum bằng bao nhiêu là thích hợp, nếu quantum nhỏ thì hệ
thống phải tốn nhiều thời gian cho việc cập nhật ready list và chuyển
trạng thái tiến trình, dẫn đến vi phạm mục tiêu: khai thác tối đa thời
gian xử lý của processor. Nếu quantum lớn thì thời gian chờ đợi trung
bình và thời gian hồi đáp sẽ tăng lên, dẫn đến tính tương tác của hệ
thống bị giảm xuống.
 Chiến lược theo độ ưu tiên: trong chiến lược này, bộ phận điều phối tiến
trình dựa vào độ ưu tiên của các tiến trình để tổ chức cấp processor cho tiến trình.
Tiến trình được chọn để cấp processor là tiến trình có độ ưu tiên cao nhất, tại thời
điểm hiện tại.
Ở đây hệ điều hành thường tổ chức gán độ ưu tiên cho tiến trình theo nguyên
tắc kết hợp giữ gán tĩnh và gán động. Khi khởi tạo tiến trình được gán độ ưu tiên
tĩnh, sau đó phụ thuộc vào môi trường hoạt động của tiến trình và công tác điều
phối tiến trình của bộ phận điều phối mà hệ điều hành có thể thay đổi độ ưu tiên
của tiến trình.
Khi hệ thống phát sinh một tiến trình ready mới, thì bộ phận điều phối sẽ so
sánh độ ưu tiên của tiến trình mới phát sinh với độ ưu tiên của tiến trình đang sở
hữu processor (tạm gọi là tiến trình hiện tại). Nếu tiến trình mới có độ ưu tiên thấp
hơn tiến trình hiện tại thì bộ phận điều phối sẽ chèn nó vào ready list tại vị trí thích
hợp. Nếu tiến trình mới có độ ưu tiên cao hơn tiến trình hiện tại thì bộ điều phối sẽ
thu hồi processor từ tiến trình hiện tại để cấp cho tiến trình mới yêu cầu, nếu là điều
phối không độc quyền, hoặc chèn tiến trình mới vào ready list tại vị trí thích hợp,
nếu là điều phối độc quyền.
Chiến lược này cũng phải sử dụng ready list, và ready list luôn được xếp theo
Click to buy NOW!
P
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
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
o
c

u
-
t
r
a
c
k
.
c
o
m
Giáo trình phân tích quy trình ứng dụng
điều phối cung cấp processor cho bo mạch
thứ tự giảm dần của độ ưu tiên kể từ đầu danh sách. Điều này có nghĩa là tiến trình
được chọn để cấp processor là tiến trình ở đầu ready list.
Ví dụ: Nếu hệ điều hành cần cấp processor cho 3 tiến trình P
1
, P
2
, P
3
với độ
ưu tiên và khoảng thời gian mỗi tiến trình cần processor được mô tả trong bảng sau:
Tiến trình độ ưu tiên thời gian xử lý
P1 3 24
P2 1 3
P3 2 3
Thì thứ tự cấp processor (theo nguyên tắc độc quyền) cho các tiến trình lần
lượt là:
Tiến trình P2 P3 P1

Thời điểm 0 4 7
Chiến lược này có thể dẫn đến hậu quả: các tiến trình có độ ưu tiên thấp sẽ
rơi vào tình trạng chờ đợi vô hạn. Để khắc phục điều này hệ điều hành thường hạ
độ ưu tiên của các tiến trình có độ ưu tiên cao sau mỗi lần nó được cấp processor.
 Chiến lươc SJF (Shortest Job Fist: công việc ngắn nhất): Đây là trường hợp
đặc biệt của chiến lược theo độ ưu tiên. Trong chiến lược này độ ưu tiên P của mỗi
tiến trình là 1/t, với t là khoảng thời gian mà tiến trình cần processor. Bộ điều phối
sẽ chọn tiến trình có P lớn để cấp processor, tức là ưu tiên cho những tiến trình có
thời gian xử lý (thời gian cần processor) nhỏ.
Chiến lược này có thể có thời gian chờ đợi trung bình đạt cực tiểu. Nhưng hệ
điều hành khó có thể đoán được thời gian xử lý mà tiến trình yêu cầu.
 Chiến lược nhiều cấp độ ưu tiên: Hệ điều hành phân lớp các tiến trình theo
độ ưu tiên của chúng để có cách thức điều phối thích hợp cho từng lớp tiến trình.
Mỗi cấp độ ưu tiên có một realy list riêng. Bộ điều phối dùng chiến lược điều phối
thích hợp cho từng realy list. Hệ điều hành cũng phải thiết kế một cơ chế thích hợp
để điều phối tiến trình giữa các lớp.
Trong chiến lược này hệ điều hành sử dụng độ ưu tiên tĩnh, và điều phối
không độc quyền, do đó một tiến trình thuộc ready list ở cấp ưu tiên i sẽ chỉ được
cấp phát processor khi trong ready list ở cấp ưu tiên j (j > i) không còn một tiến
trình nào.
Các tiến trình ở ready list có độ ưu tiên thấp sẽ phải chờ đợi processor trong
một khoảng thời gian dài, có thể là vô hạn. Để khắc phục điều này hệ điều hành xây
dựng chiến lược điều phối: Nhiều mức độ ưu tiên xoay vòng. Trong chiến lược này
hệ điều hành chuyển dần một tiến trình ở ready list có độ ưu tiên cao xuống ready
list có độ ưu tiên thấp hơn sau mỗi lần sử dụng procesor, và ngược lại một tiến
trình ở lâu trong ready list có độ ưu tiên thấp thì sẽ được chuyển dần lên ready list
Click to buy NOW!
P
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
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
o
c
u

-
t
r
a
c
k
.
c
o
m
có độ ưu tiên cao hơn.
Khi xây dựng chiến lược nhiều mức độ ưu tiên xoay vòng hệ điều hành cần
xác định các thông tin sau: Số lượng các lớp ưu tiên. Chiến lược điều phối riêng
cho từng read list trong mỗi lớp ưu tiên. Một tiến trình ready mới sẽ được đưa vào
ready list nào. Khi nào thì thực hiện việc di chuyển một tiến trình từ ready list này
sang ready list khác.
I.20. Tiến trình trong Windows NT
 Giới thiệu
Việc thiết kế tiền trình trong Windows NT được thực hiện từ nhu cầu cung cấp sự
hỗ trợ cho nhiều môi trường hệ điều hành khác nhau. Các tiến trình được hỗ trợ bởi
các hệ điều hành khác nhau có một số điểm khác nhau, bao gồm:
 Cách đặt tên cho các tiến trình.
 Có hay không các tiểu trình bên trong tiến trình.
 Các tiến trình được thể hiện như thế nào.
 Các tài nguyên của tiến trình được bảo vệ như thế nào.
 Các chiến lược được sử dụng trong giao tiếp và đồng bộ tiến trình
 Cách mà các tiến trình liên hệ với mỗi tiến trình khác
Do đó, các cấu trúc tiến trình và các dịch vụ ban đầu được cung cấp bởi
kernel của windows NT là phải đạt mục tiêu đơn giản và tổng quát, cho phép mỗi
hệ thống con hệ điều hành mô phỏng một cấu trúc tiến trình riêng và thiết thực. Các

đặc tính quan trọng của các tiến trình windows NT là như sau:
 Các tiến trình NT được cài đặt như là các đối tượng.
 Một tiến trình có khả năng thi hành có thể chứa một hay nhiều tiểu
trình.
 Cả các đối tượng tiến trình và tiểu trình có sẵn khả năng đồng bộ.
 Kernel của Windows NT không duy trì mối quan hệ nào giữa các tiến
trình mà nó đã tạo ra, kể cả các mối quan hệ cha con.
Hình sau đây minh hoạ cách một tiến trình liên hệ với các tài nguyên nó điều
khiển hoặc sử dụng.
 Thẻ (token) truy xuất, kiểm tra xem tiến trình có thể thay đổi các đặc
tính của riêng nó hay không. Trong trường hợp này, tiến trình không có một
handle được mở cho token truy xuất của nó. Nếu tiến trình cố gắng mở một
handle như thế, hệ thống an toàn sẽ quyết định cho phép hay không, và do đó
tiến trình có thể thay đổi các đặc tính riêng của nó hay không.

Process
Access
token

Object

Available

Không gian
đ
ịa chỉ ảo


Click to buy NOW!
P

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

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
o

c
u
-
t
r
a
c
k
.
c
o
m












 Liên quan đến tiến trình là một dãy các block định nghĩa không gian
địa chỉ ảo đang được kết gán cho tiến trình đó. Tiến trình không thể trực tiếp
sửa đổi các cấu trúc này mà phải dựa vào thành phần quản lý bộ nhớ ảo, trình
quản lý bộ nhớ cung cấp dịch vụ định vị bộ nhớ cho tiến trình.
 Cuối cùng, tiến trình bao gồm một bảng đối tượng, với các handle đến
các đối tượng khác liên quan đến tiến trình này. Một handle tồn tại cho mỗi

tiểu trình chứa trong đối tượng này. Trong hình này, tiến trình có một tiểu
trình đơn. Ngoài ra, tiến trình truy xuất đến một đối tượng file và đến một
đối tượng section mà nó xác định một section bộ nhớ chia sẻ.
 Các đối tượng tiến trình và tiểu trình
Cấu trúc hướng đối tượng của windows NT làm cho việc phát triển tiến trình của
nó được dễ dàng hơn. Windows NT có hai kiểu đối tượng liên quan đến tiến trình:
các tiến trình và tiểu trình. Một tiến trình là một thực thể tương ứng với một công
việc của người sử dụng hay ứng dụng mà nó sở hữu các tài nguyên, như bộ nhớ, và
các tập tin được mở. Một tiểu trình là một đơn vị có thể điều phối, sự thực thi của
nó có thể được thực hiện tuần tự hay bị ngắt, do đó processor có thể chuyển từ tiểu
trình này sang tiểu trình khác.
Mỗi tiến trình windows NT được thể hiện bởi một đối tượng, mà cấu trúc
chung của nó bao gồm: loại đối tượng (Object type), các thuộc tính đối tượng
(Object Attributes) và các dịch vụ (Service).
Mỗi tiến trình được định nghĩa bởi một tập các thuộc tính và các dịch vụ mà
nó có thể thực hiện. Một tiến trình sẽ thực hiện một dịch vụ để nhận thông điệp
thích hợp.
Khi windows NT tạo ra một tiến trình mới, nó sử dụng lớp đối tượng, hay
Click to buy NOW!
P
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
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
o
c
u
-
t
r
a
c
k
.
c

o
m
kiểu, định nghĩa cho tiến trình windows NT như một template để tạo ra một thể
hiện mới của đối tượng. Tại thời điểm tạo đó, các giá trị thuộc tính sẽ được gán.
Một tiến trình windows NT phải chứa ít nhất một tiểu trình để thực thi. Tiểu
trình đó sau đó có thể tạo ra các tiểu trình khác. Trong hệ thống đa xử lý, nhiều tiểu
trình của cùng tiến trình có thể thực thi song song.
Một số thuộc tính của một tiểu trình tương tự với các thuộc tính của một tiến
trình. Trong những trường hợp đó, giá trị thuộc tính của tiểu trình được thừa kế từ
giá trị thuộc tính của tiến trình. Ví dụ, các processor liên quan đến các tiểu trình là
tập các processor trong một hệ thống multiprocessor (đa vi xử lý) mà nó có thể thực
thi tiểu trình này; tập đó tương đương hay một tập con của các processor liên quan
đến tiến trình.
Một trong những thuộc tính của đối tượng tiểu trình là ngữ cảnh (context)
của tiểu trình. Thông tin này cho phép các tiểu trình có thể tạm dừng và tái kích
hoạt trở lại được. Hơn thế nữa, nó có thể thay đổi hành vi của một tiểu trình bằng
cách thay đổi ngữ cảnh của nó khi nó bị tạm dừng.
 Multithreading (Đa tiểu trình)
Windows NT hỗ trợ đồng thời nhiều tiến trình bởi vì các tiểu trình trong các tiến
trình khác nhau có thể thực thi đồng thời. Hơn nữa, nhiều tiểu trình bên trong cùng
một tiến trình có thể định vị tách biệt các processor và thực thi đồng thời. Một tiến
trình đa tiểu trình đạt được sự đồng thời mà không cần sử dụng nhiều tiến trình.
Các tiểu trình bên trong cùng tiến trình có thể trao đổi thông tin thông qua bộ nhớ
chia sẻ và truy xuất các tài nguyên chia sẻ của tiến trình.
Một tiến trình đa tiểu trình hướng đối tượng là một công cụ hiệu quả cho
việc cung cấp các ứng dụng server. Một tiến trình server đơn lẻ có thể phục vụ một
số client. Mỗi client yêu cầu khởi phát việc tạo một tiểu trình mới bên trong server.
 Hỗ trợ các hệ thống con hệ điều hành
Mục tiêu chung nhất của tiến trình và tiểu trình là phải hỗ trợ các cấu trúc tiến trình
và tiểu trình của các client trên các hệ điều hành khác nhau. Đó là trách nhiệm của

mỗi hệ thống con hệ điều hành, để khai thác các đặc tính của tiến trình và tiểu trình
windows NT, để mô phỏng dễ dàng tiến trình và tiểu trình của hệ điều hành tương
ứng của nó.
Sau đây chúng ta hãy quan sát quá trình tạo tiến trình trong windows NT để
thấy được sự hỗ trợ tiến trình và tiểu trình cho các hệ thống con hệ điều hành. Việc
tạo tiến trình bắt đầu với một yêu cầu một tiến trình mới từ một ứng dụng hệ điều
hành. Yêu cầu tạo tiến trình được phát ra từ một ứng dụng đến hệ thống con được
bảo vệ tương ứng. Đến lượt nó, hệ thống con phát ra một yêu cầu tiến trình cho
thành phần Executive của windows NT. Windows NT tạo một đối tượng tiến trình
và trả ra một handle của đối tượng đó đến cho hệ thống con. Khi windows NT tạo
Click to buy NOW!
P
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
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
o
c
u
-
t
r
a
c
k
.
c
o
m

×