Đề cương hệ điều hành

46
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. ượ

description

Đề cương hệ điều hành

Transcript of Đề cương hệ điều hành

Page 1: Đề cương hệ điều hành

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.ượ ử ụ

Page 2: Đề cương hệ điều hành

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

Page 3: Đề cương hệ điều hành

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

Page 4: Đề cương hệ điều hành

Đ 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)ơ ế ả ệ

Page 5: Đề cương hệ điều hành

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 CPUWindows 2000 Server: 4 CPUWindows 2000 Advanced Server : 8 CPUWindows 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:ỗ ượ ấ ị ứ

Page 6: Đề cương hệ điều hành

• 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)

Page 7: Đề cương hệ điều hành

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 ).ớ ắ ệ

Page 8: Đề cương hệ điều hành

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.ế ậ ớ ệ ệ ừ

Page 9: Đề cương hệ điều hành

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:ả

Page 10: Đề cương hệ điều hành

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.ế ườ

Page 11: Đề cương hệ điều hành

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ươ ứ ấ ể ầ ị ụ ấ ở

OSo 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.ượ ử ụ ể ệ ự ệ ố

Page 12: Đề cương hệ điều hành

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).ề ố

Page 13: Đề cương hệ điều hành

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

Page 14: Đề cương hệ điều hành

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

Page 15: Đề cương hệ điều hành

• 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,...ầ ủ ườ ệ ụ ễ ọ ậ

Page 16: Đề cương hệ điều hành

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:ả

Page 17: Đề cương hệ điều hành

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

Page 18: Đề cương hệ điều hành

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 PCB0

- 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, CreateProcessWithLogonWinExecShellExecute, 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, S2,... 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ả ậ :

Page 19: Đề cương hệ điều hành

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)ử ệ ờ

outin

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

Page 20: Đề cương hệ điều hành

⋅ 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:ả

Page 21: Đề cương hệ điều hành

- 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.ậ ả ề ố

Page 22: Đề cương hệ điều hành

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ó ế nn ti n trình và th i l ng là ế ờ ượ qq , m i ti n trình nh n ỗ ế ậ 1/n1/n th i gian CPU bao g m cácờ ồ đo n không quá ạ qq đ 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ạ ế ứ ướ ấ ệ ế ớ ứ ơ ế ứ

Page 23: Đề cương hệ điều hành

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)ả ố

P1 0 5P2 1 2P3 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)ả ố

P1 3 10P2 1 1P3 3 2P4 4 1P5 2 5

Page 24: Đề cương hệ điều hành

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:ả

Page 25: Đề cương hệ điều hành

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).ượ ệ ượ ệ ượ ẹ ế

Page 26: Đề cương hệ điều hành

7.2. C u trúc mã c a ti n trình t ng tranh.ấ ủ ế ươGi i:ả

while (1){

Page 27: Đề cương hệ điều hành

Remainder sectionEntry sectionCritical sectionExit sectionRemainder section

}

7.3. Đ nh nghĩa đèn hi u v i 2 tác nguyên Wait và Signal.ị ệ ớGi i:ả

- Đèn hi u là pệ h ng ti n đ ng b hoá đ c ươ ệ ồ ộ ượ E.W. Dijkstra đ xu t năm 1965.ề ấ- Đèn hi u đ c mô t b ng m t bi n ki u nguyên v i 2 tác nguyên là Wait (Ch ) và Signalệ ượ ả ằ ộ ế ể ớ ờ (Báo hi u):ệtypedef int semaphore; // Đ nh nghĩa ki u Đèn hi u ị ể ệwait (semaphore S)

{while ( S <= 0 ); // Ch b n n u S<=0 ờ ậ ếS --; // Gi m S đi 1ả

}

signal (semaphore S) {

S ++; // Tăng S lên 1}- Vi c ki m tra S <= 0 và gi m S (trong Wait) ho c tăng S (trong Signal) ph i đ c th c hi nệ ể ả ặ ả ượ ự ệ tr n v n (không x y ra ng t trong th i gian thi hành), do đó Wait và Signal đ c g i là các tácọ ẹ ả ắ ờ ượ ọ nguyên (Atomic Operations).

7.4. S d ng ử ụ Đèn hi u nh phân Mutex đ đ m b o tính lo i tr l n nhau.ệ ị ể ả ả ạ ừ ẫGi i:ả

typedef int semaphore;semaphore mutex = 1; // Binary Semaphorewhile (1) {

remainder sectionwait (mutex);

critical sectionsignal (mutex);

remainder section}

7.5. S d ng ử ụ Đèn hi u Synch đ đ ng b 2 ti n trình.ệ ể ồ ộ ếGi i:ả

Xét hai process: P1 và P2Yêu c u: l nh S1 trong P1 c n đ c th c thi tr c l nh S2 trong P2ầ ệ ầ ượ ự ướ ệĐ nh nghĩa semaphore “synch” dùng đ ng bị ồ ộKh i đ ng semaphore:ở ộsynch.value= 0Đ đ ng b ho t đ ng theo yêu c u, P1 ph i đ nh nghĩa nh sau: ể ồ ộ ạ ộ ầ ả ị ưS1;

Page 28: Đề cương hệ điều hành

signal(synch);Và P2 đ nh nghĩa nh sau:ị ưwait(synch);S2;

7.6. Th c thi ự Đèn hi u có hàng ch .ệ ờGi i:ả

