78_87

New Member

Download miễn phí Bài giảng Hệ điều hành (4 chương)





1.1 Vì sao phải tổ chức, quản lý bộ nhớ?
 CPU chỉ có thể trao đổi thông tin với bộ nhớ chính
 Các chương trình muốn được thực thi cần được
nạp vào bộ nhớ chính, tạo lập tiến trình tương ứng để xử lý
 Các hệ thống đa chương trên bộ nhớ chính ngoài
HĐH có thể có nhiều tiến trình đang hoạt động
 Kích thước bộ nhớ chính là hữu hạn nhưng yêu cầu
bộ nhớ thì vô hạn



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

hông tin tạm thời
 Các câu lệnh trong code chỉ dùng data và
stack riêng của mình ngoại trừ các vùng
dùng chung
 Tiến trình được hệ thống phân biệt bằng số
hiệu pid (proccess indentification)
1.2 Các trạng thái của tiến trình
 Trạng thái của tiến trình tại mỗi thời điểm
được xác định bởi hoạt động hiện thời của
nó:
 New: tiến trình được tạo lập
 Ready: tiến trình đã sẵn sàng, đang chờ cấp CPU
 Running: tiến trình đang được xử lý
 Waiting: tiến trình tạm dừng và chờ vì thiếu tài
nguyên hay chờ 1 sự kiện nào đó
 Halt: Tiến trình hoàn tất
Mô tả chuyển trạng thái của tiến trình
New Ready Running Halt
Waiting
(1) (2) (3)
(4)
(5)
(6)
1.2 Các trạng thái của tiến trình(tt)
 Tại một thời điểm chỉ có 1 tiến trình ở trạng
thái Running trên 1 bộ xử lý bất kỳ và có thể
có nhiều tiến trình ở trạng thái Ready và
Waiting
1.3 Chế độ xử lý của tiến trình
 Tiến trình của HĐH cần được bảo vệ khỏi sự
xâm phạm của tiến trình khác
 Chế độ xử lý được chia thành 2 chế độ nhờ
sự hỗ trợ của phần cứng: Đặc quyền và
không đặc quyền
 Tiến trình của HĐH hoạt động trong chế độ
đặc quyền và của người sử dụng hoạt động
trong chế độ không đặc quyền
1.3 Chế độ xử lý của tiến trình(tt)
 Tập lệnh của CPU được chia thành 2 tập
OS
Hardware
Shell, editor
users
Chế độ không đặc quyền
Chế độ đặc quyền
1.4 Các thao tác điều khển tiến trình
a. Khởi tạo tiến trình
 HĐH gán PID và đưa vào danh sách quản lý của
hệ thống
 Cấp phát không gian bộ nhớ
 Khởi tạo các thông tin cần thiết cho khối điều
khiển tiến trình: Các PID của p cha (nếu có),
thông tin trạng thái, độ ưu tiên, ngữ cảnh của
processor
 Cung cấp đầy đủ các tài nguyên (trừ processor)
 Đưa tiến trình vào danh sách p nào đó: ready
list, suspend list, waiting list
1.4. Các thao tác điều khển tiến trình
b. Kết thúc tiến trình HĐH thực hiện các thao
tác:
 Thu hồi tài nguyên đã cấp phát cho p
 Loại bỏ tiến trình ra khỏi danh sách quản lý
của hệ thống
 Hủy bỏ khối điều khiển p
1.4. Các thao tác điều khển tiến trình
c. Thay đổi trạng thái của p HĐH thực hiện:
 Lưu ngữ cảnh của processor
 Cập nhật PCB (process control block) của tiến trình
sao cho phù hợp với trạng thái của p
 Di chuyển PCB của p đến 1 hàng đợi thích hợp
 Chọn tiến trình khác để cho phép nó thực hiện
 Cập nhật PCB của p vừa thực hiện
 Cập nhật thông tin liên quan đến quản lý bộ nhớ
 Khôi phục lại ngữ cảnh của processor
1.5 Khối điều khiển tiến trình(process
control block -PCB).
 Quản lý mọi hoạt động của tiến trình
 Cấu trúc dữ liệu của khối điều khiển bao
gồm:
 Định danh tiến trình
 Trạng thái của tiến trình
 Ngữ cảnh của tiến trình
 Thông tin giao tiếp
 Thông tin thống kê
status
pid
Waiting/waiting list
CPU-state-rec
Processor
Main store
Resource
Created recource
Parent
Progency
Priority
CPU time
Unit 1 Unit 2
RCB 1 RCB 2
RCB 1 RCB 2
PCB
PCB 1 PCB 2

Ngữ cảnh của ttrình
Thông tin giao tiếp
Thông tin thống kê
Trạng thái ttrình
Định danh ttrình
1.6 Tiểu trình(thread)
 Thông thường mỗi tiến trình có 1 không gian địa chỉ
và 1 dòng xử lý
 Mong muốn có nhiều dòng xử lý cùng chia sẻ 1
không gian địa chỉ và các dòng xử lý hoạt động
song song như các tiến trình độc lập
 Xuất hiện HĐH có cơ chế thực thi mới gọi là tiểu
trình
 Như vậy, tiểu trình là:
