1 / 14

A Brief Discussion on Operating System Organization

A Brief Discussion on Operating System Organization. The “THE” Operating System. System Operator. User Programs. I/O Management. Operator-Process Communication.

Download Presentation

A Brief Discussion on Operating System Organization

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Brief Discussion onOperating System Organization Operating System Organization

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. Next Topic Operating System Organization

More Related