- V i tác nguyên Wait có vòng l p vô t n ki m tra bi n đ m S có nh h n 0 hay không, đi uớ ặ ậ ể ế ế ỏ ơ ề đó làm cho các ti n trình có th t khóa mình (Block Itseft) và chuy n sang tr ng tháiế ể ự ể ạ waiting, sau đó x p vào hàng ch c a đèn hi u. Trình đi u ph i CPU có th ch n ti n trìnhế ờ ủ ệ ế ố ể ọ ế khác trong hàng ch Ready đ th c hi n.ờ ể ự ệ- Khi m t ti n trình nào đó th c hi n l nh Signal(S), m t ti n trình P nào đó đang ch t i Sộ ế ự ệ ệ ộ ế ờ ạ đ c l a ch n và đánh th c b ng l nh WakeUp(P) đ chuy n P t tr ng thái Waiting sangượ ự ọ ứ ằ ệ ể ể ừ ạ tr ng thái Ready. Lúc này trình đi u ph i có th cho P th c thi ngay hay không còn tuỳ thu cạ ề ố ể ự ộ vào thu t gi i c th .ậ ả ụ ể

7.7. Phát bi u bài toán S n Xu t – Tiêu Th . S d ng đèn hi u đ đ ng b hoá.ể ả ấ ụ ử ụ ệ ể ồ ộGi i:ả

Hai quá trình cùng chia s m t vùng đ m có kích th c gi i h n n. Bi n semaphore ẻ ộ ệ ướ ớ ạ ế mutex cung c p s lo i tr h t ng đ truy xu t vùng đ m và đ c kh i t o v i giá tr ấ ự ạ ừ ỗ ươ ể ấ ệ ượ ở ạ ớ ị 1. Các bi n semaphore ế empty và full đ m s khe tr ng và đ y t ng ng. Bi n semaphore ế ố ố ầ ươ ứ ế empty đ c kh i t o t i giá tr ượ ở ạ ớ ị n; bi n semaphore ế full đ c kh i t o t i giá tr ượ ở ạ ớ ị 0.

– D li u chia s :ữ ệ ẻSEMAPHORE full, empty, mutex;

– Kh i t o:ở ạfull = 0;empty = BUFFER_SIZE;mutex = 1;

outin

Buffer xoay vòng

while (1){

wait(full)wait(mutex); …nextC = get_buffer_item(out);…signal(mutex);signal(empty); …consume_item (nextC); …

}

while (1){ …

nextP = new_item(); …

wait(empty);wait(mutex); …insert_to_buffer(nextP); …signal(mutex);signal(full);

}

PRODUCER CONSUMER

Page 29: Đề cương hệ điều hành

7.8. Phát bi u bài toán ể Dining-Philosophers.Gi i:ả

Có 5 tri t gia ng i ăn trên m t bàn tròn và suy nghĩ ế ồ ộM i ng i c n 2 chi c đũa đ ănỗ ườ ầ ế ểTrên bàn ch có 5 chi c đũa x p xoay vòng và xen k m i ng i.ỉ ế ế ẽ ỗ ườNg i nào c m đ hai chi c đũa s đ c ăn.ườ ầ ủ ế ẽ ượBài toán này minh ho s khó khăn trong vi c phân ph i tài nguyên gi a các process sao choạ ự ệ ố ữ không x y ra deadlock và starvationả

7.9. Phân tích thu t gi i sai bài toán ậ ả Dining-Philosophers (d n đ n ẫ ế Deadlock).Gi i:ả

D li u chia s : ữ ệ ẻsemaphore chopstick[5];

Kh i đ u các bi n đ u là: ở ầ ế ề 1.while (1){

wait(chopstick[i])wait(chopstick[(i+1) % 5 ] ) …eat …signal(chopstick[i]);signal(chopstick[(i+1) % 5] ); …think …

} Gi i pháp trên có th gây ra deadlockả ể

Khi t t c tri t gia đói b ng cùng lúc và đ ng th i c m m t chi c đũa bên tay trái ấ ả ế ụ ồ ờ ầ ộ ế ⇒ deadlock

Có th x y ra tr ng h p ách vô h n đ nh (starvation).ể ả ườ ợ ạ ị

7.10. Phân tích thu t gi i đúng bài toán ậ ả Dining-Philosophers (dùng đèn hi u).ệGi i:ả

7.11. Nh ng ph ng ti n đữ ươ ệ ng b hoá trong Windows NT/2000/XP/2003.ồ ộGi i:ả

HANDLE s;s = CreateSemaphore(0, n, max, t); //t là tên đèn hi u ho c đ giá tr 0.ệ ặ ể ịWaitForSingleObject(s, timeout); //timeout = INFINITE ho c s mili giây ch .ặ ố ờRealeaseSemaphore(s, 1, NULL);

7.12. Nh ng ph ng ti n đữ ươ ệ ng b hoá trong UNIX/Linux.ồ ộ

Page 30: Đề cương hệ điều hành

Gi i:ảsem_t s;sem_init(&s, 0, n);sem_wait(&s);sem_post(&s);

8.1. Phân tích khái ni m tài nguyên h th ng.ệ ệ ốGi i:ả

