



















Preview text:
lOMoAR cPSD| 45470709
1.1.Mục tiêu, ý nghĩa và cấu trúc môn học “Hệ iều hành”. Ý 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
1.2.Một số quan niệm sai về môn học “Hệ iều hành”.
• 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)”.
• Ẩ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)”.
• Đáp ứng các yêu cầu sử dụng tài nguyên thiết bị như: CPU, Bộ nhớ trong, Ổ ĩa, Ổ băng, Máy in, Card mạng, ...
• Trong trường hợp nhiều chương trình, nhiều người dùng cùng chia sẻ các tài nguyên chung như
vậy, HĐH phải giải quyết tranh chấp có thể xảy ra và ứng ra làm trung gian iều phối sao cho tài
nguyên ược sử dụng úng thứ tự, dùng xong lại ược cấp cho ối tượng khác sử dụng.
• Hình dung tình huống: 3 chương trình cùng in ra một máy in duy nhất. Khó chấp nhận trường hợp
1 trang in xen kẽ nhiều kết quả từ nhiều nguồn khác nhau. HĐH giải quyết bằng cách ưa kết quả in
của mỗi chương trình tạm thời ra ĩa cứng, sau ó lần lượt in từ ĩa vào thời iểm thích hợp.
1.5.Trình bày cấu trúc khái quát của hệ thống máy tính và liên hệ với cấu trúc trong thực tế. lOMoAR cPSD| 45470709
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?
• 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.
• 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, ... lOMoAR cPSD| 45470709
1.8.Trên các máy lớn thời kỳ ầu, Hệ Xử lý lô hoạt ộng thế nào?
• 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.
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:
• Đồ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). lOMoAR cPSD| 45470709
➢ Là loại hệ iều hành a chương (Multi-programmed systems) nhưng không cung cấp khả năng tương tác với users
➢ CPU luân phiên chuyển ổi thực thi giữa các công việc
• Quá trình chuyển ổi xảy ra thường xuyên hơn, mỗi công việc chỉ ược chia một phần nhỏ thời gian CPU
• Cung cấp sự tương tác giữa hệ thống với user. Khi kết thúc thực thi một lệnh, OS sẽ chờ lệnh kế
tiếp từ bàn phím chứ không phải từ card reader
• Một công việc chỉ ược chiếm CPU ể xử lý khi nó nằm trong bộ nhớ chính
• Khi cần thiết, một công việc nào ó có thể ược chuyển từ bộ nhớ chính ra thiết bị lưu trữ, nhường
bộ nhớ chính cho công việc khác.
➢ Yêu cầu ối với OS trong Time-Sharing Systems
• Định thời công việc (job scheduling)
• Quản lý bộ nhớ (Memory Management) o Các công việc ược hoán chuyển giữa bộ nhớ chính và ĩa
o Virtual memory: cho phép một công việc có thể ược thực thi mà không cần phải nạp hoàn toàn vào bộ nhớ chính
• Quản lý các process (Process Management) o Định thời CPU (CPU scheduling) o Đồng bộ các
công việc (synchronization) o Tương tác giữa các công việc (process communication) o Tránh Deadlock
• Quản lý hệ thống file, hệ thống lưu trữ (disk management)
• Phân bổ các thiết bị, tài nguyên
• Cơ chế bảo vệ (protection)
1.11.Nêu 1 ví dụ từ ời thường minh hoạ chế ộ phục vụ chia thời gian.
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. lOMoAR cPSD| 45470709
➢ Hệ a xử lý ối xứng:
• 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
• Các hệ iều hành hỗ trợ: -Solaris, OS/2, Linux
-Windows NT/2000/XP/2003/Vista Windows 2000 Professional: 2 CPU Windows 2000 Server: 4 CPU
Windows 2000 Advanced Server : 8 CPU
Windows 2000 Datacenter Server: 32 CPU
……………………………………………….
➢ Hệ a xử lý phi ối xứng:
• Các CPU chung bộ nhớ và thiết bị
• Mỗi CPU ược ấn ịnh chức năng riêng: o Có CPU chủ (Master) kiểm soát toàn hệ thống
o 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.
Phân loại theo khoảng cách: o LAN (Local-
Area Network): Nội bộ o WAN (Wide-Area
Network): Diện rộng o MAN (Metropolitan-Area
Network): Đô thị Phân loại theo phương thức phục vụ:
o 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 o
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?
• 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. lOMoAR cPSD| 45470709
• 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.
o Ràng buộc tương ối chặt chẽ về thời gian: hard và 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
o 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 và cấu trúc khái quát của máy tính.
Những bộ phận cấu thành máy tính: lOMoAR cPSD| 45470709
• 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.
• 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. Hai loại ngắt chính:
o Tín hiệu ngắt (Interrupt Signal) từ các thiết bị (Ngắt cứng) truyền qua System Bus. o Tín hiệu
ngắt từ chương trình người dùng (Ngắt mềm) nhờ Lời gọi hệ thống (System Call hay Monitor
Call). Lệnh ặc biệt này (ví dụ có tên INT hoặc SysCall) là cơ chế ể tiến trình người dùng yêu cầu
một dịch vụ của HĐH (ví dụ, yêu cầu thực hiện lệnh I/O).
• Với mỗi loại ngắt, có oạn mã riêng của HĐH dùng ể xử lý.
• Các HĐH hiện ại ược dẫn dắt bởi các sự kiện. Nếu không có tiến trình nào vận hành, không có
thiết bị I/O nào làm việc, HĐH im lặng chờ và theo dõi.
• Thông thường, mỗi loại ngắt tương ứng với 1 dòng trong bảng (Véc-tơ ngắt) chứa con trỏ
(Pointer) tới chương trình xử lý loại ngắt ó. Bảng này nằm ở vùng thấp của RAM (ví dụ: 100 bytes ầu tiên).
• Cơ chế xử lý ngắt phải có trách nhiệm ghi lại ịa chỉ lệnh bị ngắt ể sau ó có thể quay lại. Địa chỉ
này cùng với nhiều thông tin khác có thể ược ghi vào Ngăn xếp hệ thống (System Stack) với
nguyên tắc làm việc LIFO ( Last-In, First-Out ).
2.4.Minh hoạ bằng hình vẽ Tuyến thời gian của 1 tiến trình có 2 yêu cầu tới thiết bị ngoài. lOMoAR cPSD| 45470709
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. -
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. lOMoAR cPSD| 45470709
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ì?
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.
• 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.
• 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).
• Đĩa từ (magnetic disks) là loại bộ nhớ phụ hay bộ nhớ thứ cấp.
• 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).
• Cylinder: tập các track tạo thành một hình trụ
• 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ớ. lOMoAR cPSD| 45470709
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 ó. Là
nguyên tắc quan trọng của hệ thống máy tính.
• 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.
• 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⇒ ?⇒ ?⇒ ?⇒ ?
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⇒ ?⇒ ?⇒ ?⇒ ?
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.
• Hệ iều hành hiện ại dùng cơ chế Dual-Mode ể duy trì 2 chế ộ là User Mode và Monitor Mode
(còn gọi là Supervisor Mode, System Mode hoặc Privileged Mode) ể bảo vệ hệ thống và các tiến trình ang vận hành.
• Một Mode Bit ược ưa vào phần cứng của máy ể chỉ báo chế ộ làm việc hiện hành: 0 - Monitor Mode, 1 - User Mode.
• Khi xảy ra ngắt, phần cứng chuyển từ User Mode sang Monitor Mode bằng cách ặt Mode Bit thành 0.
• Hệ iều hành ặt Mode Bit bằng 1 trước khi trả iều khiển về tiến trình người dùng.
• Một số lệnh máy chỉ thực hiện ược trong Monitor Mode (Các lệnh ưu tiên).
• Tiến trình người dùng có thể gián tiếp thực hiện các lệnh ưu tiên qua Lời gọi hệ thống (System Call).
• MS-DOS không có Dual-Mode.
• Bộ xử lý Pentium hỗ trợ Mode bit, do ó các HĐH Windows 2000/XP/2003/Vista và OS/2 tận
dụng ược tính năng này ể bảo vệ máy tính tốt hơn.
2.13.Bảo vệ Nhập/Xuất bằng System Call như thế nào? lOMoAR cPSD| 45470709
• System call – phương thức duy nhất mà process dùng ể yêu cầu các dịch vụ cung cấp bởi OS
Các system call gây ra ngắt mềm (gọi là trap).
• 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.
• 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.
• Để 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.
2. 15.Bảo vệ CPU bằng Timer.
• CPU protection: bảo ảm OS phải duy trì ược quyền iều khiển, tránh trường hợp user bị lặp vô
hạn, không trả quyền iều khiển. Cơ chế thực hiện là timer.
• Timer – kích khởi các ngắt quãng ịnh kỳ o Bộ ếm timer sẽ giảm dần sau mỗi xung clock của máy tính.
o Khi timer bằng 0 thì kích hoạt ngắt timer và OS sẽ nắm quyền iều khiển.
• Timer cũng ược sử dụng ể hiện thực hệ thống time sharing. Thiết lập timer gây ngắt ịnh kỳ N ms
(time slice, quantum)
• Timer cũng ược dùng ể tính thời gian.
• Lệnh nạp giá trị cho bộ ếm timer là privileged instruction. lOMoAR cPSD| 45470709
3. 1.Những bộ phận cấu thành của hệ iều hành.
• 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ì?
• 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.
• 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ố.
• System calls cung cấp giao diện làm việc giữa một chương trình ang thực thi
và hệ iều hành o Thông thường là các thư viện hợp ngữ (assembly). o Các
ngôn ngữ lập trình cấp cao thường có các thư viện lập trình thay cho các thư
viện hợp ngữ của hệ thống, cho phép lập trình viên triệu gọi system calls trực
tiếp (ví dụ: C/C++, Win32 API)
• Ba phương pháp truyền thông số giữa process và hệ iều hành o Truyền thông
số qua các thanh ghi (registers).
o Truyền tham số qua một vùng nhớ chia sẻ, ịa chỉ của vùng nhớ gửi ến OS qua thanh ghi.
o Truyền tham số qua stack.
3.5.Hệ iều hành có các nhóm chương trình hệ thống nào?
• 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: Loaders, Linkage 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). lOMoAR cPSD| 45470709
3.6.Cấu trúc ơn giản của hệ iều hành.
• 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.
• HĐH ược chia thành nhiều lớp (Layers, Levels) chồng lên nhau.
• Lớp thấp nhất (lớp 0) là Phần cứng.
• Lớp cao nhất (lớp N) là Giao diện người sử dụng (User Interface).
• Mỗi lớp chỉ dùng chức năng và dịch vụ do các mức thấp hơn cung cấp.
• Mỗi lớp chỉ cần biết các lớp dưới Làm gì mà không quan tâm chức năng ó ược Làm như thế nào.
• Rà lỗi (Debugging) ược tiến hành từ lớp dưới trở lên.
• Thiết kế và thi công trở nên ơn giản hơn nhiều.
• Các hệ phân lớp có hiệu năng thấp hơn các hệ loại khác.
3.8.Cấu trúc vi hạt của hệ iều hành. lOMoAR cPSD| 45470709
➢ Chuyển một số chức năng của OS từ kernel sang user.
• Thu gọn kernel→ micro-kernel.
• 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
• Dễ dàng mở rộng micro-kernel OS.
• Dễ dàng chuyển OS sang kiến trúc mới
• Độ tin cậy cao hơn (rất ít code chạy trong kernel mode) • Bảo mật hơn
3.9.Hệ iều hành Windows NT có cấu trúc gì?
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.
• Máy ảo là sự phát triển lô-gic của kiến trúc phân lớp.
• Bằng cách Điều phối CPU và kỹ thuật Bộ nhớ ảo, có thể tạo cho người dùng ảo giác rằng người ó
ang dùng bộ xử lý và bộ nhớ của riêng mình.
• Nói cách khác: Máy tính ảo của người dùng ược giả lập trên nền máy tính vật lý.
• Ví dụ: Trên nền CPU loại PowerPC, Motorola, Alpha,... có thể giả lập máy tính ảo Intel chạy
HĐH Windows và ngược lại. Khi ó, các lệnh của Intel ược chuyển ổi sang lệnh vật lý trước khi thực hiện.
3.11.Hệ iều hành máy ảo thương mại ầu tiên có tên là gì? Của hãng phần mềm nào? 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.
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, bao nhiêu cũng ược.
Mỗi PC ảo ứng với 1 tập tin ảnh *.vhd.
• Mỗi PC ảo có cửa sổ riêng.
• 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). lOMoAR cPSD| 45470709
3.13.Các mục ích và nguyên tắc thiết kế hệ iều hành.
• Các mục ích thiết kế (Design Goals): o Loại phần cứng cụ thể o Loại hệ iều
hành: Lô, Đơn hay Đa chương, Chia thời gian, Phân tán, Thời gian thực,... o
Yêu cầu của người dùng: Tiện dụng, Dễ học, Tin cậy, An toàn, Nhanh,...
o Yêu cầu của người lập trình HĐH: Dễ thiết kế, Dễ thi công, Dễ bảo trì, Dễ nâng cấp,...
• Nguyên tắc thiết kế (Design Principle): o Tách bạch Policy (Làm gì) với
Mechanism (Làm như thế nào)
Thi công (Implementation): o Chọn ngữ trình: Assembler hay C
o Nên chủ yếu dùng ngôn ngữ cao cấp (ví dụ: C), sau ó những oạn quan trọng Chuyển dần sang Assembler.
3.14.Lựa chọn ngôn ngữ lập trình hệ iều hành thế nào là hợp lý hơn cả?
• Chọn ngữ trình: Assembler hay C
• 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ì? • Loại CPU, Số CPU
• Dung lượng bộ nhớ trong
• 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,...)
• 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.
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? lOMoAR cPSD| 45470709 -
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.
4.3.Chức năng và nội dung của Khối kiểm soát tiến trình.
Chứa các thông tin ứng với mỗi process.
s (user ID, group ID, effective ID,...) ạng
thái process : new, ready, running, waiting…
ịa chỉ của lệnh kế tiếp sẽ thực thi
ể ịnh thời CPU: priority,... ộ nhớ:
base/limit register, page tables… ống kê: CPU time, time limits…
ạ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ở,...
ỏ (pointer) ến PCBs khác.
4.4.Phân biệt 3 loại hàng chờ iều phối.
ờ công việc (Job Queue): Danh sách các tiến trình ở trạng thái New.
ờ sẵn sàng (Ready Queue): Danh sách các tiến trình ở trạng thái Ready.
ờ 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?
-term scheduler (or job scheduler): Chọn process nào sẽ ược ưa vào ready queue (từ New chuyển sang Ready)
-term scheduler (or CPU scheduler): Chọn process nào sẽ ược chiếm CPU ể xử lý (từ Ready chuyển sang Running) lOMoAR cPSD| 45470709
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ì?
Chuyển ngữ cảnh (Context Switch)
ức năng của Dispatcher khi cần chuyển CPU từ
tiến trình P0 này sang tiến trình P1 khác: -
Ghi môi trường và trạng thái làm việc của P0 vào PCB0 -
Nạp môi trường và trạng thái làm việc của tiến trình P1 từ PCB1 ời gian
chuyển ngữ cảnh khá lớn: Từ 1-1000µ s ệ Đa luồng (Bài 5) ược dùng ể giảm thời gian chuyển ngữ cảnh.
ệ 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.
Các hàm API dùng tạo mới tiến trình và khởi ộng chương trình tương ứng: CreateProcess, CreateProcessWithLogon WinExec ShellExecute, ShellExecuteEx
4.8.Tại sao phải tổ chức cộng tác giữa các tiến trình?
ẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trình khác cung cấp.
ố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. ➢ 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 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: lOMoAR cPSD| 45470709
4.10.Hai phương thức liên lạc giữa các tiến trình.
Liên lạc trực tiếp (Direct Communications)
• Theo ịa chỉ ối xứng (Symmetric Scheme) o Send (P, Message) - Gửi thông iệp cho P o Receive
(Q, Message) - Nhận thông iệp từ Q Đặc iểm:
o Liên kết ược thiết lập tự ộng giữa mỗi cặp tiến trình. o Liên kết chỉ giữa 2 tiến trình. o Chỉ có
1 liên kết giữa mỗi cặp.
o 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) o Send (P, Message) - Gửi thông iệp cho P
o 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ư:
o 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 ó.
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.
Đồ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)
• 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 .
Các hàm API dùng ể Gửi/Nhận thông iệp lOMoAR cPSD| 45470709 ử i có ch ờ ửi có chờ ử i không ch ờ nhưng với thời hạn ờ thông iệp ến ậ n có ch ờ ậ n không ch ờ
4. 13.Phân loại hốc liên lạc trong hệ thống Client-Server.
ế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.
ế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.
ả 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ề).
ẻ 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.
ế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).
ậ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.
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? -
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. 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. lOMoAR cPSD| 45470709
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?
• 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?
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.
Đế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. -
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.
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.