1 / 29

Common OS Components

Common OS Components. Process Management Memory Management File Management I/O System Management Disk Management Networking Protection System. Operating System Software. Kernel – the one program running at all times (all else being application programs).

randi
Télécharger la présentation

Common OS Components

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. Common OS Components • Process Management • Memory Management • File Management • I/O System Management • Disk Management • Networking • Protection System Operating System Concepts

  2. Operating System Software • Kernel – the one program running at all times (all else being application programs). • System Software - Applications to support OS activities, e.g., linker, ???? Operating System Concepts

  3. Process Management • A process is a program in execution • A process is active, at a point specified by its PC. A program is passive. • A process needs certain resources, including CPU time, memory, files, and I/O devices, to accomplish its task. • The operating system is responsible for. • Process creation and deletion. • Process suspension and resumption. • Mechanisms for synchronization and communication Operating System Concepts

  4. Memory Management • Memory is a large array of words or bytes, each with its own address. • Main memory is a volatile storage device. • Accessed for instructions and data • The operating system is responsible for : • Keep track of which parts of memory are currently being used and by whom. • Decide which processes to load when memory space becomes available. • Allocate and deallocate memory space as needed Operating System Concepts

  5. File Management • A file is a collection of related information, defined by its creator, e.g., source code, binaries, data • The operating system is responsible for: • File creation and deletion. • Directory creation and deletion. • Support of primitives for accessing and manipulating files and directories • File security • Mapping files onto secondary storage • Hiding differences between storage types Operating System Concepts

  6. I/O System Management • The I/O system consists of: • Drivers for specific hardware devices • A general device-driver interface • A buffer-caching system • The operating system is responsible for: • Servicing requests to use IO devices • Sharing devices between users and processes • Hiding device peculiarities using device drivers • Optimizing device performance • IO error handling • Buffering and caching Operating System Concepts

  7. Disk Management • Disks are used for non-volatile and large storage • The operating system is responsible for: • Free space management and disk space allocation • Disk scheduling for optimized use • Bad block management • Swap space • Disk reliability • DMA • Used for I/O devices that transfer at close to memory speeds. • Transfers blocks directly between device controller and main memory. • Only one interrupt is generated per block • Must cooperate with other RAM usage Operating System Concepts

  8. Networking (Distributed Systems) • A distributed system is a collection processors that do not share memory. The processors are connected through a communication network. • Operating system must support • Communication • Access security • Process/load distribution • Sharing of resources Operating System Concepts

  9. Protection System • Protection refers to a mechanism for internally controlling access by programs, processes, and users to system and user resources. • The protection mechanism must: • Distinguish between authorized and unauthorized usage. • Specify the controls to be imposed. • Provide a means of enforcement • Different from security Operating System Concepts

  10. OS Services for the User • Program execution – system capability to load a program into memory and to run it. • I/O operations – since user programs cannot execute I/O operations directly, the operating system must provide some means to perform I/O. • File-system manipulation – program capability to read, write, create, and delete files. • Communications – exchange of information between processes executing either on the same computer or on different systems tied together by a network. • Error detection – ensure correct computing by detecting errors in the CPU and memory hardware, in I/O devices, or in user programs. Operating System Concepts

  11. OS Services for the Programmer • System calls provide the interface between a running program and the operating system. • Generally available as assembly language instructions. • Languages defined to replace assembly language for systems programming allow system calls to be made directly (e.g., C, C++) • Three general methods are used to pass parameters between a running program and the operating system. • Pass parameters in registers. • Store the parameters in a table in memory, and the table address is passed as a parameter in a register. • Push (store) the parameters onto the stack by the program, and pop off the stack by operating system. Operating System Concepts

  12. Passing of Parameters As A Table Operating System Concepts

  13. OS Services for the OS • Additional functions exist not for helping the user, but rather for ensuring efficient system operations. • Resource allocation – allocating resources to multiple users or multiple jobs running at the same time. • Accounting – keep track of and record which users use how much and what kinds of computer resources for account billing or for accumulating usage statistics. • Protection – ensuring that all access to system resources is controlled. Operating System Concepts

  14. OS Software for the User • System programs provide a convenient environment for program development and execution. They can be divided into: • File manipulation (cd, rm, cat) • Status information (ls, ps, lpstat) • File modification (vi) • Programming language support (g++, gdb, gprof) • Program loading and execution (shell, exec) • Communications (ssh, scp) • Application programs (netscape, mud) • Most users’ views of the operation system are defined by system programs Operating System Concepts

  15. Command Interpreter • The program that reads and interprets control statements is called variously: • Command line interpreter • Shell (in UNIX) • Its function is to get and execute the next command • A shell fulfills commands in two ways • Built in functionality • Loading and running a program Operating System Concepts

  16. System Design Goals • User goals – operating system should be convenient to use, easy to learn, reliable, safe, and fast. • System goals – operating system should be easy to design, implement, and maintain, as well as flexible, reliable, error-free, and efficient. Operating System Concepts

  17. Simple System Structure • Not divided into modules • E.g., MS-DOS – written to provide the most functionality in the least space • Although MS-DOS has some structure, its interfaces and levels of functionality are not well separated Operating System Concepts

  18. Layered System Structure • The operating system is divided into a number of layers (levels), each built on top of lower layers. • The bottom layer (layer 0), is the hardware; the highest (layer N) is the user interface. • Layers use services of only lower-level layers. • Layers cause overhead Operating System Concepts

  19. Layers with Modules Structure • Layers combined with modularity provide flexibility • E.g., OS/2 Operating System Concepts

  20. Microkernel System Structure • Moves as much from the kernel into “user” space. • Communication takes place between user modules using message passing. • Benefits: • Easier to extend a microkernel • Easier to port the operating system to new architectures • More reliable (less code is running in kernel mode) • More secure Operating System Concepts

  21. Virtual Machines • The operating system creates the illusion of multiple processors each with its own (virtual) memory. • A virtual machine provides an interface identical to the underlying bare hardware. Non-virtual Machine Virtual Machine Operating System Concepts

  22. System Implementation • Traditionally written in assembly language, operating systems can now be written in higher-level languages. • Code written in a high-level language: • can be written faster. • is more compact. • is easier to understand and debug. • An operating system is far easier to port (move to some other hardware) if it is written in a high-level language. Operating System Concepts

  23. System Generation (SYSGEN) • Operating systems are designed to run on any of a class of machines • The system must be configured for each specific computer site. • SYSGEN program obtains information concerning the specific configuration of the hardware system. Operating System Concepts

  24. UNIX History • First developed in 1969 by Ken Thompson and Dennis Ritchie of the Research Group at Bell Laboratories; incorporated features of other operating systems, especially MULTICS. • The third version was written in C, which was developed at Bell Labs specifically to support UNIX. • The most influential of the non-Bell Labs and non-AT&T UNIX development groups — University of California at Berkeley (Berkeley Software Distributions). • 4BSD UNIX resulted from DARPA funding to develop a standard UNIX system for government use. • Developed for the VAX, 4.3BSD is one of the most influential versions, and has been ported to many other platforms. • Several standardization projects seek to consolidate the variant flavors of UNIX leading to one programming interface to UNIX. Operating System Concepts

  25. History of UNIX Versions Operating System Concepts

  26. UNIX Design Principles • Designed to be a time-sharing system. • Has a simple standard user interface (shell) that can be replaced. • File system with multilevel tree-structured directories. • Files are supported by the kernel as unstructured sequences of bytes. • Supports multiple processes; a process can easily create new processes. • High priority given to making system interactive, and providing facilities for program development. Operating System Concepts

  27. Early Advantages of UNIX • Written in a high-level language. • Distributed in source form. • Provided powerful operating-system primitives on an inexpensive platform. • Small size, modular, clean design. Operating System Concepts

  28. UNIX System Structure • UNIX – limited by hardware functionality, the original UNIX operating system had limited structuring. • The UNIX OS consists of two separable parts. • Systems programs • Kernel that provides the file system, CPU scheduling, memory management, and other operating-system functions; a large number of functions for one level. Operating System Concepts

  29. System Calls • System calls define the programmer interface to UNIX • The set of systems programs commonly available defines the user interface. • The programmer and user interface define the context that the kernel must support. • Roughly three categories of system calls in UNIX. • File manipulation (same system calls also support device manipulation) • Process control • Information manipulation. Operating System Concepts

More Related