Môn h c: H Đi u Hànhọ ệ ề
Ngày b t đ u: 16/02/2009ắ ầ
Ngày k t thúc: 16/05/2009ế
Gi ng viên: TS Tô Tu n ra đ c ng.ả ấ ề ươ
CÁC CÂU H I VÀ BÀI T P ÔN T PỎ Ậ Ậ
1.1. M c tiêu, ý nghĩa và c u trúc môn h c “H đi u hành”.ụ ấ ọ ệ ề
Gi i:ả
Ý nghĩa:
Ý nghĩa:
- Hi u sâu nguyên lý ho t đ ng c a Ph n c ng và Ph n m m máy tính.ể ạ ộ ủ ầ ứ ầ ề
- H c ph ng pháp phân tích, thi t k và l p trình m t h th ng l n đ áp d ng cho côngọ ươ ế ế ậ ộ ệ ố ớ ể ụ
tác nghi p v sau này.ệ ụ
M c tiêu:ụ
M c tiêu:ụ Cung c p các khái ni m c b n v c u trúc và ho t đ ng c a HĐH.ấ ệ ơ ả ề ấ ạ ộ ủ
Mô t v n t t:ả ắ ắ
Mô t v n t t:ả ắ ắ
- Khái ni m chung, L ch s , Phân lo i HĐH.ệ ị ử ạ
- Nguyên lý và ho t đ ng các kh i ch c năng.ạ ộ ố ứ
- Gi i thi u dòng HĐH Windows NT/2000/XP/2003ớ ệ
1.2. M t s quan ni m sai v môn h c “H đi u hành”.ộ ố ệ ề ọ ệ ề
Gi i:ả
Môn h c đ n gi n, không có gì m i, không có gì đ c bi t.ọ ơ ả ớ ặ ệ
Môn h c ch y u là lý thuy t, ch ng tác d ng gì.ọ ủ ế ế ẳ ụ
Môn h c r t khó, không có cách nào làm ch đ c.ọ ấ ủ ượ
1.3. Phân tích Đ nh nghĩa “H đi u hành là Máy tính m r ng (Extended Machine) hay Máy tínhị ệ ề ở ộ
o (Virtual Machine)”.ả
Gi i:ả
n các chi ti t c a ph n c ng đ máy tính d s d ng h n.Ẩ ế ủ ầ ứ ể ễ ử ụ ơ
Ng i s d ng và ng i l p trình đ c cung c p m t giao di n đ n gi n, dườ ử ụ ườ ậ ượ ấ ộ ệ ơ ả ễ
hi u và không ph thu c vào thi t b c th .ể ụ ộ ế ị ụ ể
Th c t , HĐH là m t h th ng bao g m nhi u máy tính tr u t ng x p thànhự ế ộ ệ ố ồ ề ừ ượ ế
nhi u l p ch ng lên nhau. Máy tính m c d i ph c v cho máy tính m c trên.ề ớ ồ ứ ướ ụ ụ ứ
B n thân ch ng trình ng d ng cũng là m t máy tính tr u t ng và ph i dả ươ ứ ụ ộ ừ ượ ả ễ
s d ng nh t.ử ụ ấ
Công vi c c a ng i l p trình là liên t c xây d ng các máy tính tr u t ngệ ủ ườ ậ ụ ự ừ ượ
nh v y (cho ng i khác s d ng và cho c chính mình).ư ậ ườ ử ụ ả
1.4. Phân tích Đ nh nghĩa “H đi u hành là b qu n lý tài nguyên (Resource Manager)”.ị ệ ề ộ ả
Gi i:ả
Đáp ng các yêu c u s d ng tài nguyên thi t b nh : CPU, B nh trong, đĩa, ứ ầ ử ụ ế ị ư ộ ớ Ổ Ổ
băng, Máy in, Card m ng, ạ
Trong tr ng h p nhi u ch ng trình, nhi u ng i dùng cùng chia s các tài nguyênườ ợ ề ươ ề ườ ẻ
chung nh v y, HĐH ph i gi i quy t tranh ch p có th x y ra và đ ng ra làm trung gianư ậ ả ả ế ấ ể ả ứ
đi u ph i sao cho tài nguyên đ c s d ng đúng th t , dùng xong l i đ c c p cho đ iề ố ượ ử ụ ứ ự ạ ượ ấ ố
t ng khác s d ng.ượ ử ụ
Hình dung tình hu ng:ố 3 ch ng trình cùng in ra m t máy in duy nh t. Khó ch p nh nươ ộ ấ ấ ậ
tr ng h p 1 trang in xen k nhi u k t qu t nhi u ngu n khác nhau. HĐH gi i quy tườ ợ ẽ ề ế ả ừ ề ồ ả ế
b ng cách đ a k t qu in c a m i ch ng trình t m th i ra đĩa c ng, sau đó l n l t inằ ư ế ả ủ ỗ ươ ạ ờ ứ ầ ượ
t đĩa vào th i đi m thích h p.ừ ờ ể ợ
1.5. Trình bày c u trúc khái quát c a h th ng máy tính và liên h v i c u trúc trong th c t .ấ ủ ệ ố ệ ớ ấ ự ế
Gi i:ả
1.6. B n th h phát tri n c a h đi u hành là nh ng th h nào? N n t ng Ph n c ng vàố ế ệ ể ủ ệ ề ữ ế ệ ề ả ầ ứ
Ph n m m t ng ng ra sao?ầ ề ươ ứ
Gi i:ả
Th h 1 (1945 -1955): Đèn đi n t - B ng đi u khi n (Plugboards)ế ệ ệ ử ả ề ể
Th h 2 (1955 -1965): Bóng bán d n - H x lý lô (Batch Systems)ế ệ ẫ ệ ử
Th h 3 (1965 -1980): M ch IC - H đa ch ng (Multiprogrammingế ệ ạ ệ ươ
Systems), H chia th i gian (Time-Sharing Systems)ệ ờ
Th h 4 (1980 - đ n nay): M ch LSI (Large Scale Integration) và Các h đi uế ệ ế ạ ệ ề
hành hi n đ i.ệ ạ
1.7. L ch s và tình hình s d ng h đi u hành Vi t Nam.ị ử ử ụ ệ ề ở ệ
Gi i:ả
Máy tính Minsk-32 ( Liên Xô ) v i HĐH đ n ch ng Dispatcher t i Trung tâmớ ơ ươ ạ
Toán - Máy tính, BQP (t 1974 - 1990)ừ
Máy tính ES-1022 ( Liên Xô ) v i HĐH đa ch ng OS/ES (t ng đ ng v iớ ươ ươ ươ ớ
OS/360 c a IBM) t i Đ i h c Bách khoa Hà N i (t 1986 - 1996)ủ ạ ạ ọ ộ ừ
Máy tính IBM 360/50 v i HĐH đa ch ng OS/360 t i Trung tâm Đi n toánớ ươ ạ ệ
ti p v n c a Quân đ i Sài Gòn ( t 1974 )ế ậ ủ ộ ừ
Các HĐH cho máy vi tính: PC-DOS, MS-DOS, MacOS, OS/2, Windows 9x,
Windows NT/2000/XP/VISTA, RedHat Linux, Linux VN 1.0, VietKey Linux 3.0,
1.8. Trên các máy l n th i kỳ đ u, H X lý lô ho t đ ng th nào?ớ ờ ầ ệ ử ạ ộ ế
Gi i:ả
Thi t b I/O : card reader, tape drivesế ị
C n có ng i v n hành: operator (user ầ ườ ậ ≠ operator)
Gi m setup time ả → ghép nhóm công vi c (batching jobs)ệ
Ví d : ghép 2 công vi c cùng dùng trình biên d ch Fortran, ụ ệ ị → ti t ki m đ c th i gianế ệ ượ ờ
load trình biên d ch Fortran.ị
Là h đi u hành s khai nh t ch có Resident Monitor, trongệ ề ơ ấ ỉ
đó ch a các ph n đi u khi n quá trình x lý, tính toán nh :ứ ầ ề ể ử ư
Loader, job sequencing, control card interpreter, device drivers.
T i m i th i đi m ch có m t ti n trình hay m t tác v trong b nh .ạ ỗ ờ ể ỉ ộ ế ộ ụ ộ ớ
1.9. Nguyên lý ho t đ ng c a H đi u hành Đa ch ng.ạ ộ ủ ệ ề ươ
Gi i:ả
H đi u hành đa ch ng (Multiprogramming System): Đây là h cho phép nhi u công vi c cùngệ ề ươ ệ ề ệ
ch y m t lúc. Cùng chia s quy n s d ng CPU theo m t thu t toán nào đó. Ví d nhạ ộ ẻ ề ử ụ ộ ậ ụ ư
Windows 3.1, Windows 9x… Nhìn chung:
1. Có nhi u tác v (ti n trình) cùng m t lúc đ c n p đ ng th i vào b nh chính.ề ụ ế ộ ượ ạ ồ ờ ộ ớ
2. Th i gian x lý c a CPU đ c phân chia gi a các tác v đó.ờ ử ủ ượ ữ ụ
3. T n d ng đ c th i gian r nh tăng ậ ụ ượ ờ ả hi u su t s d ng CPUệ ấ ử ụ (CPU utilization)
4. Và khi m t m t tác v không c n đ n CPU (do ph i th c hi n I/O v i thi t b ngo i vi),ộ ộ ụ ầ ế ả ự ệ ớ ế ị ạ
thì tác v khác đ c thi hành.ụ ượ
5. Yêu c u:ầ
Operating
System
Job i
B nh ộ ớ
trong
Đ ng th i công vi c (job scheduling): ch n job trong job pool trên đĩa và n pồ ờ ệ ọ ạ
nó vào b nh đ th c thi.ộ ớ ể ự
Qu n lý b nh (memory management).ả ộ ớ
Đ nh th i CPU (CPU scheduling).ị ờ
C p phát tài nguyên (đĩa, máy in,…).ấ
B o v .ả ệ
1.10.Nguyên lý ho t đ ng c a H đi u hành Chia th i gian (Time – Sharing System).ạ ộ ủ ệ ề ờ
Gi i:ả
Là lo i h đi u hành đa ch ng (Multi-programmed systems) nh ng không cung c pạ ệ ề ươ ư ấ
kh năng t ng tác v i usersả ươ ớ
CPU luân phiên chuy n đ i th c thi gi a các công vi cể ổ ự ữ ệ
Quá trình chuy n đ i x y ra ể ổ ả th ng xuyên h nườ ơ , m i công vi c ch đ c chia m tỗ ệ ỉ ượ ộ
ph n nh th i gian CPUầ ỏ ờ
Cung c p s t ng tác gi a h th ng v i userấ ự ươ ữ ệ ố ớ
Khi k t thúc th c thi m t l nh, OS s ch l nh k ti p t bàn phím chế ự ộ ệ ẽ ờ ệ ế ế ừ ứ
không ph i t card readerả ừ
M t công vi c ch đ c chi m CPU đ x lý khi nó n m trong b nh chínhộ ệ ỉ ượ ế ể ử ằ ộ ớ
Khi c n thi t, m t công vi c nào đó có th đ c chuy n t b nh chính ra thi t bầ ế ộ ệ ể ượ ể ừ ộ ớ ế ị
l u tr , nh ng b nh chính cho công vi c khác.ư ữ ườ ộ ớ ệ
Yêu c u đ i v i OS trong Time-Sharing Systems ầ ố ớ
Đ nh th i công vi c (job scheduling)ị ờ ệ
Qu n lý b nh (Memory Management)ả ộ ớ
o Các công vi c đ c hoán chuy n gi a b nh chính và đĩaệ ượ ể ữ ộ ớ
o Virtual memory: cho phép m t công vi c có th đ c th c thi mà không c n ph iộ ệ ể ượ ự ầ ả
n p hoàn toàn vào b nh chínhạ ộ ớ
Qu n lý các process (Process Management)ả
o Đ nh th i CPU (CPU scheduling)ị ờ
o Đ ng b các công vi c (synchronization)ồ ộ ệ
o T ng tác gi a các công vi c (process communication)ươ ữ ệ
o Tránh Deadlock
Qu n lý h th ng file, h th ng l u tr (disk management) ả ệ ố ệ ố ư ữ
Phân b các thi t b , tài nguyênổ ế ị
C ch b o v (protection)ơ ế ả ệ
1.11. Nêu 1 ví d t đ i th ng minh ho ch đ ph c v chia th i gian.ụ ừ ờ ườ ạ ế ộ ụ ụ ờ
Gi i:ả
Ví d t đ i th ng:ụ ừ ờ ườ Trong nhà hàng, ng i b i bàn (CPU) ph c v m i bàn ăn (Ch ngườ ồ ụ ụ ỗ ươ
trình ng i dùng) trong 1 kho ng th i gian ng n (ch ng h n trong 10 giây), sau đó chuy n sangườ ả ờ ắ ẳ ạ ể
bàn khác.
1.12. Các dòng h đi u hành trên máy tính đ bàn là các dòng nào? Hãy trình bày s khác bi tệ ề ể ự ệ
gi a dòng Windows 9X v i dòng Windows NT/2000/XP/2003.ữ ớ
° Dòng DOS: PC-DOS, MS-DOS
° Dòng UNIX: XENIX, Linux
° Dòng Windows:
– Windows 3.X: Windows 3.1
– Windows 9X: Windows 95/98/ME
– Windows NT: Windows NT/2000/XP/2003/Vista.
1.13. Đi n tên thích h p vào ch có d u h i ch m: ề ợ ỗ ấ ỏ ấ
Windows 95 ⇒ Windows 98 ⇒ Windows 98 SE ⇒ ?
1.14. Đi n tên thích h p vào ch có d u h i ch m: ề ợ ỗ ấ ỏ ấ
? ⇒ Windows 2000 ⇒ Windows XP ⇒ ?
1.15. Đi n tên thích h p vào ch có d u h i ch m: ề ợ ỗ ấ ỏ ấ
Windows 2000 Server (4 CPU) ⇒ Windows 2000 Advanced Server (8 CPU) ⇒ ? (? CPU)
1.16. Đa x lý đ i x ng khác v i Đa x lý phi đ i x ng đi m nào? Cho các ví d v h đi uử ố ứ ớ ử ố ứ ở ể ụ ề ệ ề
hành đa x lý đ i x ng.ử ố ứ
Gi i:ả
H đa x lý đ i x ng: ệ ử ố ứ
o Có nhi u b vi x lý cùng v n hành và s d ng chung b nh và thi t b I/O, ngangề ộ ử ậ ử ụ ộ ớ ế ị
hàng v ch c năngề ứ
o Các hệ đi u hành h tr :ề ỗ ợ
-Solaris, OS/2, Linux
-Windows NT/2000/XP/2003/Vista
Windows 2000 Professional: 2 CPU
Windows 2000 Server: 4 CPU
Windows 2000 Advanced Server : 8 CPU
Windows 2000 Datacenter Server: 32 CPU
……………………………………………….
H đa x lý phi đ i x ng:ệ ử ố ứ
o Các CPU chung b nh và thi t bộ ớ ế ị
o M i CPU đ c n đ nh ch c năng riêng:ỗ ượ ấ ị ứ
• Có CPU ch (Master) ki m soát toàn h th ngủ ể ệ ố
• Các CPU khác đóng vai trò ph thu c (Slaves), chuyên trách công vi c nào đóụ ộ ệ
• Master đi u ph i và c p phát công vi c cho các Slavesề ố ấ ệ
o H đi u hành h tr : SunOS 4.xệ ề ỗ ợ
1.17. Phân lo i các h phân tán theo kho ng cách và theo ph ng th c ph c v . Phân bi t Fileạ ệ ả ươ ứ ụ ụ ệ
Server v i Client-Server.ớ
Gi i:ả
Phân lo i theo kho ng cách:ạ ả
• LAN (Local-Area Network): N i bộ ộ
• WAN (Wide-Area Network): Di n r ngệ ộ
• MAN (Metropolitan-Area Network): Đô thị
Phân lo i theo ph ng th c ph c v :ạ ươ ứ ụ ụ
• File-Server: Máy ch không tính toán, ch làm d ch v t p tin cho các máy khácủ ỉ ị ụ ậ
• Peer-to-Peer: M ng các máy ngang hàngạ
• Client-Server: Máy khách (Client) g i yêu c u, Máy ch (Server) tính toán và g iử ầ ủ ử
tr l i k t qu .ả ạ ế ả
1.18. Gom c m đ i x ng khác v i Gom c m phi đ i x ng đi m nào?ụ ố ứ ớ ụ ố ứ ở ể
Gi i:ả
Gom c m đ i x ng (Symmetric Clustering): Các máy ngangụ ố ứ
hàng v ch c năng, M i máy th c hi n ph n vi c c a mình và giám sát l n nhau.ề ứ ỗ ự ệ ầ ệ ủ ẫ
Gom c m phi đ i x ng (Asymmetric Clustering): M t máy ch yụ ố ứ ộ ạ
trong Hot Standby Mode, nghĩa là ch giám sát công vi c các máy khác nh ng s đ mỉ ệ ư ẽ ả
đ ng công vi c c a máy g p s c .ươ ệ ủ ặ ự ố
1.19. Đ nh nghĩa c a IEEE v H th i gian th c.ị ủ ề ệ ờ ự
Gi i:ả
o H th ng th i gian th c (Real-Time Systems)ệ ố ờ ự
Th ng dùng trong các thi t b chuyên d ng nh đi u khi n các thườ ế ị ụ ư ề ể ử
nghi m khoa h c, đi u khi n trong y khoa, dây chuy n công nghi p.ệ ọ ề ể ề ệ
Ràng bu c t ng đ i ch t ch v th i gian: hard và soft real-time.ộ ươ ố ặ ẽ ề ờ
o Hard real-time:
H n ch (ho c không có) b nh ph , t t c d li u n m trong b nh chínhạ ế ặ ộ ớ ụ ấ ả ữ ệ ằ ộ ớ
(RAM) ho c ROMặ
Yêu c u th i gian đáp ng, x lý r t nghiêm ng t, th ng s d ng trong đi u khi nầ ờ ứ ử ấ ặ ườ ử ụ ề ể
công nghi p, công ngh robotics.ệ ệ
o Soft real-time:
Th ng xu t hi n trong lĩnh v c multimedia, th c t o (virtual reality) v i yêu c uườ ấ ệ ự ự ế ả ớ ầ
m m d o h n v th i gian.ề ẻ ơ ề ờ
2.1. Nh ng b ph n c u thành và c u trúc khái quát c a máy tính.ữ ộ ậ ấ ấ ủ
Gi i:ả
Nh ng b ph n c u thành máy tính:ữ ộ ậ ấ
CPU (Central Processing Unit)
B nh (Memory)ộ ớ
Đ ng truy n h th ng (System Bus)ườ ề ệ ố
Các m ch đi u khi n thi t b (Device Controller): Đi u khi n công vi c c a thi t bạ ề ể ế ị ề ể ệ ủ ế ị
(Ph n c ); Làm vi c đ ng th i, song song và đ c l p v i CPUầ ơ ệ ồ ờ ộ ậ ớ
M ch đi u khi n b nh (Memory Controller) v i ch c năng đ ng b hoá truy c pạ ề ể ộ ớ ớ ứ ồ ộ ậ
b nh chungộ ớ
2.2. Quá trình kh i đ ng máy tính và h đi u hành.ở ộ ệ ề
Gi i:ả
Sau khi b t ngu n, ch ng trình m i ậ ồ ươ ồ Bootstrap l y t ROM ho c EEPROMấ ừ ặ
đ c kh i đ ng v i ch c năng kh i ho t các thi t b h th ng: Các thanh ghi CPU, Bượ ở ộ ớ ứ ở ạ ế ị ệ ố ộ
nh , Disk Controllers, sau đó kh i đ ng h t nhân c a HĐH n p t đĩa c ng.ớ ở ộ ạ ủ ạ ừ ứ
H t nhân (Kernel, Monitor) c a HĐH kh i đ ng ti n trình đ u tiên g i là ạ ủ ở ộ ế ầ ọ INIT
(Initialization) và ch các s ki n (Event) có th x y ra.ờ ự ệ ể ả
2.3. Trình bày nguyên t c x lý ng t c a h đi u hành.ắ ử ắ ủ ệ ề
Gi i:ả
Hai lo i ng t chính:ạ ắ
o Tín hi u ng t (Interrupt Signal) t các thi t b (Ng t c ng) truy n qua System Bus.ệ ắ ừ ế ị ắ ứ ề
o Tín hi u ng t t ch ng trình ng i dùng (Ng t m m) nh ệ ắ ừ ươ ườ ắ ề ờ L i g i h th ngờ ọ ệ ố
(System Call hay Monitor Call). L nh đ c bi t này (ví d có tên ệ ặ ệ ụ INT ho c ặ SysCall)
là c ch đ ti n trình ng i dùng yêu c u m t d ch v c a HĐH (ví d , yêu c uơ ế ể ế ườ ầ ộ ị ụ ủ ụ ầ
th c hi n l nh I/O).ự ệ ệ
V i m i lo i ng t, có đo n mã riêng c a HĐH dùng đ x lý.ớ ỗ ạ ắ ạ ủ ể ử
Các HĐH hi n đ i đ c d n d t b i các s ki n. N u không có ti n trình nào v n hành,ệ ạ ượ ẫ ắ ở ự ệ ế ế ậ
không có thi t b I/O nào làm vi c, HĐH im l ng ch và theo dõi.ế ị ệ ặ ờ
Thông th ng, m i lo i ng t t ng ng v i 1 dòng trong b ng (ườ ỗ ạ ắ ươ ứ ớ ả Véc-t ng tơ ắ ) ch a conứ
tr (Pointer) t i ch ng trình x lý lo i ng t đó. B ng này n m vùng th p c a RAMỏ ớ ươ ử ạ ắ ả ằ ở ấ ủ
(ví d : 100 bytes đ u tiên).ụ ầ
C ch x lý ng t ph i có trách nhi m ghi l i đ a ch l nh b ng t đ sau đó có th quayơ ế ử ắ ả ệ ạ ị ỉ ệ ị ắ ể ể
l i. Đ a ch này cùng v i nhi u thông tin khác có th đ c ghi vào ạ ị ỉ ớ ề ể ượ Ngăn x p h th ngế ệ ố
(System Stack) v i nguyên t c làm vi c LIFO ( Last-In, First-Out ).ớ ắ ệ
2.4. Minh ho b ng hình v Tuy n th i gian c a 1 ti n trình có 2 yêu c u t i thi t b ngoài.ạ ằ ẽ ế ờ ủ ế ầ ớ ế ị
Gi i:ả
2.5. Hai ph ng th c Nh p/Xu t là nh ng ph ng th c nào? Nêu 2 ví d s d ng.ươ ứ ậ ấ ữ ươ ứ ụ ử ụ
Gi i:ả
- Synchronous I/O: Sau khi phát ra l nh Nh p/Xu t, ti n trình chuy n sang tr ng thái chệ ậ ấ ế ể ạ ờ
đ n khi Nh p/Xu t hoàn t t r i m i ch y ti p (th c hi n l nh k ti p)ế ậ ấ ấ ồ ớ ạ ế ự ệ ệ ế ế
Ví dụ: Khi ta t o m i m t tài li u nh p d li u t bàn phím, khi mu n l u l i ta ph i ch nạ ớ ộ ệ ậ ữ ệ ừ ố ư ạ ả ọ
Save, sau đó đ t tên file, và ch n n i l u tr . Các ti n trình đó tr ng thái ch ti n trìnhặ ọ ơ ư ữ ế ở ạ ờ ế
tr c nh p xu t hoàn t t đã.ướ ậ ấ ấ
- ASynchronous I/O: Sau khi phát ra l nh Nh p/Xu t, ti n trình không ch Nh p/Xu t hoànệ ậ ấ ế ờ ậ ấ
t t mà th c hi n ngay l nh k ti p. Nh v y, ti n trình v n hành song song v i công vi cấ ự ệ ệ ế ế ư ậ ế ậ ớ ệ
Nh p/Xu t.ậ ấ
Đ ch ng minh đi u đó, hãy xem hình v sau:ể ứ ề ẽ
Ví dụ: Khi ta nh p d li u m i ho c thêm vào tài li u đã có, khi ta mu n l u thì ta ch nậ ữ ệ ớ ặ ệ ố ư ọ
Save và lúc này ti n trình v n hành song song v i vi c phát ra l nh t Save.ế ậ ớ ệ ệ ừ
2.6. Gi s m t h th ng có 3 lo i thi t b là Máy in, Đĩa c ng và CD-ROM. Có 1 yêuả ử ộ ệ ố ạ ế ị Ổ ứ Ổ
c u in t p tin DanhSach.doc, 1 yêu c u đ c F1.txt t đĩa c ng, 1 yêu c u ghi ra F2.txt trênầ ậ ầ ọ ừ ứ ầ
đĩa c ng. Hãy th hi n b ng hình v B ng tr ng thái thi t b v i 3 yêu c u Nh p/Xu tứ ể ệ ằ ẽ ả ạ ế ị ớ ầ ậ ấ
k trên.ể
2.7. Trong 2 lo i b nh là B nh chính và Đĩa t , lo i nào là B nh S c p, lo i nào là Bạ ộ ớ ộ ớ ừ ạ ộ ớ ơ ấ ạ ộ
nh Th c p? Phân lo i nh v y đ làm gì?ớ ứ ấ ạ ư ậ ể
Gi i:ả
B nh chính (Main Memory)ộ ớ
o Ch ng trình máy tính ph i đ c n p vào RAM (Random-Access Memory)ươ ả ượ ạ
tr c khi th c hi n.ướ ự ệ
o L nh c n th c hi n ph i đ c n p vào thanh ghi (Register) c a CPU.ệ ầ ự ệ ả ượ ạ ủ
o Các tác t (Operand) t ng ng cũng đ c l y t RAM.ử ươ ứ ượ ấ ừ
o Lý t ng nh t là ch ng trình và d li u đ u n m trong RAM nh ng khôngưở ấ ươ ữ ệ ề ằ ư
kh thi vì RAM quá nh và là lo i b nh không ch c (Volatile) do n i dung b xoá khiả ỏ ạ ộ ớ ắ ộ ị
m t đi n.ấ ệ
o RAM đ c s d ng làm ượ ử ụ B nh S c pộ ớ ơ ấ (Primary Memory).
B nh ph (secondary storage): h th ng l u tr thông tin b n v ng (nonvolatileộ ớ ụ ệ ố ư ữ ề ữ
storage).
o Đĩa t (magnetic disks) là lo i b nh ph hay b nh th c p. ừ ạ ộ ớ ụ ộ ớ ứ ấ
o B m t đĩa chia thành các rãnh (ề ặ tracks), các rãnh này đ c chia nh h n thành cácượ ỏ ơ
cung t (ừ sectors).
o Cylinder: t p các track t o thành m t hình trậ ạ ộ ụ
o Disk controller: b đi u khi n quá trình giao ti p gi a CPU và đĩa.ộ ề ể ế ữ
2.8. V hình tháp mô t c u trúc phân c p các lo i b nh .ẽ ả ấ ấ ạ ộ ớ
Gi i:ả
2.9. M c đích c a nguyên t c Caching là gì? Nêu 1 ví d t đ i th ng s d ng nguyên t cụ ủ ắ ụ ừ ờ ườ ử ụ ắ
đó.
Gi i:ả
o Là nguyên t c quan tr ng c a h th ng máy tính.ắ ọ ủ ệ ố
o Thông tin t RAM có th đ c c ch ph n c ng đ a vào b nh nhanh h nừ ể ượ ơ ế ầ ứ ư ộ ớ ơ
g i là ọ Cache. Khi CPU c n chính thông tin đó, không c n ph i truy xu t RAM, mà l y ngayầ ầ ả ấ ấ
t Cache.ừ
o Lo i b nh này không do HĐH qu n lý và c p phát.ạ ộ ớ ả ấ
o Th c t , RAM (B nh S c p) là lo i Cache nhanh so v i đĩa c ng (B nhự ế ộ ớ ơ ấ ạ ớ ứ ộ ớ
th c p) và HĐH có ch c năng qu n lý s l u chuy n d li u gi a 2 lo i b nh này ứ ấ ứ ả ự ư ể ữ ệ ữ ạ ộ ớ
2.10. Đi n t thích h p vào ch có d u h i ch m:ề ừ ợ ỗ ấ ỏ ấ
Milli ⇒ Micro ⇒ Nano ⇒ Pico ⇒ ? ⇒ ? ⇒ ? ⇒ ?
Gi i:ả
Milli ⇒ Micro ⇒ Nano ⇒ Pico ⇒ Femto ⇒ Atto ⇒ Zepto ⇒ Yocto
2.11. Đi n t thích h p vào ch có d u h i ch m:ề ừ ợ ỗ ấ ỏ ấ
Kilo ⇒ Mega ⇒ Giga ⇒ Tera ⇒ ? ⇒ ? ⇒ ? ⇒ ?
Gi i:ả
Kilo ⇒ Mega ⇒ Giga ⇒ Tera ⇒ Pera ⇒ Exa ⇒ Zetta ⇒ Yotta
2.12. Phân tích Hai ch đ v n hành c a máy tính.ế ộ ậ ủ
Gi i:ả
H đi u hành hi n đ i dùng c ch ệ ề ệ ạ ơ ế Dual-Mode đ duy trì 2 chể ế
đ là ộ User Mode và Monitor Mode (còn g i là Supervisor Mode, System Mode ho cọ ặ
Privileged Mode) đ b o v h th ng và các ti n trình đang v n hành.ể ả ệ ệ ố ế ậ
M t ộ Mode Bit đ c đ a vào ph n c ng c a máy đ ch báoượ ư ầ ứ ủ ể ỉ
ch đ làm vi c hi n hành: 0 - Monitor Mode, 1 - User Mode.ế ộ ệ ệ
Khi x y ra ng t, ph n c ng chuy n t User Mode sang Monitorả ắ ầ ứ ể ừ
Mode b ng cách đ t Mode Bit thành 0.ằ ặ
H đi u hành đ t Mode Bit b ng 1 tr c khi tr đi u khi n vệ ề ặ ằ ướ ả ề ể ề
ti n trình ng i dùng.ế ườ
M t s l nh máy ch th c hi n đ c trong Monitor Mode (Cácộ ố ệ ỉ ự ệ ượ
l nh u tiên).ệ ư
Ti n trình ng i dùng có th ế ườ ể gián ti pế th c hi n các l nh uự ệ ệ ư
tiên qua L i g i h th ngờ ọ ệ ố (System Call).
MS-DOS không có Dual-Mode.
B x lý ộ ử Pentium h tr Mode bit, do đó các HĐH Windowsỗ ợ
2000/XP/2003/Vista và OS/2 t n d ng đ c tính năng này đ b o v máy tính t t h n.ậ ụ ượ ể ả ệ ố ơ
2.13. B o v Nh p/Xu t b ng System Call nh th nào?ả ệ ậ ấ ằ ư ế
Gi i:ả
System call – ph ng th c duy nh t mà process dùng đ yêu c u các d ch v cung c p b iươ ứ ấ ể ầ ị ụ ấ ở
OS
o Các system call gây ra ng t m m (g i là trap).ắ ề ọ
o Quy n đi u khi n đ c chuy n đ n trình ph c v ng t, mode bit đ c thi t l p làề ề ể ượ ể ế ụ ụ ắ ượ ế ậ
monitor mode.
o OS ki m tra tính h p l và đúng đ n c a các đ i s , th c hi n yêu c u và tr quy nể ợ ệ ắ ủ ố ố ự ệ ầ ả ề
đi u khi n v l nh k ti p sau system call. ề ể ề ệ ế ế
2.14. Trình bày Thu t gi i b o v b nh b ng Thanh ghi C s và Thanh ghi Gi i h n.ậ ả ả ệ ộ ớ ằ ơ ở ớ ạ
Gi i:ả
o Đ ti n trình ng i dùng không can thi p đ c vào vùng nh c a HĐH vàể ế ườ ệ ượ ớ ủ
c a các ti n trình khác, th ng s d ng 2 thanh ghi: ủ ế ườ ử ụ Thanh ghi C sơ ở (Base Register) và
Thanh ghi Gi i h nớ ạ (Limit Register).
o Ch có HĐH m i có th s a đ c n i dung 2 thanh ghi này.ỉ ớ ể ử ượ ộ
2.15. B o v CPU b ng Timer.ả ệ ằ
Gi i:ả
• CPU protection: b o đ m OS ph i duy trì đ c quy n đi u khi n, tránh tr ng h p user bả ả ả ượ ề ề ể ườ ợ ị
l p vô h n, không tr quy n đi u khi n. C ch th c hi n là ặ ạ ả ề ề ể ơ ế ự ệ timer.
• Timer – kích kh i các ng t quãng đ nh kỳở ắ ị
o B đ m ộ ế timer s gi m d n sau m i xung clock c a máy tính.ẽ ả ầ ỗ ủ
o Khi timer b ng 0 thì kích ho t ng t ằ ạ ắ timer và OS s n m quy n đi u khi n.ẽ ắ ề ề ể
• Timer cũng đ c s d ng đ hi n th c h th ng time sharing.ượ ử ụ ể ệ ự ệ ố
Thi t l p ế ậ timer gây ng t đ nh kỳ N ms (time slice, quantum)ắ ị
• Timer cũng đ c dùng đ tính th i gian.ượ ể ờ
• L nh n p giá tr cho b đ m ệ ạ ị ộ ế timer là privileged instruction.
3.1. Nh ng b ph n c u thành c a h đi u hành.ữ ộ ậ ấ ủ ệ ề
Gi i:ả
• Qu n lý Process (Process Management)ả
• Qu n lý b nh chính (Memory Management)ả ộ ớ
• Qu n lý H Th ng File (File Management)ả ệ ố
• Qu n lý h th ng I/O (I/O System Management)ả ệ ố
• Qu n lý b nh ph (Secondary Storage Management)ả ộ ớ ụ
• H th ng b o v (Protection System)ệ ố ả ệ
• Command-Interpreter System
3.2. Shell c a h đi u hành Windows đ c g i là gì?ủ ệ ề ượ ọ
Gi i:ả
Giao di n do Command-Interpreter h tr hay giao di n giaoệ ỗ ợ ệ
ti p gi a User và H Đi u hành đ c g i là ế ữ ệ ề ượ ọ Shell.
M t trong nh ng “V ” thân thi n đ u tiên xu t hi n trong hộ ữ ỏ ệ ầ ấ ệ ệ
đi u hành ề Mac OS cho máy tính Macintosh.
3.3. Phân lo i và ch c năng các d ch v c a h đi u hành.ạ ứ ị ụ ủ ệ ề
Gi i:ả
• Th c hi n ch ng trình: HĐH ph i bi t n p (Load) ch ng trình vàoự ệ ươ ả ế ạ ươ
RAM và kh i đ ng nó. ở ộ
• Thao tác Nh p/Xu t: Làm s ch màn hình, Đ nh d ng đĩa, Tua băng vậ ấ ạ ị ạ ề
đ u, ầ
• Thao tác v i H t p tin: T o l p/Lo i b /Đ c/ghi t p tin, ớ ệ ậ ạ ậ ạ ỏ ọ ậ
• Liên l c gi a các ti n trình: B ng thông đi p (Messages), Qua vùngạ ữ ế ằ ệ
nh chung. Trao đ i thông tin gi a các ti n trình ớ ổ ữ ế Trên 1 máy/ Gi a các máyữ khác nhau trong
m ng.ạ
• Phát hi n l i: L i trong CPU, B nh , Các thi t b (L i ch n l -ệ ỗ ỗ ộ ớ ế ị ỗ ẵ ẻ
Parity, L i truy c p m ng, L i h t gi y, ). M i lo i l i có cách x trí riêng c a HĐH.ỗ ậ ạ ỗ ế ấ ỗ ạ ỗ ử ủ
3.4. Khái ni m System Call và 3 ph ng th c truy n tham s .ệ ươ ứ ề ố
Gi i:ả
System calls cung c p giao di n làm vi c gi a m t ch ng trình đang th c thi và hấ ệ ệ ữ ộ ươ ự ệ
đi u hànhề
o Thông th ng là các th vi n h p ng (assembly).ườ ư ệ ợ ữ
o Các ngôn ng l p trình c p cao th ng có các th vi n l p trình thay cho các th vi nữ ậ ấ ườ ư ệ ậ ư ệ
h p ng c a h th ng, cho phép l p trình viên tri u g i system calls tr c ti p (ví d :ợ ữ ủ ệ ố ậ ệ ọ ự ế ụ
C/C++, Win32 API)
Ba ph ng pháp truy n thông s gi a process và h đi u hànhươ ề ố ữ ệ ề
o Truy n thông s qua các thanh ghi (registers).ề ố
o Truy n tham s qua m t vùng nh chia s , đ a ch c a vùng nh g i đ n OS qua thanhề ố ộ ớ ẻ ị ỉ ủ ớ ử ế
ghi.
o Truy n tham s qua stack.ề ố
3.5. H đi u hành có các nhóm ch ng trình h th ng nào?ệ ề ươ ệ ố
Gi i:ả
o Qu n lý t p tin/th m c: T o l p, Lo i b , Sao chép, Đ i tên, In n, Li t kê.ả ậ ư ụ ạ ậ ạ ỏ ổ ấ ệ
o Cung c p thông tin v tr ng thái h th ng: Ngày, Gi , B nh tr ng, Sấ ề ạ ệ ố ờ ộ ớ ố ố
Users.
o Ch nh lý t p tin: So n th o văn b n (NotePad, WordPad).ỉ ậ ạ ả ả
o M t s trình Biên d ch/Thông d ch: Assembler, C, C++, VB.ộ ố ị ị
o N p và th c hi n ch ng trình: Loaders, Linkage Editors.ạ ự ệ ươ
o Liên l c: G i/Nh n thông đi p gi a các máy, Trình duy t (Web Browser),ạ ử ậ ệ ữ ệ
Th đi n t , Truy n file, Đăng nh p t xa, ư ệ ử ề ậ ừ
o Shell: (Command-Interpreter, Desktop Window).
o
3.6. C u trúc đ n gi n c a h đi u hành.ấ ơ ả ủ ệ ề
Gi i:ả
• Các thành ph n c a HĐH đ c th c thi d iầ ủ ượ ự ướ
d ng các th t c (Procedure) có th ạ ủ ụ ể G i t doọ ự l n nhau. Th c ch t không có c u trúc nàoẫ ự ấ ấ
c .ả
• Nhi u HĐH có ề T ch c y uổ ứ ế do lúc đ u đ cầ ượ
thi t k cho c u hình ph n c ng h n ch . ế ế ấ ầ ứ ạ ế MS-DOS là 1 h nh v y.ệ ư ậ
3.7. C u trúc phân l p c a h đi u hành.ấ ớ ủ ệ ề
Gi i:ả
• HĐH đ c chia thành nhi u l p (Layers, Levels)ượ ề ớ
ch ng lên nhau.ồ
• L p th p nh t (l p 0) là ớ ấ ấ ớ Ph n c ngầ ứ .
• L p cao nh t (l p N) là ớ ấ ớ Giao di n ng i s d ngệ ườ ử ụ
(User Interface).
• M i l p ch dùng ch c năng và d ch v do cácỗ ớ ỉ ứ ị ụ
m c th p h n cung c p.ứ ấ ơ ấ
• M i l p ch c n bi t các l p d i ỗ ớ ỉ ầ ế ớ ướ Làm gì mà
không quan tâm ch c năng đó đ c ứ ượ Làm nh th nàoư ế .
• Rà l i (Debugging) đ c ti n hành t l p d iỗ ượ ế ừ ớ ướ
tr lên.ở
• Thi t k và thi công tr nên đ n gi n h n nhi u.ế ế ở ơ ả ơ ề
• Các h phân l p có hi u năng th p h n các hệ ớ ệ ấ ơ ệ
lo i khác.ạ
3.8. C u trúc vi h t c a h đi u hành.ấ ạ ủ ệ ề
Gi i:ả
Chuy n m t s ch c năng c a OS t kernel sang user.ể ộ ố ứ ủ ừ
o Thu g n kernel ọ → micro-kernel.
o Micro-Kernel ch bao g m các ch c năng t i thi u nh qu n lý process và b nh , cungỉ ồ ứ ố ể ư ả ộ ớ
c p các c ch giao ti p.ấ ơ ế ế
Quá trình giao ti p đ c th c hi n gi a các user module qua c ch message passing.ế ượ ự ệ ữ ơ ế
u đi m Ư ể
o D dàng m r ng micro-kernel OS.ễ ở ộ
o D dàng chuy n OS sang ki n trúc m iễ ể ế ớ
o Đ tin c y cao h n (r t ít code ch y trong kernel mode)ộ ậ ơ ấ ạ
o B o m t h nả ậ ơ
3.9. H đi u hành Windows NT có c u trúc gì?ệ ề ấ
Gi i:ả
Windows NT là h h n h p: V a có c u trúc phân l p, V a có c u trúc vi h t.ệ ỗ ợ ừ ấ ớ ừ ấ ạ
3.10. Khái ni m Máy tính o.ệ ả
Gi i:ả
• Máy o là s phát tri n lô-gic c a ki n trúc phânả ự ể ủ ế
l p.ớ
• B ng cách Đi u ph i CPU và k thu t B nhằ ề ố ỹ ậ ộ ớ
o, có th t o cho ng i dùng o giác r ng ng i đó đang dùng b x lý và b nh c aả ể ạ ườ ả ằ ườ ộ ử ộ ớ ủ
riêng mình.
• Nói cách khác: Máy tính o c a ng i dùng đ cả ủ ườ ượ
gi l p trên n n máy tính v t lý.ả ậ ề ậ
• Ví d :ụ Trên n n CPU lo i PowerPC, Motorola,ề ạ
Alpha, có th gi l p máy tính o Intel ch y HĐH Windows và ng c l i. Khi đó, cácể ả ậ ả ạ ượ ạ
l nh c a Intel đ c chuy n đ i sang l nh v t lý tr c khi th c hi n.ệ ủ ượ ể ổ ệ ậ ướ ự ệ
3.11. H đi u hành máy o th ng m i đ u tiên có tên là gì? C a hãng ph n m m nào?ệ ề ả ươ ạ ầ ủ ầ ề
Gi i:ả
HĐH máy o th ng m i đ u tiên: ả ươ ạ ầ VM/370 c a IBM.ủ
3.12. Ch c năng và ng d ng c a Ph n m m Virtual PC.ứ ứ ụ ủ ầ ề
Gi i:ả
Ph n m m máy o ầ ề ả Virtual PC do hãng Microsoft cung c p có nh ng ch c năng và ngấ ữ ứ ứ
d ng:ụ
o M i PC o có HĐH riêng do đó có th cài đ lo i h đi u hành trên 1 máy,ỗ ả ể ủ ạ ệ ề
bao nhiêu cũng đ c.ượ
o M i PC o ng v i 1 t p tin nh *.vhd.ỗ ả ứ ớ ậ ả
o M i PC o có c a s riêng.ỗ ả ử ổ
o Có th n i m ng gi a các máy o do đó d dàng nghiên c u và th nghi mể ố ạ ữ ả ễ ứ ử ệ
m ng mà ch có 1 máy (không card, không dây m ng).ạ ỉ ạ
3.13. Các m c đích và nguyên t c thi t k h đi u hành.ụ ắ ế ế ệ ề
Gi i:ả
Các m c đích thi t k (Design Goals):ụ ế ế
o Lo i ph n c ng c thạ ầ ứ ụ ể
o Lo i h đi u hành: Lô, Đ n hay Đa ch ng, Chia th i gian, Phân tán, Th i gian th c, ạ ệ ề ơ ươ ờ ờ ự
o Yêu c u c a ng i dùng: Ti n d ng, D h c, Tin c y, An toàn, Nhanh, ầ ủ ườ ệ ụ ễ ọ ậ
o Yêu c u c a ng i l p trình HĐH: D thi t k , D thi công, D b o trì, D nâng c p, ầ ủ ườ ậ ễ ế ế ễ ễ ả ễ ấ
Nguyên t c thi t k (Design Principle):ắ ế ế
o Tách b ch Policy (Làm gì) v i Mechanism (Làm nh th nào)ạ ớ ư ế
Thi công (Implementation):
o Ch n ng trình: Assembler hay Cọ ữ
o Nên ch y u dùng ngôn ng cao c p (ví d : C), sau đó nh ng đo n quan tr ng Chuy nủ ế ữ ấ ụ ữ ạ ọ ể
d n sang Assembler.ầ
3.14. L a ch n ngôn ng l p trình h đi u hành th nào là h p lý h n c ?ự ọ ữ ậ ệ ề ế ợ ơ ả
Gi i:ả
o Ch n ng trình: Assembler hay Cọ ữ
o Nên ch y u dùng ngôn ng cao c p (ví d : C), sau đó nh ng đo n quan tr ng Chuy nủ ế ữ ấ ụ ữ ạ ọ ể
d n sang Assembler.ầ
3.15. Các thông tin c n cho S n sinh h th ng là nh ng thông tin gì?ầ ả ệ ố ữ
Gi i:ả
o Lo i CPU, S CPUạ ố
o Dung l ng b nh trongượ ộ ớ
o Các lo i thi t b , C th m i lo i (S l ng, S hi u, Đ a ch , S hi u ng t, )ạ ế ị ụ ể ỗ ạ ố ượ ố ệ ị ỉ ố ệ ắ
o Các thông s c a HĐH: S b đ m (Buffer), Dung l ng m i b đ m, Thu t gi i đi uố ủ ố ộ ệ ượ ỗ ộ ệ ậ ả ề
ph i CPU, S ti n trình t i đa đ c h tr song song, ố ố ế ố ượ ỗ ợ
3.16. Ba cách s n sinh h đi u hành.ả ệ ề
Gi i:ả
1. Mã ngu n HĐH đ c s a t i m t s ch , sau đó h đ c ồ ượ ử ạ ộ ố ỗ ệ ượ Biên d chị (Compile) và H pợ
nh tấ (Link) l i.ạ
2. Không s a mã ngu n mà ch nh n i dung m t s b ng. Có th h p nh t l i h th ng.ử ồ ỉ ộ ộ ố ả ể ợ ấ ạ ệ ố
3. S n sinh đ c th c hi n khi ả ượ ự ệ Kh i đ ng l n đ uở ộ ầ ầ và (ho c) khi ặ Setup do HĐH hoàn toàn
đ c d n d t theo b ng c u hình (ượ ẫ ắ ả ấ Solaris, Windows).
4.1. Ti n trình khác Ch ng trình nh th nào?ế ươ ư ế
Gi i:ả
- Ti n trình (Process) là chu ng trình trong th i gian th c hi n (đ t d i s qu n lý c aế ơ ờ ự ệ ặ ướ ự ả ủ
HĐH).Có s phân bi t ự ệ Ti n trình h th ngế ệ ố (c a HĐH) v i ủ ớ Ti n trình ng i dùngế ườ .
- B n thân ch ng trình không là ti n trình vì là th c th ả ươ ế ự ể Th đ ngụ ộ (Passive), trong khi ti nế
trình là th c th ự ể Ho t đ ngạ ộ (Active) v i nhi u thông tin v tr ng thái trong đó có ớ ề ề ạ B đ mộ ế
ch ng trìnhươ (Program Counter) cho bi t v trí l nh hi n hành.ế ị ệ ệ
4.2. Hãy minh ho b ng hình v quá trình chuy n tr ng thái c a ti n trình.ạ ằ ẽ ể ạ ủ ế
Gi i:ả
4.3. Ch c năng và n i dung c a Kh i ki m soát ti n trình.ứ ộ ủ ố ể ế
Gi i:ả
Ch a các thông tin ng v i m i process.ứ ứ ớ ỗ
Process ID, parent process ID
Credentials (user ID, group ID, effective ID, )
Tr ng thái process : new, ready, running, waiting…ạ
Program counter: đ a ch c a l nh k ti p s th c thiị ỉ ủ ệ ế ế ẽ ự
Các thanh ghi CPU
Thông tin dùng đ đ nh th i CPU: priority, ể ị ờ
Thông tin b nh : base/limit register, page tables…ộ ớ
Thông tin th ng kê: CPU time, time limits…ố
Thông tin tr ng thái I/O: danh sách thi t b I/O đ c c pạ ế ị ượ ấ
phát, danh sách các file đang m , ở
Con tr (pointer) đ n PCBs khác.ỏ ế
4.4. Phân bi t 3 lo i ệ ạ hàng ch đi u ph i.ờ ề ố
Gi i:ả
Hàng ch công vi c (Job Queue): Danh sách các ti n trình tr ng thái New.ờ ệ ế ở ạ
Hàng ch s n sàng (Ready Queue): Danh sách các ti n trình tr ng tháiờ ẵ ế ở ạ
Ready.
Hàng ch thi t b (Device Queue): Danh sách các ti n trình ch thi t b Nh p/ờ ế ị ế ờ ế ị ậ
Xu t c th .ấ ụ ể
4.5. T i sao ph i có ạ ả Đi u ph i ch m, Đi u ph i nhanh và Đi u ph i v a?ề ố ậ ề ố ề ố ừ
Gi i:ả
Long-term scheduler (or job scheduler)
Ch n process nào s đ c đ a vào ready queue (t New chuy n sang Ready)ọ ẽ ượ ư ừ ể
Short-term scheduler (or CPU scheduler)
Ch n process nào s đ c chi m CPU đ x lý (t Ready chuy n sang Running)ọ ẽ ượ ế ể ử ừ ể
Medium-term scheduler
Chuy n process t b nh chính sang sang b nh th c p (nh ng v n n m trong khôngể ừ ộ ớ ộ ớ ứ ấ ư ẫ ằ
gian b nh o); khi nào c n thì n p process t b nh th c p vào b nh chính.ộ ớ ả ầ ạ ừ ộ ớ ứ ấ ộ ớ
4.6. Chuy n ng c nh là gì?ể ữ ả
Gi i:ả
Chuy n ng c nh (Context Switch)ể ữ ả
Là ch c năng c a ứ ủ Dispatcher khi c n chuy n CPU t ti n trình Pầ ể ừ ế
0
này sang
ti n trình Pế
1
khác:
- Ghi môi tr ng và tr ng thái làm vi c c a Pườ ạ ệ ủ
0
vào PCB
0
- N p môi tr ng và tr ng thái làm vi c c a ti n trình Pạ ườ ạ ệ ủ ế
1
t PCBừ
1
Th i gian chuy n ng c nh khá l n: T 1-1000 ờ ể ữ ả ớ ừ µs
Công ngh Đa lu ng (ệ ồ Bài 5) đ c dùng đ gi m th i gian chuy n ng c nh.ượ ể ả ờ ể ữ ả
H máy ệ Sun UltraSPARC có nhi u b thanh ghi đ c dùng đ h tr Contextề ộ ượ ể ỗ ợ
Switch b ng ph n c ng: Chuy n ng c nh đ n thu n ch là ằ ầ ứ ể ữ ả ơ ầ ỉ thay đ i con trổ ỏ t B thanhừ ộ
ghi này sang B thanh ghi khác.ộ
4.7. T o l p ti n trình trong Windows.ạ ậ ế
Gi i:ả
Các hàm API dùng t o m i ti n trình và kh i đ ng ch ng trình t ng ng:ạ ớ ế ở ộ ươ ươ ứ
CreateProcess, CreateProcessWithLogon
WinExec
ShellExecute, ShellExecuteEx
4.8. T i sao ph i t ch c c ng tác gi a các ti n trình?ạ ả ổ ứ ộ ữ ế
Gi i:ả
Chia s thông tin (Information Sharing): M t ti n trình s d ng thông tin do ti n trinhẻ ộ ế ử ụ ế
khác cung c p.ấ
Tăng t c tính toán (Computation Speedup): Các ti n trình cùng làm vi c song song trên 1ố ế ệ
ho c nhi u máy đ gi i quy t bài toán chung.ặ ề ể ả ế
Đ m b o tính đ n th (Modularity): Ch ng trình đ c chia thành các đ n th ch c năngả ả ơ ể ươ ượ ơ ể ứ
v n hành trong các ti n trình ho c lu ng khác nhau.ậ ế ặ ồ
Đ m b o tính ti n d ng (Convenience): Ng i dùng có nhu c u làm nhi u vi c m t lúc:ả ả ệ ụ ườ ầ ề ệ ộ
So n th o, In n, Duy t Web, L y file v , Biên d ch ch ng trình, Ki m tra chính t , ạ ả ấ ệ ấ ề ị ươ ể ả
4.9. Phát bi u bài toán S n xu t-Tiêu th và trình bày Thu t gi i v i B đ m th c thi b ngể ả ấ ụ ậ ả ớ ộ ệ ự ằ
m ng xoay vòng.ả
Gi i:ả
Phát bi u bài toánể :
Gi s có ả ử B nh đ mộ ớ ệ (Buffer) bao g m nhi u khoang (Items) đ c ti n trình ồ ề ượ ế Producer
l n l t đ a các s n ph m Sầ ượ ư ả ẩ
1
, S
2
, vào.
Ti n trình ế Consumer l n l t l y s n ph m ra theo đúng th t .ầ ượ ấ ả ẩ ứ ự
Công vi c c a Producer ph i ệ ủ ả đ ng bồ ộ v i Consumer: Không đ c đ a s n ph m vàoớ ượ ư ả ẩ
khi Buffer đ y, Không đ c l y ra khi ch a có.ầ ượ ấ ư
Trình bày gi i thu tả ậ :
4.10. Hai ph ng th c liên l c gi a các ti n trình.ươ ứ ạ ữ ế
Gi i:ả
Liên l c tr c ti p (Direct Communications)ạ ự ế
Theo đ a ch đ i x ng (Symmetric Scheme)ị ỉ ố ứ
Send (P, Message) - G i thông đi p cho Pử ệ
Receive (Q, Message) - Nh n thông đi p t Qậ ệ ừ
Đ c đi m:ặ ể
⋅ Liên k t đ c thi t l p t đ ng gi a m i c p ti n trình.ế ượ ế ậ ự ộ ữ ỗ ặ ế
⋅ Liên k t ch gi a 2 ti n trình.ế ỉ ữ ế
⋅ Ch có 1 liên k t gi a m i c p.ỉ ế ữ ỗ ặ
⋅ Tính đ i x ng c a liên l c (2 bên đ u bi t đích xác tên c a nhau khi G i/Nh n).ố ứ ủ ạ ề ế ủ ử ậ
Theo đ a ch phi đ i x ng (Asymmetric Scheme)ị ỉ ố ứ
Send (P, Message) - G i thông đi p cho Pử ệ
Receive (id, Message) - Nh n thông đi p t ti n trình b t kỳ, Bi n ậ ệ ừ ế ấ ế id ch a s hi u ti n trìnhứ ố ệ ế
g iử
Liên l c gián ti p (Indirect Communications)ạ ế
Qua các H p thộ ư (Mailboxes) ho c ặ C ngổ (Ports).
H p th là m t th c th qua đó thông đi p đ c g i đ n và l y ra.ộ ư ộ ự ể ệ ượ ử ế ấ
M i h p th có đ nh danh riêng.ỗ ộ ư ị
Hai ti n trình ph i chung nhau m t h p th nào đó.ế ả ộ ộ ư
Hai lo i h p th :ạ ộ ư
⋅ H p th ti n trình (Process Mailbox): N m trong vùng đ a ch c a m t ti n trình nàoộ ư ế ằ ị ỉ ủ ộ ế
đó.
⋅ H p th h đi u hành (OS Mailbox): N m trong vùng đ a ch c a HĐHộ ư ệ ề ằ ị ỉ ủ
4.11. Đ ng b hoá liên l c gi a các ti n trình.ồ ộ ạ ữ ế
Gi i:ả
Đ ng b hoá liên l c (Synchronization)ồ ộ ạ
⋅ G i thông đi p có ch (Blocking Send)ử ệ ờ
out
i
n
Buffer xoay vòng
item nextConsumed;
while (1)
{
while(in==out); //qu n khi buffer r ngẩ ỗ
nextConsumed = buffer[out];
out = (out+1)%BUFFER_SIZE;
}
item nextProduced;
while (1)
{
while(((in+1)%BUFFER_SIZE)==out);
//qu n t i đây khi buffer đ y.ẩ ạ ầ
buffer[in] = nextProduced;
in = (in+1)%BUFFER_SIZE;
}
PRODUCER CONSUMER
⋅ G i thông đi p không ch (Nonblocking Send)ử ệ ờ
⋅ Nh n thông đi p có ch (Blocking Receive)ậ ệ ờ
⋅ Nh n thông đi p không ch (Nonblocking Receive) ậ ệ ờ
4.12. Truy n thông đi p trong Windows .ề ệ
Gi i:ả
Các hàm API dùng đ G i/Nh n thông đi pể ử ậ ệ
SendMessage: G i có chử ờ
PostMessage: G i không chử ờ
SendMessageTimeout: G i có ch nh ng v i th i h nử ờ ư ớ ờ ạ
WaitMessage: Ch thông đi p đ nờ ệ ế
GetMessage: Nh n có chậ ờ
PeekMessage: Nh n không chậ ờ
4.13. Phân lo i h c liên l c trong h th ng Client-Server.ạ ố ạ ệ ố
Gi i:ả
Có k t n i - Connection-Oriented (TCP - Transmission Control Protocol): Thi tế ố ế
l p s n m i liên k t gi a 2 máy tr c khi truy n.ậ ẵ ố ế ữ ướ ề
Không k t n i - Connectionless (UDP - User Datagram Protocol): Không ph iế ố ả
thi t l p s n m i liên k t tr c khi truy n, do đó d dàng liên l c v i nhi u máy m tế ậ ẵ ố ế ướ ề ễ ạ ớ ề ộ
lúc, nh ng không đ m b o b ng TCP.ư ả ả ằ
5.1. Nh ng ữ ích l i c a đa lu ng.ợ ủ ồ
Gi i:ả
Kh năng đáp ng (Responsiveness) t t h n: Trong khi m t lu ng b ách ho c quáả ứ ố ơ ộ ồ ị ặ
b n, lu ng khác v n v n hành bình th ng (Lu ng chính c a trình duy t v n t ng tác v iậ ồ ẫ ậ ườ ồ ủ ệ ẫ ươ ớ
ng i dùng trong khi d li u đ c l y v ).ườ ữ ệ ượ ấ ề
Chia s tài nguyên (Resource Sharing): Theo m c đ nh, các lu ng có th dùng chungẻ ặ ị ồ ể
b nh và tài nguyên c a lu ng cha. Vài lu ng cùng v n hành trong 1 vùng đ a ch , do đó dộ ớ ủ ồ ồ ậ ị ỉ ễ
dùng chung tài nguyên h n so v i tr ng h p đa ti n trình.ơ ớ ườ ợ ế
Ti t ki m (Economy): C p phát b nh và tài nguyên cho ti n trình là công vi c t nế ệ ấ ộ ớ ế ệ ố
kém. Do lu ng chung tài nguyên v i cha và các lu ng khác, vi c t o l p và chuy n ng c nhồ ớ ồ ệ ạ ậ ể ữ ả
cũng nhanh h n (Solaris 2: T o ti n trình ch m h n 30 l n, Chuy n ng c nh ch m h n 5ơ ạ ế ậ ơ ầ ể ữ ả ậ ơ
l n).ầ
T n d ng đ c th m nh c a ki n trúc đa x lý: Đa lu ng làm tăng tính song songậ ụ ượ ế ạ ủ ế ử ồ
trên h máy nhi u CPU. M i lu ng có th ch y b i CPU riêng.ệ ề ỗ ồ ể ạ ở
5.2. Nêu 2 ví d ng d ng công ngh đa lu ng.ụ ứ ụ ệ ồ
Gi i:ả
L p trình x lý công vi c bán vé máy bay, g i và rút ti n ngân hàng đ u c n đ n côngậ ử ệ ử ề ở ề ầ ế
ngh đa lu ng.ệ ồ
5.3. Có nh ng mô hình đa lu ng nào?ữ ồ
Gi i:ả
- Mô hình Many – to – One là nhi u User level threads đ c ánh x vào m tề ượ ạ ộ
Kernel Thread. Vi c qu n lý đ c th c hi n User Level, khi có m t thread b block thìệ ả ượ ự ệ ở ộ ị
toàn b các Process cũng b block theo.ộ ị
- Mô hình One – to – One là m i User level thread đ c g n v i m t Kernelỗ ượ ắ ớ ộ
thread. Khi có m t user thread m i đ c t o ra thì cũng c n t o m t Kernel thread t ngộ ớ ượ ạ ầ ạ ộ ươ
ng, lúc này chi phí quá l n.ứ ớ
- Mô hình Many – to – Many nhi u User level thread đ c phân chia ánh x vàoề ượ ạ
m t s Kernel thread. Tránh đ c các khuy t đi m c a 2 mô hình trên.ộ ố ượ ế ế ủ
5.4. Hãy phân tích Nguyên lý T p lu ng.ậ ồ
Gi i:ả
T p lu ng (Thread Pools):ậ ồ
- Ti n trình cha t o l p s n m t t p lu ng khi kh i đ ng.ế ạ ậ ẵ ộ ậ ồ ở ộ
- Các lu ng trong t p lu ng luôn s n sàng ch công vi c.ồ ậ ồ ẵ ờ ệ
- Khi ti n trình cha (ví d Web Server) nh n thêm m t yêu c u, m t lu ng đ c đánhế ụ ậ ộ ầ ộ ồ ượ
th c và đ a vào v n hành.ứ ư ậ
- Ph c v xong, lu ng đ c đ a tr v t p lu ng.ụ ụ ồ ượ ư ả ề ậ ồ
- N u s yêu c u l n h n s lu ng trong t p, ti n trình cha ch đ n khi có lu ng đ cế ố ầ ớ ơ ố ồ ậ ế ờ ế ồ ượ
gi i phóng.ả
5.5. T o l p lu ng trong Windows.ạ ậ ồ
5.6. T o l p lu ng trong UNIX/Linux.ạ ậ ồ
5.7. L p trình đa lu ng trong UNIX/Linux.ậ ồ
5.8. L p trình đa lu ng trong ậ ồ Windows NT/2000/XP/2003
6.1. Vì sao h đi u hành ph i có ch c năng đi u ph i CPU?ệ ề ả ứ ề ố
Gi i:ả
Trong các h đa ch ng th c thi nhi u ch ng trình đ ng th i làm tăng hi u su t h th ng.ệ ươ ự ề ươ ồ ờ ệ ấ ệ ố
T i m i th i đi m, ch có m t process đ c th c thi. Do đó, c n ph i gi i quy t v n đạ ỗ ờ ể ỉ ộ ượ ự ầ ả ả ế ấ ề
phân chia, l a ch n process th c thi sao cho đ c hi u qu nh t ự ọ ự ượ ệ ả ấ → chi n l c đ nh th iế ượ ị ờ
CPU.
6.2. Năm tiêu chí đi u ph i CPU là nh ng ề ố ữ tiêu chí nào?
Gi i:ả
1. Công su t CPU (CPU Utilisation): Th c t đ t t 40% - 90% th i gian CPU. CPU càngấ ự ế ạ ừ ờ
b n càng t t.ậ ố
2. Thông su t h th ng (Throughput): S TT hoàn t t trong 1 đ n v th i gian, ví d : 1 TT /ấ ệ ố ố ấ ơ ị ờ ụ
gi , 10 TT / giây.ờ
3. T ng th i gian làm vi c (Turnaround Time): K t khi b t đ u đ n khi k t thúc ti n trìnhổ ờ ệ ể ừ ắ ầ ế ế ế
(Bao g m t ng th i gian ch t i Ready Queue, t ng th i gian s d ng CPU, t ng th iồ ổ ờ ờ ạ ổ ờ ử ụ ổ ờ
gian I/O, …).
4. Th i gian ch (Waiting Time): T ng th i gian ch t i Ready Queue.ờ ờ ổ ờ ờ ạ
5. Th i gian đáp ng (Response Time): Th i gian k t khi ng i dùng đ t yêu c u cho đ nờ ứ ờ ể ừ ườ ặ ầ ế
khi có ph n h i đ u tiên.ả ồ ầ
6.3. Trình bày thu t gi i đi u ph i FCFS.ậ ả ề ố
Gi i:ả
Đ n tr c - Ph c v tr c (First-Come, First-Served Scheduling - FCFS)ế ướ ụ ụ ướ
- Đ n gi n, d th c hi n.ơ ả ễ ự ệ
- Các ti n trình trong Ready Queue đ c c p CPU t đ u dãy đ n cu i dãy theo quy t cế ượ ấ ừ ầ ế ố ắ
FIFO (First-In, First-Out).
- Th i gian ch trung bình khá l n.ờ ờ ớ
6.4. Trình bày thu t gi i đi u ph i PS.ậ ả ề ố
Gi i:ả
- M i ti n trình đ c c p m t s nguyên (Priority Number) dùng đ n đ nh ỗ ế ượ ấ ộ ố ể ấ ị Đ u tiênộ ư .
- CPU luôn dành cho ti n trình v i đ u tiên cao h n (Priority Number nh h n ế ớ ộ ư ơ ỏ ơ ≡ Đ uộ ư
tiên cao h n ) v i 2 ph ng án:ơ ớ ươ
Có ti m quy n ( Preemptive )ế ề
Không ti m quy n ( Non-Preemptive )ế ề
- SJFS là tr ng h p đ c bi t c a PS v i đ u tiên:ườ ợ ặ ệ ủ ớ ộ ư
P= ( Kho ng CPU k ti p )ả ế ế
6.5. Trình bày thu t gi i đi u ph i SJFS.ậ ả ề ố
Gi i:ả
Ng n h n-Ch y tr c (Shortest-Job-First Scheduling-SJFS)ắ ơ ạ ướ
- Đúng h n ph i đ c g i là Shortest-Next-CPU-Burst, nghĩa là ti n trình có ơ ả ượ ọ ế Kho ng CPUả
k ti pế ế nh h n thì đ c ch y tr c. Trong tr ng h p b ng nhau, dùng thu t gi i FCFS.ỏ ơ ượ ạ ướ ườ ợ ằ ậ ả
- Là gi i thu t khá t i u, nh ng ph i bi t cách ả ậ ố ư ư ả ế c đoánướ kho ng CPU k ti p.ả ế ế
- SJFS không ti m quy n (Non-Preemptive SJFS): Ti n trình hi n th i đ c th c hi n đ nế ề ế ệ ờ ượ ự ệ ế
h t kho ng CPU c a nó.ế ả ủ
- SJFS có ti m quy n (Preemptive SJFS): Ti n trình m i có Next CPU Burst nh h nế ề ế ớ ỏ ơ
kho ng th i gian CPU còn l i c a ti n trình đang v n hành s đ c ch n thay th (Shortestả ờ ạ ủ ế ậ ẽ ượ ọ ế
Remaining First).
6.6. Trình bày thu t gi i đi u ph i RRS.ậ ả ề ố
Gi i:ả
- Nh đi u ph i ki u FCFS nh ng cho phép ti m quy n khi ti n trình đang ch y b h t th iư ề ố ể ư ế ề ế ạ ị ế ờ
l ng.ượ
- M i ti n trình đ c c p 1 ỗ ế ượ ấ th i l ng CPUờ ượ (T ime Quantum ), th ng tườ ừ 10-100 mili giây.
Sau kho ng th i gian này, nó ả ờ b ti m quy nị ế ề và đ c đ a vào ượ ư cu i hàng ch Readyố ờ . Ti nế
trình đ u tiên trong hàng ch Ready đ c ch n k ti p.ầ ờ ượ ọ ế ế
- N u có ế
n
n ti n trình và th i l ng là ế ờ ượ
q
q , m i ti n trình nh n ỗ ế ậ
1/n
1/n th i gian CPU bao g m cácờ ồ
đo n không quá ạ
q
q đ n v th i gian.ơ ị ờ
6.7. Trình bày thu t gi i đi u ph i MQS.ậ ả ề ố
Gi i:ả
- Hàng ch Ready đ c phân c p thành nhi u m c có đ u tiên khác nhau, ví d : ờ ượ ấ ề ứ ộ ư ụ M c cácứ
ti n trình t ng tácế ươ (Interactive) ch y m t tr c ( Foreground ) có đ u tiên cao nh t vàạ ở ặ ướ ộ ư ấ
M c các ti n trình lôứ ế ( Batch ) v n hành trong h u tr ng (Background ) .ậ ậ ườ
- M i hàng ch có thu t gi i đi u ph i riêng, ví d : Foregroundỗ ờ ậ ả ề ố ụ dùng RRS, Background
dùng FCFS.
- Quan h gi a các m c:ệ ữ ứ
u tiên c đ nhƯ ố ị : Xong h t các ti n trình m c trên r i m i chuy n xu ng m c d i.ế ế ứ ồ ớ ể ố ứ ướ
Đang ch y ti n trình m c d i mà xu t hi n ti n trình m i m c cao h n, ti n trình m cạ ế ứ ướ ấ ệ ế ớ ứ ơ ế ứ
d i s b ti m quy n cho ti n trình m i có đ u tiên cao h n ( H Solaris 2 dùng cáchướ ẽ ị ế ề ế ớ ộ ư ơ ệ
này ) .
Phân b theo t l th i l ngổ ỉ ệ ờ ượ : ví d : 80% th i l ng CPU dành cho Foreground, 20 %ụ ờ ượ
cho Background.
6.8. Trình bày thu t gi i đi u ph i MFQS.ậ ả ề ố
Gi i:ả
- Nh MQS nh ng cho phép ư ư Đi u ti t ti n trình sang m c khácề ế ế ứ , ví d : nh ng ti n trìnhụ ữ ế
h ng CPU đ c đ a xu ng m c d i, trong khi ti n trình h ng I/O ho c ch lâu đ cướ ượ ư ố ứ ướ ế ướ ặ ờ ượ
chuy n lên trên.ể
- MFQS đ c tr ng b i các thông s :ặ ư ở ố
S m c (s hàng ch )ố ứ ố ờ
Thu t gi i đi u ph i cho m i m cậ ả ề ố ỗ ứ
Ph ng th c nâng c p ti n trìnhươ ứ ấ ế
Ph ng th c h c p ti n trìnhươ ứ ạ ấ ế
Ph ng th c ch n hàng ch (ch n m c) cho ti n trình m iươ ứ ọ ờ ọ ứ ế ớ
6.9. Gi s m t h th ng có 3 ti n trình v i tính ch t nh sau:ả ử ộ ệ ố ế ớ ấ ư
Ti n trìnhế Th i đi m đ n (giây th )ờ ể ế ứ Kho ng CPU (s giây)ả ố
P
1
0 5
P
2
1 2
P
3
2 2
Dùng thu t gi i FCFS đ đi u ph i CPU:ậ ả ể ề ố
a) Th hi n b ng bi u đ Gantt.ể ệ ằ ể ồ
b) Tính th i gian ch trung bình c a các ti n trình.ờ ờ ủ ế
Gi i:ả
6.12. Gi s m t h th ng có 5 ti n trình cùng đ n vào 1 th i đi m v i tính ch t sau:ả ử ộ ệ ố ế ế ờ ể ớ ấ
Ti n trìnhế Đ u tiênộ ư Kho ng CPU (s giây)ả ố
P
1
3 10
P
2
1 1
P
3
3 2
P
4
4 1
P
5
2 5
a) V 4 bi u đ Gantt t ng ng v i các thu t gi i đi u ph i FCFS, SJFS, PS (khôngẽ ể ồ ươ ứ ớ ậ ả ề ố
ti m quy n) và RRế ề S (v i th i l ng = 1).ớ ờ ượ
b) Tính th i gian ch trung bình c a các ti n trình cho m i thu t gi i.ờ ờ ủ ế ỗ ậ ả
c) Thu t gi iậ ả nào t t nh t v ph ng di nố ấ ề ươ ệ th i gian ch trung bình?ờ ờ
Gi i:ả
7.1. T i sao c n ph i đ ng b hoá công vi c các ti n trình?ạ ầ ả ồ ộ ệ ế
a. Ví d m c vĩ mô.ụ ứ
b. Ví d m c vi mô.ụ ứ
Gi i:ả
M c đích c a đ ng b hoá công vi c các ti n trình là đ m b o Tính nh t quán c a tàiụ ủ ồ ộ ệ ế ả ả ấ ủ
nguyên dùng chung và Tránh đ c hi n t ng Deadlock (Hi n t ng k t ti n trình).ượ ệ ượ ệ ượ ẹ ế