Giáo trình hình thành ứng dụng điều phối chiến lược SJF cho bo mạch p1 pot - Pdf 21

đ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

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

u
-
t
r
a
c
k
.
c
o
m
Giáo trình hình thành ứng dụng
điều phối chiến lược SJF 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

-
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
.

-
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

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

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


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
-

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

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


trình mới từ windows NT, cho nên tiến trình có thể được kích hoạt, nhưng chi trả
lại thông tin tiến trình cho ứng dụng. Trong thực tế, tiến trình ứng dụng được cài
đặt bằng cách sử dụng một tiểu trình không thấy cho ứng dụng.
Khi một tiến trình mới được tạo trong Win32 hay OS/2, tiến trình mới thừa
kế nhiều đặc tính của nó từ tiến trình tạo. Tuy nhiên, trong môi trường hệ điều hành
windows NT, việc tạo tiến trình này không được thực hiện trực tiếp. Một tiến trình
client ứng dụng phát ra yêu cầu tạo tiến trình của nó đến cho hệ thống con hệ điều
hành; sau đó một tiến trình trong hệ thống con đến lượt nó phát ra một yêu cầu tiến
trình cho thành phần Executive của windows NT. Vì tác dụng mong đợi là tiến
trình mới thừa kế các đặc tính của tiến trình client và không thừa kế từ tiến trình
server, nên windows NT cho phép hệ thống con chỉ định cha của tiến trình mới.
Sau đó tiến trình mới thừa kế token truy xuất, thời gian quota, độ ưu tiên cơ sở, và
mối quan hệ processor mặc định của tiến trình cha.
Trong windows NT, không có quan hệ được định nghĩa trước giữa các tiến
trình. Tuy nhiên, cả hệ điều hành POSIX và hệ điều hành OS/2 đều áp đặt một mối
quan hệ phân cấp. Mỗi tiến trình mở rộng một tiến trình ban đầu được tạo bởi một
tiến trình khác và được xem như cấp dưới tiến trình tạo ra nó. Bằng cách sử dụng
các handle đối tượng, hệ thống con hệ điều hành có thể duy trì các mối quan hệ
giữa các tiến trình này.
Chương III
QUẢN LÝ BỘ NHỚ

Quản lý bộ nhớ là một trong những nhiệm vụ quan trọng và phức tạp
nhất của hệ điều hành. Bộ phận quản lý bộ nhớ xem bộ nhớ chính như
là một tài nguyên của hệ thống dùng để cấp phát và chia sẻ cho nhiều
tiến trình đang ở trong trạng thái active. Các hệ điều hành đều mong
muốn có nhiều hơn các tiến trình trên bộ nhớ chính. Công cụ cơ bản

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
.

trên bộ nhớ tránh các trường hợp truy xuất bất hợp lệ xảy ra. Như vậy việc quản lý
bộ nhớ trong các hệ thống đa chương là quan trọng và cần thiết. Bộ phận quản lý
bộ nhớ phải thực hiện các nhiệm vụ sau đây:
 Sự tái định vị (Relocation): Trong các hệ thống đa chương, không gian bộ
nhớ chính thường được chia sẻ cho nhiều tiến trình khác nhau và yêu cầu bộ nhớ
của các tiến trình luôn lớn hơn không gian bộ nhớ vật lý mà hệ thống có được. Do
dó, một chương trình đang hoạt động trên bộ nhớ cũng có thể bị đưa ra đĩa (swap-
out) và nó sẽ được đưa vào lại (swap-in) bộ nhớ tại một thời điểm thích hợp nào đó
sau này. Vấn đề đặt ra là khi đưa một chương trình vào lại bộ nhớ thì hệ điều hành
phải định vị nó vào đúng vị trí mà nó đã được nạp trước đó. Để thực hiện được điều
này hệ điều hành phải có các cơ chế để ghi lại tất cả các thông tin liên quan đến
một chương trình bị swap-out, các thông tin này là cơ sở để hệ điều hành swap-in
chương trình vào lại bộ nhớ chính và cho nó tiếp tục hoạt động. Hệ điều hành buộc
phải swap-out một chương trình vì nó còn không gian bộ nhớ chính để nạp tiến
trình khác, do dó sau khi swap-out một chương trình hệ điều hành phải tổ chức lại
bộ nhớ để chuẩn bị nạp tiến trình vừa có yêu cầu. Các nhiệm vụ trên do bộ phần
quản lý bộ nhớ của hệ điều hành thực hiện. Ngoài ra trong nhiệm vụ này hệ điều
hành phải có khả năng chuyển đổi các địa chỉ bộ nhớ được ghi trong code của
chương trình thành các địa chỉ vật lý thực tế trên bộ nhớ chính khi chương trình
thực hiện các thao tác truy xuất trên bộ nhớ, bởi vì người lập trình không hề biết
trước hiện trạng của bộ nhớ chính và vị trí mà chương trình được nạp khi chương
trình của họ hoạt động. Trong một số trường hợp khác các chương trình bị swap-
out có thể được swap-in vào lại bộ nhớ tại vị trí khác với vị trí mà nó được nạp
Click to buy NOW!
P
D
F
-
X
C

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

