Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

The program for the process manager functions: process creation, replacing the current process image with a new process image and process state transition, are due

The program for the process manager functions: process creation, replacing the current process image with a new process image and process state transition, are due this week. This program is to be written in C or C++ programming languages on a Linux environment.

IMPORTANT: Please make sure that any question or clarification about these labs are addressed early.

2. Process Manager Process: The process manager process simulates four process management functions: creation of new (simulated) processes, replacing the current process image of a simulated process with a new process image, management of process state transitions, and process scheduling. In addition, it spawns a reporter process whenever it needs to print out the state of the system.

The process manager creates the first simulated process (process id = 0) program from an input file (filename: init). This is the only simulated process created by the process manager on its own. All other simulated processes are created in response to the execution of the F instruction (read from the simulated processes).

2.1 Data structures: The process manager maintains six data structures: Time, Cpu, PcbTable, ReadyState, BlockedState, and RunningState.

Time is an integer variable initialized to zero. Cpu is used to simulate the execution of a simulated process that is in running state. It should include data members to store a pointer to the program array, current program counter value, integer value, and time slice of that simulated process. In addition, it should store the number of time units used so far in the current time slice. PcbTable is an array with one entry for every simulated process that hasn't finished its execution yet. Each entry should include data members to store process id, parent process id, a pointer to program counter value (initially 0), integer value, priority, state, start time, and CPU time used so far. ReadyState stores all simulated processes (PcbTable indices) that are ready to run. This can be implemented using a queue or priority queue data structure. BlockedState stores all processes (PcbTable indices) that are currently blocked. This can be implemented using a queue data structure. RunningState stores the PcbTable index of the currently running simulated process. 2.2 Processing input commands: After creating the first process and initializing all its data structures, the process manager repeatedly receives and processes one command at a time from the commander process (read via the pipe). On receiving a Q command, the process manager executes the next instruction of the currently running simulated process, increments program counter value (except for F or R instructions), increments Time, and then performs scheduling. Note that scheduling may involve performing context switching.

On receiving a U command, the process manager moves the first simulated process in the blocked queue to the ready state queue array. On receiving a P command, the process manager spawns a new reporter process. On receiving a T command, the process manager first spawns a reporter process and then terminates after termination of the reporter process. The process manager ensures that no more than one reporter process is running at any moment.

2.3 Executing simulated processes: The process manager executes the next instruction of the currently running simulated process on receiving a Q command from the commander process. Note that this execution is completely confined to the Cpu data structure, i.e. PcbTable is not accessed.

Instructions S, A and D update the integer value stored in Cpu. Instruction B moves the currently running simulated process to the blocked state and moves a process from the ready state to the running state. This will result in a context switch. Instruction E terminates the currently running simulated process, frees up all memory (e.g. program array) associated with that process and updates the PcbTable. A simulated process from the ready state is moved to running state. This also results in a context switch.

Instruction F results in the creation of a new simulated process. A new entry is created in the PcbTable for this new simulated process. A new (unique) process id is assigned and the parent process id is process id of the parent simulated process. Start time is set to the current Time value and CPU time used so far is set to 0. The program array and integer value of the new simulated process are a copy of the program array and integer value of the parent simulated process. The new simulated process has the same priority as the parent simulated process. The program counter value of the new simulated process is set to the instruction immediately after the F instruction, while the program counter value of the of the parent simulated process is set to n instructions after the next instruction (instruction immediately after F). The new simulated process is created in the ready state.

Finally, the R instruction results in replacing the process image of the currently running simulated process. Its program array is overwritten by the code in file filename, program counter value is set to 0, and integer value is undefined. Note that all these changes are made only in the Cpu data structure. Process id, parent process id, start time, CPU time used so far, state, and priority remain unchanged.

Additional Information for the Process Manager:

1.1 Simulated Process: Process management simulation manages the execution of simulated processes. Each simulated process is comprised of a program that manipulates the value of a single integer variable. Thus the state of a simulated process at any instant is comprised of the value of its integer variable and the value of its program counter.

A simulated process program consists of a sequence of instructions. There are seven types of instructions as follows:

S n: Set the value of the integer variable to n, where n is an integer. A n: Add n to the value of the integer variable, where n is an integer. D n: Subtract n from the value of the integer variable, where n is an integer. B: Block this simulated process. E: Terminate this simulated process. F n: Create a new simulated process. The new (simulated) process is an exact copy of the parent (simulated) process. The new (simulated) process executes from the instruction immediately after this (F) instruction, while the parent (simulated) process continues its execution n instructions after the next instruction. R filename: Replace the program of the simulated process with the program in the file filename, and set program counter to the first instruction of this new program. An example of a program for a simulated process is as follows:

S 1000 A 19 A 20 D 53 A 55 F 1 R file_a F 1 R file_b F 1 R file_c F 1 R file_d F 1 R file_e E

You may store the program of a simulated process in an array, with one array entry for each instruction.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Focus On Geodatabases In ArcGIS Pro

Authors: David W. Allen

1st Edition

1589484452, 978-1589484450

More Books

Students also viewed these Databases questions