140 likes | 168 Views
A Brief Discussion on Operating System Organization. The “THE” Operating System. System Operator. User Programs. I/O Management. Operator-Process Communication.
E N D
A Brief Discussion onOperating System Organization Operating System Organization
The “THE” Operating System System Operator User Programs I/O Management Operator-Process Communication Dijkstra, E. W., “The Structure of the ‘THE’-Multiprogramming System,” Communications of ACM, vol.11, pp. 341-346, May 1968. (.pdf) Memory Management Processes & Semaphores Operating System Organization
Operating System Organizations • The literature in operating systems is full of papers of simple, elegant systems like this one • Simple • Easy to build and maintain by small teams • Very instructive for study • Limited usefulness Operating System Organization
Question • In a typical system, how do the layers or components talk to each other? • Answer: one of two ways • Messages between processes • Procedure/function calls between “modules” Operating System Organization
Message-based systems • Processes are isolated from each other – separate address spaces, etc. • IPC primitives • Send Message (socket, content) • Wait For Message (socket, &content) • Requests, results, and status encoded in message contents • Static processes to manage resources, create abstractions and layers Operating System Organization
Message-based systems – Typical Resource Manager <internal data for managing resource> while (true) { ReceiveMessage (socket, &content) switch (content.action) { case action1: <do something & reply> case action2: <do something else> case action3: <hold pending some event> case action4: <release previously held action & reply> ... } } Operating System Organization
E.g., File Manager void File_Manager(socket fileSocket) { <internal data for managing files> while (true) { ReceiveMessage (fileSocket, &content) switch (content.action) { case write: <start or queue write operation> case seek: <start or queue disk arm motion> case read: <start or queue read operation> case writeDone: <return acknowledgement> case readDone: <return result of previously started read operation> ... } } } Operating System Organization
Message-based systems (continued) • Resource manager • Infinite loop • Created at system start-up, assigned fixed sockets • Effectively a critical section – one request or activity is handled at a time • Maintains internal data structures for queuing up requests that cannot be replied to immediately • No sharing of data with requesting processes • Status information encoded in message content • Reply to specific socket of requester Operating System Organization
Message-based systems (continued) • Requested actions encapsulated in function – e.g., void read(file f, char *p, int len) { socket s = new(socket); content c = {f, readAction,len, s}; content r = {char c[len]); SendMessage(fileManager, c); WaitForMessage(s, &r); strcpy(r.c, p, len); } • Examples • MACH (Carnegie Mellon University) • Mac OS-X Operating System Organization
Procedure/Monitor-based systems • Resource Manager represented as a Monitor – e.g., monitor class file { <internal data for managing files> void read(file f, char *p, int len); void write(file f, char *p, int len); void seek(file f, position); ... } • Requester makes direct function calls to monitor • Implies monitor is same address space Operating System Organization
Process/Monitor systems • Resource manager • Static object with functions; created at start-up • Effectively a critical section – one request or activity is handled at a time • Maintains internal data structures for queuing up requests that cannot be replied to immediately • Shared address space, but internal data hidden from requesters • Status maintained in stack of requesting process • Examples • Pilot Operating System Organization
Requested Actions • Monitor function calls look just like calls to encapsulating functions in Message system – E.g., • void read(file f, char *p, int len); • May either send a message or enter a monitor! • Caller does not know the difference Operating System Organization
Observation • There is really no fundamental difference between systems organized by messages and those organized by monitors • Choice depends upon what is available in underlying system • Shared or separate address spaces • Language support for monitor discipline • … Lauer, H.C. and Needham, R.M., “On the Duality of Operating System Structures,” Operating Systems Review, vol 13, #2, April 1979, pp. 3-19. (.pdf) Operating System Organization
Next Topic Operating System Organization