- Các tài nguyên h th ng đ c chia thành nhi u ệ ố ượ ề Lo iạ , m i lo i có ỗ ạ 1 ho c nhi u Phiên b nặ ề ả (Instances). Các tài nguyên h th ng này c p phát cho các ti n trình theo yêu c u.ệ ố ấ ế ầ- Tài nguyên cùng lo i: Gi s máy có 3 băng t và có 3 ti n trình đang ch y. M i ti nạ ả ử ổ ừ ế ạ ỗ ế trình đang gi 1 băng.ữ ổ- Tài nguyên khác lo i: Gi s có 1 máy in, 1 băng t . Ti n trình P1 đang gi băng, P2ạ ả ử ổ ừ ế ữ ổ gi máy in.ữ

8.2. Trình bày th t s d ng tài nguyên c a ti n trình.ứ ự ử ụ ủ ếGi i:ả

Th t s d ng tài nguyên c a ti n trình:ứ ự ử ụ ủ ế1. Yêu c uầ (Request): N u không đ c đáp ng do b ti n trình khác gi => ti n trìnhế ượ ứ ị ế ữ ế

ph i ch .ả ờ2. S d ngử ụ (Use): Sau khi đ c c p phát, ti n trình thao tác v i tài nguyên (th c hi nượ ấ ế ớ ự ệ

I/O, in ra gi y, ...).ấ3. Tr l iả ạ (Release): Tr tài nguyên cho HĐH qu n lý.ả ả

8.3. Đ nh nghĩa Deadlock.ịGi i:ả

Deadlock: là tình hu ng k t ti n trình (process) v i m t t p các process b blocked, m iố ẹ ế ớ ộ ậ ị ỗ process gi tài nguyên và đang ch tài nguyên mà process khác trong t p đang có.ữ ờ ậVí d 1ụGi s h th ng có 2 file trên đĩa.ả ử ệ ốP1 và P2 m i process đang m m t file và yêu c u m file kia.ỗ ở ộ ầ ởVí d 2ụSemaphore A và B, kh i t o b ng 1ở ạ ằ

P0 P1wait (A); wait(B)wait (B); wait(A)

8.4. Nêu 1 ví d t đ i th ng minh ho tình hu ng Deadlock.ụ ừ ờ ườ ạ ốGi i:ả

Page 31: Đề cương hệ điều hành

8.5. B n đi u ki n d n đ n Deadlock là nh ng đi u ki n gì?ố ề ệ ẫ ế ữ ề ệGi i:ả

- Mutual exclusion: v i m i tài nguyên, ch có m t process s d ng t i m t th i đi m.ớ ỗ ỉ ộ ử ụ ạ ộ ờ ể- Hold and wait: m t process v n s h u tài nguyên đã đ c c p phát trong khi yêu c u m tộ ẫ ở ữ ượ ấ ầ ộ tài ngyên khác.- No preemption: m t tài nguyên không th b đo t l i t chính process đang s h u tàiộ ể ị ạ ạ ừ ở ữ nguyên đó.- Circular wait: t n t i m t chu kỳ khép kín các yêu c u tài nguyên.ồ ạ ộ ầ

8.6. M t h th ng có 3 lo i tài nguyên và 3 ti n trình v i tr ng thái c p phát nh sau:ộ ệ ố ạ ế ớ ạ ấ ưLo i tài nguyênạ S phiênố

b nảĐ c các ti n trìnhượ ế yêu c uầ

Đã c p cho cácấ ti n trình ế

Máy in kim 2 P1 P2, P3

Máy in laser 1 P3

băng tỔ ừ 2 P2 P1, P3

Hãy th hi n tr ng thái này b ng Đ th c p phát tài nguyên.ể ệ ạ ằ ồ ị ấGi i:ả

Page 32: Đề cương hệ điều hành

8.7. Trình bày các ph ng th c x trí Deadlock.ươ ứ ửGi i:ả

- S d ng quy t c ử ụ ắ Ngăn ch nặ (Prevention) ho c ặ Tránh (Avoidance) đ Deadlock không baoể gi x y ra.ờ ả- Cho phép h th ng b Deadlock, sau đó ệ ố ị Xác đ nh ị (Detection) và tìm cách Kh c ph cắ ụ (Recover).- Không xét v n đ Deadlock, coi nh không bao gi x y ra, còn n u x y ra thì ấ ề ư ờ ả ế ả Kh i đ ngở ộ l i h th ngạ ệ ố (Cách này có th có ý nghĩa th c t vì không c n đ a vào HĐH các ph ngể ự ế ầ ư ươ ti n x trí th ng tr c).ệ ử ườ ự

8.8. Trình bày 4 cách ngăn ch n Deadlock.ặGi i:ả

Đ ngăn ch n Deadlock ta ph i làmể ặ ả sao cho ít nh t 1 trong 4 đi u ki n d n đ n Deadlockấ ề ệ ẫ ế không x y ra. C th :ả ụ ể

- V i Mutual Exclusion: Đ m b o TN nào cũng dùng chung đ c cùng m t lúc b i nhi uớ ả ả ượ ộ ở ề ti n trình.ế- V i Hold and Wait: ớ

1-1- Khi TT yêu c u TN, nó không đ c gi 1 TN nào khác.ầ ượ ữ 2-2- TT ph i yêu c u và đ c c p t t c các TN mà nó c n ngay đ u công vi c.ả ầ ượ ấ ấ ả ầ ầ ệ

- V i No Preemption: ớ 1-1- Khi TT gi TN mà xin thêm nh ng không đ c, các TN mà nó gi ph i b ti mữ ư ượ ữ ả ị ế

quy n s d ng và tr l i HĐH.ề ử ụ ả ạ 2-2- Khi TT xin thêm TN, n u TN này đang đ c gi b i TT khác đang tr ng tháiế ượ ữ ở ở ạ

