You are on page 1of 13

A/ Tiến trình

1) Khái niệm về tiến trình-process, các trạng thái cơ bản của tiến trình

2) Sự biến đổi trạng thái của tiến trình

3) Sự tạm dừng và kích hoạt, biến đổi trạng thái khi có tạm dừng, kích hoạt

4) Xử lý ngắt, cơ chế chuyển đổi ngữ cảnh

5) Hạt nhân của hệ điều hành, Hai mô hình kiến trúc hệ điều hành: monolithic và
micro kernel

Bài làm

1. - Tiến trình là một thực thể của máy tính thực thi một hay nhiều luồng
- Các trạng thái cơ bản của tiến trình :
+ Ready :
. Tiến trình sẵn sàng thực thi chờ BXL khi : số lượng BXL < số
lượng tiến trình
. Quản lý bằng ready process list , có quan tâm đến thứ tự
+ Running :
Tiến trình thực sự được thực thi
+ Blocked :
Tiến trình chờ sự kiện để thực thi
2. Sự biến đổi trạng thái của tiến trình :
- Khi chạy chương trình : HĐH tạo tiến trình , cấp phát tài nguyên -
> ready -> ready process list
- Bộ xử lý trống : Tiến trình thực thi
Ready -> Running : dispath
- Thực thi xong : HĐH can thiệt
Running -> Ready : thời gian lượng tử
- Qúa trình chờ : Sau khi thực thi xong
+ Giải phóng BXL về ready
+ Tiến trình được blocking về blocked
- Xảy ra sự kiện
Blocked -> Ready
3. - Sự tạm dừng (Suspending): Khi tiến trình không thể tiếp tục thực thi
đến khi có 1 tiến trình khác kích hoạt nó
- Sự kích hoạt (activate) : Là thao tác chuẩn bị để tiến trình có thể
tiếp tục thực thi kể từ trạng thái dừng trước đó.
- Biến đổi trạng thái khi có dừng hoặc kích hoạt :
Khi bộ xử lý đang thực thi tiến trình , có sự kiện dừng thì sẽ dừng
tiến trình và xử lý yêu cầu . Sau khi xử lý xong , có yêu cầu kích
hoạt sẽ tiếp tục thực thi từ thời điểm ngắt quãng.
4. – Ngắt : Là sự kiện làm thay đổi trình tự của BXL
- Xử lý ngắt :
+ Điều khiển HĐH
+ HĐH lưu lại trạng thái của tiến trình hiện tại
+ HĐH xử lý và phân loại ngắt cho bộ xử lý ngắt tương ứng
- Cơ chế chuyển đổi ngữ cảnh :
+ Chuyển sang thực thi tiến trình khác
+ Lưu lại ngữ cảnh của tiến trình hiện tại
+ Thiết lập ngữ cảnh cho tiến trình mới (register , ip , stack ,..)
5. – Tất cả các thao tác của tiến trình được thực hiện bởi một phần của
HĐH gọi là hạt nhân – kernel.
+ Cơ chế : . user mode : app : cơ chế ưu tiên thấp
. kernel mode : HĐH : cơ chế ưu tiên cao
+ Vai trò : . Quản lý tiến trình
. Quản lý bộ nhớ
. Lập lịch BXL
. Xử lý ngắt
- Có kiến trúc của HĐH :
+ Monolithic kernel

Trong OS: . Giao tiếp : Inprocess


. Local procedure call
. Địa chỉ
Tính chất : + Kích thước kernel lớn , tốc độ
nhanh
+ Khi 1 processs bị crash , kéo
theo cả hệ thống bị crash theo , tính ổn định
thấp , khó mở rộng
+ Khó debug , kém an toàn và bảo
trì mất nhiều thời gian
+ Micro kernel
Trong OS : . Giao tiếp : Inter process
. Remote processer call
. Message passing
Tính chất : + Kích thước kernel bé , tốc độ chậm
+ Khi 1 process bị crash thì không ảnh
hưởng tới process khác , ổn định cao , dễ mở rộng
+ Dễ bảo trì , debug
và an toàn hơn

B/ Tiến trình tương tranh không đồng bộ

1) Khái niệm loại trừ (mutual exclusion), ví dụ

