1 / 4

Operating System Design - Part 1

Operating System Design - Part 1. Goals. what is OS design like? it‘s an engineering project rather than an exact science. have a clear vision of what you want and what you don‘t want in your OS. the four main items for a general-purpose OS are: define abstractions

Download Presentation

Operating System Design - Part 1

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. Operating System Design - Part 1 Goals • what is OS design like? • it‘s an engineering project rather than an exact science have a clear vision of what you want and what you don‘t want in your OS • the four main items for a general-purpose OS are: • define abstractions • provide primitive operations • ensure isolation • manage the hardware • abstractions and primitives: • use objects (data structures) which are manipulated by primitive operations • e. g. processes, files, mutexes etc.

  2. Operating System Design - Part 2 Goals isolation: group resources together for protection purposes. making sure each user can perform only authorized operations on authorized data is a key goal of system design. if some part of the OS goes down no other parts of the system should be affected. manage the hardware: provide a framework for allowing device drivers to manage devices. should the OS also use this framework for chips like interrupt and bus controller? conclusions: the most important but also hardest task is the right abstraction. task: find all system calls and library functions for a given OS. would you use the same system calls and library functions? (think of completeness and efficiency) would you use the same parameters? (think of simplicity)

  3. Ideas - Part 1 everything is an object! make the complete I/O interface uniform one communication object is inherited to all objects  bind subsystems only through this communication object objects must have the ability to declare itselves systemwide invalid files are byte streams to the OS, but they give themselves special meanings, since they are now objects with operations on them (consider a PDF document: Acrobat is an interpreter for PDF operations  remote interpretation possible) from exokernel design: read/write system calls do compare/generate operations on every object’s checksum  no reliable network protocols needed client-server systems must have multiple servers transparent to the users architectural coherence: LEGO is a very good example provide a general and fast object for building linked lists and hash tables

  4. Ideas - Part 2 the namespace itself is an object with its own primitives Windows 2000 namespaces: file system, registry and object name space QNX namespaces: the file system namespaceincludes the I/O device and object name space use only messages for IPC  no mutexes, semaphores, etc. • design every part of the OS separately: • microkernel • file system • memory management • input and output • device drivers • security • process and thread management • manespaces • HAL •  every part must be able to cope with multiprocessors define a systemwide transparent color which is recognized by every part of the GUI

More Related