ch , TN c a TT khác này b ti m quy n s d ng đ c p cho TT đang xin.ờ ủ ị ế ề ử ụ ể ấ- V i Circular Waitớ : C p TN theo m t th t nào đ y.ấ ộ ứ ự ấ

8.9. Th nào là tr ng thái an toàn c a h th ng?ế ạ ủ ệ ốGi i:ả

Page 33: Đề cương hệ điều hành

- M t tr ng thái đ c g i là an toàn “safe” n u t n t i ít nh t m t cách mà trong m tộ ạ ượ ọ ế ồ ạ ấ ộ ộ kho ng th i gian h u h n nào đó, h th ng có th c p phát tài nguyên th a mãn cho t t cả ờ ữ ạ ệ ố ể ấ ỏ ấ ả process th c thi hoàn t t .ự ấ- Khi đó h th ng t n t i m t Chu i an toàn {ệ ố ồ ạ ộ ỗ P1, P2, … , Pn } bao g m t t c các ti n trìnhồ ấ ả ế sao cho v i m i ớ ỗ Pi, các tài nguyên mà nó yêu c u có th đ c đáp ng b i s l ng hi n cóầ ể ượ ứ ở ố ượ ệ c ng thêm c a t t c các ộ ủ ấ ả Pj mà j < i.- N u các TN yêu c u không có đ , ế ầ ủ Pi ph i ch cho đ n khi t t c các ả ờ ế ấ ả Pj tr l i các TN màả ạ chúng chi m gi .ế ữ- Khi Pi nh n đ c đ TN c n thi t, nó s d ng và tr l i HĐH đ ậ ượ ủ ầ ế ử ụ ả ạ ể Pi+1 có th v n hành, cể ậ ứ nh th cho đ n ư ế ế Pn - Khi m t process yêu c u m t tài nguyên đang s n có, h th ng s ki m tra: n u vi c c pộ ầ ộ ẵ ệ ố ẽ ể ế ệ ấ phát này không d n đ n tình tr ng unsafe thì s c p phát ngay.ẫ ế ạ ẽ ấ

8.10. Thu t gi i tránh Deadlock cho tr ng h p m i lo i tài nguyên ch có 1 phiên b n.ậ ả ườ ợ ỗ ạ ỉ ảGi i:ả

- Trên RAG, lúc đ u t t c nhu c u v tài nguyên c a ti n trình ph i đ c khai báo tr cầ ấ ả ầ ề ủ ế ả ượ ướ b ng các Cung Nhu c u (Claim edge)ằ ầ Pi · · ·> Rj ch báo r ng ỉ ằ Pi có th s yêu c u Rể ẽ ầ j

- Cung Nhu c u ầ Pi · · ·> Rj đ c chuy n thành Cung Yêu c u (Request edge)ượ ể ầ Pi → Rj khi Pi

th c s b t đ u c n đ n ự ự ắ ầ ầ ế Rj .- N u yêu c u ế ầ Pi → Rj đ c HĐH đáp ng, cung ượ ứ Pi → Rj chuy n thành Cung n đ nhể Ấ ị (Assignment edge) Pi ← Rj n i phiên b n duy nh t c a ố ả ấ ủ Rj v i ớ Pi . - Khi HĐH xét yêu c u ầ Pi → Rj. H ch c p phát ệ ỉ ấ Rj cho Pi n u Cung n đ nh ế Ấ ị Pi ← Rj không t o ra vòng tròn đ ng h ng trong RAG (xét c các Cung Nhu c u).ạ ồ ướ ả ầ- Thu t gi i có đ ph c t p o(n²) v i n là s ti n trình trong h .ậ ả ộ ứ ạ ớ ố ế ệ

8.11. Tránh Deadlock b ng Banker’s Algorithm.ằGi i:ả

Là thu t gi i tránh Deadlock cho tr ng h p m i lo i tài nguyên có n phiên b n.ậ ả ườ ợ ỗ ạ ả- Áp d ng cho h th ng c p phát tài nguyên trong đó m i lo i tài nguyên có th có nhi uụ ệ ố ấ ỗ ạ ể ề instance.- Mô ph ng nghi p v ngân hàng (banking)ỏ ệ ụ- M t s gi thi tộ ố ả ế

M i process ph i khai báo s l ng t i đa tài nguyên m i lo i mà process đó c n đỗ ả ố ượ ố ỗ ạ ầ ể hoàn t t công vi c.ấ ệKhi process yêu c u m t tài nguyên thì có th ph i đ i m c dù tài nguyên đ c yêuầ ộ ể ả ợ ặ ượ c u đang có s nầ ẵKhi process đã có đ c đ y đ tài nguyên thì ph i hoàn tr trong m t kho n th i gianượ ầ ủ ả ả ộ ả ờ h u h n nào đó.ữ ạ

Page 34: Đề cương hệ điều hành

8.12. M t h th ng có 12 băng t và 3 ti n trình v i b ng c p phát tài nguyên nh sau:ộ ệ ố ổ ừ ế ớ ả ấ ưTi n trìnhế Đã đ c c p (s băng)ượ ấ ố ổ T i đa c n (s băng) ố ầ ố ổ

P1 5 10P2 2 4P3 2 9

Dùng Thu t gi i Nhà băng đ xác đ nh tr nậ ả ể ị ạ g thái này có an toàn hay không?Gi i:ả