2) Thuật toán Dekker cài đặt loại trừ cho 2 tiến trình

3) Thực hiện cài đặt loại trừ bằng lệnh testandset

4) Khái niệm Semaphore, ứng dụng của semaphore

B . Tiến trình tương tranh không đồng bộ


1. Khái niệm loại trừ (mutual exclusion) : Là quá trình truy cập của các tiến
trình với tài nguyên hoặc dữ liệu chia sẻ , bằng cách loại trừ lẫn nhau
VD : Các cửa hàng bán vẽ : Các tiến trình
Kho vé : Dữ liệu
Logic :
- Đọc X (số chỗ trống)
- Bán vé – Trừ số lượng vé
- Cập nhập số lượng vé
Lệnh :
a=X
a=a-n
X=a
{1 nếu chọn f 1
2. Thuật toán Dekker : s = 2 nếu chọn f 2
P1,f1 P2,f2
While true While true;
f 1 = true ; f 2=true
while f2=true do: while f1=true do:
if s=2 do: if s=1 do
f1=false f2=false
while s=2 do; while s=1 do;
f1=true f2=true
end; end;
end; end;
<C> <C>
f 1= false f2=false
s=2 s=1
end; end;
1. Thuật toán TestandSet : a : Boolean

P1,f1 P2,f2
While true While true;
p1 = true ; p2=true
while p1=true do: while p2=true do:
testAndset(p1,a) testAndset(p2,a)
<C> <C>
a=false a = false
end; end;

Trong đó testAndset(a,b) : a=b ; b=true;


2.
- Khái niệm semaphore : Là biển được bảo vệ tạo thành phương pháp hạn
chế truy cập tới tài nguyên dùng chung trong môi trường đa chương. Gía trị
của nó chỉ được đọc , ghi thông qua các biến q , v , biến khởi tạo
+ init(s,v) : Gán s=v;
+ p(s) : .Nếu s>0 : s=s-1;
. Ngược lại chờ s
+ v(s) : . Nếu chờ s thì chọn 1 tiến trình để tiếp tục
. Ngược lại s=s+1;
_ Ứng dụng :
+ Đồng bộ tiến trình
+ Cài đặt loại trừ
+ Cấp phát tài nguyên

C/ Tắc ngẽn (Deadlock)

1) Khái niệm deadlock, ví dụ tình trạng deadlock

2) Các điều kiện xuất hiện dealock

3) Ngăn chặn dealock theo các chiến lược của Havender, ưu/nhược điểm

4) Thuật toán Banker, trạng thái của hệ thống

5) Phát hiện deadlock qua đồ thị phân bố tài nguyên

1. Khái niệm deadlock : Là trạng thái xảy ra trong môi trường đa chương , khi
hai hay nhiều tiến trình đi vào vòng lặp chờ tài nguyên mãi mãi .
Vd :

p1,p2 chờ vô hạn

2. Các điều kiện xuất hiện deadlock :


- Tiến trình yêu cầu thêm tài nguyên : Khi tiến trình yêu cầu thêm tài
nguyên trong khi tiến trình vẫn chiếm tài nguyên đã được cấp.
- Tài nguyên không được HĐH thu hồi mà tiến trình giải phóng
- Tài nguyên không chia sẻ được cho nhiều tiến trình
- Xuất hiện vòng kín giữa yêu cầu và cấp phát
3. - Chiến lược ngăn chặn deadlock của Havender:
+ Tiến trình phải yêu cầu tất cả tài nguyên cần thiết ngay từ đầu
+ Tiến trình yêu cầu thêm tài nguyên mà chưa được đáp ứng thì giải
phóng tài nguyên đã được cấp phát và chờ được cấp phát lại.
+ Đánh số thứ tự tài nguyên (tiến trình sử dụng tài nguyên theo số thứ tự
tăng dần)
_ Ưu điểm :
+ Loại bỏ được điều kiện “Chờ tài nguyên bổ sung”
+ Loại bỏ được điều kiện “Không phân bố lại”
+ Loại bỏ được điều kiện “Chờ vòng quanh”
_ Nhược điểm :
+ Sử dụng tài nguyên không hiệu quả
+ Làm mất các kết quả làm việc đến thời điểm giải phóng
+ Khi có thêm tài nguyên mới có thể gây ra ra tình huống phải
thiết kế lại hệ thống.
4. Thuật toán Banker :
Giả sử có n người sử dụng , I(i) là số thiết bị cấp cho người I , m(i) số thiết
bị lớn nhất người i cần , c(i) là số thiết bị lớn nhất người i cần tại một thời
điểm -> c(i)=m(i)-I(i) . Trong t thiết bị thì số thiết bị dỗi tại 1 thời điểm là a=
t-∑ I (i)
 Thuật toán Banker yêu cầu số thiết bị cấp cho người dùng tại một thời
