Presentation is loading. Please wait.

Presentation is loading. Please wait.

ICS 145B -- L. Bic1 Project: Processes and Resource Management Textbook: pages 482-491 ICS 145B L. Bic.

Similar presentations


Presentation on theme: "ICS 145B -- L. Bic1 Project: Processes and Resource Management Textbook: pages 482-491 ICS 145B L. Bic."— Presentation transcript:

1 ICS 145B -- L. Bic1 Project: Processes and Resource Management Textbook: pages 482-491 ICS 145B L. Bic

2 ICS 145B -- L. Bic2 Assignment Design/implement a simplified process and resource manager basic operations (if working alone) –Process: create/destroy –Resource: request/release –Time-out interrupt additional tasks for teams –I/O processing –5.1. page 490 of textbook

3 ICS 145B -- L. Bic3 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 Overall Organization

4 ICS 145B -- L. Bic4 write presentation/test shell –reads command from terminal or test file –invokes kernel function –displays reply (on terminal or in output file) which process is running any errors Overall Organization your terminal/ test files repeat get f, par invoke f(par) get reply display reply Process and Resource Manager

5 ICS 145B -- L. Bic5 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> req R1 *Process B is blocked; Process A is running...

6 ICS 145B -- L. Bic6 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 –Request_IO: running  blocked –IO_Completion: blocked  ready –Scheduler: ready  running/running  ready

7 ICS 145B -- L. Bic7 Operations Request, Request_IO: performed by current process Create, Destroy: performed by parent process Release: performed by some other process Time_out, IO_completion: performed by hardware Scheduler: invoked at end of each operation

8 ICS 145B -- L. Bic8 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)

9 ICS 145B -- L. Bic9 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 ICS 145B -- L. Bic10 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 memory and other resources delete PCB and update all pointers } Process can be destroyed by any of its ancestors or by itself (exit)

11 ICS 145B -- L. Bic11 Representation of Resources There is a fixed set of resources Resource Control Block (RCB) –RID –Status: free or allocated (or counter, if multiple resource units are implemented) –Waiting_List: list of blocked processes

12 ICS 145B -- L. Bic12 Request resource 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 ICS 145B -- L. Bic13 Release resource 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(RL, q); Scheduler(); }}

14 ICS 145B -- L. Bic14 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 ICS 145B -- L. Bic15 Scheduler Called at the end of every kernel call (1) Scheduler() { (2) find highest priority process p (3) if (self->priority 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 ICS 145B -- L. Bic16 Time-out Interrupts Simulate time-sharing Time_out() { find running process q; remove(RL, q); q->Status.Type = 'ready'; insert(RL, q) find highest priority ready process p; ///delete line p->Status.Type = 'running'; ///delete line Scheduler();}

17 ICS 145B -- L. Bic17 I/O Processing Represent all I/O devices collectively as a resource named IO RCB –Name: IO –Waiting_List Assume I/O requests finish in the order of submission

18 ICS 145B -- L. Bic18 Request I/O Request_IO() { self->Status.Type = 'blocked'; self->Status.List = IO; remove(RL, self); insert(IO->Waiting_List, self); Scheduler(); }

19 ICS 145B -- L. Bic19 I/O Completion Simulates HW interrupt IO_completion() { remove(IO->Waiting_List, p); p->Status.Type = 'ready'; p->Status.List = RL; insert(RL, p); Scheduler(); }

20 ICS 145B -- L. Bic20 Presentation/Test Shell Mandatory Commands oinit oquit ocr ode oreq or req orel or rel oto orio oioc

21 ICS 145B -- L. Bic21 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

22 ICS 145B -- L. Bic22 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 (multiple units for teams) –An IO resource (teams only) Submit your program for testing, submit documentation for grading


Download ppt "ICS 145B -- L. Bic1 Project: Processes and Resource Management Textbook: pages 482-491 ICS 145B L. Bic."

Similar presentations


Ads by Google