Ta có:Available = 12 – (5 + 2 + 2) = 3Need = Max – Allocation

P[i] Allocation Max Need AvailableP1 5 10 5

3P2 2 4 2P3 2 9 7

Xét t i th i đi m Tiạ ờ ểWork >= Need[i] P[i] Allocation[i]

3 2 P2 25 5 P1 510 7 P3 2

V y t n t i chu i an toàn < pậ ồ ạ ổ 2, p1, p3 >. Suy ra tr ng thái h th ng th i đi m Ti là anạ ệ ố ở ờ ể toàn.

8.13. M t h th ng có 5 ti n trình v i tình tr ng tài nguyên nh sau:ộ ệ ố ế ớ ạ ư

ProcessAllocation Max Available

A B C D A B C D A B C DP0 0 0 1 2 0 0 1 2 1 5 2 0P1 1 0 0 0 1 7 5 0P2 1 3 5 4 2 3 5 6P3 0 6 3 2 0 6 5 2P4 0 0 1 4 0 6 5 6

Dùng Thu t gi i Nhà băng đ xác đ nh:ậ ả ể ịa. N i dung c a ma tr n Need.ộ ủ ậb. Tr ng thái này có an toàn không?ạc. N u Pế 1 nêu yêu c u (0, 4, 2, 0), có th đáp ng ngay đ c không?ầ ể ứ ượ

Gi i:ảa. Xét t i th i đi m T0 mà 5 ti n trình đ c c p phát nh đ bài ta có:ạ ờ ể ế ượ ấ ư ề

Need[i] = Max[i] – Allocation[i]

ProcessNeed

A B C DP0 0 0 0 0P1 0 7 5 0P2 1 0 0 2P3 0 0 2 0P4 0 6 4 2

b. Tìm chu i an toàn:ỗWork >= Need[i] P[i] Allocation[i]A B C D A B C D A B C D

Page 35: Đề cương hệ điều hành

1 5 2 0 0 0 0 0 P0 0 0 1 2 1 5 3 2 1 0 0 2 P2 1 3 5 42 8 8 6 0 0 2 0 P3 0 6 3 22 14 11 8 0 6 4 2 P4 0 0 1 42 14 12 12 0 7 5 0 P1 1 0 0 0

V y t i th i đi m Tậ ạ ờ ể 0 t n t i chu i an toàn {Pồ ạ ỗ 0, P2, P3, P4, P1}. Suy ra, h th ng t i th i đi mệ ố ạ ờ ể T0 tr ng thái an toàn.ở ạc. Ta th y, yêu c u thêm (0, 4, 2, 0) c a Pấ ầ ủ 1 tho đi u ki n Requestả ề ệ 1 ≤ Need1, và tho đi uả ề ki n: Requestệ 1 ≤ Available. Gi s ta c p phát theo yêu c u c a Pả ử ấ ầ ủ 1 thì v n t n t i chu i anẫ ồ ạ ỗ toàn. Do v y, ta hoàn toàn có th c p phát thêm (0, 4, 2, 0) cho Pậ ể ấ 1 đ c.ượ

8.14. M t h th ng có 3 ti n trình và 3 lo i tài nguyên v i b ng c p phát tài nguyên nh sau:ộ ệ ố ế ạ ớ ả ấ ưLo i tàiạ nguyên

S phiên b nố ả Đ c các ti n trình yêuượ ế c uầ

Đã c p cho các ti nấ ế trình

R1 1 P1 P2

R2 2 P3 P1, P2

R3 1 P2 P3

Có Deadlock hay không? Vì sao?Gi i:ả

Gi i thích: RAG cho trên bi deadlock là do t n t i các chu trình.ả ồ ạ

9.1. Đ a ch Lô-gic và Đ a ch V t lý khác nhau th nào?ị ỉ ị ỉ ậ ếGi i:ả

- Đ a ch v t lý (ị ỉ ậ physical address) (đ a ch th c, đ a ch tuy t đ i) là m t v trí th c trong bị ỉ ự ị ỉ ệ ố ộ ị ự ộ nh chính.ớ- Đ a ch lu n lý (ị ỉ ậ logical address) là tham chi u đ n m t v trí nh đ c l p v i c u trúc, tế ế ộ ị ớ ộ ậ ớ ấ ổ ch c v t lý c a b nh . Ví d : các trình biên d ch (compiler) t o ra mã l nh ch ng trình màứ ậ ủ ộ ớ ụ ị ạ ệ ươ trong đó m i tham chi u b nh đ u là đ a ch lu n lýọ ế ộ ớ ề ị ỉ ậ- Ngoài ra còn có đ a ch t ng đ i (ị ỉ ươ ố relative address) là m t ki u đ a ch lu n lý trong đó cácộ ể ị ỉ ậ đ a ch đ c bi u di n nh là v trí t ng đ i so v i m t đi m xác đ nh nào đó trong ch ngị ỉ ượ ể ễ ư ị ươ ố ớ ộ ể ị ươ trình (ví d : đi m b t đ u ch ng trình,...) ụ ể ắ ầ ươ

Page 36: Đề cương hệ điều hành

- Khi m t l nh đ c th c thi, các tham chi u đ n đ a ch lu n lý ph i đ c chuy n đ i thànhộ ệ ượ ự ế ế ị ỉ ậ ả ượ ể ổ đ a ch th c. Thao tác chuy n đ i này th ng có s h tr c a ph n c ng đ đ t hi u su tị ỉ ự ể ổ ườ ự ỗ ợ ủ ầ ứ ể ạ ệ ấ cao.