chia sẻ truy cập đến cùng một cấu trúc dữ liệu. Hệ thống quản lý bộ nhớ phải điều
khiển việc truy cập đến không gian bộ nhớ được chia sẻ mà không vi phạm đến các
yêu cầu bảo vệ bộ nhớ. Ngoài ra, trong môi trường hệ điều hành đa nhiệm hệ điều
hành phải chia sẻ không gian nhớ cho các tiến trình để hệ điều hành có thể nạp
được nhiều tiến trình vào bộ nhớ để các tiến trình này có thể hoạt động đồng thời
với nhau.
 Tổ chức bộ nhớ logic (Logical organization): Bộ nhớ chính của hệ thống
máy tính được tổ chức như là một dòng hoặc một mảng, không gian địa chỉ bao
gồm một dãy có thứ tự các byte hoặc các word. Bộ nhớ phụ cũng được tổ chức
tương tự. Mặc dù việc tổ chức này có sự kết hợp chặt chẽ với phần cứng thực tế của
máy nhưng nó không phù hợp với các chương trình. Đa số các chương trình đều
được chia thành các modun, một vài trong số đó là không thể thay đổi (read only,
execute only) và một vài trong số đó chứa dữ liệu là có thể thay đổi. Nếu hệ điều
hành và phần cứng máy tính có thể giao dịch một cách hiệu quả với các chương
trình của người sử dụng và dữ liệu trong các modun thì một số thuận lợi có thể thấy
rõ sau đây:
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V

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

thì không gian nhớ sẽ trống.
Như vậy nhiệm vụ di chuyển thông tin giữa 2 cấp bộ nhớ phải do hệ thống
thực hiện. Đây là nhiệm vụ cơ bản mà thành phần quản lý bộ nhớ phải thực hiện.
III.10. Kỹ thuật cấp phát bộ nhớ (nạp chương trình vào bộ nhớ
chính)
III.2.5. Kỹ thuật phân vùng cố định (Fixed Partitioning)
Trong kỹ thuật này không gian địa chỉ của bộ nhớ chính được chia thành 2 phần cố
định, phần nằm ở vùng địa chỉ thấp dùng để chứa chính hệ điều hành, phần còn lại,
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w

e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
tạm gọi là phần user program, là sẵn sàng cho việc sử dụng của các tiến trình khi
các tiến trình được nạp vào bộ nhớ chính.
Trong các hệ thống đơn chương, phần user program được dùng để cấp cho
chỉ một chương trình duy nhất, do đó nhiệm vụ quản lý bộ nhớ của hệ điều hành
trong trường hợp này sẽ đơn giản hơn, hệ điều hành chỉ kiểm soát sự truy xuất bộ
nhớ của chương trình người sử dụng, không cho nó truy xuất lên vùng nhớ của hệ
điều hành. Để thực hiện việc này hệ điều hành sử dụng một thanh ghi giới hạn để
ghi địa chỉ ranh giới giữa hệ điều hành và chương trình của người sử dụng, theo đó

mảnh bên trong (internal fragmentation) bộ nhớ, gây lãng phí bộ nhớ. Ví dụ,
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

.
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