project processes and resource management n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Project: Processes and Resource Management PowerPoint Presentation
Download Presentation
Project: Processes and Resource Management

Loading in 2 Seconds...

play fullscreen
1 / 21

Project: Processes and Resource Management - PowerPoint PPT Presentation


  • 146 Views
  • Uploaded on

Project: Processes and Resource Management. Textbook: pages 482-491 Lubomir Bic. Assignment. Design/implement a simplified process and resource manager Required functionalities: process: create/destroy resource: request/release time-out interrupt

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

Project: Processes and Resource Management


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
    Presentation Transcript
    1. Project: Processes and Resource Management Textbook: pages 482-491 Lubomir Bic

    2. Assignment • Design/implement a simplified process and resource manager • Required functionalities: • process: create/destroy • resource: request/release • time-out interrupt • multi-unit resources (5.1. page 490 of textbook) • extensive error checking

    3. Overall Organization • Problem: we do not have the actual processes or hardware • Solution: your terminal (or test files) represent • currently running process, and • the hardware causing interrupts

    4. repeat get f, par invoke f(par) get reply display reply your terminal/ test files Process and Resource Manager Overall Organization • Write presentation/test shell • it reads command from terminal or test file • it invokes kernel function • it displays reply (on terminal or to output file) • which process is running • any errors

    5. Presentation/test shell Example: *Process Init is running . . . shell> cr A 1 *Process A is running shell> cr B 2 *Process B is running shell> cr C 1 *Process B is running shell> reqR1,1 *Process B is blocked; Process A is running . . .

    6. Process states and operations • Process states: ready, running, blocked • Possible Operations: • Create: (none)  ready • Destroy: running/ready/blocked  (none) • Request: running  blocked • Release: blocked  ready • Time_out: running  ready • Scheduler: ready  running/running  ready

    7. Process Control Block (PCB) • PID • CPU state — not used • Memory — not used • Open_Files — not used • Other_resources • Status: Type & List • Creation_tree: Parent/Children • Priority: 0, 1, 2 (Init, User, System)

    8. The Ready List (RL) • 3-level priority list 2 = “system” 1 = “user” 0 = “init” • Priorities don’t change • Every process (PCB) is either on the RL on a blocked list

    9. Create a process Create(initialization parameters){ create PCB data structure initialize PCB using parameters link PCB to creation tree insert(RL, PCB) Scheduler() } • Init process is created at start-up & can create first system or user process • Any new or released process is inserted at the end of the queue (RL)

    10. Destroy a process Destroy (pid) { get pointer p to PCB using pid Kill_Tree(p) Scheduler() } Kill_Tree(p) { for all child processes q Kill_Tree(q) free resources delete PCB and update all pointers } • Process can be destroyed by any of its ancestors or by itself (exit)

    11. Representation of Resources • There is a fixed set of resources • Resource Control Block (RCB) • RID • Status: counter for number of free units • Waiting_List: list of blocked processes

    12. Request resource (1-unit resources) Request(rid) { r = Get_RCB(rid); if (r->Status == 'free') { r->Status = 'allocated‘; insert(self->Other_Resources, r); } else { self->Status.Type = 'blocked'; self->Status.List = r; remove(RL, self); insert(r->Waiting_List, self); Scheduler(); } • all requests are satisfied in strict FIFO order

    13. Release resource (1-unit resources) Release(rid) { r = Get_RCB(rid); remove(self->Other_Resources, r); if (r->Waiting_List == NIL} { r->Status = 'free'; } else { remove(r->Waiting_List, q); q->Status.Type = 'ready'; q->Status.List = RL; insert(q->Other_Resources, r); insert(RL, q); Scheduler(); }}

    14. Scheduling • 3-level priority scheduler • Use preemptive round-robin scheduling within level • Time sharing is simulated by function call • Init process serves a dual purpose: • dummy process: lowest priority/never blocked • root of process creation tree

    15. Scheduler • Called at the end of every kernel call (1) Scheduler() { (2) find highest priority process p (3) if (self->priority < p->priority || (4) self->Status.Type != 'running' || (5) self == NIL) (5) preempt(p, self) } Condition (3): called from create or release Condition (4): called from request or time-out Condition (5): called from destroy Preemption: • Change status of p to running (status of self already changed to ready/blocked) • Context switch—output name of running process

    16. Time-out Interrupts • Simulate time-sharing Time_out() { find running process q; remove(RL, q); q->Status.Type = 'ready'; insert(RL, q); Scheduler();}

    17. Presentation/Test Shell • Mandatory Commands • init • cr <name> <priority> • de <name> • req <resource name> <# of units> • rel <resource name> <# of units> • to

    18. Presentation/Test Shell • Optional commands (examples): • list all processes and their status • list all resources and their status • provide information about a given process • provide information about a given resource

    19. Summary of tasks • Design/implement the process and resource manager • data structures and functions • Design/implement a driver program (shell) • command language and interpreter • Instantiate the manager to include at start-up: • A Ready List with 3 priorities • A single process, Init • 4 resources labeled: R1, R2, R3, R4 (each Ri has i units)) • Submit your program for testing, submit documentation for evaluation

    20. Sample test 1 cr x 2 cr y 1 to cr z 2 to req R1 1 to req R1 1 de z rel R1 1 de x init x x x x z z x z x x init

    21. Sample test 2 cr x 1 cr p 1 cr q 1 cr r 1 to req R2 1 to req R3 3 to req R4 3 to to req R3 1 req R4 2 req R2 2 to de q to to init x x x x p p q q r r x p q r x x x p x