* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Operating System Structures
Survey
Document related concepts
Library (computing) wikipedia , lookup
Mobile operating system wikipedia , lookup
Security-focused operating system wikipedia , lookup
Plan 9 from Bell Labs wikipedia , lookup
Copland (operating system) wikipedia , lookup
Burroughs MCP wikipedia , lookup
Process management (computing) wikipedia , lookup
Spring (operating system) wikipedia , lookup
Kernel (operating system) wikipedia , lookup
Transcript
Course Overview Introduction Computer System Structures Operating System Structures Processes Process Synchronization Deadlocks CPU Scheduling © 2000 Franz Kurfess Memory Management Virtual Memory File Management Security Networking Distributed Systems Case Studies Conclusions OS Structures 1 Chapter Overview Operating System Structures Motivation Objectives OS Components OS Services System Calls System Programs OS Structure Kernel © 2000 Franz Kurfess Virtual Machines Characteristics of Modern Operating Systems Important Concepts and Terms Chapter Summary OS Structures 2 Motivation to understand the functioning of an operating system, it is important to have an overall view of it many components can’t considered in isolation because they interact with and depend on each other different design approaches are possible with different underlying hardware capabilities © 2000 Franz Kurfess OS Structures 3 Objectives get to know the important components of an operating system understand the interrelationships between the components identify different approaches to the overall design of operating systems be aware of current trends in operating system design © 2000 Franz Kurfess OS Structures 4 OS Components process management main memory management secondary storage management file management I/O system management networking protection user interface © 2000 Franz Kurfess OS Structures 5 OS Services program execution I/O operations file and directory services communication error detection and handling resource allocation protection accounting © 2000 Franz Kurfess OS Structures 6 Producing an Executable. Source Code Object File Compile Executable Link Libraries and other Object files © 2000 Franz Kurfess [David Jones OS Structures 7 System Calls interface between processes and operating system used to request services from the OS provides operations on objects that processes can not or are not allowed to handle directly used by programmers, not by users types of system calls process control file manipulation device manipulation information maintenance communications © 2000 Franz Kurfess OS Structures 8 #include #include #include SystemFunctions Callssupplied by system <sys/types.h> <dirent.h> "ourhdr.h" libraries. These functions will contain a trap instruction. int main(int argc, char *argv[]) { DIR *dp; struct dirent *dirp; if (argc != 2) err_quit("a single argument (the directory name) is required"); if ( (dp = opendir(argv[1])) == NULL) err_sys("can't open %s", argv[1]); while ( (dirp = readdir(dp)) != NULL) printf("%s\n", dirp->d_name); closedir(dp); exit(0); } © 2000 Franz Kurfess [David Jones] OS Structures 9 Interrupt Handling Main Memory User Program #2 User Program #1 trap 002 4 1 3 User Mode 1. Program performs trap 2. OS determines service number 3. Service is located and executed. 4. Control returns to user program. Based on a diagram from “Modern Operating Systems” by Andrew Tanenbaum. 2 Kernel © 2000 Franz Kurfess System/Kernel Mode [David Jones] OS Structures 10 System Programs programs providing more convenient functions to utilize the system directly accessible by the user types of system programs file manipulation and modification programming environments communication status information command interpreter © 2000 Franz Kurfess OS Structures 11 OS Structure monolithic approach the whole OS is one large program often used under resource constraints (processing power, memory space) example: PC DOS layered approach functionalities are grouped into layers from hardware to user programs better separation of functions example: OS © 2000 Franz Kurfess OS Structures 12 Kernel core part of the operating system comprising the minimal set of functionalities process dispatching basic memory management interprocess communication protection is always kept in main memory porting is made easier © 2000 Franz Kurfess OS Structures 13 Virtual Machines software abstraction by the OS provides an interface identical to the corresponding hardware emulates different hardware architectures on the same hardware isolates users, programs, and processes from each other example: Java Virtual Machine © 2000 Franz Kurfess OS Structures 14 Characteristics of Modern Operating Systems microkernel architecture multithreading symmetric multiprocessing distributed operating systems object-oriented design © 2000 Franz Kurfess OS Structures 15 Microkernel Architecture kernel contains only a few essential functions address spaces, interprocess communication, basic scheduling the kernel must be adapted to a specific hardware server processes provide the remaining functionality in the form of services services can be offered by local or remote server processes flexible approach, especially for distributed systems previous architectures: large, monolithic kernel includes most of the OS functionality © 2000 Franz Kurfess OS Structures 16 Multithreading an application is executed by one or more processes each process may be divided into threads threads are the basic unit of work in an OS threads are also known as lightweight processes switching between threads is simpler than between processes the general treatment of threads and processes by the OS is essentially the same a thread shares resources with its peers good for the modularity of applications allows modules to execute largely independently © 2000 Franz Kurfess OS Structures 17 Symmetric Multiprocessing provides more processing power through multiple processing elements the processes share main memory and I/O devices the processors are either identical, or can at least perform the same functions © 2000 Franz Kurfess OS Structures 18 Distributed Operating Systems all resources within the distributed system are available to all processes if they have the right permissions the execution of tasks can be distributed over several nodes there is one single file system encompassing all files on all nodes © 2000 Franz Kurfess OS Structures 19 Object-Oriented Design development method for modular systems the interface of modules is independent of the actual implementation internal details of modules are not accessible to others goes well with the microkernel method and distributed systems © 2000 Franz Kurfess OS Structures 20 OS Design Goals user perspective convenient, system responsive, easy to use, reliable, safe, fast perspective efficient, flexible, reliable, easy to design, implement, and maintain difficult task, requires many tradeoffs © 2000 Franz Kurfess OS Structures 21 Applications Operating System Microkernel OS Micro-Kernel Main Memory Control Unit I/O Devices Registers Hardware CPU Controllers Arithmetic Logic Unit (ALU) © 2000 Franz Kurfess System Bus [David Jones OS Structures 22 Applications Microkernel OS Operating System Server Processes Personalities File System Device Drivers Micro-Kernel CPU Main Memory Control Unit I/O Devices Registers Hardware System Services Controllers Arithmetic Logic Unit (ALU) © 2000 Franz Kurfess System Bus [David Jones OS Structures 23 Applications MicrokernelOS OS Microkernel Users and User Programs Operating System Server Processes Personalities File System Device Drivers Micro-Kernel CPU Main Memory Control Unit I/O Devices Registers Hardware System Services Controllers Arithmetic Logic Unit (ALU) © 2000 Franz Kurfess System Bus [David Jones OS Structures 24 Applications Distributed OS Users and User Programs Hardware Operating System Server Processes Personalities MicroKernel Computer Node © 2000 Franz Kurfess MicroKernel System Services MicroKernel File System MicroKernel MicroKernel Device Drivers MicroKernel Computer Computer Computer Computer Computer Node Node Node Node Node [David Jones OS Structures 25 Future Operating Systems micro-kernel based multiple personalities emulate appearance and functionality of existing OSes distributed © 2000 Franz Kurfess systems OS Structures 26 OS Structure Examples MS-DOS & Windows Windows NT Unix © 2000 Franz Kurfess OS Structures 27 MS-DOS & Windows Structure originally (DOS 1) monolithic due to space and processing power restrictions (Intel 8086, 8 KBytes main memory) slow incorporation of advanced concepts hard disk, hierarchical file systems, I/O redirection, background printing, networking, ... fresh start with Windows NT single-user, multitasking designed for 32-bit microprocessors (Intel Pentium) © 2000 Franz Kurfess OS Structures 28 Windows NT Structure hardware abstraction layer (HAL) provides adaptation to the underlying hardware through a generic hardware interface microkernel thread scheduling, process switching, exception handling (interrupts), multiprocessor synchronization executive modules services for system functions I/O manager, object manager, process manager, virtual memory manager, security reference monitor, windows modules system services interface © 2000 Franz Kurfess to software running in user mode OS Structures 29 Applications and User Interface Windows NT Executive Users and Windows NT Structure Microkernel OSUser Programs POSIX Subsystem Win32 Subsystem OS/2 Subsystem Security Subsystem System Services Local Security Virtual I/O Object Process Procedure Window Reference Memory Call Manager Manager Manager Manager Monitor Manager Cache Facility Manager File System Drivers Network Drivers Device Drivers Micro-Kernel Hardware Abstraction Layer (HAL) Graphic Device Drivers Hardware © 2000 Franz Kurfess [Stallings 98] OS Structures 30 Unix Structure single processor, multi-user, multitasking system portable through implementation in a high-level language (C), in contrast to assembly language relatively large, non-modular kernel access to kernel functions through system calls shells as user interface, GUI (XWindows) added later modern Unix variants have been redesigned around microkernel © 2000 Franz Kurfess OS Structures 31 Modern Unix Kernel elf a.out exec switch file mappings NFS device mappings virtual memory framework anonymous mappings disk driver vnode/vfs FFS interface RFS Common Facilities time-sharing scheduler processes framework block device switch tape driver © 2000 Franz Kurfess Streams network driver tty driver system processes [Stallings 98] OS Structures 32 Important Concepts and Terms command interpreter communication device management directory system distributed system file system interrupt kernel layered structure memory management microkernel monolithic structure multiprocessing multiprogramming multitasking © 2000 Franz Kurfess operating system process process control block (PCB) process management protection resource allocation secondary storage management shell system call system program task thread time-sharing user interface virtual machine OS Structures 33 Chapter Summary the operating system provides services and manages resources user processes request services from the OS through system calls protection, resource management, abstraction modern operating systems separate functions into modules layered approach, microkernel, object-oriented, virtual machine © 2000 Franz Kurfess OS Structures 34