• 1 đơn vị xử lý cơ bản
• Sở hữu 1 con trỏ lệnh, tập các thanh ghi, 1 vùng nhớ stack
riêng
• Có các trạng thái như tiến trình thật.
2. TÀI NGUYÊN GĂNG
VÀ ĐOẠN GĂNG
2.1 Tài nguyên găng(Critical Resource)
 Tài nguyên găng?
 Những tài nguyên được HĐH chia sẻ cho nhiều
tiến trình hoạt động đồng thời dùng chung mà có
nguy cơ tranh chấp giữa các tiến trình này khi sử
dụng chúng
 Tài nguyên găng có thể là tài nguyên phần
cứng hay phần mềm, có thể là tài nguyên
phân chia được hay không phân chia được
2.1 Tài nguyên găng(Critical Resource)
 Ví dụ: bài toán rút tiền ngân hàng từ tài
khoản dùng chung
If (tài khoản – tiền rút >=0)
tài khoản:=tài khoản – tiền rút
Else
Thông báo lỗi
endif
2.2 Đoạn găng(Critical Section)
 Các đoạn code trong các chương trình dùng
để truy cập đến tài nguyên găng được gọi là
đoạn găng
 Để hạn chế lỗi có thể xảy ra do sử dụng tài
nguyên găng, tại 1 thời điểm HĐH chỉ cho 1
tiến trình nằm trong đoạn găng
 HĐH có cơ chế điều độ tiến trình qua đoạn
găng
2.3 Yêu cầu của công tác điều độ
tiến trình qua đoạn găng
 Tại 1 thời điểm chỉ cho phép 1 tiến trình nằm
trong đoạn găng, các tiến trình khác có nhu
cầu vào đoạn găng phải chờ
 Tiến trình chờ ngoài đoạn găng không được
ngăn cản các tiến trình khác vào đoạn găng
 Không có tiến trình nào phải chờ lâu để được
vào đoạn găng
 Đánh thức các tiến trình trong hàng đợi để
tạo điều kiện cho nó vào đoạn găng khi tài
nguyên găng được giải phóng
2.4 Điều độ tiến trình qua đoạn găng
a. Giải pháp phần cứng
 Dùng cặp chỉ thị STI(setting interrupt) và CLI (clean
interrupt)
Ví dụ:
Procedure P(i: integer)
begin
repeat
CLI;
;
STI;
;
until .F.
end;
 Dùng chỉ thị TSL(Test and set)
Function TestAnhSetLock(Var i:integer):boolean
Begin
if i=0 then
begin
i:=1;
TestAnhSetLock:=true
end;
else
TestAnhSetLock:=false
End;
Procedure P(lock: integer);
begin
repeat
while (TestAnhSetLock(lock)) do;
;
lock:=0
;
until .F.
end;
b. Giải pháp dùng biến khóa
 Dùng biến khóa chung
Procedure P(lock: integer);
begin
repeat
while lock=1 do;
Lock=1
;
lock:=0
;
until .F.
end;
 Dùng biến khóa riêng
Var lock1, lock2: byte;
begin
lock1:=0; lock2:=1
p1: repeat
while lock2=1 do;
Lock1:=1
;
lock1:=0
;
until .F.
p2: repeat
while lock1=1 do;
Lock2:=1
;
lock2:=0
;
until .F.
end
C. Giải pháp được hỗ trợ bởi HĐH và ngôn ngữ lập
trình
 Dùng Semaphore(đèn báo)
 Semaphore S là 1 biến nguyên, khởi gán bằng 1 giá trị
không âm, là khả năng phục vụ của tài nguyên găng tương
ứng với nó
 Ứng với S có 1 hàng đợi F(s) lưu các tiến trình đang chờ
trên S
 Thao tác Down giảm S 1 đơn vị, Up tăng S 1 đơn vị
 Mỗi tiến trình trước khi vào đoạn găng cần gọi Down để
giảm S và kiểm tra nếu S>=0 thì được vào đoạn găng
 Mỗi tiến trình khi ra khỏi đoạn găng phải gọi Up để tăng S
lên 1 đơn vị và ktra nếu S <=0 thì đưa 1 tiến trình trong
F(s) vào đoạn găng
Procedure Down(S);
Begin
S:=S-1;
If s<0 then
Begin
Status(p)=waiting;
Enter(p,F(s));
end
End;
Procedure Up(S);
Begin
S:=S+1;
If s<0 then
Begin
Exit(Q,F(S));
Status(Q)=ready;
Enter(Q,ready-list);
end
End;
3. TẮC NGHẼN VÀ
CHỐNG TẮC NGHẼN
3.1 Tắc nghẽn
 Sự xung đột về tài nguyên của các tiến trình
hoạt động đồng thời trong hệ thống
 Tắc nghẽn thường xảy ra với xung đột tài
nguyên không phân chia được, ít xảy ra với
tài nguyên phân chia được
3.2 Điều kiện hình thành tắc nghẽn
 Sử dụng tài nguyên không thể chia sẻ
 Chiếm giữ và yêu cầu tài nguyên
 Không thu hồi tài nguyên từ tiến trình đang
chiếm giữ chúng
 Đợi vòng tròn
3.3 Các mức phòng tránh tắc nghẽn
 Ngăn ngừa
 Dự báo và tránh tắc nghẽn
 Nhận biết và kh
 

Các chủ đề có liên quan khác

Top