điểm không bao giờ vượt qua số thiết bị nhiều nhất anh ta cần đến . Nếu
HĐH có đủ số thiết bị thỏa mãn thì HĐH yêu cầu người dùng sử dụng và
trả lại thiết bị đó cho HĐH sau thời gian hữu hạn nào đó.
Trạng thái của hệ thống :
+ Trạng thái ổn định : là trạng thái mà HĐH đảm bảo tất cả tiến trình kết
thúc sau 1 khoảng thời gian hữu hạn nào đó .
+ Trạng thái không ổn định : là trạng thái có thể dẫn tới deadlock
5. Phát hiện deadlock qua đồ thị phân bố tài nguyên
Rút gọn đồ thị để phát hiện deadlock :
- Khi tiến trình kết thúc công việc và trả lại các tài nguyên cho hệ
thống thì ngắt bỏ cung từ process đó đến tài nguyên và từ tài
nguyên đến process đó
- Khi tài nguyên chỉ cấp phát cho 1 tiến trình

=>Không còn cung nào thì sẽ không tắc nghẽn

D/ Bộ nhớ

1. Khái niệm bộ nhớ ảo, ưu nhược điểm


2. Ánh xạ địa chỉ theo khối
3. Tổ chức bộ nhớ theo trang
4. Tổ chức bộ nhớ theo đoạn
5. Tổ chức bộ nhớ kết hợp trang, đoạn
6. Các chiến lược loại bỏ trang bộ nhớ
7. Các chiến lược nạp trang

- Bộ nhớ ảo là một kĩ thuật quản lý bộ nhớ được giả lập bởi HĐH , nó liên kết với
địa chỉ ô nhớ bởi địa chỉ ảo . Nó không tương ứng 1-1 với bộ nhớ thực và có không
gian bộ nhớ lớn , giúp chương trình không bị giới hạn bộ nhớ.

