This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: COP 4600 Operating Systems Solution for Programming Assignment 3 Prepared by Tuba Yavuz-Kahveci University of Florida [email protected] Important Note: In this programming assignment you are required to de- scribe your solution in pseudocode only. MINIX operating system uses a multi-level priority based scheduling algo- rithm. There are 3 priority levels (in increasing order): user processes, server processes, and task processes as shown in Figure 1. If a task process is in ready state then no user process and no server process can run. If no task process is in ready state then some ready server process runs. If there are no task processes and no server processes in ready state then a user process runs. When multiple processes from the same priority level are in their ready state, the scheduler chooses one based on round-robin scheduling. There are two server processes: Memory manager process (MM) and file system process (FS). MM is responsible forwarding all memory related system call requests to the system task whereas FS is s responsible forwarding all file system related system calls. We’ll assume that there is only one task process which is the system task. System task gets user process requests via MM or FS and sends replies (e.g., return status of system call) to user processes again via MM or FS. Processes communicate via message passing and a process can send a message only to the processes in the same level or to the processes in the neighbor level. For instance, a user process can send a message to another user process or MM or FS but not to the system task. When a process executes a receive system call and if there is no incoming message from the expected source then that process blocks (not in ready state)....
View Full Document
- Spring '07
- Operating Systems, Exit, Parent process, Process identifier, user process