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
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)
Quản lý bộ nhớ (Memory Management)
o Các công việc được hoán chuyển giữa bộ nhớ chính và đĩa
o Virtual memory: cho phép một công việc có thể được thực thi mà không cần phải
nạp hoàn toàn vào bộ nhớ chính
Quản lý các process (Process Management)
o Định thời CPU (CPU scheduling)
o Đồng bộ các công việc (synchronization)
o Tương tác giữa các công việc (process communication)
o Tránh Deadlock
Quản lý hệ thống file, hệ thống lưu trữ (disk management)
Phân bổ các thiết bị, tài nguyên
Cơ chế bảo vệ (protection)
1.11. Nêu 1 ví dụ từ đời thường minh hoạ chế độ phục vụ chia thời gian.
Giải:
Ví dụ từ đời thường: Trong nhà hàng, người bồi bàn (CPU) phục vụ mỗi bàn ăn (Chương trình
người dùng) trong 1 khoảng thời gian ngắn (chẳng hạn trong 10 giây), sau đó chuyển sang bàn
khác.
1.12. Các dòng hệ điều hành trên máy tính để bàn là các dòng nào? Hãy trình bày sự khác biệt giữa
dòng Windows 9X với dòng Windows NT/2000/XP/2003.
° Dòng DOS: PC-DOS, MS-DOS
° Dòng UNIX: XENIX, Linux
° Dòng Windows:
– Windows 3.X: Windows 3.1
– Windows 9X: Windows 95/98/ME
– Windows NT: Windows NT/2000/XP/2003/Vista.
1.13. Điền tên thích hợp vào chỗ có dấu hỏi chấm:
Windows 95 ⇒ Windows 98 ⇒ Windows 98 SE ⇒ ?
1.14. Điền tên thích hợp vào chỗ có dấu hỏi chấm:
? ⇒ Windows 2000 ⇒ Windows XP ⇒ ?
1.15. Điền tên thích hợp vào chỗ có dấu hỏi chấm:
• File-Server: Máy chủ không tính toán, chỉ làm dịch vụ tập tin cho các máy khác
• Peer-to-Peer: Mạng các máy ngang hàng
• Client-Server: Máy khách (Client) gửi yêu cầu, Máy chủ (Server) tính toán và gửi
trả lại kết quả.
1.18. Gom cụm đối xứng khác với Gom cụm phi đối xứng ở điểm nào?
Giải:
Gom cụm đối xứng (Symmetric Clustering): Các máy ngang hàng
về chức năng, Mỗi máy thực hiện phần việc của mình và giám sát lẫn nhau.
Gom cụm phi đối xứng (Asymmetric Clustering): Một máy chạy
trong Hot Standby Mode, nghĩa là chỉ giám sát công việc các máy khác nhưng sẽ đảm đương
công việc của máy gặp sự cố.
1.19. Định nghĩa của IEEE về Hệ thời gian thực.
Giải:
o Hệ thống thời gian thực (Real-Time Systems)
Thường dùng trong các thiết bị chuyên dụng như điều khiển các thử
nghiệm khoa học, điều khiển trong y khoa, dây chuyền công nghiệp.
Ràng buộc tương đối chặt chẽ về thời gian: hard và soft real-time.
o Hard real-time:
Hạn chế (hoặc không có) bộ nhớ phụ, tất cả dữ liệu nằm trong bộ nhớ chính (RAM)
hoặc ROM
Yêu cầu thời gian đáp ứng, xử lý rất nghiêm ngặt, thường sử dụng trong điều khiển
công nghiệp, công nghệ robotics.
o Soft real-time:
Thường xuất hiện trong lĩnh vực multimedia, thực tế ảo (virtual reality) với yêu cầu
mềm dẻo hơn về thời gian.
2.1. Những bộ phận cấu thành và cấu trúc khái quát của máy tính.
Giải:
Những bộ phận cấu thành máy tính:
CPU (Central Processing Unit)
Bộ nhớ (Memory)
Giải:
2.5. Hai phương thức Nhập/Xuất là những phương thức nào? Nêu 2 ví dụ sử dụng.
Giải:
- Synchronous I/O: Sau khi phát ra lệnh Nhập/Xuất, tiến trình chuyển sang trạng thái chờ đến
khi Nhập/Xuất hoàn tất rồi mới chạy tiếp (thực hiện lệnh kế tiếp)
Ví dụ: Khi ta tạo mới một tài liệu nhập dữ liệu từ bàn phím, khi muốn lưu lại ta phải chọn Save,
sau đó đặt tên file, và chọn nơi lưu trữ. Các tiến trình đó ở trạng thái chờ tiến trình trước nhập
xuất hoàn tất đã.
- ASynchronous I/O: Sau khi phát ra lệnh Nhập/Xuất, tiến trình không chờ Nhập/Xuất hoàn
tất mà thực hiện ngay lệnh kế tiếp. Như vậy, tiến trình vận hành song song với công việc
Nhập/Xuất.
Để chứng minh điều đó, hãy xem hình vẽ sau:
Ví dụ: Khi ta nhập dữ liệu mới hoặc thêm vào tài liệu đã có, khi ta muốn lưu thì ta chọn Save
và lúc này tiến trình vận hành song song với việc phát ra lệnh từ Save.
2.6. Giả sử một hệ thống có 3 loại thiết bị là Máy in, Ổ Đĩa cứng và Ổ CD-ROM. Có 1 yêu cầu in
tập tin DanhSach.doc, 1 yêu cầu đọc F1.txt từ đĩa cứng, 1 yêu cầu ghi ra F2.txt trên đĩa cứng.
Hãy thể hiện bằng hình vẽ Bảng trạng thái thiết bị với 3 yêu cầu Nhập/Xuất kể trên.
2.7. Trong 2 loại bộ nhớ là Bộ nhớ chính và Đĩa từ, loại nào là Bộ nhớ Sơ cấp, loại nào là Bộ nhớ
Thứ cấp? Phân loại như vậy để làm gì?
Giải:
Bộ nhớ chính (Main Memory)
o Chương trình máy tính phải được nạp vào RAM (Random-Access Memory)
trước khi thực hiện.
o Lệnh cần thực hiện phải được nạp vào thanh ghi (Register) của CPU.
o Các tác tử (Operand) tương ứng cũng được lấy từ RAM.
o Lý tưởng nhất là chương trình và dữ liệu đều nằm trong RAM nhưng không khả
thi vì RAM quá nhỏ và là loại bộ nhớ không chắc (Volatile) do nội dung bị xoá khi mất
điện.
o RAM được sử dụng làm Bộ nhớ Sơ cấp (Primary Memory).
Bộ nhớ phụ (secondary storage): hệ thống lưu trữ thông tin bền vững (nonvolatile
Một Mode Bit được đưa vào phần cứng của máy để chỉ báo chế
độ làm việc hiện hành: 0 - Monitor Mode, 1 - User Mode.
Khi xảy ra ngắt, phần cứng chuyển từ User Mode sang Monitor
Mode bằng cách đặt Mode Bit thành 0.
Hệ điều hành đặt Mode Bit bằng 1 trước khi trả điều khiển về tiến
trình người dùng.
Một số lệnh máy chỉ thực hiện được trong Monitor Mode (Các
lệnh ưu tiên).
Tiến trình người dùng có thể gián tiếp thực hiện các lệnh ưu tiên
qua Lời gọi hệ thống (System Call).
MS-DOS không có Dual-Mode.
Bộ xử lý Pentium hỗ trợ Mode bit, do đó các HĐH Windows
2000/XP/2003/Vista và OS/2 tận dụng được tính năng này để bảo vệ máy tính tốt hơn.
2.13. Bảo vệ Nhập/Xuất bằng System Call như thế nào?
Giải:
System call – phương thức duy nhất mà process dùng để yêu cầu các dịch vụ cung cấp bởi OS
o Các system call gây ra ngắt mềm (gọi là trap).
o Quyền điều khiển được chuyển đến trình phục vụ ngắt, mode bit được thiết lập là monitor
mode.
o OS kiểm tra tính hợp lệ và đúng đắn của các đối số, thực hiện yêu cầu và trả quyền điều
khiển về lệnh kế tiếp sau system call.
2.14. Trình bày Thuật giải bảo vệ bộ nhớ bằng Thanh ghi Cơ sở và Thanh ghi Giới hạn.
Giải:
o Để tiến trình người dùng không can thiệp được vào vùng nhớ của HĐH và của
các tiến trình khác, thường sử dụng 2 thanh ghi: Thanh ghi Cơ sở (Base Register) và Thanh
ghi Giới hạn (Limit Register).
o Chỉ có HĐH mới có thể sửa được nội dung 2 thanh ghi này.
2.15. Bảo vệ CPU bằng Timer.
Giải:
• CPU protection: bảo đảm OS phải duy trì được quyền điều khiển, tránh trường hợp user bị lặp
• Liên lạc giữa các tiến trình: Bằng thông điệp (Messages), Qua vùng nhớ
chung. Trao đổi thông tin giữa các tiến trình Trên 1 máy/ Giữa các máy khác nhau trong
mạng.
• Phát hiện lỗi: Lỗi trong CPU, Bộ nhớ, Các thiết bị (Lỗi chẵn lẻ - Parity,
Lỗi truy cập mạng, Lỗi hết giấy, ). Mỗi loại lỗi có cách xử trí riêng của HĐH.
3.4. Khái niệm System Call và 3 phương thức truyền tham số.
Giải:
System calls cung cấp giao diện làm việc giữa một chương trình đang thực thi và hệ
điều hành
o Thông thường là các thư viện hợp ngữ (assembly).
o Các ngôn ngữ lập trình cấp cao thường có các thư viện lập trình thay cho các thư viện hợp
ngữ của hệ thống, cho phép lập trình viên triệu gọi system calls trực tiếp (ví dụ: C/C++,
Win32 API)
Ba phương pháp truyền thông số giữa process và hệ điều hành
o Truyền thông số qua các thanh ghi (registers).
o Truyền tham số qua một vùng nhớ chia sẻ, địa chỉ của vùng nhớ gửi đến OS qua thanh ghi.
o Truyền tham số qua stack.
3.5. Hệ điều hành có các nhóm chương trình hệ thống nào?
Giải:
o Quản lý tập tin/thư mục: Tạo lập, Loại bỏ, Sao chép, Đổi tên, In ấn, Liệt kê.
o Cung cấp thông tin về trạng thái hệ thống: Ngày, Giờ, Bộ nhớ trống, Số Users.
o Chỉnh lý tập tin: Soạn thảo văn bản (NotePad, WordPad).
o Một số trình Biên dịch/Thông dịch: Assembler, C, C++, VB.
o Nạp và thực hiện chương trình: Loaders, Linkage Editors.
o Liên lạc: Gửi/Nhận thông điệp giữa các máy, Trình duyệt (Web Browser), Thư
điện tử, Truyền file, Đăng nhập từ xa,
o Shell: (Command-Interpreter, Desktop Window).
o
3.6. Cấu trúc đơn giản của hệ điều hành.
Giải:
o Độ tin cậy cao hơn (rất ít code chạy trong kernel mode)
o Bảo mật hơn
3.9. Hệ điều hành Windows NT có cấu trúc gì?
Giải:
Windows NT là hệ hỗn hợp: Vừa có cấu trúc phân lớp, Vừa có cấu trúc vi hạt.
3.10. Khái niệm Máy tính ảo.
Giải:
• Máy ảo là sự phát triển lô-gic của kiến trúc phân
lớp.
• Bằng cách Điều phối CPU và kỹ thuật Bộ nhớ ảo,
có thể tạo cho người dùng ảo giác rằng người đó đang dùng bộ xử lý và bộ nhớ của riêng
mình.
• Nói cách khác: Máy tính ảo của người dùng được
giả lập trên nền máy tính vật lý.
• Ví dụ: Trên nền CPU loại PowerPC, Motorola,
Alpha, có thể giả lập máy tính ảo Intel chạy HĐH Windows và ngược lại. Khi đó, các lệnh
của Intel được chuyển đổi sang lệnh vật lý trước khi thực hiện.
3.11. Hệ điều hành máy ảo thương mại đầu tiên có tên là gì? Của hãng phần mềm nào?
Giải:
HĐH máy ảo thương mại đầu tiên: VM/370 của IBM.
3.12. Chức năng và ứng dụng của Phần mềm Virtual PC.
Giải:
Phần mềm máy ảo Virtual PC do hãng Microsoft cung cấp có những chức năng và ứng dụng:
o Mỗi PC ảo có HĐH riêng do đó có thể cài đủ loại hệ điều hành trên 1 máy, bao
nhiêu cũng được.
o Mỗi PC ảo ứng với 1 tập tin ảnh *.vhd.
o Mỗi PC ảo có cửa sổ riêng.
o Có thể nối mạng giữa các máy ảo do đó dễ dàng nghiên cứu và thử nghiệm
mạng mà chỉ có 1 máy (không card, không dây mạng).
3.13. Các mục đích và nguyên tắc thiết kế hệ điều hành.
dẫn dắt theo bảng cấu hình (Solaris, Windows).
4.1. Tiến trình khác Chương trình như thế nào?
Giải:
- Tiến trình (Process) là chuơng trình trong thời gian thực hiện (đặt dưới sự quản lý của
HĐH).Có sự phân biệt Tiến trình hệ thống (của HĐH) với Tiến trình người dùng.
- Bản thân chương trình không là tiến trình vì là thực thể Thụ động (Passive), trong khi tiến
trình là thực thể Hoạt động (Active) với nhiều thông tin về trạng thái trong đó có Bộ đếm
chương trình (Program Counter) cho biết vị trí lệnh hiện hành.
4.2. Hãy minh hoạ bằng hình vẽ quá trình chuyển trạng thái của tiến trình.
Giải:
4.3. Chức năng và nội dung của Khối kiểm soát tiến trình.
Giải:
Chứa các thông tin ứng với mỗi process.
Process ID, parent process ID
Credentials (user ID, group ID, effective ID, )
Trạng thái process : new, ready, running, waiting…
Program counter: địa chỉ của lệnh kế tiếp sẽ thực thi
Các thanh ghi CPU
Thông tin dùng để định thời CPU: priority,
Thông tin bộ nhớ: base/limit register, page tables…
Thông tin thống kê: CPU time, time limits…
Thông tin trạng thái I/O: danh sách thiết bị I/O được cấp
phát, danh sách các file đang mở,
Con trỏ (pointer) đến PCBs khác.
4.4. Phân biệt 3 loại hàng chờ điều phối.
Giải:
Hàng chờ công việc (Job Queue): Danh sách các tiến trình ở trạng thái New.
Hàng chờ sẵn sàng (Ready Queue): Danh sách các tiến trình ở trạng thái Ready.
Hàng chờ thiết bị (Device Queue): Danh sách các tiến trình chờ thiết bị
Nhập/Xuất cụ thể.
này sang Bộ thanh ghi khác.
4.7. Tạo lập tiến trình trong Windows.
Giải:
Các hàm API dùng tạo mới tiến trình và khởi động chương trình tương ứng:
CreateProcess, CreateProcessWithLogon
WinExec
ShellExecute, ShellExecuteEx
4.8. Tại sao phải tổ chức cộng tác giữa các tiến trình?
Giải:
Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trinh khác
cung cấp.
Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1
hoặc nhiều máy để giải quyết bài toán chung.
Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng
vận hành trong các tiến trình hoặc luồng khác nhau.
Đảm bảo tính tiện dụng (Convenience): Người dùng có nhu cầu làm nhiều việc một lúc:
Soạn thảo, In ấn, Duyệt Web, Lấy file về, Biên dịch chương trình, Kiểm tra chính tả,
4.9. Phát biểu bài toán Sản xuất-Tiêu thụ và trình bày Thuật giải với Bộ đệm thực thi bằng mảng
xoay vòng.
Giải:
Phát biểu bài toán:
Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần
lượt đưa các sản phẩm S
1
, S
2
, vào.
Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi
Buffer đầy, Không được lấy ra khi chưa có.
⋅ 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)
⋅ 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.
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
First).
6.6. Trình bày thuật giải điều phối RRS.
Giải:
- Như điều phối kiểu FCFS nhưng cho phép tiếm quyền khi tiến trình đang chạy bị hết thời
lượng.
- Mỗi tiến trình được cấp 1 thời lượng CPU (T ime Quantum ), thường từ 10-100 mili giây. Sau
khoảng thời gian này, nó bị tiếm quyền và được đưa vào cuối hàng chờ Ready. Tiến trình đầu
tiên trong hàng chờ Ready được chọn kế tiếp.
- Nếu có
n
n tiến trình và thời lượng là
q
q , mỗi tiến trình nhận
1/n
1/n thời gian CPU bao gồm các
đoạn không quá
q
q đơn vị thời gian.
6.7. Trình bày thuật giải điều phối MQS.
Giải:
- Hàng chờ Ready được phân cấp thành nhiều mức có độ ưu tiên khác nhau, ví dụ: Mức các
tiến trình tương tác (Interactive) chạy ở mặt trước ( Foreground ) có độ ưu tiên cao nhất và
Mức các tiến trình lô ( Batch ) vận hành trong hậu trường (Background ) .
- Mỗi hàng chờ có thuật giải điều phối riêng, ví dụ: Foreground dùng RRS, Background dùng
FCFS.
- Quan hệ giữa các mức:
Ưu tiên cố định: Xong hết các tiến trình mức trên rồi mới chuyển xuống mức dưới.
Đang chạy tiến trình mức dưới mà xuất hiện tiến trình mới mức cao hơn, tiến trình mức dưới
sẽ bị tiếm quyền cho tiến trình mới có độ ưu tiên cao hơn ( Hệ Solaris 2 dùng cách này ) .
Phân bổ theo tỉ lệ thời lượng: ví dụ: 80% thời lượng CPU dành cho Foreground, 20 %
1
3 10
P
2
1 1
P
3
3 2
P
4
4 1
P
5
2 5
a) Vẽ 4 biểu đồ Gantt tương ứng với các thuật giải điều phối FCFS, SJFS, PS (không
tiếm quyền) và RRS (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:
class="bi x4 y72 w19 h22"
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).