Ưu điểm :
+ Có thể chạy nhiều chương trình một lúc , kích thước chương trình có thể lớn hơn
kích thước bộ nhớ chính .
+ Cho phép chia sẽ mã và dữ liệu , số lượng đa chương trình không giới hạn. +
Khắc phục và hạn chế việc phân mảnh.
+ Giữ cho chương trình an toàn
Nhược điểm :
+ Tăng chi phí để xử lí ngắt phân trang , độ phức tạp của phần mềm và chi phí
phần cứng
+ Tốc độ giảm , ứng dụng chạy chậm hơn
2 . Ánh xạ địa chỉ theo khối - Các địa chỉ trong các hệ thống ánh xạ theo khối là
các địa chỉ gồm 2 thành phần . Để truy cập đến 1 dữ liệu cụ thể , chuong trình chỉ
ra block và offset của dũ liệu trong block đó.
- Địa chỉ ảo V được chỉ ra bởi cặp số v=(b,d) , r=b+d : địa chỉ phẳng
=> Ánh xạ địa chỉ theo khối được thực hiện động ngay trong thời gian thực hiện
process . Nếu cơ chế biến đổi địa chỉ không hiệu quả thì chi phí của nó có thể làm
giảm hiệu suất của hệ thống tới mức vượt quá ưu thế mà bộ nhớ ảo mang lại .
3 . Tổ chức bộ nhớ theo trang
+ Bộ nhớ ảo chia thành trang có kích thước cố định
+ Địa chỉ ảo trong hệ thống theo trang được thể hiện bằng cặp v=(p,d) , p_ thứ tư
trang , d_offset trong trang p
+ Các trang được ghi từ bộ nhớ ngoài vào bộ nhớ thực theo các block , gọi là page
frame và có kích thước đúng bằng kích thước trang.
+ Biến đổi địa chỉ trang trực tiếp bằng ánh xạ - RAM , hoặc sử dụng bộ nhớ tốc độ
cao – cache bằng ánh xạ trang – cache . Hoặc sử dụng kết hợp associative với ánh
xạ trực tiếp.
4. Tổ chức bộ nhớ theo đoạn
+ Bộ nhớ ảo : chia thành các đoạn kích thước khác nhau
+ Địa chỉ ảo trong hệ thống segment là cặp v=(s,d) , s_ số segment , d_offset trong
đoạn +
Segment được nạp từ bộ nhớ ngoài vào bộ nhớ vật lý theo cả segment một cách
liên tục và được nạp vào bất kỳ vùng trống liên tục nào đủ lớn .
+ Biến đổi địa chỉ bằng : . Điều khiển truy nhập trong hệ thống tổ chức segment .
Dùng ánh xạ trực tiếp . Chia sẻ chương trình và dữ liệu trong các hệ thống theo
segment
5. Tổ chức bộ nhớ kết hợp trang , đoạn
- Chia thành các trang bộ nhớ có kích thước bằng nhau - Không gian địa chỉ là tập
các đoạn , mỗi đoạn gồm nhiều trang liên tục
- Khi 1 tiến trình được đưa vào hệ thống , HĐH sẽ cấp phát cho tiến trình các trang
cần thiết để chứa đủ các phân đoạn của process
- Đỉa chỉ ảo v=(s,p,d) trong đó s là số segment , p là số page và d là offset - Biến
đổi địa chỉ
+ Dùng ánh xạ trực tiếp (sử dụng bộ nhớ tốc độ cao và kết hợp)
+ Chia sẻ bộ nhớ , chương trình trong tổ chức trang và đoạn
6. Chiến lược loại bỏ trang bộ nhớ Khi bộ nhớ hết chỗ trống , chương trình điều
khiển bộ nhớ sẽ xác định trang bị loại bỏ theo 7 nguyên tắc :
- Nguyễn tắc tối ưu : + Để hạn chế số lầm missing page fault và đặc biệt là hiện
tượng “trì trệ hệ thống ”
+ Tăng hiệu quả sử dụng tài nguyên , loại bỏ trang mà trong tương lai không có
yêu cầu truy cập đến .
- Loại bỏ ngẫu nhiên (Random page Replacemanet):
+ Bất kỳ trang nào cũng có thể swap out , xác suất xảy ra giữa các trang là như
nhau , kể cả các trang thường xuyên được sử dụng
+ Gây ra hiện tượng missing page fault và làm trì trệ hệ thống
- FIFO : Gán cho mỗi trang khi được nạp vào bộ nhớ 1 chỉ số , khi loại bỏ trang sẽ
chọn trang nằm trong bộ nhớ lâu nhất theo dòng thời gian
- LRU(Least recently used) : + HĐH ghi nhận lại thời điểm cuối cùng trang được
truy xuất + Sử dụng cơ chế phần cứng để hỗ trợ ghi lại thời điểm truy xuất cuối
cùng
- LFU(List Frequency used) :
+ Trang ít được sử dụng nhất sẽ bị swap out
+ Đo số lần truy cập , nếu số lần truy cập bằng nhau thì sử dụng FIFO hoặc
Random
- NUR(not used recently) : Các trang chia làm 4 nhóm , khi cần loại bỏ xét các
mức ưu tiên G1->G4 , trang được chọn để thay thế thông thường sử dụng FIFO
cho lớp (trang đầu tiên trong lớp)
- Working set of pages : + Working set là tập hợp các trang bộ nhớ được thường
xuyên truy cập tới , nó sử dụng tham số delta để định nghĩa cho kích thước cửa sổ
của working set
+ HĐH giám sát working set của mỗi tiến trình và cấp phát cho process tối
thiểu các khung trang để chứa working set
7 . Chiến lược nạp trang
- Nạp trang theo yêu cầu : Các trang của bộ nhớ chỉ được nạp vào bộ nhớ chính khi
được yêu cầu . Giúp tiết kiệm bộ nhớ , sử dụng bộ nhớ hiệu quả , tuy nhiên thời
gian process chờ sẽ lớn do chiếm bộ nhớ
- Nạp trang trước : HĐH dự đoán các trang mà process sẽ cần đến và nạp các trang
đó khi bộ nhớ có dư chỗ trống
- Vấn đề về kích thước trang : + Kích thước nhỏ , số lượng page frame sẽ lớn dẫn
đến bảng ánh xạ lớn -> sử dụng không hiệu quả bộ nhớ .
+ Kích thước trang lớn sẽ làm việc nạp trang vào bộ nhớ cần nạp khối lượng thông
tin lớn (I/O sẽ bị chậm).
- Giải phóng bộ nhớ : Việc giải phóng bộ nhớ rất quan trọng để có không gian
trống nạp dữ liệu cho process hoạt động và tránh các tình trạng thrashing .
Lập lịch cho BXL
1. Khái niệm lập lịch cho BXL, lượng tử thời gian, mức ưu tiên
2. Các cơ chế lập lịch cho BXL
1. Khái niệm lập lịch cho BXL, lượng tử thời gian , mức ưu tiên
- Khái niệm lập lịch cho BXL : Là việc phân phối BXL cho các process để
chúng hoạt động , gồm các mức
+ Lập lịch mức cao : Xác định process đủ điều kiện thực thi
+ Lập lịch mức giữa : Xác định process ở trạng thái ready process list , BXL
sẽ suspend hoặc activate các process để đảm bảo hệ thống hoạt động ổn
định.
+ Lập lịch mức thấp : Xác định xem khi BXL trống thì ready process nào sẽ
được sử dụng BXL .
- Thời gian lượng tử : Là thời gian lớn nhất mà tiến trình chiếm BXL , HĐH
sẽ thiết lập 1 đồng hồ để đo quantum và sinh ra các tín hiệu ngắt thời gian .
Gía trị của quantum phụ thuộc vào tần suất hoạt động và số lượng của
process , nó thường ko đổi tuy nhiên trong 1 số trường hợp thay đổi tạm thời
để phục vụ cho mục đích ngắn hạn
- Mức ưu tiên :
+ Mức độ quan trọng của process được thể hiện qua mức ưu tiên , process có
mức ưu tiên cao sẽ được sử dụng nhiều tài nguyên .
+ HĐH gán cho process 1 mức ưu tiên theo những tiêu chuẩn xác định

