Bài giảng Hệ điều hành - Chương 2 cung cấp cho người học các kiến thức về Tiến trình và luồng bao gồm: Các khái niệm, các trạng thái của một tiến trình, điều độ tiến trình. Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 2B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Các tr ng thái c a m t ti n trìnhạ ủ ộ ế
Đi u đ ti n trìnhề ộ ế
Trang 4B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 2 4
Th c hi n tu n t và song song ự ệ ầ ự
Th c hi n tu n t :ự ệ ầ ự T i m t th i đi m ạ ộ ờ ể
ch có th th c hi n m t chỉ ể ự ệ ộ ương trình, khi
chương trình đó th c hi n xong thì m i ự ệ ớ
ch y đạ ược chương trình khác
Trang 5Th c hi n song song:ự ệ Có th ch y nhi u ể ạ ề
chương trình cùng m t lúcộ
Trang 6B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
M i ti n trình s đỗ ế ẽ ược ch y trong ạ
kho ng th i gian (vài ch c hay vài trăm ả ờ ụ
mili giây), sau đó nó s chuy n CPU cho ẽ ể
ti n trình khác ế
T o ra c m giác các ch ạ ả ươ ng trình ch y ạ song song
Trang 7Làm cách nào đ phân bi t đ ể ệ ượ c ti n ế
trình này v i ti n trình khác trong h ớ ế ệ
th ng? ố
M i ti n trình c n có đ c tr ng riêng, ỗ ế ầ ặ ư
nh ID c a ti n trình, tài nguyên c a ti n ư ủ ế ủ ế trình
Trang 8B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 9H đi u hành ph i có công c đ qu n lý ệ ề ả ụ ể ảcác ti n trìnhế
M i h đi u hành thỗ ệ ề ường có m t t p h p ộ ậ ợcác hàm qu n lý ti n trình nh ả ế ư Kh i t o ở ạ
ti n trình ế , Hu ti n trình ỷ ế
Ví d : ụ
Chương trình “Windows Task Manager”
Trang 10B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 11Các hàm qu n lý ti n trình trên ả ế
Trang 12B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
lu ng: ồ Kh i t o lu ng ở ạ ồ , Hu lu ng ỷ ồ
(tương t nh qu n lý ti n trình)ự ư ả ế
Trang 13Phân bi t ti n trình và lu ng ệ ế ồ
Trang 14B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 2 14
Cách s d ng hàm API ử ụ
Khai báo hàm (tu t ng ngôn ng ):ỳ ừ ữ
+ Bi t đế ược các tham s c a hàmố ủ
+ Bi t đế ược hàm n m trong file DLL nàoằ
G i hàm đ s d ngọ ể ử ụ
BÀI T P Ậ
Trang 15Bài 2.2 – Các tr ng thái c a m t ti n ạ ủ ộ ế
trình
T i m t th i đi m, ti n trình có th m t trong ạ ộ ờ ể ế ể ở ộ
ba tr ng thái sau: ạ
Tr ng thái th c hi n:ạ ự ệ là tr ng thái mà ti n ạ ế
trình đang s d ng CPU đ th c hi n l nh ử ụ ể ự ệ ệ
Tr ng thái s n sàng:ạ ẵ Ti n trình đã đ ế ượ c phân
ph i đ y đ m i tài nguyên, ch tr CPU ố ầ ủ ọ ỉ ừ
Tr ng thái ng t:ạ ắ Ti n trình còn thi u m t vài ế ế ộ
đi u ki n nào đó thì m i chuy n sang tr ng thái ề ệ ớ ể ạ
s n sàng ẵ
Trang 16B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 2 16
Quá trình chuy n đ i tr ng thái ể ổ ạ
Trang 17
Bài 2.3 – Đi u đ ti n trình ề ộ ế
Tài nguyên găng
Đi u đ ti n trìnhề ộ ế
Các gi i thu t đi u đả ậ ề ộ
Trang 18B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 19Đi u đ ti n trình ề ộ ế
Đi u đ ti n trìnhề ộ ế (theo nghĩa t ng quát) ổ
là s t ch c th c hi n các ti n trình theo ự ổ ứ ự ệ ế
m t gi i thu t nào đó, nh m tránh s sung ộ ả ậ ằ ự
đ t gi a các ti n trình v m t tài nguyênộ ữ ế ề ặ
Trang 20B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Không ti n trình nào ph i ch vô h n ế ả ờ ạ
trước đo n găngạ
Trang 21Đi u đ ti n trìnhề ộ ế (theo nghĩa h p) là s ẹ ự
t ch c, phân ph i tài nguyên CPU cho các ổ ứ ố
ti n trình theo m t gi i thu t nào đó, ế ộ ả ậ
nh m đ m b o t c đ th c hi n c a các ằ ả ả ố ộ ự ệ ủ
ti n trình và hi u qu s d ng CPUế ệ ả ử ụ
Trang 22B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 2 22
Các thu t ng :ậ ữ
Đi u đ = scheduling ề ộ
B ph n đi u đ = scheduler ộ ậ ề ộ
Gi i thu t đi u đ = scheduling algorithm ả ậ ề ộ
Trang 23Các gi i thu t đi u đ ả ậ ề ộ
Trang 24B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 26B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 2 26
Khái ni m ng t ệ ắ
Ng t là hành đ ng d ng ch ắ ộ ừ ươ ng trình đang
ch y đ th c hi n m t ch ạ ể ự ệ ộ ươ ng trình khác
(ch ươ ng trình này đ ượ c g i là ọ ch ươ ng trình x lý ử
ng t ắ ).
B VXL s d ng các công vi c đang th c hi n ộ ẽ ừ ệ ự ệ
khi nh n đ ậ ượ c tín hi u yêu c u ng t. Sau đó nó ệ ầ ắ
trao quy n đi u khi n l i cho ch ề ề ể ạ ươ ng trình x lý ử
ng t ắ
Tín hi u yêu c u ng t có th do m t thi t b ệ ầ ắ ể ộ ế ị
ph n c ng ho c do m t l nh INT trong ch ầ ứ ặ ộ ệ ươ ng trình sinh ra.
Trang 27L nh 1 ệ
L nh 2 ệ
INT < >
L nh 1 ệ
L nh 2 ệ
Trang 28B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 2 28
Chương trình x lý ng t c n đử ắ ầ ược k t thúc ế
b ng l nh ằ ệ IRET đ sau khi th c hi n xong ể ự ệ
có th quay tr v th c hi n ti p chể ở ề ự ệ ế ương
trình b ng t trị ắ ước đó.
Có nhi u lo i tín hi u ng t khác nhau, đ ề ạ ệ ắ ể
phân bi t các ng t c n d a vào s hi u c a ệ ắ ầ ự ố ệ ủchúng. B vi x lý ộ ử 8086 có th qu n lý ể ả 256
ng tắ , được đánh s l n lố ầ ượ ừt t 0, 1, 2, ,
FFh.
Dưới đây là b ng danh sách các ng t: ả ắ
Trang 29S hi u ng tố ệ ắ Ch c năngứ
Trang 30B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Ta c n phân bi t rõ hai khái ni m: ầ ệ ệ “Ng t” ắ và
“Ch ươ ng trình x lý ng t” ử ắ Không ph i s hi u ng t ả ố ệ ắ
nào cũng có có ch ươ ng trình x lý ng t t ử ắ ươ ng ng ứ
Khi m t ng t có s hi u t ộ ắ ố ệ ừ 0 – 1Fh xu t hi n thì ấ ệ
chúng s đ ẽ ượ c x lý b i các ch ử ở ươ ng trình vi t s n ế ẵ
n m trong ằ ROM BIOS (ch y u là gi i quy t các ủ ế ả ế
yêu c u vào/ ra c b n). ầ ơ ả
Còn n u ng t có s hi u t ế ắ ố ệ ừ 20h – 3Fh thì s do h ẽ ệ
đi u hành ề DOS x lý. ử
Trang 31Phân lo i ng t: ạ ắ
Đ phân lo i c n d a trên m t tiêu chí nào ể ạ ầ ự ộ
đó, đây ta s phân lo i ng t d a trên cách ở ẽ ạ ắ ự
th c phát sinh ng t, t m chia làm hai lo i ứ ắ ạ ạ
sau:
Ng t m mắ ề
Ng t c ng ắ ứ
Trang 32B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 2 32
Ng t m m ắ ề
Ta g i m t ng t là ng t m m n u nó đ ọ ộ ắ ắ ề ế ượ c phát
sinh khi có l i g i ng t b ng l nh ờ ọ ắ ằ ệ INT trong
ch ươ ng trình.
Cú pháp c a l nh INT là: ủ ệ
INT <S hi u ng t> ố ệ ắ
Ví d : ụ
INT 21h ;G i ng t 21h c a DOS ọ ắ ủ
INT 13h ;G i ng t 13h c a BIOS ọ ắ ủ
Trang 33Ng t c ng ắ ứ
M t ng t c ng phát sinh khi có m t thi t b ph n ộ ắ ứ ộ ế ị ầ
c ng g i tín hi u yêu c u ng t t i b vi x lý ứ ử ệ ầ ắ ớ ộ ử
Ví d : ụ
Khi ta gõ m t phím trên bàn phím hay b m chu t, ộ ấ ộ
s có tín hi u ng t g i t i b vi x lý đ yêu c u ẽ ệ ắ ử ớ ộ ử ể ầ
x lý hành đ ng v a th c hi n ử ộ ừ ự ệ
Các ng t đ ắ ượ c kích ho t t thi t b ngoài (bàn ạ ừ ế ị
phím, chu t ) gi ng nh ví d trên đ ộ ố ư ụ ượ c g i là ọ
Ng t c ng ngoài. ắ ứ Còn n u ng t phát sinh b i các ế ắ ở
kinh ki n b tr n m trên mainboard thì đ ệ ổ ợ ằ ượ c g i ọ
Trang 34B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 35Ng t kép và các gi i pháp x lý ắ ả ử
Ng t képắ là hi n tệ ượng xu t hi n đ ng ấ ệ ồ
th i nhi u tín hi n ng t g i v CPUờ ề ệ ắ ử ề
CPU s x lý ng t nào trẽ ử ắ ướ c?
Trang 36B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 37Thi t l p m c u tiên cho các ng t ế ậ ứ ư ắ
Ví d : ụ S d ng IC 8259 đ đi u khi n ng t. ử ụ ể ề ể ắ
Các tín hi u ng t không đ ệ ắ ượ c đ a tr c ti p t i ư ự ế ớ CPU mà ph i đ a qua IC đi u khi n ng t 8259 ả ư ề ể ắ
IC đi u khi n ng t s phân lo i chúng r i ề ể ắ ẽ ạ ồ
chuy n t i CPU theo các m c u tiên khác nhau ể ớ ứ ư Các đ ườ ng tín hi u ng t: ệ ắ IRQ 0, IRQ 1, IRQ 15
Trang 38B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 2 38
S d ng hàng đ i ử ụ ợ
Các tín hi u ng t s đệ ắ ẽ ược x p vào hàng ế
đ i đ ch x lý, ng t nào xu t hi n ợ ể ờ ử ắ ấ ệ
trướ ẽ ược s đ c x lý trử ước
Trang 40B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 41Tìm hi u ng t th i gian 8h ể ắ ờ
IC 8253 chuyên làm nhi m v phát sinh ệ ụ
ng t nàyắ
C kho ng 55 ms (1/18.21 s) thì IC này ứ ả
l i g i m t tín hi u ng t t i CPUạ ử ộ ệ ắ ớ
Ta có th vi t chể ế ương trình x lý cho ử
ng t này, chắ ương trình đó s t đ ng ẽ ự ộ
được ch y c sau ~55 msạ ứ
Trang 42B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 44B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 45Hàm g i ng t:ọ ắ
Trang 46B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 2 46
Ví d : Hi n kí t ụ ệ ự ‘M’ ra màn hình
Trang 47S d ng các c u trúc và h p REGS:ử ụ ấ ợ
(xem trang sau)
Hàm g i ng t:ọ ắ
int86(S Hi uNg t, Regs đ u vào, Regs đ u ra ố ệ ắ ầ ầ );
int86x(S Hi uNg t, Regs vào, Regs ra, SR ố ệ ắ egs);
Trang 48B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 49Ví d :ụ Đ t thanh ghi ặ AH b ng ằ 2
(cách 1 dùng struct, cách 2 dùng union)
Trang 50B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
lý ng t c a ngắ ủ ười dùng (4 bước)
C u trúc c a m t ch ấ ủ ộ ươ ng trình x lý ng t ử ắ
Trang 51Các công vi c mà h th ng ph i ệ ệ ố ả
th c hi n khi có tín hi u ng t ự ệ ệ ắ
Trang 52
B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 2 52
Các b ướ c đ th c hi n ch ể ự ệ ươ ng
trình x lý ng t c a ng ử ắ ủ ườ i dùng
Có 4 bước sau đây:
Trang 54B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 2 54
Đ nh nghĩa danh sách thanh ghi ị
INTERRUPT_REGS
#define u_int unsigned int
#define INTERRUPT_REGS u_int bp, u_int di, \ u_int si, u_int ds, u_int es, u_int dx, u_int cx, \ u_int bx, u_int ax, u_int ip, u_int cs, u_int flags
Trang 55B ướ c 2:
L u l i đ a ch c a chư ạ ị ỉ ủ ương trình x lý ử
ng t cũ (đ sau này có th khôi ph c l i)ắ ể ể ụ ạ
S d ng hàm getvect:ử ụ
getvect(S hi u ng t)ố ệ ắ
Ví d : ụ L u đ a ch c a ng t 15h ư ị ỉ ủ ắ
void interrupt OldInt( );
OldInt = getvect(0x15);
Trang 56B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 57B ướ c 4:
Khôi ph c l i chụ ạ ương trình x lý ng t cũử ắ
Ví d : ụ Khôi ph c l i ch ụ ạ ươ ng trình x lý ử
ng t 15h cũ ắ
setvect(0x15, OldInt);
Trang 58B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Trang 59C u trúc c a m t ch ấ ủ ộ ươ ng trình x lý ử
ng t ắ
Trang 60
B môn K thu t máy tính & m ng – ộ ỹ ậ ạ
Khoa CNTT
H đi u hành ệ ề 2 60