Answered step by step
Verified Expert Solution
Question
1 Approved Answer
the process node (otur process_s) struct maintains their state using the state member. this 16-bit unsigned short that contains information that have been combined
the process node (otur process_s) struct maintains their state using the state member. this 16-bit unsigned short that contains information that have been combined together using bitwise operations. you are required to use bitwise operators to change the states. | &^ >>> < < state flags crit unused (all 0s) for defunct processes) UR D C 000 description high field name H bit number 15 14 13 12 11 10 9 www exit code 876543210 all flags are individual bits inside of the unsigned short called state in the struct. each bit will either be 0 or a 1. if the bit is a 1, it represents that flag is set. if the bit is a 0, it means that flag is not set. state flags: bits 12-14 represent the current state of the process. (1-bit values) u = running state r = ready state d = defunct state critical flag: bit 11 is a flag representing if the process was set with critical run. (-c) c = critical flag high flag: bit 15 is a flag representing if the process was set with high priority. (-h) h = high flag Bits 0-7 are the lower 8 bits of the Exit Code when the process finished running on the CPU. Otur process s *otur_invoke(pid t pid, int is high, int is critical, char *command); woon woonnom Create a new Process struct and initialize its members. wwwwww Note: For this function, you can assume pid, is high, and is critical are all valid values passed in.PID is also guaranteed to be unique for this process. Create a new Process Node (Otur process s) and initialize it with these values. 1. Set the Ready State bit of the state member to a 1. Only one of the three State flags should be set (1) at any given time. This means Running and Defunct bits should be Os. 2. Set the Critical bit of state to be 0 if is critical is false (0) or 1 if true. 3. Set the High bit of state to be 0 if is high is false (0) or 1 if true. Note, also set the High bit to 1 if is critical is true. Critical processes are always High Priority. 4. Set the lower 8-bits of state to be all Os. 5. Initialize age to 0. 6. Initialize the pid member to the pid argument. 7. Allocate memory (malloc) for the cmd member to be big enough for command. 8. String Copy (strncpy for safety!) command into your struct's cmd member. wwwwww 9. Initialize the next member to NULL. Return a pointer to your new process. Return a pointer to the process on success, or NULL on any errors.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started