9.2. S đ tái đ nh v đ ng trong b nh .ơ ồ ị ị ộ ộ ớGi i:ả

9.3. Qu n lý b nh th c: D ng đa ch ng v i kích th c đo n c đ nh.ả ộ ớ ự ạ ươ ớ ướ ạ ố ịGi i:ả

Page 37: Đề cương hệ điều hành

9.4. Qu n lý b nh th c: D ng đa ch ng v i kích th c đo n thay đ i.ả ộ ớ ự ạ ươ ớ ướ ạ ổGi i:ả

9.5. Gi i thích s khác bi t gi a Phân m nh Trong v i Phân m nh Ngoài.ả ự ệ ữ ả ớ ảGi i:ả

Page 38: Đề cương hệ điều hành

- Phân m nh ngo i (external fragmentation)ả ạKích th c không gian b nh còn tr ng đ đ th a mãn m t yêu c u c p phát, tuyướ ộ ớ ố ủ ể ỏ ộ ầ ấ

nhiên không gian nh này không liên t c.ớ ụ- Phân m nh n i (internal fragmentation)ả ộ

Kích th c vùng nh đ c c p phát có th h i l n h n vùng nh yêu c u. Ví d : c pướ ớ ượ ấ ể ơ ớ ơ ớ ầ ụ ấ m t kho ng tr ng 18,464 bytes cho m t process yêu c u 18,462 bytesộ ả ố ộ ầ

Hi n t ng phân m nh n i th ng x y ra khi b nh th c (physical memory) đ cệ ượ ả ộ ườ ả ộ ớ ự ượ chia thành các kh i kích th c c đ nh(fixed-sized block) và các process đ c c p phát theoố ướ ố ị ượ ấ đ n v kh i. Ví d : c ch phân trang (paging)ơ ị ố ụ ơ ế

9.6. Khái ni m và ích l i c a b nh o.ệ ợ ủ ộ ớ ảGi i:ả

- B nh o là k thu t cho phép th c hi n các ch ng trình không hoàn toàn n m đ y độ ớ ả ỹ ậ ự ệ ươ ằ ầ ủ trong b nh .ộ ớ- Ng i l p trình ch lo vi t ch ng trình, không ph i quan tâm nó l n đ n đâu.ườ ậ ỉ ế ươ ả ớ ế- Vùng đ a ch lô-gic liên t c, t 0 => Max-1.ị ỉ ụ ừ- Ích l i:ợ

L p trình không b h n ch b i dung l ng b nh v t lý.ậ ị ạ ế ở ượ ộ ớ ậĐ đa ch ng cao => Tăng công su t CPU và thông su t h th ng.ộ ươ ấ ấ ệ ốCó th ch c n ít I/O đ n p và tráo đ i ch ng trình => t ng ti n trình có th làmể ỉ ầ ể ạ ổ ươ ừ ế ể vi c nhanh h n (Không ph i n p h t, nhi u đo n th c t không ho c ít s d ng).ệ ơ ả ạ ế ề ạ ự ế ặ ử ụ

9.7. Vì sao kích c c a trang b nh luôn là lũy th a c a 2?ỡ ủ ộ ớ ừ ủGi i:ả

- C ch phân trang cho phép không gian đ a ch th c (physical address space) c a m t processơ ế ị ỉ ự ủ ộ có th ể không liên t c nhauụ .- B nh th c đ c chia thành các kh i kích th c c đ nh b ng nhau g i là ộ ớ ự ượ ố ướ ố ị ằ ọ frame. - Thông th ng kích th c c a frame là lũy th a c a 2, t kho ng 512 byte đ n 16MBườ ướ ủ ừ ủ ừ ả ế- B nh lu n lý (logical memory) cũng đ c chia thành kh i cùng kích th c g i là trangộ ớ ậ ượ ố ướ ọ nh (ớ page).

9.8. Gi s Vùng đ a ch Lô-gic 8 trang (m i trang có 1024 byte) đ c ánh x vào Vùng đ a chả ử ị ỉ ỗ ượ ạ ị ỉ V t lý 32 khung trang.ậ

a. M i đ a ch lô-gic chi m bao nhiêu bit?ỗ ị ỉ ếb. M i đ a ch v t lý chi m bao nhiêu bit?ỗ ị ỉ ậ ế

Gi i:ảa. Ta có:

Vùng đ a ch logic có 8 trang và m i trang có 1024 bytes, nên n = 10 và m = 13. V y m i đ aị ỉ ỗ ậ ỗ ị ch logic chi m 13 bits.ỉ ế

p d

page number page offset

m-n bits(đ nh v t 0 ị ị ừ ÷ 2m-n -1)

n bits (đ nh v t 0 ị ị ừ ÷ 2n-1)

Page 39: Đề cương hệ điều hành

b. T ng t v y đ i v i đ a ch v t lý ta có: n = 10 và l = 15 (Vì s frame number là 32 = 2ươ ự ậ ố ớ ị ỉ ậ ố 5

= 215-10). Do v y, m i đ a ch v t lý chi m 15 bits.ậ ỗ ị ỉ ậ ế

9.9. Gi s có B ng đo n sau:ả ử ả ạSegment Base Limit

0 219 6001 2300 142 90 1003 1327 5804 1952 96