2. Các cơ chế lập lịch cho BXL


- Lập lịch theo thời gian kết thúc :
+ Lập lịch thủ công
+ Hệ thống sử dụng tất cả các khả năng hiện có để 1 process có thể kết thúc
trong 1 thời gian nào đó đã hạn định trước .
- FIFO :
+ Sử dụng 1 hàng đợi queue
+ Process được nạp vào trước , đừng đầu FIFO queue sẽ được quyền sử
dụng BXL trước
+ Process sử dụng BXL cho đến khi nó bị block hoặc kết thúc , sau đó
chuyển quyền sử dụng BXL cho process đừng phía sau nó trong queue.
- Nguyên tắc quay vòng RR
+ Sử dụng 1 hàng đợi queue như FIFO
+ Process mỗi lần sử dụng BXL không được quá quantum(10-100ms)
+ Khi hết quantum , process đang thực thi sẽ bị chuyển về cuối queue -
Nguyên tắc STF
+ Process nào có CPU burst ngắn nhất thì được chiếm BXL .
+ Giảm thời gian chờ trung bình , chi phí thấp - Nguyên tắc SRTF
+ Process được đưa vào thực thi sẽ được chạy cho đến khi kết thúc hoặc
process mới vào hệ thống có thời gian hoạt động bé hơn thời gian hoạt động
còn lại của process hiện thời
-Nguyên tắc HRN
tchờ +t thực thi
+ Sử dụng mức ưu tiên động 𝐷 = t thực thi
(t chờ : thời gian chờ để
chiếm BXL , t thực thi : thời gian sử dụng BXL)
+ Không hoán đổi (không ngắt) -Hàng đợi nhiều mức :
-
- Nguyên tắc SMP (Symmetric multi processor)
Đĩa từ
1. Cấu trúc và hoạt động của đĩa từ
2. Các cơ chế tối ưu thời gian định vị (seek time)

1. Cấu trúc và hoạt động của đĩa từ


