Download presentation
Presentation is loading. Please wait.
Published byHilda Cannon Modified over 9 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.