Hãy tính đ a ch v t lý cho m i đ a ch lô-gic sau:ị ỉ ậ ỗ ị ỉa. 0430b. 1010c. 2500d. 3400e. 4112

Gi i:ả

Page 40: Đề cương hệ điều hành

9.10. Vùng đ a ch lô-gic (vùng nh o) c a m t ti n trình đ c chia thành các trang A, B, C, D,ị ỉ ớ ả ủ ộ ế ượ E đ c ánh x sang Vùng đ a ch v t lý theo b ng sau:ượ ạ ị ỉ ậ ả

STT Trang lô-gic Khung trang số1 A 3

2 B3 C 54 D 1

Page 41: Đề cương hệ điều hành

5 EHãy minh ho b ng hình v các thành ph n sau: Vùng đ a ch lô-gic, B ng trang (s d ng bit “Đúng-ạ ằ ẽ ầ ị ỉ ả ử ụSai”), Vùng đ a ch v t lý, N i dung đĩa c ng l u các trang.ị ỉ ậ ộ ứ ư

Gi i:ả

10.1. T ch c th b c c a th m c và quy t c đ t tên đ ng d n.ổ ứ ứ ậ ủ ư ụ ắ ặ ườ ẫGi i:ả

Page 42: Đề cương hệ điều hành

Tên đ ng d n:ườ ẫUNIX/Linux: /B/B1/B11 Windows: C:\B\B1\B11

10.2. Ph ng th c k t (Link) m t t p tin v i th m c khác đ đ m b o t p tin hi n di nươ ứ ế ộ ậ ớ ư ụ ể ả ả ậ ệ ệ trong nhi u th m c m t lúc.ề ư ụ ộ

a. Trong UNIX.b. Trong Windows.

Gi i:ảT p tin liên k t t t trong UNIX/Linux:ậ ế ắ1. Liên k t t t m m (Soft Link, Symbolic Link)ế ắ ề

- Nh t p tin .LNK trong Windows.ư ậ- L nh t o l p:ệ ạ ậ

$ ln -s /bin mybin$ ls -l mybinlrwxrwxrwx 1 mk books 9 May 23 16:14 mybin->/bin$ ln -s /bin/calculator.exe /programs/calc$ /programs/calc

