* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download CS307-slides02
Process management (computing) wikipedia , lookup
Library (computing) wikipedia , lookup
Berkeley Software Distribution wikipedia , lookup
Burroughs MCP wikipedia , lookup
Plan 9 from Bell Labs wikipedia , lookup
Mobile operating system wikipedia , lookup
Copland (operating system) wikipedia , lookup
Spring (operating system) wikipedia , lookup
Distributed operating system wikipedia , lookup
CS307 Operating Systems Operating-System Structures Fan Wu Department of Computer Science and Engineering Shanghai Jiao Tong University Spring 2012 A View of Operating System Services Operating systems provide an environment for execution of programs and services to programs and users Operating Systems 2 Bourne Shell Command Interpreter Operating Systems 5 First GUI (1973) The first appeared on the Xerox Alto computer in 1973. Operating Systems 6 Mac OS System 1.0 (1984) Operating Systems 7 Amiga Workbench 1.0 (1985) The first GUI with color graphics. Operating Systems 8 Windows 1.0x (1985) Operating Systems 9 IRIX 3 (released in 1986, first release 1984) Operating Systems 10 NeXTSTEP / OPENSTEP 1.0 (1989) Operating Systems 11 Windows 95 (1995) Operating Systems 12 KDE 1.0 (1998) Operating Systems 13 GNOME 1.0 (1999) Operating Systems 14 Windows XP (released in 2001) Operating Systems 15 Windows Vista (released in 2007) Operating Systems 16 Mac OS X Leopard (released in 2007) Operating Systems 17 KDE (v4.0 Jan. 2009, v4.2 Mar. 2009) Operating Systems 18 A View of Operating System Services Operating Systems 19 System Call Programming interface to the services provided by the OS Typically written in a high-level language (C or C++) Example: System call sequence to copy the contents of one file to another file Operating Systems 20 API Mostly accessed by programs via a high-level Application Program Interface (API) rather than direct system call use Three most common APIs Win32 API for Windows POSIX API for POSIX-based systems (UNIX, Linux, and Mac OS X) Java API for the Java virtual machine (JVM) Why use APIs rather than system calls? Program portability System calls are often more detailed and difficult to work with than the API Operating Systems 21 Example of Standard API Consider the ReadFile() function in the Win32 API—a function for reading from a file A description of the parameters passed to ReadFile() HANDLE file—the file to be read LPVOID buffer—a buffer where the data will be read into and written from DWORD bytesToRead—the number of bytes to be read into the buffer LPDWORD bytesRead—the number of bytes read during the last read LPOVERLAPPED ovl—indicates if overlapped I/O is being used Operating Systems 22 API – System Call – OS Relationship Operating Systems 24 Standard C Library Example C program invoking printf() library call, which calls write() system call Operating Systems 25 Examples of Windows and Unix System Calls Operating Systems 30 A View of Operating System Services Operating Systems 31 Operating System Services Operating-system services: User interface - Almost all operating systems have a user interface (UI). Graphics User Interface (GUI), Command-Line (CLI), Batch Program execution - The system must be able to load a program into memory and to run that program, end execution, either normally or abnormally (indicating error) I/O operations - A running program may require I/O, which may involve a file or an I/O device File-system manipulation - Programs need to read and write files and directories, create and delete them, search them, list file Information, permission management. Operating Systems 32 Operating System Services (Cont.) Communications – Processes may exchange information, on the same computer or between computers over a network Communications may be via shared memory or through message passing (packets moved by the OS) Error detection – OS needs to be constantly aware of possible errors May occur in the CPU and memory hardware, in I/O devices, in user program For each type of error, OS should take the appropriate action to ensure correct and consistent computing Debugging facilities can greatly enhance the user’s and programmer’s abilities to efficiently use the system Operating Systems 33 Operating System Services (Cont.) Resource allocation - When multiple users or multiple jobs running concurrently, resources must be allocated to each of them Accounting - To keep track of which users use how much and what kinds of computer resources Protection and security - The owners of information stored in a multiuser or networked computer system may want to control use of that information, concurrent processes should not interfere with each other Protection involves ensuring that all access to system resources is controlled Security of the system from outsiders requires user authentication, extends to defending external I/O devices from invalid access attempts Operating Systems 34 CS307 Operating Systems Operating-System Structure Simple Structure MS-DOS – written to provide the most functionality in the least space Not divided into modules Although MS-DOS has some structure, its interfaces and levels of functionality are not well separated Operating Systems 41 Traditional UNIX System Structure Operating Systems 43 Layered Approach 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. With modularity, layers are selected such that each uses functions (operations) and services of only lower-level layers The main advantage of the layered approach is simplicity of construction and debugging Operating Systems 44 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 Detriments: Performance overhead of user space to kernel space communication Operating Systems 45 Mac OS X Structure (Darwin) Modules Most modern operating systems implement kernel modules Uses object-oriented approach Each core component is separate Each talks to the others over known interfaces Each is loadable as needed within the kernel Overall, similar to layers but with more flexibility Like microkernel but more efficient Solaris Modular Approach Operating Systems 46 Virtual Machines A virtual machine takes the layered approach to its logical conclusion. It treats hardware and the operating system kernel as though they were all hardware. A virtual machine provides an interface identical to the underlying bare hardware. The operating system host creates the illusion that a process has its own processor and (virtual memory). Each guest is provided with a (virtual) copy of underlying computer. Operating Systems 47 Virtual Machines (Cont.) (a) Nonvirtual machine Operating Systems (b) virtual machine 48 Architecture Operating Systems 49 Benefits of Virtualization Before Virtualization After Virtualization • Multiple OSs on a single machine • Hardware-independence of operating system and applications • Better utilization of resources • Encapsulating OS and application into virtual machines • Single OS image per machine • Software and hardware tightly coupled • Underutilized resources • Inflexible and costly infrastructure Operating Systems 50 Virtual Infrastructure for Data Center Operating Systems 51 Amazon Elastic Compute Cloud (EC2) Operating Systems 54 The Java Virtual Machine Operating Systems 55 Homework Reading Chapter 2: Operating-System Structures Operating Systems 56