- Cấu trúc : + Track : là các vòng tròn đồng tâm được chia ra trên bề mặt của
đĩa từ + Sector : Trên track chia thành những phần nhỏ bằng các đoạn hướng
tâm
+ Cylinder : Tập hợp các track cùng bán kính
+ Trục quay : Là trục để gắn các đĩa từ lên
+ Đầu đọc / ghi : Gồm lõi ferit và cuộn dây
+ Cần di chuyển đầu đọc/ghi

-Hoạt động : Để có thể truy nhập đến dữ liêu trên đĩa với các đầu từ
đọc/ghi ,trước tiên các đầu từ cần phải được định vị trên cylinder cần thiết
(seek cylinder). Sau đó cần phải chờ đến khi điểm bắt đầu của bản ghi đến
đúng vị trí dưới đầu từ (tìm bản ghi-gắn với thời gian trễ), tiếp theo là bản
thân bản ghi, về nguyên tắc có thể có kích thước tuỳ ý (đến toàn bộ rãnh-
track), cần phải đi qua dưới đầu từ (gọi la thời gian truyền- transmission
time).
2. Các cơ chế tối ưu thời gian định vị (seek time)
- FCFS :Các yêu cầu được thực hiện theo thứ tự xuất hiện
- SSTF : Yêu cầu cần sự dịch chuyển đầu từ ít nhất được thực hiện trước
- SCAN : Thực hiện các yêu cầu trên đường đi và về
- C-SCAN : Phục vụ các yêu cầu theo 1 hướng từ ngoài vào trong
- N-step-SCAN : Các yêu cầu được nhóm lại để phục vụ nhanh (theo cách di
chuyển của SCAN)
- Sơ đồ ESCHENBACH : Khi phục vụ môi cylinder thì chỉ thực hiện truy
nhập đến một track mà không để ý đến việc có thể có yêu cầu khác cũng
thuộc Cylinder đó (đầu từ di chuyển theo cách của C-SCAN
Hệ thống File
1. Khái niệm hệ thống file, Chức năng của hệ thống file
2. Hệ thống file dùng danh sách khối dữ liệu (block data)
3. Hệ thống file dùng danh sách khối chỉ số (block index)
4. Hệ thống file dùng bảng ánh xạ các block.
5. Kiểm soát truy cập: ma trận kiểm soát truy cập, danh sách kiểm soát truy cập
1. Khái niệm hệ thống file , chức năng
- Hệ thống file là một tập hợp các dịch vụ mà HDH cung cấp , cho người sử dụng và chương
trình người sử dụng để các đối tượng này sử dụng các File trên hệ thống
- Chức năng :
+ Người dùng phải có khả năng tạo , thay đổi , xóa file
+ Cung cấp khả năng chia sẻ file
+ Cơ chế chia sẻ phải xem xét hình thức truy cập cần kiểm soát
+ Người dùng phải có khả năng thao tác dễ dàng với cấu trúc file , độc lập với phần cứng + Đảm
bảo sự trao đổi thông tin giữa ccs file
+ Cần có các công cụ khắc phục , khôi phục lại thông tin khi có sự cố + Với các thông tin quan
trọng cần có cơ chế kiểm soát truy cập
+ Cung cấp giao diện than thiện với người dùng , cho phép người dùng làm việc với các cấu trúc
dữ liệu logic của mình.
2.Hệ thống file dùng danh sách khối dữ liệu
- Mỗi block (có độ dài cố định) gồm hai phần: phần header chứa con trỏ đến block tiếp theo, và
phần dữ liệu. Block cuối cùng Đơn vị cấp phát nhỏ nhất là block. Để đọc bản ghi, đầu tiên cần
tìm đến block sau đó đến sector trong block chứa bản ghi.

- Quá trình tìm kiếm phải bắt đầu duyệt từ block đầu tiên, theo các con trỏ đến block cần tìm.
3. Hệ thống file dùng danh sách khối chỉ số
- Mỗi block chỉ số chứa số lượng cố định các phần tử, mỗi phần tử chứa con trỏ đến block dữ
liệu. - Nếu một index block không đủ, hệ thống dùng chuỗi các index block để chứa thông tin
của file, mỗi index block có con trỏ đến index block tiếp theo trong chuỗi.

You might also like