2. Liên k t t t c ng (Hard Link)ế ắ ứ- Không có khái ni m t ng đ ng trong Win 9X.ệ ươ ươ- L nh t o l p:ệ ạ ậ$ cat >testfileCong Hoa Xa Hoi Chu Nghia Viet NamDoc lap - Tu do - Hanh phuc^[$ ls -l test* -rw-rw-r-- 1 mk books 50 May 13 18:30 testfile$ ln testfile test1$ ls -l test* -rw-rw-r-- 2 mk books 50 May 13 20:41 test1

Page 43: Đề cương hệ điều hành

-rw-rw-r-- 2 mk books 50 May 13 18:30 testfile$ ln testfile test2 ho c ặ ln test1 test2$ ls -l test* -rw-rw-r-- 3 mk books 50 May 13 20:41 test1 -rw-rw-r-- 3 mk books 50 May 13 20:46 test2 -rw-rw-r-- 3 mk books 50 May 13 18:30 testfile$ rm testfile test1$ ls -l test* -rw-rw-r-- 1 mk books 50 May 13 20:46 test2$ cat test2Cong Hoa Xa Hoi Chu Nghia Viet NamDoc lap - Tu do - Hanh phuc

10.3. Phân bi t Basic Disk v i Dynamic Disk.ệ ớGi i:ả- M t Basic Disk là m t c ng v t lý bao g m các phân vùng chính (Primary Partition), cácộ ộ ổ ứ ậ ồ phân vùng m r ng (Extended Partition) ho c các đĩa lu n lý (Logical Drive). Các phânở ộ ặ ổ ậ vùng và các đĩa lu n lý trên các basic disk còn đ c hi u nh là các Basic Volume. ổ ậ ượ ể ưS phân vùng (Partition) ta t o trên m t Basic disk tuỳ thu c vào lo i phân vùng c a đĩaố ạ ộ ộ ạ ủ ổ (Disk’s Partition Type). Đ i v i MBR (Master Boot Record) disks, chúng ta có th t o đ c nhi u nh t 4ố ớ ể ạ ượ ề ấ

ph n vùng chính (Primary Partition), ho c 3 phân vùng chính và m t phân vùng m r ngầ ặ ộ ở ộ (Extended Partion). Trong phân vùng m r ng ta có th t o vô h n các đĩa lu n lýở ộ ể ạ ạ ổ ậ (Logical Drive).

Đ i v i GPT (GUIDs Partition Table) disks, chúng ta có th t o lên đ n 128 phânố ớ ể ạ ế vùng chính (Primary Partition). B i vì GPT disks không gi i h n 4 phân vùng chính nênở ớ ạ chúng ta không c n t o phân vùng m r ng hay các đĩa lu n lý.ầ ạ ở ộ ổ ậ

- M t Dynamic Disk cung c p các tính năng mà Basic Disk không có, nh kh năng t oộ ấ ư ả ạ nh ng volume m r ng trên nhi u đĩa v t lý (Spanned and Striped Volumes) và kh năngữ ở ộ ề ổ ậ ả t o ra nh ng volume Fault Tolerance (Mirrored and Raid-5 Volumes). Các volume trênạ ữ Dynamic Disk ta g i là Dynamic Volumes, và m t Dynamic Disk có th h tr lên t i 2000ọ ộ ể ỗ ợ ớ Volume trên m t đĩa (dù v y Microsoft đã gi i thi u s l ng Dynamic Volumes là 32ộ ổ ậ ớ ệ ố ượ ho c ít h n trên m t đĩa). Có 5 lo i Dynamic Volume là: Simple, Spanned, Stripped,ặ ơ ộ ổ ạ Mirrored và Raid-5. Trong đó Mirrored và Raid-5 ch ch y trên máy tính có h đi u hànhỉ ạ ệ ề Windows 2000 Server, Windows 2000 Advanced Server, Windows 2000 Datacenter Server, or Windows XP….

10.4. Phân bi t Master Boot Record v i Boot Record.ệ ớGi i:ả- Master Boot Record: là 512 Bytes đ u c a đĩa v t lý. ầ ủ ổ ậ Ch a ch ng trình Kh i đ ng,ứ ươ ở ộ

đ c b ng mô t các Partition trên đĩa, tìm Active Partition, ch n HĐH, chuy n đi u khi nọ ả ả ọ ể ề ể cho ch ng trình trong Boot Record c a Partition v a ch n.ươ ủ ừ ọ

- Boot Record: là 512 Bytes đ u c a đĩa lu n lý hay m t Partition. Ch a l nh nh y đ nầ ủ ổ ậ ộ ứ ệ ả ế đ u đo n mã boot c a Boot Record, tên và s hi u phiên b n HĐH, Serial number, Volumeầ ạ ủ ố ệ ả label, đo n mã dùng n p HĐH t đĩa ….ạ ạ ừ

Page 44: Đề cương hệ điều hành

10.5. Gi s m t Partition trên đĩa c ng đ c cài H t p tin FAT. Hãy th hi n c u trúc c aả ử ộ ứ ượ ệ ậ ể ệ ấ ủ Partition đó b ng hình v .ằ ẽ

Gi i:ả

10.6. C u trúc Directory Entry thay đ i th nào khi chuy n t FAT16 sang FAT32?ấ ổ ế ể ừGi i: ả

10.7. Windows cho phép tên t p tin/th m c dài đ n 256 ký t , ngoài ra h tr UNICODE. Khiậ ư ụ ế ự ỗ ợ đó, c u trúc Directory Entry ph i ra sao?ấ ả

Gi i:ả

Ví d : ụ

Page 45: Đề cương hệ điều hành

10.8. Trong m t h t p tin FAT16, t p tin Vanban.doc có n i dung tr i trên các liên cungộ ệ ậ ậ ộ ả (Cluster) 5, 3, 2. Hãy minh ho c u trúc Đ u m c (Directory Entry) c a t p tin này cùngạ ấ ầ ụ ủ ậ n i dung b ng FAT.ộ ả

Gi i:ả

10.9. Phân tích nh ng u đi m c a H t p tin NTFS.ữ ư ể ủ ệ ậGi i:ả- B o m t và An toàn h n so v i FAT: Quy n s d ng c a ND đ c n đ nh đ n t ng t pả ậ ơ ớ ề ử ụ ủ ượ ấ ị ế ừ ậ tin, TM.- Nhanh h n FAT khi dung l ng đĩa l n và khi đĩa b phân m nh nhi u.ơ ượ ớ ị ả ề- Đ tin c y cao, kh năng khôi ph c l n, không ph i ch y Chkdisk.exe th ng xuyên.ộ ậ ả ụ ớ ả ạ ườ- Nén đ n t ng t p tin và th m c (gi m đ c 40-50% dung l ng).ế ừ ậ ư ụ ả ượ ượ- M i user có Recycle Bin riêng.ỗ

Page 46: Đề cương hệ điều hành

- Gá l p đĩa v i m t th m c nào đó (Mounting).ắ ổ ớ ộ ư ụ- EPS (Encrypting File System): Mã hoá đĩa.ổ- Disk Quotas: H n m c s d ng vùng nh đĩa cho m i user.ạ ứ ử ụ ớ ỗ

10.10. Trình bày 5 lo i đĩa NTFS đ c Windows 2000/XP/2003 h tr .ạ ổ ượ ỗ ợGi i:ả- Simple Volume: đ n d a trên 1 vùng nh c a Dynamic Disk (phân bi t v i Basic Disk).Ổ ơ ự ớ ủ ệ ớ M t đĩa c ng có th phân ho ch thành nhi u đ n.ộ ứ ể ạ ề ổ ơ- Spanned Volume: ghép tr i trên nhi u đ n.Ổ ả ề ổ ơ- Striped Volume: song song. N i dung m i t p tin r i trên nhi u đ n. Còn g i là RAID-Ổ ộ ỗ ậ ả ề ổ ơ ọ0.- Mirrored Volume: ánh x g ng. Bao g m 1 đ n đ c ánh x t đ ng sang 1 đ nỔ ạ ươ ồ ổ ơ ượ ạ ự ộ ổ ơ khác. Còn g i là RAID-1.ọ- RAID-5 Volume (Redundant Array of Inexpensive Disks): Tr i trên 3 ho c h n 3 đĩa đ n.ả ặ ơ ổ ơ D li u đ c r i trên các đĩa thành ph n cùng v i thông tin ch n l (parity) đ đ m b oữ ệ ượ ả ổ ầ ớ ẵ ẻ ể ả ả kh năng kháng l i (fault tolerance) mà Striped Volume không làm đ c.ả ỗ ượ