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: 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: - 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 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 dụng và và người lập trình được cung cung cấp cấp một giao giao diện đơn giản, giản, dễ hiểu và 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 ợp 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
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 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 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/X NT/2000/XP/VIST P/VISTA, A, RedHat RedHat Linux, Linux, Linux Linux VN 1.0, VietKey VietKey Linux Linux 3.0, 3.0, ...
2
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 dịch Fortran. 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ớ.
Job i Bộ nhớ trong
Operating System Nguyên lý hoạt động của Hệ điều hành Đa chương. 1.9. Nguyên 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: chung: 1. Có nhiều nhiều tác vụ vụ (tiến trình) trình) cùng một lúc được được nạp đồng đồng thời vào vào bộ nhớ chính. chính. 2. Thời Thời gian gian xử lý của của CPU CPU được phân phân chia chia giữa giữa các tác tác vụ đó. đó. CPU (CPU utilization) 3. Tận dụng được thời gian rảnh tăng hiệu suất sử dụng CPU (CPU 4. Và khi một một một tác vụ không không cần cần đến CPU (do phải thực thực hiện I/O với với thiết bị ngoại ngoại vi), thì tác vụ vụ khác được thi hành. 5. Yêu cầu: Đồ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ệ.
3
Nguyên lý hoạt động của Hệ điều hành Chia thời gian (Time – Sharing System). 1.10. Nguyên 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.11. Nêu 1 ví dụ từ từ đời thường minh hoạ hoạ chế độ phục vụ vụ chia thời 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: Dòng UNIX: Dòng Windows:
PC-DOS, MS-DOS XENIX, Linux
4
– –
–
Windows Windows 3.X: 3.X: Windows Windows 3.1 3.1 Windo Windows ws 9X: 9X: Windo Windows ws 95/98 95/98/ME /ME Windows Windows NT: Windows Windows NT/2000/XP NT/2000/XP/2003 /2003/Vista. /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 Wind indows ows 2000 Adva dvanced nced Serv Server er : 8 CPU Wind Window owss 200 20000 Dat Datac acen ente terr Ser Serve ver: r: 32 CPU CPU ……………………………………………….
o o
o
Hệ đa xử lý phi đối xứng: Các CPU chung bộ nhớ và thiết bị 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 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
5
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: Hệ thống thời gian thực (Real-Time Systems) o 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: gian: hard và soft soft real-time. Hard real-time: o 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. Soft real-time: o 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 thành và cấu trúc khái khái quát của máy tính. Giải: Những bộ phận cấu thành 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.
6
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: Tín hiệu ngắt (Interrupt Signal) từ các thiết bị (Ngắt cứng) truyền qua System Bus. o o Tín hiệu ngắt từ chương trình người dùng (Ngắt (Ngắt mềm) nhờ Lời gọi hệ thống (System Call 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 Nhập/Xuất là những phương thức nào? Nêu 2 ví dụ sử dụng. Giải:
7
- Synchronous I/O: 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 Nhập/Xuất hoàn tất rồi mới chạy chạy tiếp (thực (thực hiện lệnh lệnh kế tiếp) tiếp) Ví dụ: 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: 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ụ: 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 hình vẽ Bảng trạng trạng thái thiết thiết bị với 3 yêu cầu cầu Nhập/Xuất Nhập/Xuất kể trên. 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:
8
o
Bộ nhớ chính (Main Memory) 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. Lệnh cần thực hiện phải được nạp vào thanh ghi (Register) của CPU. 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ì o 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 ( tracks), ), các rãnh này được chia nhỏ hơn thành các cung từ ( sectors). sectors). o Cylinder : tập các track tạo thành một hình trụ o Disk controller controller : bộ điều khiển quá trình giao tiếp giữa CPU và đĩa. o
2.8.
2.9.
Vẽ hình tháp mô tả cấu trúc phân cấp các loại bộ nhớ. Giải:
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: Là nguyên tắc quan trọng của hệ thống máy tính. o 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. 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à o 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. 9
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 cách đặt Mode Mode Bit thành thành 0. 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 – 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). Chỉ có HĐH mới có thể sửa được nội dung 2 thanh ghi này. o
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.
10
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à privilege là privilegedd instruction instruction.. •
3.1. • • • • • • •
3.2.
Những bộ phận cấu thành thành của hệ điều điều hành. 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 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). ngôn ngữ 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 o Các ngôn 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:
11
o o o o o o
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ê. Cung cấp thông tin về trạng thái hệ thống: Ngày, Giờ, Bộ nhớ trống, Số Users. Chỉnh lý tập tin: Soạn thảo văn bản (NotePad, WordPad). Một số trình Biên dịch/Thông dịch: Assembler, C, C++, VB. Nạp và thực hiện chương trình: trình: Loaders, Loaders, Linkage Linkage Editors. Editors. 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,... 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 HĐH có Tổ Tổ chức yếu do lúc lúc đầu được thiết 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
•
Mỗi lớp chỉ dùng chức năng và dịch vụ do các mức thấp
Interface). 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
• • •
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.
tâm chức năng đó được Làm như thế nào.
12
3.8.
3.9.
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 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 Máy tính ảo của người 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. • •
13
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: 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, máy, bao nhiêu o cũng được. 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ỉ o 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): 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,... o Nguyên tắc thiết kế kế (Design (Design Principle): Principle): Nguyên 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ủ chủ yếu dùng dùng ngôn ngôn ngữ cao cấp (ví dụ: dụ: C), sau sau đó những những đoạn đoạn quan quan trọng Chuyển Chuyển dần sang 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
14
o
Nên chủ chủ yếu dùng dùng ngôn ngôn ngữ cao cấp (ví dụ: dụ: C), sau sau đó những những đoạn đoạn quan quan trọng Chuyển Chuyển dần sang 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: 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ố o 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.
4.2.
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 biệt Tiến trình trình hệ thống thống (của HĐH) với với Tiến trình trình người người dùng. 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. 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:
15
4.3.
4.4.
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, sách các file đang mở,... Con trỏ (pointer) đến PCBs khác.
danh
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 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ừ PCB1 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 phần cứng: cứng: Chuyển Chuyển ngữ cảnh đơn thuần thuần chỉ là thay đổi con trỏ từ Bộ thanh thanh ghi ghi này sang sang Bộ 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
16
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 Thuật giải với Bộ đệm thực thi bằng mảng xoay xoay vòng. Giải: Phát biểu biểu bài toán 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 S1, 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 : Buffer xoay vòng i
out
PRODUCER 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 ( in+1)%BUFFER_SIZE;;
n
CONSUMER item nextConsumed; while (1) { while(in==out); //quẩn khi buffer rỗng nextConsumed = buffer[out]; out = (out+1)%BUFFER_SIZE; (out+1)%BUFFER_SIZE; }
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).
17
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) Gửi thông điệp không chờ (Nonblocking Send) ⋅ thông điệp điệp có chờ chờ (Blocking (Blocking Receive) Receive) ⋅ Nhận thông thông điệp điệp không không chờ (Nonblocking (Nonblocking Receive) Receive) ⋅ Nhận thông 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. luồng. 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).
18
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 dụng công nghệ đa luồng. 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. 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.
5.5. 5.6. 5.7.
5.8. 6.1.
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. yêu cầu lớn lớn hơn số số luồng trong tập, tập, tiến trình trình cha chờ chờ đến khi khi có luồng luồng được giải giải phóng. phóng. - Nếu số yêu Tạo lập luồng trong Windows. Tạo lập luồng trong UNIX/Linux. Lập trình đa luồng trong UNIX/Linux. Lập trình đa luồng trong Windows NT/2000/XP/2003 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.
phối CPU CPU là những những tiêu tiêu chí nào? nào? 6.2. Năm tiêu chí điều phối
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.
19
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 (FirstIn, 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ế 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 hơn-Chạy trước (Shortest-Job (Shortest-Job-First -First Schedu Scheduling-SJ ling-SJFS) FS) - Đú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 (Time (T ime Quantum), 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 tiến trình và thời lượng là q , mỗi tiến trình nhận 1/n thời gian CPU CPU bao gồm các đoạn không quá q đơn vị thời gian. 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 dùng FCFS. - Quan hệ giữa các mức: Ưu tiên cố định: đị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 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:
20
- 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 5 P2 1 2 P3 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 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 10 P2 1 1 P3 3 2 P4 4 1 P5 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à RRS (với thời lượng = 1). b) Tính thời gian gian chờ trung trung bình của các tiến tiến trình cho cho mỗi mỗi thuật giải. 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:
21
22
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ụ dụ mức vĩ mô mô. b. Ví dụ mức vi mô. 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).
23
7.2.
Cấu trúc mã của tiến trình tương tranh. Giải: while (1) { Remainder section Entry section Critical section Exit section
24
Remainder 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à phươ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 Semaphore while (1) { remainder section wait (mutex); critical section signal (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à P2 Yê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 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; 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:
25
- 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; BUFFER_SIZE; mutex = 1; Buffer xoay vòng i
out
PRODUCER while (1) { … nextP = new_item(); … wait(empty); wait(mutex); … insert_to_buffer(nextP insert_to_buffer( nextP); ); … signal(mutex); signal(full); }
n
CONSUMER while (1) { wait(full) wait(mutex); … nextC = get_buffer_item(out); … signal(mutex); signal(empty); … consume_item (nextC (nextC); ); … }
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 nào cầm đủ hai chiếc đũa đũa sẽ được ăn. Bài toán này minh hoạ sự khó khăn trong việc 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
26
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 Có thể xảy ra trường hợp ách vô hạn định (starvation).
⇒ deadlock
7.10. Phân tích thuật giải đúng bài toán Dining-Philosophers (dùng đèn hiệu). Giải: hoá trong Windows Windows NT/2000 NT/2000/XP/20 /XP/2003. 03. 7.11. Những phương tiện đồng bộ hoá 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); hoá trong UNIX/Linux. UNIX/Linux. 7.12. Những phương tiện đồng bộ hoá Giải: sem_t s; sem_init(&s, 0, n); sem_wait(&s); sem_post(&s); 8.1.
8.2.
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. Trình bày thứ tự sử dụng tài nguyên của tiến trình. Giải:
27
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 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 P1 wait (A); wait(B) wait (B); wait(A)
8.4.
8.5.
8.6.
Nêu 1 ví dụ từ đời thường minh hoạ hoạ tình huống Deadlock. Deadlock. Giải:
Bốn điều kiện dẫn đến Deadlock là những điều kiện gì? Giải: - Mutual Mutual exclusion 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 khi yêu cầu một tài ngyên khác. - No preemption: preemption: một tài nguyên không thể bị đoạt lại từ chính process 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. nguyên. 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:
28
Loại tài nguyên
Số phiên Được Được các các tiến tiến trìn trìnhh Đã cấp cho các bản yêu cầu 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:
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 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- Khi TT yêu cầu TN, nó không được giữ 1 TN nào khác. 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- 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- 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:
29
- 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 { P { P 1, P 2, … , P n } bao gồm tất cả các tiến trình sao cho với mỗi P mỗi P i, 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 P j mà j < i. - Nếu các TN yêu cầu không có đủ, P i phải chờ cho đến khi tất cả các P các P j trả lại các TN mà chúng chiếm chiếm giữ. - Khi P Khi P i nhận được đủ TN cần thiết, nó sử dụng và trả lại HĐH để P i+1 i+1 có thể vận hành, cứ như thế cho đến P đến P n - 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 cầu (Claim edge) edge) P i · · ·> R ·> R j chỉ báo rằng P rằng P i có thể sẽ yêu cầu R j - Cung Nhu cầu P cầu P i · · ·> R ·> R j được chuyển thành Cung Yêu cầu (Request edge) P edge) P i → R j khi P khi P i thực sự bắt đầu cần đến R đến R j . - Nếu yêu cầu P cầu P i → R j được HĐH đáp ứng, cung P cung P i → R j chuyển thành Cung Ấn định (Assignment edge) P i ← R j nối phiên bản duy nhất của R của R j với P i . - Khi HĐH xét yêu cầu P cầu P i → R j. Hệ chỉ cấp phát R phát R j cho P cho P i nếu Cung Ấn định P định P i ← R j 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 đó. 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 10 P2 2 4 P3 2 9
30
Dùng Thuật giải Nhà băng để xác định trạng thái này có an toàn hay không? Giải: Ta có: Available = 12 – (5 + 2 + 2) = 3 Need = Max – Allocatio Allocationn P[i] Allocation Max Need Available P1 5 10 5 P2 2 4 2 3 P3 2 9 7 Xét tại thời điểm Ti Work >= Need[i] P[i] Allocation[i] 3 2 P2 2 5 5 P1 5 10 7 P3 2 Vậy tồn tại chuổi an toàn < p2, 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: Allocation Max Available Process A B C D A B C D A B C D P0 0 0 1 2 0 0 1 2 1 5 2 0 P1 1 0 0 0 1 7 5 0 P2 1 3 5 4 2 3 5 6 P3 0 6 3 2 0 6 5 2 P4 0 0 1 4 0 6 5 6 Dùng Thuật giải Nhà băng để xác định: a. Nội Nội dung dung của của ma ma trận trận Nee Need. d. b. Trạng thái thái này có an toàn toàn không? không? c. Nếu P1 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] Max[i] – Allocation[i] Allocation[i] Need Process A B C D P0 0 0 0 0 P1 0 7 5 0 P2 1 0 0 2 P3 0 0 2 0 P4 0 6 4 2 b. Tìm chuỗi an toàn: Work >= Need[i] P[i] Allocation[i] A B C D ABCD ABCD 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 4 2 8 8 6 0 0 2 0 P3 0 6 3 2 2 14 11 8 0 6 4 2 P4 0 0 1 4 2 14 12 12 0 7 5 0 P1 1 0 0 0 Vậy tại thời điểm T0 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 T 0 ở 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.
31
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: Được các tiến trình yêu Đã cấp cho các tiến Loại oại tài tài nguy nguyên ên Số phi phiên ên bản cầu trình R 1 1 P1 P2 R 2 2 P3 P1, P2 R 3 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 physical address 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 (logical address) 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 các trình biên biên dịch (compiler) (compiler) tạo ra mã mã lệnh chương chương trình trình mà trong trong đó mọi tham tham chiếu bộ bộ nhớ đều là địa chỉ luận lý - Ngoài ra còn có địa chỉ tương đối (relative ( relative address) address) là một kiểu địa chỉ luận lý trong đó các địa chỉ được biểu diễn như là vị vị trí tương đối đối so với với một điểm xác định định nào đó đó trong chương trình trình (ví dụ: điểm bắt bắt đầu chương trì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:
32
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:
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:
33
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: - 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 trang (paging) (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. 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).
34
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 Mỗi địa chỉ chỉ lô-gi lô-gicc chiếm chiếm bao bao nhiê nhiêuu bit? bit? b. Mỗi địa chỉ chỉ vật lý chiếm chiếm bao bao nhiêu bit? Giải: a. Ta có: page offset offset page numbe number r p
d
n bits m-n bits m-n (định vị từ 0 ÷ 2n-1) (định vị từ 0 ÷ 2 -1) 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. b. Tương tự vậy đối với địa chỉ vật lý ta có: có: n = 10 10 và l = 15 (Vì (Vì số frame frame number number là 32 32 = 25 = 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 0 219 1 2300 2 90 3 1327 4 1952 Hãy tính địa chỉ vật lý cho mỗi địa chỉ lô-gic sau: a. 0430 b. 1010 c. 2500 d. 3400 e. 4112
Limit 600 14 100 580 96
Giải:
35
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 B 3 C 5 4 D 1 5 E Hã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:
36
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:
Tên đường dẫn: UNIX/Linux: /B/B1/B11 Windows: C:\B\B1\B11
37
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 Trong Windows 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 mybin lrwxrwxrwx 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 >testfile Cong Hoa Xa Hoi Chu Nghia Viet Nam Doc lap - Tu do - Hanh phuc ^[ $ ls -l test* -rw-rw-r-- 1 mk mk books 50 May 13 18:30 testfile $ ln testfile test1 $ ls -l test* -rw-rw-r-- 2 mk mk books 50 May 13 20:41 test1 -rw-rw-r-- 2 mk 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 test2 Cong Hoa Xa Hoi Chu Nghia Viet Nam Doc 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ể thể tạo vô hạn hạn các ổ đĩa đĩa luận lý (Logical (Logical Drive). 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ý. lý.
38
- 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 của Boot Record, Record, tên và số số hiệu phiên phiên bản bản HĐH, HĐH, Serial number, number, Volume Volume label, đoạn mã dùng nạp HĐH từ đĩa …. 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 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:
39
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ụ:
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:
40
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. - 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.
41