# :writing_hand: EXERCISES OPERATING SYSTEMS NOTES --- ## EXERCISE :one: : OVERVIEW FOR OS ### PART A : MULTIPLE CHOICES 1. **Phát biểu nào dưới đây KHÔNG ĐÚNG về hệ điều hành?** A. Hệ điều hành quản lý các phần cứng máy tính. ==B. Hệ điều hành trực tiếp điều khiển hoạt động cho từng thiết bị phần cứng.== C. Hệ điều hành hỗ trợ phần mềm giao tiếp phần cứng trên máy tính. D. Hệ điều hành hỗ trợ người dùng điều hành máy tính. 2. **Điều gì là ĐÚNG khi một máy tính không có hệ điều hành ?** A. Các ứng dụng vẫn chạy bình thường trên máy tính đó. B. CPU vẫn tiếp nhận và thực thi các lệnh từ người dùng. ==C. Các ứng dụng và lệnh người dùng không thể thực thi trên máy tính.== D. Người dùng vẫn cài đặt phần mềm vào máy tính như bình thường. 3. **Trong phân lớp hệ thống máy tính, hệ điều hành thuộc vị trí nào?** A. Hệ điều hành thuộc lớp cuối cùng, kế trên là lớp phần cứng. B. Hệ điều hành thuộc lớp trên cùng, kế dưới là lớp ứng dụng. ==C. Hệ điều hành nằm giữa lớp phần cứng và lớp ứng dụng.== D. Hệ điều hành nằm giữa lớp phần cứng và lớp người dùng. 4. **Dưới góc độ cơ bản, hệ điều hành được định nghĩa là:** A. một phần mềm chạy trên máy tính ==B. một chương trình quản lý phần cứng máy tính.== C. một chương trình bảo vệ phần cứng máy tính D. một phần mềm quản lý các phần mềm khác. 5. **Trong các thành phần của hệ thống máy tính, thành phần nào trực tiếp quản lý các tài nguyên phần cứng:** A. Người dùng B. Các phần mềm ==C. Hệ điều hành== D. Dữ liệu 6. **Chức năng của hệ điều hành là gì?** A. Cấp phát tài nguyên phần cứng cho các ứng dung. B. Điều khiển, định thời thực thi các chương trình. C. Hỗ trợ người dùng giao tiếp với máy tính. ==D. tất cả các tính năng trên.== 7. **Kernel của Hệ điều hành là gì?** ==A. là lớp nhân quản lý, điều phối các chương trình, phần cứng.== B. là các chương trình điều khiển thiết bị phần cứng. C. là các ứng dụng. D. là trình biên dịch. 8. **Shell của hệ điều hành là gì?** A. là lớp nhân quản lý, điều phối các chương trình, phần cứng. B. là các chương trình điều khiển thiết bị phần cứng. ==C. là lớp chương trình hỗ trợ giao tiếp của người dùng với Kernel.== D. là trình biên dịch. 9. **Trong hệ thống máy tính, người dùng phát lệnh cho hệ điều hành thực thi thông qua lớp nào?** ==A. Lớp Shell.== B. Lớp Driver. C. Lớp Kernel. D. Lớp Hardware. 10. **Vai trò của trình biên dịch (Compilers) bên trong một hệ điều hành là gì?** A. Biên dịch các lệnh của Driver để điều khiển phần cứng, ==B. Biên dịch các lệnh của Applications để CPU thực thi== C. Biên dịch các lệnh của Kernel để quản lý ứng dụng. D. Biên dịch các lệnh của Users để điều khiển phần cứng. 11. **Để đáp ứng vai trò của hệ điều hành, kiến trúc cơ bản của hệ điều hành gồm các thành phần:** A. Nhân, vỏ, giao diện người dùng. B. Bộ khởi động, nhân, bộ lập trình vỏ. ==C. Bộ cấp tài nguyên, chương trình kiểm soát, nhân (kernel)== D. Nhân, vỏ, hệ thống vector ngắt, bộ định thời. 12. **Command Prompt trong Hệ điều hành Windows là dạng gì?** A. là lớp Shell đặt trong Kernel. B. là lớp Kernel dưới dạng ứng dụng. C. là lớp Kernel đặt trong Shell. ==D. là lớp Shell dưới dạng một ứng dụng== 13. **Command Prompt trong Hệ điều hành MS-DOS là dạng gì?** ==A. là lớp Shell đặt trong Kernel.== B. là lớp Kernel dưới dạng ứng dụng. C. là lớp Kernel đặt trong Shell. D. là lớp Shell dưới dạng một ứng dụng. 14. **Terminal trong Hệ điều hành Linux là dạng gì?** A. là lớp Shell đặt trong Kernel. B. là lớp Kernel dưới dạng ứng dụng. C. là lớp Kernel đặt trong Shell. ==D. là lớp Shell dưới dạng một ứng dụng.== 15. **Hệ điều hành Windows 10 cung cấp giao diện người dùng (User interface) theo dạng nào?** A. Command line interface (CLI). B. Graphic User Interface (GUI) ==C. Cả 2 dạng GUI và CLI== D. Window User Interface (WUI) 16. **Lịch sử phát triển của Hệ điều hành bùng nổ trong theo thời đại công nghệ điện tử nào?** A. công nghệ điện tử dùng đèn chân không (vacuum). B. công nghệ điện tử dùng bán dẫn (transistors) C. công nghệ điện tử dùng mạch tích hợp (Integrated Circuits – IC) ==D. công nghệ điện tử dùng VLSI (Very large-scale integration)== 17. **Hệ điều hành thực hiện các tác vụ lần lượt theo những chỉ thị đã được xác định trước. Tên gọi của Hệ điều hành đó là:** ==A. Hệ điều hành xử lý theo lô đơn giản== B. Hệ điều hành xử lý đa chương C. Hệ điều hành chia sẻ thời gian D. Hệ điều hành xử lý thời gian thực. 18. **Đâu là ưu điểm chính của Hệ thống xử lý đa chương (multiprogramming system)?** A. Chương trình khi nạp vào bộ nhớ sẽ được xử lý hoàn thành ngay lập tức. ==B. Hệ thống chạy được nhiều chương trình cùng lúc.== C. Không cần thiết lập định thời công việc (job scheduling) và qu3n lý bộ nhớ. D. Tối ưu sử dụng bộ nhớ. 19. **Mục đích chính của Hệ thống xử lý đa chương (multiprogramming system) là gì?** A. Thực hiện đồng thời nhiều chương trình. ==B. Tận dụng thời gian nhàn rỗi của CPU.== C. Chia sẻ thời gian giữa các chương trình. D. Tận dụng RAM, ROM khi đọc ghi. 20. **Điều kiện nào sau đây KHÔNG CẦN cho hoạt động đa chương của hệ điều hành?** A. Định thời CPU (CPU scheduling). B. Quản lý bộ nhớ (memory management). C. Cấp phát tài nguyên (đĩa, máy in…). ==D. Ứng dụng được lập trình đa nhiệm.== 21. **Phát biểu nào sau đây KHÔNG ĐÚNG với hệ thống chia sẻ thời gian (time-sharing)?** A. time-sharing là một hệ thống đa nhiệm (multi-tasking). B. time-sharing yêu cầu thời gian chuyển đổi giữa các tác vụ rất ngắn. C. time-sharing yêu cầu phải định thời CPU. ==D. time-sharing yêu cầu hoàn thành xong nhiệm vụ 1 mới chia sẻ cho nhiệm vụ 2.== 22. **Hệ điều hành nào sau đây đòi hỏi phải thực hiện đầy đủ các tác vụ: Quản lý tiến trình, Định thời CPU, Quản lý bộ nhớ, Quản lý cấp phát tài nguyên, Quản lý file?** A. Hệ điều hành xử lý đơn chương. B. Hệ điều hành xử lý theo lô đơn giản. C. Hệ điều hành xử lý đa chương. ==D. Hệ điều hành xử lý chia sẻ thời gian (Time-sharing).== 23. **Trong hệ thống xử lý đa nhiệm (multitasking), việc chuyển đổi giữa các công việc diễn ra:** A. Sau một khoảng thời gian tùy theo công việc yêu cầu. B. Chuyển đổi khi có công việc khác cần xử lý. C. Luân phiên xoay vòng hoàn thành từng công việc. ==D. Luân phiên xoay vòng, không đợi công việc hoàn thành.== 24. **Trong các mô hình hệ điều hành dưới đây, loại dùng cho ==hệ thống có nhiều bộ xử lí== cùng chia sẻ hệ thống đường truyền, dữ liệu, bộ nhớ, các thiết bị ngoại vi?** A. Hệ thống xử lí đa chương B. Hệ thống xử lí đa nhiệm (multi - tasking / time - sharing) ==C. Hệ thống xử lí song song== D. Hệ thống xử lí thời gian thực 25. **Phát biểu nào sau đây không đúng với Hệ điều hành xử lý song song?** ==A. Hệ điều hành có khả năng xử lý 2 hay nhiều tiến trình cùng lúc.== B. Hệ điều hành dùng cho máy có 2 hoặc nhiều bộ xử lý (CPU) (Đúng). C. Hệ điều hành dùng cho nhiều bộ xử lý cùng chia sẻ một bộ nhớ (Đúng). D. Hệ điều hành dùng cho nhiều bộ xử lý cùng chia sẻ nhiều tiến trình (Đúng). 26. **Hệ thống đa bộ xử lý (multi-processors) có đặc điểm:** ==A. Xử lý các công việc thực sự đồng thời.== B. Mỗi bộ xử lý có bộ nhớ riêng. C. Mỗi bộ xử lý có đường truyền dữ liệu riêng. D. Xếp hàng xử lý các công việc. 27. **Hệ thống đa bộ xử lý (multi-processors) được phân loại thành các hệ thống:** A. Đồng bộ và bất đồng bộ. ==B. Đối xứng và bất đối xứng.== C. Kết hợp và không kết hợp. D. Không phân loại. 28. **Hệ thống xử lý phân tán có đặc điểm:** ==A. Mỗi bộ xử lý có bộ nhớ riêng.== B. Các bộ xử lý độc lập không liên hệ nhau. C. Một công việc chia đều cho các bộ xử lý. D. Dùng chung bộ nhớ kết nối thành mảng. 29. **Hệ thống xử lý phân tán được phân loại:** A. Đồng bộ và bất đồng bộ. ==B. Peer-to-peer và client-server.== C. Kết hợp và không kết hợp. D. Đối xứng và bất đối xứng. 30. **Trong các cấu trúc của hệ điều hành sau đây, cấu trúc nào tương thích dễ dàng với mô hình hệ thống phân tán?** A. Cấu trúc phân lớp. B. Cấu trúc máy ảo. ==C. Cấu trúc client-server.== D. Cấu trúc đơn giản. 31. **Khi nào cần sử dụng đến System call (Lời gọi hệ thống)?** A. Khi một người dùng yêu cầu dịch vụ nào đó từ Kernel của Hệ điều hành. ==B. Khi một chương trình yêu cầu dịch vụ nào đó từ Kernel của Hệ điều hành.== C. Khi Hệ điều hành cần trợ giúp từ chương trình. D. Khi Hệ điều hành cần trợ giúp từ người dùng. 32. **Lời gọi hệ thống loại “Process control” thực hiện những tác vụ nào?** ==A. load, execute, create process, terminate process.== B. request device, release device, read from device, write to device. C. create / delete, open / close, read, write. D. create messages, delete messages, send messages, receive messages. 33. **Lời gọi hệ thống loại “Device management” thực hiện những tác vụ nào?** A. load, execute, create process, terminate process. ==B. request device, release device, read from device, write to device.== C. create / delete, open / close, read, write. D. create messages, delete messages, send messages, receive messages. 34. **Lời gọi hệ thống loại “File management” thực hiện những tác vụ nào?** A. load, execute, create process, terminate process. B. request device, release device, read from device, write to device. ==C. create / delete, open / close, read, write.== D. create messages, delete messages, send messages, receive messages. 35. **Lời gọi hệ thống loại “Communication” thực hiện những tác vụ nào?** A. load, execute, create process, terminate process. B. request device, release device, read from device, write to device. C. create / delete, open / close, read, write. ==D. create messages, delete messages, send messages, receive messages.== 36. **Cho biết tên gọi của kiến trúc Hệ điều hành mà tất cả các modules chức năng của nó được gom hết vào Kernel.** A. Simple OS. ==B. Monolithic OS.== C. Layered OS. D. Microkernel OS. 37. **Cho biết tên gọi của kiến trúc hệ điều hành mà các modules chức năng của nó được phân chia thành từng lớp giao tiếp vối Kernel.** A. Simple OS. B. Monolithic OS. ==C. Layered OS.== D. Microkernel OS. 38. **Cho biết tên gọi của kiến trúc Hệ điều hành mà hầu hết các modules chức năng của nó được tách ra ngoài? Kernel chỉ có 2 chức năng chính: quản lý bộ nhớ và liên lạc giữa các tiến trình** A. Simple OS. B. Monolithic OS. C. Layered OS. ==D. Microkernel OS.== 39. **Kiến trúc Hệ điều hành Microkernel, nhân (kernel) của Hệ điều hành giữ vai trò gì?** ==A. quản lý bộ nhớ và liên lạc giữa các tiến trình.== B. điều phối tiến trình và quản lý bộ nhớ C. điều phối tiến trình và lời gọi hệ thống. D. quản lý bộ nhớ và quản lý nhập xuất (Input / Output) 40. **Kiến trúc Hệ điều hành Monolithic, module chức năng nào hỗ trợ các ứng dụng giao tiếp với nhân (kernel) của Hệ điều hành?** A. Memory manager. B. Process Scheduler. C. Input / Output manager. ==D. System Calls== --- ## EXERCISE :two: : PROCESSES & IPC ### PART A : MULTIPLE CHOICES 1. **Tiến trình (process) là gì:** A. là một đoạn code chương trình B. là nơi chứa các dữ liệu chương trình C. là nơi quản lý toàn bộ các bộ nhớ cấp phát trong quá trình hoạt động ==D. là một chương trình đang chạy trên máy tính== 2. **Người dùng sử dụng ngôn ngữ lập trình để viết (code) một phần mềm. Sau đó biên dịch thành các tập tin lưu trữ thành trong đĩa. Các tập tin đó được gọi là gì?** ==A. Chương trình (program)== B. Tiến trình (process) C. Tiểu trình (sub-process) D. Luồng (thread) 3. **Để một chương trình (program) trở thành một tiến trình (process), cần phải làm gì?** A. Biên dịch lại chương trình. ==B. Nạp chương trình vào bộ nhớ.== C. Gán quyền thực thi cho chương trình. D. Nạp chương trình vào CPU. 4. **Thuật ngữ “CPU-bound process” có nghĩa là gì?** ==A. là tiến trình được xử lý bởi CPU.== B. là tiến trình được xử lý bởi thiết bị I/O. C. là tiến trình được xử lý bởi Hệ điều hành. D. là tiến trình tạo ra bởi CPU. 5. **Thuật ngữ “I/O-bound process” có nghĩa là gì?** A. là tiến trình được xử lý bởi CPU. ==B. là tiến trình được xử lý bởi thiết bị I/O.== C. là tiến trình được xử lý bởi Hệ điều hành. D. là tiến trình tạo ra bởi thiết bị I/O. 6. **Phát biểu nào sau đây là KHÔNG ĐÚNG với khái niệm tiến trình (process)?** ==A. Tiến trình tự quyết định thời điểm dừng chạy để CPU phục vụ tiến trình khác.== B. Tiến trình là một chương trình đang tồn tại trong bộ nhớ. C. Tiến trình là một chương trình đang xử lí. D. Tiến trình sở hữu một không gian bộ nhớ, con trỏ lệnh, tập thanh ghi và stack riêng. 7. **Một tiến trình (process) bao gồm các thành phần:** A. Current activity B. Data section & Heap C. Text section & Stack ==D. Current activity, Data section & Heap, Text section & Stack Point== 8. **Hệ điều hành sẽ KHÔNG cấp phát loại tài nguyên nào cho tiến trình?** A. Mỗi tiến trình sẽ được cấp một không gian bộ nhớ riêng. ==B. Mỗi tiến trình sẽ được cấp một phân vùng đĩa cứng (partition) riêng.== C. Mỗi tiến trình sẽ được cấp một tập các thanh ghi (Register) và ngăn xếp (stack) riêng. D. Mỗi tiến trình sẽ được cấp một con trỏ lệnh (Program Counter). 9. **Tiến trình ở trạng thái RUNNING có nghĩa là :** A. Tiến trình đang hoạt động trong bộ nhớ. B. Tiến trình nhận được CPU C. Tiến trình đang bắt đầu các xử lí ==D. Nhận được CPU và bắt đầu các xử lí của mình== 10. **Tiến trình ở trạng thái READY có nghĩa là :** A. Tiến trình đang tồn tại trong bộ nhớ. B. Tiến trình nhận được CPU C. Tiến trình đang chờ CPU xử lý. ==D. Tiến trình đang tồn tại trong bộ nhớ và đang chờ CPU xử lý.== 11. **Giải thích nào sau đây đúng với trạng thái SUSPEND của tiến trình:** ==A. Tiến trình đang tồn tại trong bộ nhớ phụ.== B. Tiến trình nhận được CPU C. Tiến trình đang chờ CPU xử lý. D. Tiến trình đang tồn tại trong bộ nhớ. 12. **Nguyên nhân dẫn đến trạng thái BLOCKED của một process?** A. process đang chờ nhập xuất. B. process đang chờ một sự kiện nào đó chưa xảy ra. ==C. process đang chờ nhập xuất hoặc là đang chờ một sự kiện chưa xảy ra.== D. không có nguyên nhân nào đúng. 13. **Những trạng thái tiến trình nào liệt kê dưới đây thuộc về loại tiến trình 2 trạng thái?** A. Running & Blocked ==B. Running & Not running.== C. New & Running D. New & Terminated. 14. **Những trạng thái tiến trình nào liệt kê dưới đây thuộc về loại tiến trình 3 trạng thái?** ==A. Ready & Running & Blocked== B. Ready & Running & Suspend C. New & Running & Waiting D. New & Running & Blocked 15. **Những trạng thái tiến trình nào liệt kê dưới đây thuộc về loại tiến trình 4 trạng thái?** ==A. Ready & Running & Blocked & Suspend== B. New & Ready & Running & Suspend C. New & Running & Waiting & Blocked D. Running & Blocked & Suspend & Closed 16. **Những trạng thái tiến trình nào sau đây KHÔNG THUỘC về loại tiến trình 5 trạng thái?** A. Blocked, Blocked-Suspend. B. Ready, Ready-Suspend. ==C. Running-Suspend.== D. Running. 17. **Đối với loại tiến trình 3 trạng thái. Khi tiến trình P yêu cầu tài nguyên R, nhưng tài nguyên R chưa sẵn sàng đáp ứng. Do vậy, tiến trình P sẽ chuyển trạng thái:** A. Running -> Ready B. Ready -> Running. ==C. Running -> Blocked.== D. Blocked -> Ready. 18. **Đối với loại tiến trình 4 trạng thái. Khi tiến trình P đang ở trạng thái Blocked khá lâu, để giải phóng bộ nhớ, Hệ điều hành sẽ chuyển tiến trình P sang trạng thái nào?** A. Blocked -> Ready ==B. Blocked -> suspend.== C. Blocked -> Running. D. Blocked -> Terminated. 19. **Đối với loại tiến trình 5 trạng thái. Khi tiến trình P đang ở trạng thái Ready khá lâu, để giải phóng bộ nhớ, Hệ điều hành sẽ chuyển tiến trình P sang trạng thái nào?** ==A. Ready -> Ready-suspend.== B. Ready -> Blocked-suspend. C. Ready -> Running-suspend. D. Ready -> Terminated. 20. **Khi CPU đang xử lý tiến trình P thì xảy ra ==Interrupt==. Hệ điều hành sẽ chuyển trạng thái của tiến trình P từ:** A. running $\to$ waiting ==B. running $\to$ ready== C. waiting $\to$ ready D. kết thúc $\to$ terminates 21. **Mục đích của việc cho nhiều tiến trình hoạt động đồng thời trên một Hệ điều hành:** A. Tăng mức độ đa chương. B. Tăng mức độ đa nhiệm. C. Tăng tốc độ xử lý. ==D. Tăng tốc độ xử lý, đa chương trình và đa nhiệm.== 22. **Để có thể chạy được nhiều tiến trình cùng lúc, giải pháp cơ bản của Hệ điều hành là gì?** A. Cho mỗi CPU thực thi một tiến trình. ==B. Điều phối CPU luân phiên thực thi từng tiến trình.== C. Gộp nhiều tiến trình thành một cho CPU thực thi. D. Hệ điều hành không cho phép chạy nhiều tiến trình cùng lúc. 23. **Người dùng Windows có thể vừa duyệt web, nghe nhạc, chat, chơi game… đồng thời. Hệ điều hành Windows thực hiện được là do:** A. Máy tính có nhiều CPU. Mỗi CPU chạy 1 chương trình. B. Máy tính có nhiều RAM. C. Máy tính có HDD lớn. ==D. Tốc độ chuyển đổi xử lý nhiều tiến trình của CPU quá nhanh.== 24. **Trong quá trình thực thi, tiến trình A khởi tạo thêm tiến trình B hoạt động song song với A. Hình thức đa tiến trình này có tên gọi là:** A. Tiến trình song song độc lập. B. Tiến trình song song có quan hệ thông tin. ==C. Tiến trình song song phân cấp== D. Tiến trình song song đồng mức. 25. **Tiến trình A cùng hoạt động trong Hệ điều hành cùng với tiến trình B. Cả 2 không có trao đổi thông tin gì cho nhau. Hình thức đa tiến trình này có tên gọi là:** ==A. Tiến trình song song độc lập.== B. Tiến trình song song có quan hệ thông tin. C. Tiến trình song song phân cấp. D. Tiến trình song song đồng mức. 26. **Tiến trình A cùng hoạt động trong Hệ điều hành cùng với tiến trình B. Hai tiến trình này cần trao đổi dữ liệu cho nhau. Hình thức đa tiến trình này có tên gọi là:** A. Tiến trình song song độc lập. ==B. Tiến trình song song có quan hệ thông tin.== C. Tiến trình song song phân cấp. D. Tiến trình song song đồng mức. 27. **Tiến trình A cùng hoạt động trong Hệ điều hành cùng với tiến trình B. Cả 2 có sử dụng chung tài nguyên theo nguyên tắc luân phiên. Hình thức đa tiến trình này có tên gọi là:** A. Tiến trình song song độc lập. B. Tiến trình song song có quan hệ thông tin. C. Tiến trình song song phân cấp. ==D. Tiến trình song song đồng mức.== 28. **Có 3 tiến trình P1, P2, P3 cùng hoạt động song song trong hệ thống máy tính. Biểu đồ hoạt động của chúng mô tả theo hình dưới. Cho biết hệ thống máy tính này thuộc loại nào?** ==A. Hệ thống Uni-Processor (đơn CPU). (timesharing, multiprogram OS)== B. Hệ thống Multi-Processor (đa CPU). (multiprocessor OS) C. Hệ thống máy Client - Server (hệ điều hành phân tán - distributed OS) D. Hệ thống phân tán. (Peer - to - Peer / Client - Server) <center> <img src = https://scontent.fsgn5-8.fna.fbcdn.net/v/t1.15752-9/429719585_1481838759404179_7621671060528017375_n.png?_nc_cat=109&ccb=1-7&_nc_sid=5f2048&_nc_ohc=O8dsNl2HjOAAX9HdYy_&_nc_ht=scontent.fsgn5-8.fna&oh=03_AdSw68P1K7a4-yxtlWPrsK3jB06Haf55PM45rccd80KnRg&oe=6618AB4F> </center> 29. **Có 3 tiến trình P1, P2, P3 cùng hoạt động song song trong hệ thống máy tính. Biểu đồ hoạt động của chúng mô tả theo hình dưới. Cho biết hệ thống máy tính này thuộc loại nào?** A. Hệ thống Uni-Processor (đơn CPU). ==B. Hệ thống Multi-Processor (đa CPU).== C. Hệ thống máy Client - Server D. Hệ thống phân tán. <center> <img src = https://scontent.fsgn5-10.fna.fbcdn.net/v/t1.15752-9/431482143_1212927069687186_8242223567528918639_n.png?_nc_cat=106&ccb=1-7&_nc_sid=5f2048&_nc_ohc=NPTObREHFp0AX8kbHuD&_nc_ht=scontent.fsgn5-10.fna&oh=03_AdQV1D25d-XLUbOHtmXBSIyyCsxL3T0U40Svh23jJfuAdQ&oe=6618A646> </center> 30. **PCB (Process Control Block) là gì ?** A. Là một vùng nhớ B. Là định danh cho tiến trình C. Là khối quản lý thông tin ==D. Là một vùng nhớ lưu trữ các thông tin quản lý tiến trình== 31. **Hệ điều hành sẽ thực hiện hành động nào khi có một process mới sinh ra?** A. Cấp CPU ngay cho process. ==B. Tạo ngay khối PCB để quản lý process.== C. Giao ngay các tài nguyên mà process cần. D. Tạo ngay khối PCB và cấp ngay các tài nguyên mà process cần. 32. **CPU đang xử lý tiến trình P1, sau đó chuyển sang xử lý tiến trình P2. Hệ điều hành sẽ lưu lại tất cả trạng thái của tiến trình P1 vào đâu?** A. Đĩa cứng. B. Bộ nhớ phụ. ==C. Process Control Block (PCB).== D. Bộ nhớ ngoài. 33. **Process Control Block (PCB) được tạo ra vào thời điểm nào? cùng với tiến trình và không thay đổi trong suốt thời gian tiến trình tồn tại.** A. Thời điểm tiến trình vào trạng thái sẵn sàng (Ready). ==B. Thời điểm khởi tạo tiến trình (New).== C. Thời điểm kết thúc tiến trình (Terminated). D. Thời điểm tiến trình vào trạng thái đang chạy (Running). 34. **Trong Process Control Block (PCB), các thông tin ngữ cảnh của tiến trình gồm có:** A. Các giá trị thanh ghi. B. Trạng thái tiến trình. C. Thông tin quản lý bộ nhớ. ==D. Trạng thái tiến trình, giá trị các thanh ghi, thông tin bộ nhớ.== 35. **Khi Hệ điều hành cho CPU quay lại xử lý tiến trình, CPU cần nạp lại các thông tin trạng thái của tiến trình đó để nó tiếp tục xử lý. Những thông tin đó được nạp lại từ đâu?** A. disk. B. memory. ==C. PCB== D. Kernel. 36. **Khi tiến trình kết thúc, hệ thống sẽ:** A. Thu hồi lại PCB của tiến trình. B. Thu hồi lại tài nguyên của tiến trình. ==C. Thu hồi lại PCB và tài nguyên của tiến trình.== D. Loại nó ra khỏi hàng đợi Ready Queue. 37. **Đặc điểm của phương pháp liên lạc giữa các tiến trình qua vùng nhớ chia sẻ (shared memory) là gì?** ==A. Nhanh nhất để trao đổi dữ liệu.== B. Hiệu quả nhất cho các hệ phân tán. C. An toàn nhất để bảo vệ dữ liệu. D. Bảo vệ phần cứng máy tính. 38. **Điều kiện để liên lạc bằng thông điệp kiểu gián tiếp giữa các tiến trình:** A. Mỗi tiến trình phải có một cổng riêng. B. Các tiến trình có chung vùng nhớ. ==C. Các tiến trình có một cổng dùng chung.== D. Các tiến trình lưu trữ chung. 39. **Một tiến trình (process) có nhiều luồng (threads). Thành phần nào dưới đây là DÙNG CHUNG giữa tiến trình (Process) và các luồng (Threads) của nó?** ==A. không gian bộ nhớ.== B. con trỏ lệnh. C. các thanh ghi và ngăn xếp. D. Thanh ghi và con trỏ lệnh. 40. **Phát biểu nào sau đây là ĐÚNG về quan hệ giữa User thread và Kernel thread?** ==A. Phải có quan hệ ánh xạ.== B. Hai luồng hoàn toàn độc lập nhau. C. Không cần có quan hệ ánh xạ. D. Luồng nhân được ưu tiên xử lý trước. 41. **Trong cùng một tiến trình, các luồng (thread) có thể chia sẻ cho nhau thành phần nào?** A. code section B. data section C. các resources khác của OS ==D. code section, data section, các resources khác của OS== 42. **Để được CPU thực thi, các luồng người dùng (user thread) cần phải:** ==A. được ánh xạ vào một luồng nhân (kernel thread) tương ứng.== B. được đưa vào hàng đợi CPU. C. được đưa vào hàng đợi công việc (Job queue). D. được gán một chỉ số thực thi luồng (thread). --- ## EXERCISE :three: : CPU SCHEDULING ### PART A: MULTIPLE CHOICES 1. **Thuật ngữ “thông lượng” của một CPU là gì?** ==A. là số lượng tiến trình mà CPU hoàn thành trên một đơn vị thời gian== B. là số dữ liệu truy xuất từ CPU đến RAM trong một đơn vị thời gian C. là số phép toán CPU thực hiện trong một đơn vị thời gian D. là số tài nguyên mà CPU sử dụng trong một đơn vị thời gian 2. **Đâu KHÔNG PHẢI là vai trò của hệ điều hành trong quản lý tiến trình ?** A. Tạo và hủy các tiến trình của người sử dụng và của hệ thống. ==B. Điều khiển bộ nhớ vật lý cho việc nạp tiến trình.== C. Cung cấp các cơ chế đồng bộ tiến trình. D. Cung cấp các cơ chế giao tiếp giữa các tiến trình. 3. **Đâu KHÔNG PHẢI là lý do để Hệ điều hành thực hiện điều phối tiến trình (hay định thời / lập lịch cho CPU)?** A. Thực thi nhiều chương trình đồng thời để tăng hiệu suất hệ thống. B. Tại mỗi thời điểm, một CPU chỉ thực thi được một process. C. Trong các process chạy đồng thời, có những process cần ưu tiên hơn. ==D. Bộ nhớ RAM không đủ để chạy nhiều tiến trình cùng lúc.== 4. **Để thực hiện điều phối tiến trình (hay định thời / lập lịch cho CPU), các tiến trình thực thi cần phải:** ==A. đưa các tiến trình vào hàng đợi Ready.== B. đưa các tiến trình vào hàng đợi I/O C. đưa các tiến trình vào bộ nhớ phụ. D. đưa các tiến trình vào CPU. 5. **Điều phối tiến trình (hay định thời / lập lịch cho CPU) của Hệ điều hành là gì?** A. là việc chọn thời điểm cho CPU thực thi một process nào đó từ I/O queue ==B. là việc chọn thời điểm cho CPU thực thi một process nào đó từ Ready queue.== C. là việc chọn thời điểm cho Hệ điều hành thực thi một process. D. là việc chọn thời điểm cho Hệ điều hành nạp Process vào bộ nhớ. 6. **Bộ định thời nào dùng cho việc quyết định chọn lựa tiến trình đưa vào CPU thực thi?** A. Bộ định thời CPU (CPU scheduler). ==B. Bộ định thời công việc (Job scheduler).== C. Bộ định thời trung hạn (Medium-term scheduler). D. Bộ định thời thiết bị (Device scheduler). **++Giải thích++** :::spoiler **++Job scheduling:++** Là lựa chọn tác vụ nào được đưa vào bộ nhớ chính để thực hiện. Chức năng điều phối tác vụ quyết định mức độ đa chương của hệ thống (số lượng tiến trình trong bộ nhớ chính). Khi hệ thống tạo lập một tiến trình, hay có một tiến trình kết thúc xử lý thì chức năng điều phối tác vụ mới được kích hoạt. Vì mức độ đa chương tương đối ổn định nên chức năng điều phối tác vụ có tần suất hoạt động thấp . Để cân bằng hoạt động của CPU và các thiết bị ngoại vi, bộ điều phối tác vụ nên lựa chọn các tiến trình để nạp vào bộ nhớ sao cho là sự pha trộn hợp lý giữa các tiến trình hướng nhập xuất và các tiến trình hướng xử lý. ::: 7. **Bộ định thời nào dùng cho việc quyết định thời hạn (during) thực thi tiến trình của CPU?** ==A. Bộ định thời CPU (CPU scheduler).== B. Bộ định thời công việc (Job scheduler). C. Bộ định thời trung hạn (Medium-term scheduler). D. Bộ định thời thiết bị (Device scheduler). ++**Giải thích**++ :::spoiler ++**CPU scheduler:**++ Chọn một tiến trình ở trạng thái sẵn sàng (đã được nạp vào bộ nhớ chính, và có đủ tài nguyên để hoạt động ) và cấp phát CPU cho tiến trình đó thực hiện. Bộ điều phối tiến trình có tần suất hoạt động cao, sau mỗi lần xảy ra ngắt (do đồng hồ báo giờ, do các thiết bị ngoại vi...), thường là 1 lần trong khoảng 100ms. Do vậy để nâng cao hiệu suất của hệ thống, bộ điều phối tiến trình cần sử dụng các thuật toán tốt nhất. ::: 8. **Bộ định thời nào quyết định thời điểm chuyển một tiến trình từ bộ nhớ sang bộ nhớ phụ (kỹ thuật Swapping).** A. Bộ định thời CPU (CPU scheduler). B. Bộ định thời công việc (Job scheduler). ==C. Bộ định thời trung hạn (Medium-term scheduler).== D. Bộ định thời thiết bị (Device scheduler). 9. **Hệ điều hành điều phối tiến trình theo hướng vì lợi ích cho người dùng (User-oriented), tiêu chí nào KHÔNG thuộc hướng này?** A. Thời gian đáp ứng (Response time) sao cho nhanh nhất. B. Thời gian quay vòng (Turnaround time) sao cho nhanh nhất. C. Thời gian chờ (Waiting time) sao cho ít nhất. ==D. Thông lượng (throughput) tiến trình sao cho ít nhất.== 10. **Hệ điều hành điều phối tiến trình theo hướng vì lợi ích của hệ thống (System-oriented), tiêu chí nào KHÔNG thuộc hướng này?** A. Sử dụng CPU (processor utilization): sao cho hiệu quả nhất. B. Công bằng (fairness) nhất đối với các tiến trình. ==C. Thời gian chờ (Waiting time) sao cho dài nhất.== D. Thông lượng (throughput) tiến trình sao cho nhiều nhất. 11. **Với mỗi giải thuật điều phối tiến trình, cần phải trình bày 2 yếu tố nào?** ==A. Selection function và Decision mode== B. Response time và Turnaround time C. Selection function và Response time D. Waiting time và Throughput 12. **Những chỉ số nào dưới đây KHÔNG dùng để đánh giá hiệu quả của một giải thuật điều phối tiến trình?** A. thời gian đợi của tiến trình trong hệ thống. B. thời gian tiến trình được CPU phục vụ. C. thời gian hoàn thành thực thi tiến trình. ==D. thời gian tiến trình được nạp vào bộ nhớ.== 13. **Chế độ “Preemptive” trong điều phối tiến trình là gì”** A. Tiến trình không trả CPU cho đến khí nó hoàn thành. ==B. Tiến trình trả CPU ngay khi giải thuật điều phối của Hệ điều hành yêu cầu.== C. Tiến trình chiếm dụng bộ nhớ trong quá trình thi hành. D. Tiến trình giải phóng bộ nhớ khi giải thuật điều phối của Hệ điều hành yêu cầu. 14. **Chế độ “Non-Preemptive” trong điều phối tiến trình là gì”** ==A. Tiến trình không trả CPU cho đến khí nó hoàn thành.== B. Tiến trình trả CPU ngay khi giải thuật điều phối của Hệ điều hành yêu cầu. C. Tiến trình chiếm dụng bộ nhớ trong quá trình thi hành. D. Tiến trình giải phóng bộ nhớ khi giải thuật điều phối của Hệ điều hành yêu cầu. 15. **Nguyên tắc chọn tiến trình từ hàng đợi Ready vào cho CPU thực thi của giải thuật điều phối FCFS (First-Come, First-Served) là gì?** ==A. Tiến trình Pi vào Ready queue trước sẽ được cấp CPU trước.== B. Tiến trình Pi có thời gian chiếm dụng CPU ít nhất sẽ được cấp CPU trước. C. Tiến trình Pi có thời gian chiếm dụng CPU ít hơn thời gian còn lại của “process đang chạy” sẽ được cấp CPU. D. Tiến trình Pi trong Ready queue có độ ưu tiên tốt nhất sẽ được cấp CPU trước. 16. **Nguyên tắc chọn tiến trình từ hàng đợi Ready vào cho CPU thực thi của giải thuật điều phối SJF (Shortest Job First) là gì?** A. Tiến trình Pi vào Ready queue trước sẽ được cấp CPU trước. ==B. Tiến trình Pi có thời gian chiếm dụng CPU ít nhất sẽ được cấp CPU trước.== C. Tiến trình Pi có thời gian chiếm dụng CPU ít hơn thời gian còn lại của “process đang chạy” sẽ được cấp CPU. D. Tiến trình Pi trong Ready queue có độ ưu tiên tốt nhất sẽ được cấp CPU trước. 17. **Nguyên tắc chọn tiến trình từ hàng đợi Ready vào cho CPU thực thi của giải thuật điều phối SRTF (Shortest Remaining Time First) là gì?** A. Tiến trình Pi vào Ready queue trước sẽ được cấp CPU trước. B. Tiến trình Pi có thời gian chiếm dụng CPU ít nhất sẽ được cấp CPU trước. ==C. Tiến trình Pi có thời gian chiếm dụng CPU ít hơn thời gian còn lại của “process đang chạy” sẽ được cấp CPU.== D. Tiến trình Pi trong Ready queue có độ ưu tiên tốt nhất sẽ được cấp CPU trước. 18. **Nguyên tắc chọn tiến trình từ hàng đợi Ready vào cho CPU thực thi của giải thuật điều phối Priority là gì?** A. Tiến trình Pi vào Ready queue trước sẽ được cấp CPU trước. B. Tiến trình Pi có thời gian chiếm dụng CPU ít nhất sẽ được cấp CPU trước. C. Tiến trình Pi có thời gian chiếm dụng CPU ít hơn thời gian còn lại của “process đang chạy” sẽ được cấp CPU. ==D. Tiến trình Pi trong Ready queue có độ ưu tiên tốt nhất sẽ được cấp CPU trước.== 19. **Đối với giải thuật điều phối tiến trình FCFS và SJF, “thời gian chờ” và “thời gian đáp ứng” của một tiến trình là như thế nào?** A. “thời gian chờ” lớn hơn “thời gian đáp ứng” B. “thời gian chờ” nhở hơn “thời gian đáp ứng”. ==C. “thời gian chờ” bằng “thời gian đáp ứng”.== D. “thời gian chờ” và “thời gian đáp ứng” có sự khác biệt giữa FCFS và SJF. 20. **Cho ba tiến trình P1, P2, P3 với Burst time tương ứng là: 24,3,3. Cho biết “thời gian chờ” của tiến trình P2 theo giải thuật điều phối tiến trình FCFS:** A. 0 ==B. 24== C. 27 D. 30 21. **Cho ba tiến trình P1, P2, P3 với Burst time tương ứng là: 24,3,3. Cho biết “thời gian chờ” của tiến trình P3 theo giải thuật điều phối tiến trình FCFS:** A. 0 B. 24 ==C. 27== D. 30 22. **Cho ba tiến trình P1, P2, P3 với các Burst time tương ứng là: 24,3,3. Xác định “thời gian chờ trung bình” theo giải thuật điều phối tiến trình FCFS:** A. 3 B. 24 ==C. 17== D. 30 23. **Cho ba tiến trình P1, P2, P3 với Burst time tương ứng là: 24,3,3. Cho biết “thời gian đáp ứng” của tiến trình P3 theo giải thuật điều phối tiến trình FCFS:** A. 0 B. 24 ==C. 27== D. 30 24. **Cho ba tiến trình P1, P2, P3 với Burst time tương ứng là: 24,3,4. Cho biết “thời gian chờ” của tiến trình P1 theo giải thuật điều phối tiến trình SJF:** A. 0 B. 24 C. 27 ==D. 7== 25. **Cho ba tiến trình P1, P2, P3 với Burst time tương ứng là: 24,3,4. Cho biết “thời gian chờ” của tiến trình P2 theo giải thuật điều phối tiến trình SJF:** ==A. 0== B. 24 C. 27 D. 7 26. **Cho ba tiến trình P1, P2, P3 với Burst time tương ứng là: 24,3,4. Cho biết “thời gian chờ” của tiến trình P3 theo giải thuật điều phối tiến trình SJF:** ==A. 3== B. 24 C. 27 D. 6 27. **Cho ba tiến trình P1, P2, P3 với các Burst time tương ứng là: 24,3,3. Xác định “thời gian chờ trung bình” theo giải thuật điều phối tiến trình SJF:** A. 6 B. 10 C. 17 ==D. 3== 28. **Bảng dưới thể hiện danh sách các tiến trình trong hàng đợi. Hãy cho biết trình tự CPU thực thi tiến trình theo giải thuật điều phối SJF (Shortest Job First):** A. P3 > P2 > P4 > P1 ==B. P1 > P3 > P2 > P4== C. P3 > P2 > P1 > P4 D. P1 > P2 > P3 > P4 <center> <img src = https://scontent.xx.fbcdn.net/v/t1.15752-9/432425165_1100380407951950_3009833666718995014_n.png?_nc_cat=107&ccb=1-7&_nc_sid=5f2048&_nc_ohc=G9-mz5QkYNEAX9QZGwo&_nc_ad=z-m&_nc_cid=0&_nc_ht=scontent.xx&oh=03_AdS-4loYYTq6jHyCH0twP5Acz-1glezysTokWgNY4wdNhQ&oe=661A210F> </center> 29. **Bảng dưới thể hiện danh sách các tiến trình trong hàng đợi. Hãy cho biết trình tự CPU thực thi tiến trình theo giải thuật điều phối SRTF (Shortest Remaining Time First):** A. P3 > P2 > P4 > P1 B. P1 > P3 > P2 > P4 > P4 > P1 C. P3 > P2 > P1 > P4 ==D. P1 > P2 > P3 > P2 > P4 > P1== <center> <img src = https://scontent.xx.fbcdn.net/v/t1.15752-9/432425165_1100380407951950_3009833666718995014_n.png?_nc_cat=107&ccb=1-7&_nc_sid=5f2048&_nc_ohc=G9-mz5QkYNEAX9QZGwo&_nc_ad=z-m&_nc_cid=0&_nc_ht=scontent.xx&oh=03_AdS-4loYYTq6jHyCH0twP5Acz-1glezysTokWgNY4wdNhQ&oe=661A210F> </center> 30. **Bảng dưới thể hiện danh sách các tiến trình trong hàng đợi. Hãy cho biết “thời gian chờ” của tiến trình P3 theo giải thuật điều phối SJF (Shortest Job First):** A. 0 ==B. 3== C. 11 D. 12 <center> <img src = https://scontent.xx.fbcdn.net/v/t1.15752-9/432425165_1100380407951950_3009833666718995014_n.png?_nc_cat=107&ccb=1-7&_nc_sid=5f2048&_nc_ohc=G9-mz5QkYNEAX9QZGwo&_nc_ad=z-m&_nc_cid=0&_nc_ht=scontent.xx&oh=03_AdS-4loYYTq6jHyCH0twP5Acz-1glezysTokWgNY4wdNhQ&oe=661A210F> </center> 31. **Bảng dưới thể hiện danh sách các tiến trình trong hàng đợi. Hãy cho biết “thời gian đáp ứng” của tiến trình P2 theo giải thuật điều phối SRTF (Shortest Remaining Time First):** ==A. 0== B. 7 C. 11 D. 9 <center> <img src = https://scontent.xx.fbcdn.net/v/t1.15752-9/432425165_1100380407951950_3009833666718995014_n.png?_nc_cat=107&ccb=1-7&_nc_sid=5f2048&_nc_ohc=G9-mz5QkYNEAX9QZGwo&_nc_ad=z-m&_nc_cid=0&_nc_ht=scontent.xx&oh=03_AdS-4loYYTq6jHyCH0twP5Acz-1glezysTokWgNY4wdNhQ&oe=661A210F> </center> 32. **Bảng dưới thể hiện danh sách các tiến trình trong hàng đợi. Hãy cho biết “thời gian chờ” của tiến trình P2 theo giải thuật điều phối SRTF (Shortest Remaining Time First):** A. 0 B. 7 C. 11 ==D. 1== <center> <img src = https://scontent.xx.fbcdn.net/v/t1.15752-9/432425165_1100380407951950_3009833666718995014_n.png?_nc_cat=107&ccb=1-7&_nc_sid=5f2048&_nc_ohc=G9-mz5QkYNEAX9QZGwo&_nc_ad=z-m&_nc_cid=0&_nc_ht=scontent.xx&oh=03_AdS-4loYYTq6jHyCH0twP5Acz-1glezysTokWgNY4wdNhQ&oe=661A210F> </center> 33. **Bảng dưới thể hiện danh sách các tiến trình trong hàng đợi. Hãy cho biết “thời gian chờ” của tiến trình P3 theo giải thuật điều phối SRTF (Shortest Remaining Time First):** ==A. 0== B. 7 C. 11 D. 12 <center> <img src = https://scontent.xx.fbcdn.net/v/t1.15752-9/432425165_1100380407951950_3009833666718995014_n.png?_nc_cat=107&ccb=1-7&_nc_sid=5f2048&_nc_ohc=G9-mz5QkYNEAX9QZGwo&_nc_ad=z-m&_nc_cid=0&_nc_ht=scontent.xx&oh=03_AdS-4loYYTq6jHyCH0twP5Acz-1glezysTokWgNY4wdNhQ&oe=661A210F> </center> 34. **Giải thuật điều phối tiến trình nào sau đây có sử dụng kỹ thuật Swapping?** A. Đến trước phục vụ trước (FIFO) ==B. Round-robin và độ ưu tiên.== C. Công việc ngắn định thời trước (SJF). D. Không dùng giải thuật. Giải thích: Đối với giải thuật điều phối tiến trình sử dụng kỹ thuật Swapping, thì các giải thuật điều phối này phải là điều phối không độc quyền (vì các tiến trình thay phiên liên tục lẫn nhau) 35. **Trong giải thuật điều phối tiến trình “Round Robin”, CPU thực thi các tiến trình trong hàng đợi Ready theo thứ tự nào?** A. Từ đầu Queue đến cuối Queue. B. Từ cuối Queue lên đầu Queue. ==C. Xoay vòng lần lượt sau một thời gian xác định (quantum time)== D. Xoay vòng khi thực thi hoàn thành cho một tiến trình. 36. **Trong giải thuật điều phối tiến trình “Round Robin”, khi CPU thực thi tiến trình hết quantum time thì:** A. Tiến trình sẽ được cấp tiếp một quantum time mới. ==B. Tiến trình sẽ đưa về cuối Hàng đợi Ready.== C. Tiến trình sẽ đưa về đầu hàng đợi công việc (Job queue). D. Tiến trình sẽ đưa vào bộ nhớ phụ. 37. **Trong giải thuật điều phối tiến trình “Round Robin”, ngoài sự kiện hết quantum time, hệ điều hành thu hồi CPU của tiến trình khi nào?** A. Khi tiến trình có độ ưu tiên thấp hơn tiến trình kế tiếp. B. Khi tiến trình có thời gian thực thi dài hơn quantum time. ==C. Khi tiến trình vào trạng thái Blocked hoặc tiến trình kết thúc.== D. Khi tiến trình có độ ưu tiên lớn. 38. **Trong giải thuật điều phối tiến trình “Preemptive Priority” (độ ưu tiên – cho phép trưng dụng), hệ điều hành thu hồi CPU khi tiến trình:** ==A. có độ ưu tiên thấp hơn tiến trình mới đưa vào.== B. có thời gian thực thi dài hơn quantum time. C. bị chặn hoặc kết thúc trước khi hết quantum time. D. Có thời gian thực thi ngắn. 39. **Đối với những tiến trình có Burst time nhỏ, giải thuật điều phối tiến trình nào dưới đây cho thời gian chờ thấp nhất?** A. First-Come, First-Served Scheduling ==B. Shortest-Job-First Scheduling== C. Priority-scheduling D. Multilevel queue-scheduling 40. **Đối với những tiến trình có Burst time nhỏ, giải thuật điều phối tiến trình SJF (Shortest Job First) có ưu điểm nào?** A. Định thời đơn giản nhất. B. Không cần biết trước thời gian chạy công việc. ==C. Thời gian chờ đợi trung bình nhỏ nhất.== D. Định thời tương đối phức tạp. Giải thích: Giải thuật này cho phép đạt được thời gian chờ trung bình cực tiểu. Khó khăn thực sự của giải thuật này là thường không thể biết được thời gian yêu cầu xử lý còn lại của tiến trình. 41. **Với các hệ điều hành sử dụng luồng nhân (kernel threads) và luồng người dùng (User thread), giải thuật điều phối CPU áp dụng cho loại thread nào?** A. user threads. ==B. kernel threads== C. kernel threads và user threads. D. Tùy theo người sử dụng. 42. **Với hệ điều hành dùng mô hình ánh xạ Many-to-One và Many-to-Many, thư viện luồng (thread library) có vai trò gì?** A. Tra cứu danh mục các luồng (thread). B. Định thời cho luồng nhân (kernel threads). ==C. Định thời cho luồng người dùng (user threads).== D. Định thời cho luồng nhân (kernel threads) và người dùng (user threads). 43. **Trong các mô hình ánh xạ user thread vào kernel thread, mô hình nào chỉ xảy ra tranh chấp CPU tại các kernel threads?** A. Mô hình One-to-Many. ==B. Mô hình One-to-One.== C. Mô hình Many-to-Many. D. Mô hình Many-to-One. 44. **Một Hệ điều hành chia hàng đợi Ready thành 2 hàng đợi con: *Foreground queue*: chứa các process hiển thị trên màn hình. *Background queue*: chứa các process chạy nền hoặc dạng Service. Hệ điều hành trên sẽ chọn giải thuật điều phối đa hàng đợi (*Multilevel Queue Scheduling*) nào cho hợp lý?** ==A. Fixed priority scheduling.== B. Priority scheduling. C. Time slice scheduling. D. Round Robin scheduling. 45. **Một Hệ điều hành chia hàng đợi Ready thành nhiều hàng đợi con. Mỗi hàng đợi con dùng chứa những process có quan hệ chung. Hệ điều hành trên sẽ chọn giải thuật điều phối đa hàng đợi (Multilevel Queue Scheduling) nào cho hợp lý?** A. Fixed priority scheduling. B. Priority scheduling. ==C. Time slice scheduling.== D. Round Robin scheduling. 46. **Trong giải thuật định thời “đa bộ xử lý không đối xứng” (Asymmetric multiprocessing), có bao nhiêu bộ xử lý tham gia định thời và xử lý nhập/xuất?** ==A. Một bộ xử lý.== B. Hai bộ xử lý. C. Bốn bộ xử lý. D. Tất cả các bộ xử lý của hệ thống. 47. **Trong giải thuật định thời “đa bộ xử lý đối xứng” (Symmetric multiprocessing), có bao nhiêu bộ xử lý tham gia định thời cho tiến trình?** A. Một bộ xử lý. B. Hai bộ xử lý. C. Bốn bộ xử lý. ==D. Mỗi bộ xử lý tự định thời cho mình.== 48. **Trong phương pháp định thời “đa bộ xử lý đối xứng”, có thể có các loại hàng đợi Ready nào?** A. Hàng đợi chung cho tất cả bộ xử lý. B. Hàng đợi riêng của mỗi bộ xử lý. ==C. Có cả hàng đợi chung và các hàng đợi riêng.== D. Không có hàng đợi. 49. **Những nguyên tắc nào được sử dụng khi điều phối tiến trình cho hệ thống đa bộ xử lý?** ==A. Nguyên tắc Một bộ xử lý; nguyên tắc Cân bằng tải.== B. Nguyên tắc Chia sẻ thời gian; nguyên tắc FIFO. C. Nguyên tắc Độ ưu tiên. D. Nguyên tắc Chia sẻ thời gian thực. 50. **Khi điều phối tiến trình cho hệ thống đa bộ xử lý, phương pháp nào dưới đây được thực hiện để đảm bảo cân bằng tải (Load Balance) cho các CPU?** A. Push migration (đẩy công việc ra khỏi CPU). B. Pull migration (lấy công việc vào CPU). ==C. Push migration và Pull migration.== D. So sánh và điều chỉnh tải. ### PART B: EXERCISES #### Question 1 :::info * Consider five processes (P0 $\to$ P4) with arrival times and CPU burst times as follows : | Process | Arrival Time | CPU Burst Time | |:-------:|:------------:|:--------------:| | P~0~ | 0 | 6 | | P~1~ | 3 | 11 | | P~2~ | 5 | 9 | | P~3~ | 6 | 4 | | P~4~ | 6 | 3 | 1. Draw Gantt charts that illustrate the execution of these processes using the following scheduling algorithms: FCFS, RR (time quantum = 3) and RR (time quantum = 6), SJF. 2. For each of the scheduling algorithms specified in part a, calculate the turnaround time of each process and then the average turnaround time. 3. For each of the scheduling algorithms specified in part a, calculate the waiting time of each process and then the average waiting time. ::: **:100: ==++Answer++==** :::spoiler * FCFS (First - Come, First - Served Scheduling): * Draw **Gantt Chart** that illustrates the execution of these processes using the **FCFS Scheduling Algorithms**: <center> <img src = https://scontent.fsgn2-10.fna.fbcdn.net/v/t1.15752-9/423221360_759765992729490_3210606645731905605_n.png?_nc_cat=109&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=27d_tyzvIi8AX95Exqx&_nc_ht=scontent.fsgn2-10.fna&oh=03_AdTRZusz4cqnqPpMbtmWFRo588NMzZ2I2mwMQpSKXm0VqA&oe=65F996C9> </center> * Calculate the **turnaround time (TT)** / **the waiting time (WT)** of each process and then **the average turnaround time (AVG~TT~)** / **the average waiting time (AVG~WT~)**: <center> <img src = https://scontent.fsgn2-9.fna.fbcdn.net/v/t1.15752-9/428508009_783668190296289_3330069349175542138_n.png?_nc_cat=106&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=iUHyQZop3IcAX8jlVfu&_nc_ht=scontent.fsgn2-9.fna&oh=03_AdSbrYBfyZUof6YB5pmy3zS3RjldlcKp9k20SG0drOxzhA&oe=65F98A02> </center> * RR (Round - Robin Scheduling) with time quantum q = 3: * Draw **Gantt Chart** that illustrates the execution of these processes using the **Round - Robin Scheduling Algorithms**: <center> <img src = https://scontent.fsgn2-8.fna.fbcdn.net/v/t1.15752-9/427781633_1129703031375209_4474593484614580490_n.png?_nc_cat=102&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=0lPZsqjyz98AX-iLnub&_nc_ht=scontent.fsgn2-8.fna&oh=03_AdQ9Xykqai54KggMUwo3bBLXFq3oVUFriABTOoC6IrGfLw&oe=65F9B3BE> </center> * Calculate the **turnaround time (TT)** / **the waiting time (WT)** of each process and then **the average turnaround time (AVG~TT~)** / **the average waiting time (AVG~WT~)**: <center> <img src = https://scontent.fsgn2-4.fna.fbcdn.net/v/t1.15752-9/428241633_925835005764256_8000719948440489126_n.png?_nc_cat=101&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=lGeeuvrEH-EAX8g6wsT&_nc_ht=scontent.fsgn2-4.fna&oh=03_AdRdRQE6VNAwu0hW5e-UjPnZ3D3XvSNM1wPN9IlGyT1TmA&oe=65F9851C> </center> * RR (Round - Robin Scheduling) with time quantum q = 6: * Draw **Gantt Chart** that illustrates the execution of these processes using the **Round - Robin Scheduling Algorithms**: <center> <img src = https://scontent.fsgn2-8.fna.fbcdn.net/v/t1.15752-9/427770552_703304828631547_3342642849985660945_n.png?_nc_cat=102&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=jvomRl-dEvwAX8bMPlH&_nc_ht=scontent.fsgn2-8.fna&oh=03_AdSASCKeMz2fe26uqeAtmnEjADRzEAeuWs1V8inyYFxBzQ&oe=65F9A6E2> </center> * Calculate the **turnaround time (TT)** / **the waiting time (WT)** of each process and then **the average turnaround time (AVG~TT~)** / **the average waiting time (AVG~WT~)**: <center> <img src = https://scontent.fsgn2-7.fna.fbcdn.net/v/t1.15752-9/428518419_898916411877762_6433525417038689186_n.png?_nc_cat=100&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=Qnls4M9wFxIAX9BABs2&_nc_ht=scontent.fsgn2-7.fna&oh=03_AdSGlg160JLwTDb6tm9zQasrVjPha0djSAPxkxdVmWS24w&oe=65F9A255> </center> * SJF (Shortest - Job - First Scheduling): * Draw **Gantt Chart** that illustrates the execution of these processes using the **Shortest - Job - First Scheduling Algorithms**: <center> <img src = https://scontent.fsgn2-6.fna.fbcdn.net/v/t1.15752-9/428409539_932366691740994_5692342804027527578_n.png?_nc_cat=110&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=AQwc15NPkMoAX-itG4G&_nc_ht=scontent.fsgn2-6.fna&oh=03_AdQ1lRnkSAzP0MWmhkxvVE1yIy3Iw_8hG7GuoOUOpn206A&oe=65F9A557> </center> * Calculate the **turnaround time (TT)** / **the waiting time (WT)** of each process and then **the average turnaround time (AVG~TT~)** / **the average waiting time (AVG~WT~)**: <center> <img src = https://scontent.fsgn2-7.fna.fbcdn.net/v/t1.15752-9/428456850_258740237176264_3709242414189731577_n.png?_nc_cat=108&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=0TNXrM-eUT8AX94Sno7&_nc_ht=scontent.fsgn2-7.fna&oh=03_AdQKX_ZzgaicpfeMr2u8eGn_SiL-9D9ho_x0oAFtXtAroQ&oe=65F9BB96> </center> ::: #### Question 2 :::info * Consider five processes (P0 $\to$ P4) coming to ==the ready queue in the order P~0~, P~1~, P~2~, P~3~, P~4~==, with CPU burst times and priorities (a small integer indicates a high priority) as follows: | Process | CPU Burst Time | Priority | |:-------:|:--------------:|:--------:| | P~0~ | 4 | 5 | | P~1~ | 4 | 5 | | P~2~ | 2 | 2 | | P~3~ | 2 | 2 | | P~4~ | 1 | 1 | * Assume that the order of execution of these processes presented as follows: P~0~, P~1~, P~2~, P~3~, P~4~, P~0~, P~1~. * Which scheduling algorithms (FCFS, RR, SJF, Priority, …) may be used to schedule these processes? * Explain your answer. ::: **:100: ==++Answer++==** :::spoiler * RR scheduling algorithms with time quantum that is equal to 2 or 3 may be used to schedule these processes. * Explain: * Because we have already had the ready queue in the order P~0~, P~1~, P~2~, P~3~, P~4~, we would have needed to use the Priority Scheduling Algorithms, which is based on the index of priority (as if we used this algorithms, the order of execution of these processes presented would be followed: Preemptive version : P~4~ $\to$ P~2~ or P~3~ $\to$ P~0~ or P~1~ $\equiv$ Nonpreemptive version (as we don't know the point of already time ???) $\neq$ the given order of execution (P~0~ $\to$ P~1~ $\to$ P~2~ $\to$ P~3~ $\to$ P~4~ $\to$ P~0~ $\to$ P~1~)) * If we used FCFS Scheduling Algorithm, we wouldn't have the similar of the given order of execution of these processes: P~0~ $\to$ P~1~ $\to$ P~3~ $\to$ P~4~ (based on the order of these processes in the ready queue). * We can't use SJF Scheduling Algorithm because the CPU burst time may be equal to each other $\to$ cannot define the order of execution of these processes. * We can use RR Scheduling Algorithm with time quantum q = 2 or q = 3 because this algorithm bases on the order of Stack Ready processes in Ready Queue and this version is preemptive algorithm $\implies$ the order of execution of these processes can be presented as follows: P~0~ $\to$ P~1~ $\to$ P~2~ $\to$ P~3~ $\to$ P~4~ $\to$ P~0~ $\to$ P~1~. ::: #### Question 3 :::info * Consider the following scheduling algorithms: * FCFS * SJF * Round Robin * Priority Scheduling * Which of these algorithms could result in starvation? Which processes could be in starvation situation for each of the scheduling algorithms? How to prevent this situation? ::: :100: ==**++Answer++**== :::spoiler * The algorithms above that could result in starvation are: SJF (Shortest - Job - First Scheduling) and Priority - based Scheduling. * The processes could be in starvation situation for each of the scheduling algorithms: * SJF (Shortest - Job - First Scheduling Algorithm): processes having higher CPU - burst time (as processes having higher CPU - burst time can be blocked indefinitely if smaller CPU - burst processes keep executing). * Priority - based Scheduling Algorithm: processes having lower priority (as processes having lower priority can be blocked indefinitely if higher priority processes keep executing) * Solutions to prevent this situation: * SJF (Shortest - Job - First Scheduling Algorithm): is to implement a variation called Shortest Remaining Time First (SRTF $\to$ Preemptive Version of SJF Algorithm), where the currently running process can be preempted if a new process arrives with a shorter execution time. * Priority - based Scheduling Algorithm: Aging $\to$ increase the priority of processes waiting for a long time in the ready queue. ::: #### Question 4 :::info * Consider five processes (P~0~ $\to$ P~4~) with arrival times, CPU burst times, and priorities (a small integer indicates a high priority) as follows: | Process | Arrival time | CPU burst time | Priority | |:-------:|:------------:|:--------------:|:--------:| | P~0~ | 0 | 5 | 6 | | P~1~ | 1 | 6 | 3 | | P~2~ | 2 | 7 | 5 | | P~3~ | 2 | 9 | 3 | | P~4~ | 3 | 2 | 4 | 1. Draw Gantt charts that illustrate the execution of these processes using the following scheduling algorithms: preemptive priority scheduling, nonpreemtive priority scheduling. 2. Calculate the average turnaround time and waiting time for each of the scheduling algorithms? ::: :100: ==**++Answer++**== :::spoiler * Preemptive Version Priority - based Scheduling Algorithms: * Draw **Gantt Chart** that illustrates the execution of these processes using the **Preemptive Version Priority - based Scheduling Algorithms**: <center> <img src = https://scontent.fsgn2-6.fna.fbcdn.net/v/t1.15752-9/428224183_2416811758522312_7335652977407412305_n.png?_nc_cat=111&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=x32bPWL3P0IAX9p97su&_nc_ht=scontent.fsgn2-6.fna&oh=03_AdRDhFOSqsLaQc8dVBhDAPmAkvHNI5YJ1M-LvYUpr3b4DQ&oe=65F9B98A> </center> * Calculate **the average turnaround time** and **waiting time** for this algorithm: <center> <img src = https://scontent.fsgn2-8.fna.fbcdn.net/v/t1.15752-9/428354201_1163814644987034_4966857959835357003_n.png?_nc_cat=102&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=UL-PV0eOs7UAX8xBUkj&_nc_oc=AQm7Srj03uJoD2D7HRAjZrestTuAFcDjrMShohKthHzOIHzcJO7_WhgEUsE89DHjFNc&_nc_ht=scontent.fsgn2-8.fna&oh=03_AdRgHvnYV28Nz1Fismj_GlCADwwtQc2YU-R593ziTNKNzw&oe=65F9E253> </center> * Nonpreemptive Version Priority - based Scheduling Algorithms: * Draw **Gantt Chart** that illustrates the execution of these processes using the **Nonpreemptive Version Priority - based Scheduling Algorithms**: <center> <img src = https://scontent.fsgn2-5.fna.fbcdn.net/v/t1.15752-9/428119136_317005950894191_538163884370533425_n.png?_nc_cat=104&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=qIoYVwc_bIIAX9WMYda&_nc_ht=scontent.fsgn2-5.fna&oh=03_AdT3_Mpv0DeY41EEDjH0kPWwknG0xKyI4E-qrFQ7xBSeZA&oe=65F9C584> </center> * Calculate **the average turnaround time** and **waiting time** for this algorithm: <center> <img src = https://scontent.fsgn2-6.fna.fbcdn.net/v/t1.15752-9/428340780_367304642744265_5497562014595953230_n.png?_nc_cat=111&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=tVAbYjp_3OoAX-TUKWC&_nc_ht=scontent.fsgn2-6.fna&oh=03_AdS3hhQsbFkNaAYiRMP5W2cMzE4NVVb6ttuoV-6991BWAg&oe=65F9AD36> </center> ::: #### Question 5 :::info * A **POSIX** system schedules process with preemptive priority scheduling. Each process is assigned a priority value from 0 to 29 (29 being the highest priority) and classified into one of three following classes: * **SCHED_FIFO** used for scheduling for real-time processes according to FCFS algorithm (the highest priority process will be placed at the head of the ready queue); * **SCHED_RR** used for scheduling real-time round-robin processes according to RR algorithm with time quantum = 1 (the highest priority process will be placed at the head of the ready queue); * **SCHED_OTHER** used for scheduling other kinds of processes (the highest priority process will be placed at the head of the ready queue). * Processes of class **SCHED_FIFO** are the most important, therefore no other process can be executed if there is at least one process of class **SCHED_FIFO** in the system. Similarly, processes of class **SCHED_RR** are more important than ones of class **SCHED_OTHER**, therefore processes of **SCHED_OTHER** must be blocked until all processes **SCHED_RR** finish execution. * Consider a set of processes presented in the following table: | Process | Class | Recurring Process | Period | First Arrival Time | CPU Burst Time | Priority | |:-------:|:-----------:|:-----------------:|:------:|:------------------:|:--------------:|:--------:| | f~1~ | SCHED_FIFO | Yes | 8 | 0 | 1 | 28 | | f~2~ | SCHED_FIFO | Yes | 7 | 0 | 2 | 26 | | f~3~ | SCHED_FIFO | - | - | 5 | 4 | 20 | | f~4~ | SCHED_FIFO | - | - | 4 | 3 | 20 | | r~1~ | SCHED_RR | - | - | 3 | 3 | 10 | | r~2~ | SCHED_RR | - | - | 4 | 3 | 10 | | o | SCHED_OTHER | - | - | 0 | 1 | 0 | * Draw Gantt chart that illustrates the execution of these processes within 30 units of time. ::: :100: ==**++Answer++**== :::spoiler * Implementation Table <center> <img src = https://scontent.fsgn2-7.fna.fbcdn.net/v/t1.15752-9/428407793_409914138188203_6007252720147813271_n.png?_nc_cat=108&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=70hWd7eTfBUAX9dLuKa&_nc_ht=scontent.fsgn2-7.fna&oh=03_AdT_0e7kdzS0ydWsL7A_oSS6rpCyoyZaDUrQVmq4Xq2xcg&oe=65F9F6E2> </center> * Gantt Chart <center> <img src = https://scontent.fsgn2-10.fna.fbcdn.net/v/t1.15752-9/427871816_303699772351990_4137631118963655335_n.png?_nc_cat=109&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=Dj9c9Pst0_cAX-kXBiW&_nc_ht=scontent.fsgn2-10.fna&oh=03_AdQS4s4EDE1AT4S02By0YAsBXTU4SFdkaHxE8JGm0RcHmQ&oe=65F9D17A> </center> ::: ### PART C #### Question 1 :::info A **CPU-scheduling algorithm** determines **an order** for the execution of its scheduled processes. Given **n** processes to be scheduled on **one processor**, how many different schedules are possible? Give a formula in terms of n. ::: :100: ==**++Answer++**== :::spoiler * The number of different schedules possile would be $n!$ * The formula in term of $n$ is: $n!$ * Explanation: Since each process can be placed in any position in the schedule, the number of possible schedules is equal to the number of permutations of n processes. Therefore, it's $n! = n \times (n - 1) \times (n - 2) \times ... \times 2 \times 1$. ::: #### Question 2 :::info Explain the difference between **preemptive** and **nonpreemptive** scheduling. ::: :100: ==**++Answer++**== :::spoiler * The differences between Preemptive and Nonpreemptive Scheduling are: * The Preemptive Scheduling (cooperate scheduling): the running processes may be suspended by the OS because of a **higher priority process** arriving or its **time slice expired**. * The Nonpreemptive Scheduling: the running process keeps the CPU until it **terminates** or **switches** to the **waiting state** (by (I/O) waiting list / queue). ::: #### Question 3 :::info Suppose that the following processes arrive for execution at the times indicated. Each process will run for the amount of time listed. In answering the questions, use **nonpreemptive scheduling**, and base all decisions on the information you have at the time the decision must be made. | Process | Arrival Time | Burst Time | |:-------:|:------------:|:----------:| | P~1~ | 0.0 | 8 | | P~2~ | 0.4 | 4 | | P~3~ | 1.0 | 1 | 1. What is **the average turnaround time** for these processes with **the FCFS scheduling algorithm**? 2. What is **the average turnaround time** for these processes with **the SJF scheduling algorithm**? 3. The **SJF algorithm** is supposed to improve performance, but notice that we chose to run process P~1~ at time 0 because we did not know that two shorter processes would arrive soon. Compute what **the average turnaround time** will be if the CPU is left idle for the first 1 unit and then **SJF scheduling** is used. Remember that processes P~1~ and P~2~ are waiting during this idle time, so their waiting time may increase. This algorithm could be known as **future-knowledge scheduling**. ::: :100: ==**++Answer++**== :::spoiler 1. **The FCFS (First - Come, First - Served) Scheduling Algorithm** * Gantt chart: <center> <img src = https://scontent.fsgn2-8.fna.fbcdn.net/v/t1.15752-9/428407794_620196266931109_8399464217143455902_n.png?_nc_cat=102&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=hJvAmJyAi1AAX8-TnHM&_nc_ht=scontent.fsgn2-8.fna&oh=03_AdSXpOj5e-Z7ZzKzM6PPr5RkkMKH5Y1ZgtTaodcTqDNqyA&oe=65FF16A4> </center> * Calculate TT and WT <center> <img src = https://scontent.fsgn2-3.fna.fbcdn.net/v/t1.15752-9/428051530_935403901568387_8819762010080833109_n.png?_nc_cat=107&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=aDGpVIKgfycAX8ibIek&_nc_ht=scontent.fsgn2-3.fna&oh=03_AdTgHinSn-ptpDhUZlgYOq3hcwT6QOqVlJzsBv49taaY1g&oe=65FF16E5> </center> 2. **The SJF (Shortest - Job - First) Scheduling Algorithm** * Gantt chart <center> <img src = https://scontent.fsgn2-3.fna.fbcdn.net/v/t1.15752-9/428291450_1383105582322268_2298565746815249477_n.png?_nc_cat=107&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=mq_JxmXQFq8AX9c7hjo&_nc_ht=scontent.fsgn2-3.fna&oh=03_AdQCMX72uNK_272hfLJ9aqz8nNXz5OZiJDvl2Q4qcCGC7w&oe=65FF07A5> </center> * Calculate TT and WT <center> <img src = https://scontent.fsgn2-5.fna.fbcdn.net/v/t1.15752-9/428287641_1703789550030784_2589970312717902721_n.png?_nc_cat=104&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=zHyeLd1U1jgAX9-DJRQ&_nc_ht=scontent.fsgn2-5.fna&oh=03_AdTN4neVjbVm8ESq2hwCz6Q3ZE4UqLtS0Oai2Hq5EKts1Q&oe=65FF1AEE> </center> 3. **The Future - Knowledge Scheduling Algorithm** * Gantt chart <center> <img src = https://scontent.fsgn2-7.fna.fbcdn.net/v/t1.15752-9/428417266_1137631474070298_7158590530351216670_n.png?_nc_cat=108&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=Pqjcu51rqEoAX9xK1op&_nc_ht=scontent.fsgn2-7.fna&oh=03_AdQNdW6DWamYH6cc81MKTXPzfr1pd3x6AVlkz3dXV-wDeA&oe=65FF0B32> </center> * Calculate TT and WT <center> <img src = https://scontent.fsgn2-6.fna.fbcdn.net/v/t1.15752-9/428226555_2282266362104674_4932076377689845694_n.png?_nc_cat=110&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=uf8YJW4atBIAX-UyxV6&_nc_ht=scontent.fsgn2-6.fna&oh=03_AdQajs7T-zx5WYOfAGwqcbTX2Y0etr1fccFFHIEK7rke3g&oe=65FF16DD> </center> ::: ##### Question 4 :::info Consider the following set of processes, with the length of the CPU burst time given in milliseconds: The processes are assumed to have arrived **in the order P~1~, P~2~, P~3~, P~4~, P~5~, all at time 0**. | Process | Burst Time | Priority | |:-------:|:----------:|:--------:| | P~1~ | 2 | 2 | | P~2~ | 1 | 1 | | P~3~ | 8 | 4 | | P~4~ | 4 | 2 | | P~5~ | 5 | 3 | 1. Draw four **Gantt charts** that illustrate the execution of these processes using the following scheduling algorithms: **FCFS, SJF, nonpreemptive priority (a larger priority number implies a higher priority),** and **RR (quantum = 2)**. 2. What is **the turnaround time** of each process for each of the scheduling algorithms in part a? 3. What is **the waiting time** of each process for each of these scheduling algorithms? 4. Which of the algorithms results in **the minimum average waiting time** (over all processes)? ::: :100: ==**++Answer++**== :::spoiler * Draw four **Gantt Chart** and **calculate WT and TT** * **FCFS Algorithm** * Gantt chart <center> <img src = https://scontent.fhan4-3.fna.fbcdn.net/v/t1.15752-9/429106593_218988421241588_3347787697907674564_n.png?_nc_cat=103&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=sKVKDj0ENSoAX9YuC-L&_nc_ht=scontent.fhan4-3.fna&oh=03_AdQMNzW5vq327S9_EC2JWbIkO3LObQjpB3-KZ0xdvhtlLA&oe=65FFAACE> </center> * Calculation Table <center> <img src = https://scontent.fhan3-2.fna.fbcdn.net/v/t1.15752-9/429130061_1747764089077923_2704307418659014421_n.png?_nc_cat=107&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=vUZQdYAAGVAAX9F5cVC&_nc_oc=AQlbsQwivyx428bssAJ2ZdNY-zD57AnA_oclDnzen2-UWQQYOhCGjEWhMQ4g7gBpAp8&_nc_ht=scontent.fhan3-2.fna&oh=03_AdT1u6sGLjdnK4U-KLgUDwMpQwUqkOqqN8_Nxyk6H14K4Q&oe=65FF8224> </center> * **SJF Algorithm** * Gantt chart <center> <img src = https://scontent.fsgn5-9.fna.fbcdn.net/v/t1.15752-9/429316430_429481432769508_8873395249124485400_n.png?_nc_cat=102&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=dmjUOXu2gtoAX_eiGNf&_nc_ht=scontent.fsgn5-9.fna&oh=03_AdRyttD5HFtnYIc-AIr6GZ_qDc9Ldo241CbFiShBk6soAA&oe=65FF9F25> </center> * Calculation Table <center> <img src = https://scontent.fsgn5-12.fna.fbcdn.net/v/t1.15752-9/429058271_1101446731167013_8676709497575819772_n.png?_nc_cat=103&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=H7qM82qr5TIAX-hU8pc&_nc_ht=scontent.fsgn5-12.fna&oh=03_AdTnmrJ0W0Zu6ln7W-LS2_ru-ba-gwRcHdlI_lE1jQq8qw&oe=65FF8E83> </center> * **Nonpreemptive Priority** (a large priority number implies a higher priority) * Gantt chart <center> <img src = https://scontent.fhan4-2.fna.fbcdn.net/v/t1.15752-9/429317171_2164125833930834_5018636578467622132_n.png?_nc_cat=111&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=f8atrXufSLMAX_vxHGn&_nc_ht=scontent.fhan4-2.fna&oh=03_AdScyj1RFrK5QFYDQNs9h_92_N768TN-inOgK7gQMYYW3g&oe=65FFA8D7> </center> * Calculation Table <center> <img src = https://scontent.fhan3-4.fna.fbcdn.net/v/t1.15752-9/429089405_712468664334706_3112568246978803695_n.png?_nc_cat=106&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=J5CKSkEMCqsAX9LPiPN&_nc_ht=scontent.fhan3-4.fna&oh=03_AdRIctpVJQPY4DmEB5QP4Yn2yMSTQgkAMhKP1-NtXlTfdQ&oe=65FF91BA> </center> * **RR (q = 2)** * Gantt chart <center> <img src = https://scontent.fhan3-2.fna.fbcdn.net/v/t1.15752-9/429323981_725117949749759_9042332463031242256_n.png?_nc_cat=107&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=D4bpr0iVFD0AX-eQfA7&_nc_ht=scontent.fhan3-2.fna&oh=03_AdTzNxLUzPy_-yDCexl5P_SUTHnfYZTTe0PcoWl2oxxx3w&oe=65FFA34C> </center> * Calculation Table <center> <img src = https://scontent.fhan4-3.fna.fbcdn.net/v/t1.15752-9/429329497_242934688872591_5086738341360421140_n.png?_nc_cat=100&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=PiCjdA30BW4AX_9WwkV&_nc_ht=scontent.fhan4-3.fna&oh=03_AdSqRBfA5tpYZKkYHneFAomBkAXywyjGqvz2YPiPPbbaLQ&oe=65FF96A0> </center> * The algorithm results in the minimum average waiting time (over all processes) is: **SJF Scheduling Algorithm**. ::: #### Question 5 :::info The following processes are being scheduled using a preemptive, roundrobin scheduling algorithm. | Process | Priority | Burst | Arrival | |:-------:|:--------:|:-----:|:-------:| | P~1~ | 40 | 20 | 0 | | P~2~ | 30 | 25 | 25 | | P~3~ | 30 | 25 | 30 | | P~4~ | 35 | 15 | 60 | | P~5~ | 5 | 10 | 100 | | P~6~ | 10 | 10 | 105 | Each process is assigned a numerical priority, with a higher number indicating a higher relative priority. In addition to the processes listed above, the system also has an idle task (which consumes no CPU resources and is identied as Pidle). This task has priority 0 and is scheduled whenever the system has no other available processes to run. The length of a time quantum is 10 units. If a process is preempted by a higher-priority process, the preempted process is placed at the end of the queue. 1. Show the scheduling order of the processes using a Gantt chart. 2. What is the turnaround time for each process? 3. What is the waiting time for each process? 4. What is the CPU utilization rate? ::: :100: ==**++Answer++**== :::spoiler 1. ::: #### Question 6 :::info What advantage is there in having different time-quantum sizes at different levels of a multilevel queueing system? ::: :100: ==**++Answer++**== :::spoiler ::: #### Question 7 :::info Suppose that a CPU scheduling algorithm favors those processes that have used the least processor time in the recent past. Why will this algorithm favor I/O-bound programs and yet not permanently starve CPU-bound programs? ::: :100: ==**++Answer++**== :::spoiler 1. ::: #### Question 8 :::info Suppose that a CPU scheduling algorithm favors those processes that have used the least processor time in the recent past. Why will this algorithm favor I/O-bound programs and yet not permanently starve CPU-bound programs? ::: :100: ==**++Answer++**== :::spoiler 1. ::: #### Question 9 :::info Distinguish between PCS and SCS scheduling. ::: :100: ==**++Answer++**== :::spoiler 1. ::: #### Question 10 :::info The traditional UNIX scheduler enforces an inverse relationship between priority numbers and priorities: the higher the number, the lower the priority. The scheduler recalculates process priorities once per second using the following function: ==Priority = (recent CPU usage / 2) + base== where base = 60 and recent CPU usage refers to a value indicating how often a process has used the CPU since priorities were last recalculated. Assume that recent CPU usage for process P1 is 40, for process P2 is 18, and for process P3 is 10. What will be the new priorities for these three processes when priorities are recalculated? Based on this information, does the traditional UNIX scheduler raise or lower the relative priority of a CPU-bound process? ::: :100: ==**++Answer++**== :::spoiler 1. ::: ### PART D #### Question 1 :::info **Dữ liệu sau cho 3 câu hỏi tiếp theo.** Hệ thống có 4 quá trình, với thời điểm đến và CPU burst như trong bảng: | Process | Arrival time | CPU burst | |:-------:|:------------:|:---------:| | P1 | 0 | 8 | | P2 | 2 | 2 | | P3 | 3 | 6 | | P4 | 6 | 2 | ::: :::success **++Câu 1++**: Sử dụng định thời **FCFS** thì thời gian đợi (waiting time) trung bình là: | ==A. 5,75== | B. 6,25 | C. 6,75 | D. Khác | | ----------- | ------- | ------- | ------- | ::: * ==**++Answer++**== :::spoiler * Gantt chart <center> <img src = https://scontent.fsgn2-6.fna.fbcdn.net/v/t1.15752-9/428437825_322778816933281_6658814494092524738_n.png?_nc_cat=110&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=9P3QmqIwhC4AX8-ZEAW&_nc_oc=AQmE2ELdZA1QSNsOzIaRHsexs-AuurfNBLpJ5vS-kAagQZTq1vrZrmJ7P8pj_1QwEH4&_nc_ht=scontent.fsgn2-6.fna&oh=03_AdT5_R--ecwP9dnLGG4amxaFAxzd3PjeI2YQcs2cvB1zZw&oe=65FF05EF> </center> * Average waiting time: <center> <img src = https://scontent.fsgn2-9.fna.fbcdn.net/v/t1.15752-9/428448424_1565661567524059_5586030394639815856_n.png?_nc_cat=103&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=W84ralVKMQcAX9b5FRA&_nc_ht=scontent.fsgn2-9.fna&oh=03_AdTSs4z4XyOuQ-ixVtKrfqnQ9Wq0H5KUHHB79pMaAeYYlg&oe=65FF0AF3> </center> ::: :::success ++**Câu 2**++: Nếu dùng **SJF** thì thời gian đợi (waiting time) trung bình là: (Quá trình đến trước sẽ được “ưu tiên”) | A. 6,75 | B.5,75 | ==C. 4,75== | D. Khác | | ------- | ------ | ----------- | ------- | ::: * ==**++Answer++**== :::spoiler * Gantt chart <center> <img src = https://scontent.fsgn2-9.fna.fbcdn.net/v/t1.15752-9/428358247_944108124090540_2820163607937546714_n.png?_nc_cat=106&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=eLeOCcVZxHwAX-wUvH1&_nc_ht=scontent.fsgn2-9.fna&oh=03_AdQ-xfWy3W4sRj9Wy_GkY_Q9oT71gNehUuZvSH-61F6BBQ&oe=65FF11D1> </center> * Average waiting time: <center> <img src = https://scontent.fsgn2-9.fna.fbcdn.net/v/t1.15752-9/428252247_251586131329941_8458049525187399337_n.png?_nc_cat=103&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=KWWgX5IauNQAX8wgtCO&_nc_ht=scontent.fsgn2-9.fna&oh=03_AdQaAzXPOEKtBxY6gw_BfsnQ5N7UO-m1BpuHHi5aN5oCAg&oe=65FF396E> </center> ::: :::success ++**Câu 3**++: Dùng **Round Robin** với **quantum time = 2**. Nếu tại thời điểm t, process P~i~ vừa hết quantum và process P~j~ vừa đến thì P~j~ xếp trước P~i~ trong hàng đợi ready. Số lần định thời xảy ra (kể cả lúc t = 0 và t = 22) là: | A. 10 | B. 11 | C. 12 | ==D. Khác== | | ----- | ----- | ----- | ----------- | ::: * ==**++Answer++**== :::spoiler <center> <img src = https://scontent.fsgn5-5.fna.fbcdn.net/v/t1.15752-9/429130060_1376565122992786_2170944948883208138_n.png?_nc_cat=100&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=6psNK7NIcpUAX-8sGB9&_nc_ht=scontent.fsgn5-5.fna&oh=03_AdRVrq8EAkK67_aCpKv3yJHcShiUmGECSkt-448xEC_YHw&oe=65FF7284> </center> ::: #### Question 2 :::info Thông tin sau dành cho 2 câu tiếp theo. Cho bảng các quá trình sau: | Process | Arrival time | CPU burst | |:-------:|:------------:|:---------:| | P1 | 0 | 5 | | P2 | 2 | 4 | | P3 | 4 | 1 | | P4 | 5 | 6 | | P5 | 6 | 3 | ::: :::success Câu 4: Với **định thời SJF**, thời gian đợi trung bình là: | A. 3.2 | B. 4.6 | C. 6 | ==D. Khác== | | ------ | ------ | ---- | ------- | ::: * ==**++Answer++**== :::spoiler * Gantt chart <center> <img src = https://scontent.fhan3-4.fna.fbcdn.net/v/t1.15752-9/429092201_764461988591846_3002258682700584951_n.png?_nc_cat=104&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=9Hju-I7Ckc8AX-VI7B3&_nc_ht=scontent.fhan3-4.fna&oh=03_AdRoWXeOQj-ms9hzubroN0hnIGXu1HKJS48GkC3IQJkmVQ&oe=65FF74A2> </center> * Calculate waiting time and turnaround time <center> <img src = https://scontent.fsgn5-11.fna.fbcdn.net/v/t1.15752-9/429107165_1502482703655880_8897772174121343046_n.png?_nc_cat=110&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=bVDK2iAUuSEAX_RuvZl&_nc_ht=scontent.fsgn5-11.fna&oh=03_AdTbfwwNtVtazlNzHUfmJ9d4WLOPQ73vzZdK_Eg75JpsfA&oe=65FF9384> </center> ::: :::success Câu 5: Với **định thời FCFS**, thời gian đợi trung bình là: | A. 9 | ==B. 4.6== | C. 5.6 | D. Khác | | ---- | ---------- | ------ | ------- | ::: * ==**++Answer++**== :::spoiler * Gantt chart <center> <img src = https://scontent.fhan4-2.fna.fbcdn.net/v/t1.15752-9/429594480_783801546934494_4338488290601062819_n.png?_nc_cat=111&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=XT7E1ciwzsYAX_6RnIP&_nc_ht=scontent.fhan4-2.fna&oh=03_AdRbhyOBYsBuR-vYDOTMvpCK18RyAtX6_uSQ_cJpjfYHnQ&oe=65FF7C6A> </center> * Calculate waiting time <center> <img src = https://scontent.fsgn5-11.fna.fbcdn.net/v/t1.15752-9/429317168_1353445529389047_2532433076437905890_n.png?_nc_cat=111&ccb=1-7&_nc_sid=8cd0a2&_nc_ohc=KM83ytC0rU4AX8fRjMs&_nc_ht=scontent.fsgn5-11.fna&oh=03_AdTSCjnRfINdLzqiITNiWO5sWSTHY5uiB2loW40BRbxeKw&oe=65FF77EE> </center> ::: ### PART E --- ## EXERCISE :four: : FILE & DISK SYSTEMS ### PART A : MULTIPLE CHOICES 1. **Để đảm bảo tính bền vững cho thông tin lưu trữ, thiết bị lưu trữ (gọi là đĩa) sẽ sử dụng loại vật liệu nào dưới đây?** A. Đĩa từ tính B. Đĩa quang C. Chip bán dẫn bằng chất dẻo. ==D. Tất cả các loại trên.== 2. **Đặc tính nào dưới đây KHÔNG đáp ứng được yêu cầu tăng tốc độ truy xuất thông tin trên thiết bị lưu trữ?** A. Tăng tốc độ xoay đĩa. B. Tăng tốc truyền dẫn. ==C. Tăng tốc độ xử lý của CPU.== D. Giảm thời gian tìm kiếm / đọc / ghi. 3. **Hạng mục nào dưới đây KHÔNG phải là yêu cầu về lưu trữ thông tin đối với Hệ điều hành?** ==A. kích thước (size)== B. tính bền vững (persistence). C. dễ sử dụng (ease of use). D. cho phép chia sẻ và bảo vệ (Sharing/Protection). 4. **Khái niệm tập tin (file) nào dưới đây là đúng?** A. File là chuỗi các bytes thông tin được lưu trữ trên bộ nhớ RAM. ==B. File là chuỗi các bytes thông tin được lưu trữ trên CPU== C. File là chuỗi các bytes thông tin được lưu trữ trên thiết bị đĩa. D. File là chuỗi các bytes thông tin được lưu trữ trên thanh ghi. 5. **Tập tin trên ổ đĩa được lưu trữ theo cấu trúc nào?** A. cấu trúc dạng cây (tree) và không có cấu trúc. B. cấu trúc đơn cấp và không có cấu trúc. ==C. có cấu trúc và không có cấu trúc.== D. cấu trúc đa cấp và không có cấu trúc. 6. **Tập tin không cấu trúc là loại nào?** ==A. tập tin là một dãy tuần tự các byte== B. tập tin là một dãy các mẫu tin có kích thước cố định C. tập tin gồm một cây của những mẫu tin không cần thiết có cùng chiều dài D. tập tin có một trường khóa giúp việc tìm kiếm nhanh hơn 7. **Tập tin có cấu trúc là loại nào?** A. tập tin là một dãy tuần tự các byte ==B. tập tin là một dãy các mẫu tin có kích thước cố định== C. tập tin gồm một cây của những mẫu tin không cần thiết có cùng chiều dài D. tập tin có một trường khóa giúp việc tìm kiếm nhanh hơn 8. **Đặc điểm của tập tin chia sẻ:** A. Mỗi người dùng có một bản sao tập tin. ==B. Chỉ có một tập tin thực sự tồn tại.== C. Mỗi người dùng lưu sửa đổi tập tin riêng. D. Tất cả người dùng có thể đồng thời sửa tập tin. 9. **Truy cập tập tin KHÔNG dùng phương pháp nào?** A. Truy cập tuần tự (sequential access). B. Truy cập ngẫu nhiên (random access). C. Truy cập dùng khóa (Key). ==D. Truy cập dùng ma trận (matrix).== 10. **Những tác vụ nào của tiến trình tác động trực tiếp đến tập tin?** A. load, execute, create process, terminate process. B. request device, release device, read from device, write to device. ==C. create / delete, open / close, read, write.== D. create messages, delete messages, send messages, receive messages. 11. **Cấu trúc thư mục có các dạng nào?** A. tương đối và tuyệt đối. B. chu trình và không chu trình. ==C. đơn cấp, hai cấp, cây, đồ thị== D. liên kết và không liên kết. 12. **Dạng cấu trúc thư mục nào của Hệ điều hành không cho phép trùng tên file lưu trữ bên trong một hệ thống tập tin?** ==A. đơn cấp (Single-level directory).== B. hai cấp (Two-level directory). C. dạng cây (Tree-structured directory). D. ba cấp (Three-level directory). 13. **Dạng cấu trúc thư mục nào của Hệ điều hành phân chia mỗi người dùng có danh sách tập tin riêng biệt?** A. đơn cấp (Single-level directory). ==B. hai cấp (Two-level directory).== C. dạng cây (Tree-structured directory). D. ba cấp (Three-level directory). 14. **Dạng cấu trúc thư mục nào của Hệ điều hành cho phép người dùng có thể truy xuất vào tập tin của người dùng khác trong cùng hệ thống tập tin?** A. đơn cấp (Single-level directory). B. hai cấp (Two-level directory). ==C. dạng cây (Tree-structured directory).== D. ba cấp (Three-level directory). 15. **Dạng cấu trúc thư mục nào của Hệ điều hành cho phép người dùng có thể phân nhóm tập tin theo ý muốn?** A. đơn cấp (Single-level directory). B. hai cấp (Two-level directory). ==C. dạng cây (Tree-structured directory).== D. ba cấp (Three-level directory). 16. **Dạng cấu trúc thư mục nào của Hệ điều hành cho phép một file (hay thư mục con) chia sẻ cho nhiều thư mục cha:** A. đơn cấp (Single-level directory). B. hai cấp (Two-level directory). C. dạng cây (Tree-structured directory). ==D. dạng đồ thị không chứa chu trình (Acyclic-graph directory).== 17. **Khi duyệt thư mục trong cấu trúc dạng đồ thị không chứa chu trình (Acyclic-graph directory), hệ điều hành sẽ:** ==A. bỏ qua các liên kết.== B. duyệt cả các liên kết. C. duyệt riêng các liên kết. D. đếm số liên kết tới tập tin. 18. **Trong hệ thống tập tin, tên đường dẫn tuyệt đối tới tập tin xuất phát từ:** A. thư mục gốc của người dùng. B. thư mục hiện thời. ==C. thư mục gốc.== D. thư mục cha. 19. **Trong hệ thống tập tin, tên đường dẫn tương đối tới tập tin xuất phát từ:** A. thư mục người dùng. ==B. thư mục hiện thời.== C. thư mục gốc. D. thư mục cha. 20. **Hệ thống quản lý tập tin (file system) được quản lý bởi:** A. người dùng ==B. hệ điều hành== C. tiến trình D. luồng (thread) 21. **Volume (tạm dịch: bộ lưu) là gì?** ==A. một thực thể chứa hệ thống tập tin.== B. một phân khu trên đĩa cứng. C. một phân khu tráo đổi. D. một phân vùng nhớ. 22. **Hệ điều hành KHÔNG THỂ tổ chức 1 hệ thống quản lý tập tin (file system) trên đối tượng lưu trữ nào?** A. một phân khu (partition). B. nhiều phân khu (partitions). C. một ổ đĩa (disk) ==D. không gian tráo đổi (swap partition).== 23. **Các hệ thống quản lý tập tin thường nhóm các cung từ (sector) thành các liên cung (cluster). Mục đích của việc này là gì?** A. tăng số dòng chỉ mục (index) cho bảng cấp phát tập tin. ==B. nội dung của 1 tập tin nằm trên các sector gần kề => tăng hiệu suất truy xuất.== C. tiết kiệm không gian lưu trữ. D. Tất cả đúng. 24. **Điều nào sau đây là KHÔNG ĐÚNG đối với việc tổ chức không gian lưu trữ trên ổ đĩa (Layout) của Hệ điều hành?** A. Chia không gian ổ đĩa thành những block (hay Cluster) bằng nhau. B. Xây dựng bảng “Partition Control Block” ghi địa chỉ block, used blocked… C. Xây dựng bảng “File Control Block” ghi lưu thông tin các file, địa chỉ lưu trữ file… ==D. Định thời cho CPU truy xuất các file trong đĩa.== 25. **Quan sát “layout tổ chức không gian lưu trữ tập tin trên đĩa” bên dưới. Cho biết đây là layout của Hệ điều hành nào?** A. MS-DOS File system. B. Windows XP File system. ==C. Unix File system.== D. Netware File system <center> <img src = https://scontent.fsgn2-5.fna.fbcdn.net/v/t1.15752-9/432360489_1568989850561631_271003674256210551_n.png?_nc_cat=104&ccb=1-7&_nc_sid=5f2048&_nc_ohc=M_PZg3bGggYAb6tHwk6&_nc_ht=scontent.fsgn2-5.fna&oh=03_Q7cD1QFHjf8SFVjNiL2i2q9CUL7O44tWOTdyILs7SaPG0dCyIA&oe=664C0F8E > </center> 26. **Quan sát “layout tổ chức không gian lưu trữ tập tin trên đĩa” bên dưới. Cho biết đây là layout của Hệ điều hành nào?** ==A. MS-DOS File system== B. Windows XP File system. C. Unix File system. D. Netware File system. 27.Tổ chức của MS– DOS <center> <img src = https://scontent.fsgn2-10.fna.fbcdn.net/v/t1.15752-9/431612572_291559140629230_318077914593542774_n.png?_nc_cat=109&ccb=1-7&_nc_sid=5f2048&_nc_ohc=VEFofsN672EAb6cFaos&_nc_ht=scontent.fsgn2-10.fna&oh=03_Q7cD1QHl7Ty1JXw7GmKkHxAg5M9l9fw_QV-oPEwElte1kmajPg&oe=664C330E> </center> 27. **Tổ chức của MS– DOS** A. Boot block, FAT, Master boot, data blocks B. Boot block, FAT32, root directory, data blocks ==C. Boot block, FAT, root directory, data blocks== D. Boot block, NTFS, root directory, Master Boot 28. **Cấu trúc thư mục của hệ điều hành MS-DOS là** A. Cấu trúc thư mục dạng đơn cấp B. Cấu trúc thư mục dạng hai cấp ==C. Cấu trúc thư mục dạng cây== D. Cấu trúc thư mục dạng ba cấp 29. **Hệ điều hành thực hiện việc cấp phát không gian lưu trữ trên đĩa cho đối tương nào?** A. Thư mục (Folder) ==B. Tập tin (File)== C. Bộ nhớ (Memory) D. Tiến trình (Process) 30. **Phát biểu nào KHÔNG ĐÚNG về VFS (Virtual File System)?** ==A. VFS là hệ thống quản lý tập tin, được lưu trữ trên mỗi ổ đĩa.== B. là một thư viện dùng chung do Hệ điều hành tạo ra C. hỗ trợ ứng dụng truy cập Files trên các ổ đĩa dùng File System khác nhau D. ứng dụng chỉ cần gởi yêu cầu truy xuất file cho VFS. 31. **Phương pháp “cấp phất không gian lưu trữ trên đĩa” nào dưới đây là không có?** A. Cấp phát liên tục (continuous allocation) B. Cấp phát theo danh sách liên kết (linked list allocation) ==C. Cấp phát theo nhu cầu (required allocation).== D. Cấp phát dùng chỉ mục (indexed allocation) 32. **Quan sát bảng thư mục dưới đây và cho biết thuộc loại “cấp phất không gian lưu trữ trên đĩa” nào?** A. ==Cấp phát liên tục (continuous allocation)== B. Cấp phát theo danh sách liên kết (linked list allocation) C. Cấp phát dùng chỉ mục (indexed allocation). D. Cấp phát theo nhu cầu (required allocation). <center> <img src = https://scontent.fsgn2-11.fna.fbcdn.net/v/t1.15752-9/431674778_261167613707221_4160363642934842349_n.png?_nc_cat=105&ccb=1-7&_nc_sid=5f2048&_nc_ohc=ScgRpQSRZbcAb5_AcPT&_nc_ht=scontent.fsgn2-11.fna&oh=03_Q7cD1QHFl90_1MwmhZmVpnW7kCnozJ2wnBl-vbeChBTr9FpHqw&oe=664C0E12 > </center> 33. **Quan sát cấu trúc cấp phát block cho “File A” ở hình dưới. Cho biết đây là loại “cấp phất không gian lưu trữ trên đĩa” nào?** A. Cấp phát liên tục (continuous allocation) ==B. Cấp phát theo danh sách liên kết (linked list allocation)== C. Cấp phát dùng chỉ mục (indexed allocation). D. Cấp phát theo nhu cầu (required allocation). <center><img src = https://scontent.fsgn2-10.fna.fbcdn.net/v/t1.15752-9/431611568_287674977540558_5605583258280223266_n.png?_nc_cat=109&ccb=1-7&_nc_sid=5f2048&_nc_ohc=I5-sBtbptaYAb7cb-U0&_nc_ht=scontent.fsgn2-10.fna&oh=03_Q7cD1QFJZ-v2HqtkaOGcC9NSiIXga6Mib0gJxTxq_kTpjfH3EA&oe=664C3032></center> 34. **Quan sát cấu trúc cấp phát block ở hình dưới. Cho biết đây là loại “cấp phất không gian lưu trữ trên đĩa” nào?** A. Cấp phát liên tục (continuous allocation) B. Cấp phát theo danh sách liên kết (linked list allocation) ==C. Cấp phát dùng chỉ mục (indexed allocation).== D. Cấp phát theo nhu cầu (required allocation). <center><img src = https://scontent.fsgn2-7.fna.fbcdn.net/v/t1.15752-9/431838676_709990261345682_6297453525778863640_n.png?_nc_cat=100&ccb=1-7&_nc_sid=5f2048&_nc_ohc=bWE5YIxMDmkAb6z7CB6&_nc_ht=scontent.fsgn2-7.fna&oh=03_Q7cD1QHBUyCBokPQxRHnnAdVlgrwK_GAQUlJLtHSJd75j5ZL7A&oe=664C0A6B></center> 35. **Hệ thống quản lý tập tin FAT của Hệ điều hành MS-DOS dùng phương pháp “cấp phất không gian lưu trữ trên đĩa” nào?** A. Cấp phát liên tục (continuous allocation) ==B. Cấp phát theo danh sách liên kết (linked list allocation)== C. Cấp phát dùng chỉ mục (indexed allocation). D. Cấp phát theo nhu cầu (required allocation). 36. **Hệ thống quản lý tập tin Ext2 của Hệ điều hành Linux dùng phương pháp “cấp phất không gian lưu trữ trên đĩa” nào?** A. Cấp phát liên tục (continuous allocation) B. Cấp phát theo danh sách liên kết (linked list allocation) ==C. Cấp phát dùng chỉ mục (indexed allocation).== D. Cấp phát theo nhu cầu (required allocation). 37. **Phương pháp cấp phát không gian đĩa liên tục (continuous allocation) có đặc điểm:** A. Dễ thao tác và cài đặt. B. Tập tin không thể phát triển kích thước. C. Gây phân mảnh đĩa. ==D. dễ gây phân mảnh, dễ thao tác cài đặt, không thay đổi kích thước.== 38. **Phương pháp cấp phát không gian đĩa liên tục (continuous allocation), thời gian tìm kiếm (seek time) cho 1 tập tin lưu trữ trên n blocks sẽ bằng bao nhiêu?** A. bằng n lần seek time. ==B. bằng thời gian cho 1 lần seek time.== C. bằng n/2 lần seek time. D. bằng 2n lần seek time. 39. **Phương pháp cấp phát không gian đĩa liên tục (continuous allocation), dòng thông tin file trong bảng thư mục (directory table) cần phải có các thông tin?** ==A. số hiệu khối bắt đầu và số khối đã cấp cho file.== B. số hiệu khối đầu và cuối của file. C. số hiệu cung từ (sector) bắt đầu của tập tin. D. số cung từ (sector) đã cấp cho tập tin. 40. **Trong bảng thư mục (directory table) của phương pháp cấp phát đĩa kiểu danh sách liên kết (linked allocation), mỗi dòng thông tin file phải có hạng mục nào?** A. số hiệu khối bắt đầu và số khối đã cấp cho file. ==B. số hiệu khối đầu và khối cuối của file.== C. số hiệu cung từ (sector) bắt đầu của tập tin. D. số cung từ (sector) đã cấp cho tập tin. 41. **Các phương pháp thường dùng để quản lý không gian trống:** ==A. Danh sách liên kết (Linked list) và bit vector.== B. Bảng chỉ mục. C. Ngăn xếp. D. Bảng cấp phát tập tin. 42. **Phương pháp quản lý không gian trống bằng “vector bit”, mỗi khối trống (free) hoặc đã dùng (used) trên đĩa sẽ được biểu diễn bằng:** A. một byte (Yes hoặc No). B. một con trỏ trong bảng các khối trống. ==C. một bit (0 hoặc 1).== D. một chỉ mục trong bảng các khối trống. 43. **Trong phương pháp quản lý không gian trống bằng “Linked list” (danh sách liên kết), mỗi khối trống (free block) sẽ có:** ==A. một con trỏ chỉ đến khối trống kế.== B. một thông tin báo hiệu là khối trống. C. một ngăn xếp các khối trống. D. một bảng chỉ mục các khối trống. ### PART B #### Question 01 :::info A $255$-**GB** disk has $65,536$ cylinders with $255$ sectors per track and $512$ bytes per sector. How many **platters** and **heads** does this disk have? Assuming an average cylinder seek time of $11 \text{msec}$, average rotational delay of $7 \text{msec}$ and reading rate of $100 \text{MB/sec}$, calculate the average time it will take to read $400 \text{KB}$ from one sector ? ::: :100: **++Answer++** :::spoiler We have: $255 (\text{GB}) = 255 \times 2^{30} (\text{B}) = 65536 \times \text{N}_{\text{heads}} \times 255 \times 512 (\text{B})$ $\Leftrightarrow \text{N}_{\text{heads}} = 32 \text{ (heads)}$ $\implies \text{N}_{\text{platters}} = \displaystyle \frac{32}{2} = 16 \text{ (platters)}$ We also have: $$\begin{split}\begin{cases}\text{seek_time} &= 11 \text{ (msec)} \\ \text{rotational_time} &= 7 \text{ (msec)}\\ \text{data_transfer_time} &= \displaystyle \frac{400 \times 2^{10} \times 1000}{100 \times 2^{20}} = 3.90625 \text{ (msec)}\end{cases}\end{split}$$ $\implies \text{Average Disk Access Time} = 11 + 7 + 3.90625 = 21.90625 \text{ (msec)}$ ::: #### Question 02 :::info Suppose that a $10-\text{MB}$ file is stored on a disk on the same track (track $50$) in consecutive sectors. The disk arm is currently situated over track number $100$. How long will it take to retrieve this file from the disk? Assume that it takes about $1 \text{ msec}$ to move the arm from one cylinder to the next and about $5 \text{ msec}$ for the sector where the beginning of the file is stored to rotate under the head. Also, assume that reading occurs at a rate of $200 \text{ MB/s}$. ::: :100: **++Answer++** :::spoiler We have: $$\begin{split}\begin{cases} \text{seek_time} &= (100 - 50) \times 1 \text{ (msec)} = 50 \text{ (msec)} \\ \text{rotational_time} &= 5 \text{ (msec)} \\ \text{data_transfer_time} &= \displaystyle \frac{10 \times 2^{20} \times 1000}{200 \times 2^{20}} = 50 \text{ (msec)} \end{cases} \end{split}$$ $\implies \text{Disk Access Time} = 50 + 5 + 50 = 105 \text{ (msec)}$ ::: #### Question 03 :::info Consider the **Unix I-node** which uses $12$ direct data block addresses, $1$ single indirect, $1$ double indirect, and $1$ triple indirect. The disk block address requires $32$ bits and disk block size is $1$ KB. What is the maximum size? ::: :100: **++Answer++** :::spoiler The number of pointers (addresses) from one disk block: $\displaystyle \frac{1 \times 2^{20} \times 8}{32} = 256$ (pointers) Data block size of $12$ direct data blocks $= 12 \times 1 \text{ (KB)} = 12 \text{ (KB)}$ Data block size of $1$ single indirect block: $256 \times 1 \text{ (KB)} = 256 \text{ (KB)}$ Data block size of $1$ double indirect block: $256 \times 256 \times 1 \text{ (KB)} = 256^2 \text{ (KB)}$ Data block size of $1$ triple indirect block: $256 \times 256 \times 256 \times 1 \text{ (KB)} = 256^3 \text{ (KB)}$ $\implies \text{Maximum file size} = (12 + 256 + 256^2 + 256^3) = 16843020 \text{ (KB)} \approx 16.06 \text{ (GB)}$ ::: #### Question 04 :::info Consider the i-node which contains $10$ direct addresses, $1$ single indirect, and $1$ double indirect. There are $8$ bytes used for each addresses and all disk blocks are $1024 \text{ KB}$, what would the largest possible file be? ::: :100: **++Answer++** :::spoiler The number of pointers per disk block: $\displaystyle \frac{1024 \times 2^{10}}{8} = 2^{17}$ (pointers) Data block size of $10$ direct blocks: $10 \times 1024 \text{ (KB)} = 10240 \text{ (KB)} = \displaystyle \frac{5}{512} \text{ (GB)}$ Data block size of $1$ single indirect block: $2^{17} \times 1024 \text{ (KB)} = 134217728 \text{ (KB)} = 128 \text{ (GB)}$ Data block size of $1$ double indirect block: $2^{17} \times 2^{17} \times 1024 \text{ (KB)} = 16777216 \text{ (GB)}$ $\implies \text{Maximum file size} \approx 16 \text{ PB}$ ::: #### Question 05 :::info Consider a disk request for disk blocks on cylinders as follows: $93, 182, 37, 20, 122, 185, 14, 120, 65, 67$. The cylinders are numbered from $0$ to $199$. Assume the current position of **R/W** head is at $53$. For each of **FCFS**, **SSTF**, **SCAN**, **C-SCAN**, **LOOK**, and **C-LOOK** disk scheduling algorithms: * Give the **total number** of **R/W head movement** while servicing these requests? * Assume a seek takes $6 \text{ msec}$ per cylinder. How much seek time is needed for each algorithm? ::: :100: **++Answer++** :::spoiler * **++FCFS disk scheduling algorithms++** * The total number of R/W head movement while servicing these requests: $(182 - 53) + (182 - 20) + (185 - 20) + (185 - 14) + (120 - 14) + (120 - 65) + (67 - 65) = 790$ * The seek time is needed for FCFS algorithm: $790 \times 6 \text{ (msec)} = 4.74 \text{ (secs)}$ <center> <img src = https://scontent.fsgn2-7.fna.fbcdn.net/v/t1.15752-9/431148367_943563190457820_5795466685709490625_n.png?_nc_cat=100&ccb=1-7&_nc_sid=5f2048&_nc_ohc=mZH3RV71e4IAX83xBug&_nc_ht=scontent.fsgn2-7.fna&oh=03_AdStT1ZnlMDHqqJphI2Hs8kmUnSZ_3BqdBH0OdK1OdooMA&oe=6617FD22> </center> * **++SSTF disk scheduling algorithms++** <center> <img src = > </center> ::: ---