Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
MTS system architecture wikipedia , lookup
Plan 9 from Bell Labs wikipedia , lookup
Library (computing) wikipedia , lookup
Copland (operating system) wikipedia , lookup
Distributed operating system wikipedia , lookup
Burroughs MCP wikipedia , lookup
Spring (operating system) wikipedia , lookup
Process management (computing) wikipedia , lookup
Chapter 3 Operating System Structure 1 Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 2 Common System Components Process Management Main Memory Management Secondary-Storage Management I/O System Management File Management Protection System Networking Command-Interpreter System §3.1 3 Process Management 程序管理 §3.1.1 A process is a program in execution. A process needs certain resources, including CPU time, memory, files, and I/O devices, to accomplish its task. A program by itself is not a process; a program is a passive entity, such as the contents of a file stored on disk. A process is an active entity, with a program counter specifying the next instruction to execute. 4 Process Management The execution of a process must be sequential. At any time, at most one instruction is executed on behalf of the process. The operating system is responsible for the following activities in connection with process management. Process creation and deletion. process suspension and resumption. Provision of mechanisms for: process synchronization process communication Deadlock handling 5 Main-Memory Management §3.1.2 Memory is a large array of words or bytes, each with its own address. It is a repository of quickly accessible data shared by the CPU and I/O devices. The CPU reads instructions from main memory during the instruction-fetch cycle, and both reads and writes data from main memory during the data-fetch cycle. The main memory is generally the only large storage device that the CPU is able to address and access directly. 6 Main-Memory Management To improve both the utilization of the CPU and the speed of the computer’s response to its users, we must keep several programs in memory. The operating system is responsible for the following activities in connections with memory management: 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. 7 File Management §3.1.3 A file is a collection of related information defined by its creator. Commonly, files represent programs (both source and object forms) and data. It may be free-form or formatted rigidly. The operating system is responsible for the following activities in connections with file management: File creation and deletion. Directory creation and deletion. Support of primitives for manipulating files and directories. Mapping files onto secondary storage. File backup on stable (nonvolatile) storage media. 8 I/O System Management §3.1.4 奇特 The peculiarities of I/O devices are hidden from the bulk of the OS by the I/O subsystem, which consists of: A memory-management component that includes buffering, caching, and spooling A general device-driver interface Drivers for specific hardware devices 9 Secondary-Storage Management §3.1.5 Since main memory (primary storage) is volatile and too small to accommodate all data and programs permanently, the computer system must provide secondary storage to back up main memory. Most modern computer systems use disks as the principle on-line storage medium, for both programs and data. The operating system is responsible for the following activities in connection with disk management: Free space management Storage allocation Disk scheduling 10 Networking §3.1.6 A distributed system is a collection of processors that do not share memory, peripheral devices, or a clock. Each processor has its own local memory and clock. The processors in the system are connected through communication lines, such as highspeed buses or networks. The communication network design must consider message routing and connection strategies, and the problem of contention and security. 11 Networking A distributed system collects physically separate, possibly heterogeneous, system into a single coherent system, providing user access to various system resources. Access to a shared resource allows: Computation speed-up Increased data availability Enhanced reliability 12 Networking OS usually generalize network access as a form of file access, with the details of networking being contained in the network interface’s device driver. WWW is a new access method improving existing file-transfer protocol (FTP) and network-file system (NFS) protocol by removing the need for a user to log in before she is allowed to use a remote resource. Using the new protocol, http, a web browser send a request to the remote web server, and the information (text, graphics, links) is returned. 13 Protection System §3.1.7 Protection refers to a mechanism for controlling access by programs, processes, or users to both 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. 14 §3.1.8 Command-Interpreter System Many commands are given to the operating system by control statements which deal with: process creation and management I/O handling secondary-storage management main-memory management file-system access protection networking 15 Command-Interpreter System The program that reads and interprets control statements is called variously: control-card interpreter command-line interpreter shell (in UNIX) Its function is to get and execute the next command statement. With a user-friendly shell making the system more agreeable to some users Mac, Windows and DOS, UNIX 16 Operating System Services §3.2 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. Implemented via shared memory or message passing. Error detection – ensure correct computing by detecting errors in the CPU and memory hardware, in I/O devices, or in user programs. 17 Additional Operating System Functions 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. 18 System Calls 系統呼叫 §3.3 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 is an application programming interfacecalls that isto be forWin32 systems programming allow system common all Microsoft's 32-bit Windows made to directly (e.g., C, C++, Perl) operating systems. include:UNIX Windows 95, Windows 98, be Windows NT and These Example: system calls may invoked CE. directly from a C orWindows C++ program. Example: System calls are part of the Win32 API, which is available for use by all the compilers written for Windows. 19 System Calls Java does not allow system calls to be made directly, because a system call is specific to an OS and results in platform-specific code. 本土 However, Java can call the “native” method, written in another language such as C or C++, to make the system call. 20 System Calls 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 block or table in memory, and the table address of the block is passed as a parameter in a register. (Figure 3.1) Push (store) the parameters onto the stack by the program, and pop off the stack by operating system. Block or stack methods are preferred because they do not limit the number or length of parameters being passed. 21 Passing of Parameters – As A Table Back 22 System Calls System calls can be grouped roughly into five major categories: Process control File manipulation Device manipulation Information maintenance communications 23 Process Control §3.3.1 A running program needs to be able to halt its execution either normally (end) or abnormally (abort). A process or job executing one program may want to load and execute another program. If multiprogrammed, to create a new job or process (create process) For controlling the execution, determine (get process attribute) and reset (set process attribute) the attributes of a job or process, and terminate the job or process we created (terminate process). 24 Process Control Having created new jobs or processes, we may want to wait for a certain amount of time (wait time) for them to finish, or wait for a specific event to occur (wait event). The jobs or processes should then signal when the event has occurred (signal event). 25 Process Control MS-DOS Execution At System Start-up Running a Program 26 Process Control – UNIX 多工 UNIX is a multitasking system. When a user logs on to the system, the shell (command interpreter) of the user’s choice is run. The shell may continue while another program is executed. To start a new process, the shell executes a fork system call. Then the selected program is loaded into memory via an exec system call, and the program is then executed. The shell can either waits for the process to finish, or runs the process “in the background.” 27 Process Control – UNIX Running Multiple Programs 28 Process Control – UNIX When a process is running in the background, it cannot receive input directly from the keyboard, because the shell is using this resource. I/O is therefore done through files, or through a mouse and windows interface. When the process is done, it executes an exit system call to terminate, returning to the invoking process a status code of 0, or a nonzero error code. 29 File Management §3.3.2 need to be able to create or delete files, once created, we need to read, write, or reposition. Finally, need to close the file. For determine the values of various attributes, two system calls, get file attribute and set file attribute, are required. First 30 Device Management §3.3.3 A running program may need additional resources, such as memory, tape drives, access to files, and so on, to proceed. If there are multiple users, we must first request the device. Once requested, we can read, write, and reposition the device. After finished with the device, we must release it. The similarity between I/O device and files cause many OS, including UNIX and MSDOS, to merge the two into a combined filedevice structure. 31 Information Maintenance §3.3.4 For transferring information between the user program and the OS, such as the current time and date. Other system calls may return info about the system, such as the number of current users, the OS version, the amount of free memory or disk space. 32 Communication Models §3.3.5 Message-passing model Shared-memory model Message Passing Shared Memory 33 Message-Passing Model In this model, information is exchanged through an interprocess-communication facility provided by the operating system. For establishing the connection, the name of other end must be known. Each computer in a network has a host name, such as an IP name. Similarly, each process has a process name which is translated by get hostid and get processid to identifier recognized by the OS. 34 Message-Passing Model The recipient process give permission for communication with an accept connection call. System programs, daemons, receiving the connections by executing a wait for connection call and are awakened when a connection is made. The source of the comm., the client, and the receiving daemon, known as a server, then exchange messages by read message and write message system calls. The close connection call terminates the communication. 35 Shared-Memory Model this model, processes use map memory system calls to gain access to regions of memory owned by other processes. It requires that they agree to remove the restriction of preventing one process from accessing another process’ memory. In 36 Communication Models Message passing is useful when smaller numbers of data need to be exchanged, because no conflicts need to be avoided. Shared memory allows maximum speed and convenience of communication, as it can be done at memory speeds when within a computer. Problem exist, however, in the areas of protection and synchronization. 37 System Programs 系統程式 System programs provide a convenient environment for program development and execution. They can be divided into: §3.4 File manipulation Status information File modification Programming language support Program loading and execution Communications Application programs See Fig. 1-1 Most users’ view of the operation system is defined by system programs, not the actual system calls. 38 Fig. 1-1System Components Back 39 System Utilities 系統設施 Most OS supplies programs, known as system utilities or application programs, useful in solving common problems or in performing common operations. 指令解譯器 Command Interpreter is an important system program for an OS. Its main function is to get and execute the next user-specified command. 40 Implementing Commands There are two ways to implement a command issued by the user – contains the code in command interpreter itself implement by system programs, as in UNIX. The command interpreter merely uses the command to identify a file to be loaded into memory and execute. Example: rm G In this way, new commands can be added to the system easily. Problems of the second approach? THINK 41 System Structure – Simple Approach §3.5 – written to provide the most functionality in the least space MS-DOS not divided into modules Although MS-DOS has some structure, its interfaces and levels of functionality are not well separated MS-DOS was limited by the hardware of its era: Intel 8088 provides no dual mode and no Application programs are able to hardware access protection, hasroutines no choice and but tomake leave the base the basicitI/O system vulnerable hardware to errantaccessible. programs. 易受傷的 42 MS-DOS Layer Structure 43 System Structure – Simple Approach §3.5.1 UNIX – limited by hardware functionality, the original UNIX operating system had limited structuring. The UNIX OS consists of two separable parts. Systems programs The kernel Consists of everything below the system-call interface and above the physical hardware Provides the file system, CPU scheduling, memory management, and other operating-system functions; a large number of functions for one level. 44 UNIX System Structure OS retain greater over the Enormous amountcontrol of functionality computer and the applications that combined into over one level. New version of using theare computer. Implementors UNIX designed to use moreare free to make changes to the advanced hardware and the OSinner may be working the system. broken intoofpieces that areInformation smaller and hiding alsomore leaves programmers free to appropriate. implement the low level routines. 45 System Structure – Layered §3.5.2 分層法 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. Main Adv: modularity. Layers are selected such that each uses functions (operations) and services of only lower-level layers. This approach simplifies debugging and system verification. A layer can be debugged without any concern for the lower layer, which is assumed correct already. 46 An Operating System Layer 47 Problems of Layered Approach 1. 2. Careful planning is needed in order to give each layer appropriate definition. Tend to be less efficient. Recently, fewer layers with more functionality are being designed, providing most of the advantages of modularized code while avoiding the difficult problems of layer definition and interaction. 48 Examples on layered approach – descendant of MS-DOS that adds multitasking and dual-mode operation with more layered fashion. OS/2 advantages: OS/2 Direct user access to low-level facilities is not allowed. Providing more control over the hardware and more knowledge of which resources each user program is using. …. 49 OS/2 Layer Structure 50 Examples on layered approach NT – The first release has low performance compared to Windows 95 for highly layer-oriented organization. Windows NT 4.0 partially redressed the performance problem by moving layers from user space to kernel space and more closely integrating them. Windows 51 Microkernels 微核心 §3.5.3 Implemented as system and userMachlevel early in program Adopted by operating system 1980s. Nonessential components are removed to achieve a smaller kernel. Main function: provide a communication facility between the client program and the various services. Benefits: Extending the OS is easier. Easier to port from one hardware design to another. More security and reliability. 52 Microkernels Example: UNIX – provides a UNIX interface to the user, but is implemented with a Mach kernel. Layer + Microkernel Apple MacOS X Server – based on the Mach kernel. Windows NT – a hybrid structure. It is designed to run various applications, including Win32 (native Windows applications), OS/2, and POSIX. It provides a server that runs in user space for each application type. Digital 53 Windows NT Client-Server Structure 54 Virtual Machines 虛擬機器 §3.6 A virtual machine takes the layered approach to its logical conclusion. OS creates the illusion that a process has its own processor with its own (virtual) memory….a (virtual) copy of the underlying computer. The VM operating system for IBM systems is the best example of the virtual-machine concept. 55 Virtual Machines The resources of the physical computer are shared to create the virtual machines. CPU scheduling can create the appearance that users have their own processor. Spooling and a file system can provide virtual card readers and virtual line printers. A normal user time-sharing terminal serves as the virtual machine operator’s console. 56 System Models Non-virtual Machine Virtual Machine 57 Benefits of Virtual Machines §3.6.2 The virtual-machine concept provides complete protection of system resources since each virtual machine is isolated from all other virtual machines. A virtual-machine system is a perfect vehicle for operating-systems research and development. System research and development is done on the virtual machine, instead of on a physical machine and, so, does not disrupt normal system operation. 58 Virtual Machines – examples Virtual Intel machine on top of Sun or DEC computer in order to run MS-DOS programs. When a MS-DOS program is running in Sun or DEC computer, its Intel instructions are translated into the native instruction set. PowerPC-based Apple Macintosh includes a Motorola 68000 virtual machine to allow execution of binary codes that were written for the older 68000-based Macintosh. Key feature of Java – it runs on a virtual machine. 59 Java §3.6.3 Java is a technology introduced by Sun Microsystems in late 1995. Three essential components: Programming-language specification Application-programming interface (API) Virtual-machine specification 60 Java Programming Language Object-oriented Architecture-neutral Java compiler produces bytecode output (.class) file that will run on any implementation of the Java virtual machine. Applets programs with limited resource access run within a web browser. Distributed Objects are specified with the class construct; a Java program consists of one or more classes. Provide high level support for networking and distributed objects. Multithreaded A Java program may have several different threads, or flows, of control. 61 Java API The API for java consists of: Base API provides basic language support for graphics, I/O, utilities, and networking. Example: java.lang, java.awt, java.io, and java.net. Standard extension API includes support for enterprise, commerce, security, and media. As language evolves, many packages that were once part of the standard extension API are becoming part of the base API 62 Java Virtual Machine (JVM) JVM is a specification for an abstract computer. JVM consists of a class loader and a Java interpreter that executes the bytecodes. The class loader loads .class files from both the Java program and the Java API for execution by the Java interpreter. 63 Java Virtual Machine 64 Java Virtual Machine 65 Java Virtual Machine Java interpreter may be a software interpreter that interprets the bytecodes one at a time, or it may be a just-in-time (JIT) compiler that turns the bytecodes into native machine language for the host computer. The interpreter can also be implemented in a hardware chip that executes Java bytecodes natively. 66 Java Virtual Machine The Java platform consists of the JVM and Java API. The Java platform may be implemented on top of a host operating system, such as UNIX or Windows, as part of a web browser; or in hardware. 67 System Design Goals §3.7.1 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. User 68 Mechanisms and Policies §3.7.2 Mechanisms determine how to do something, policies decide what will be done. Ex: Timer construct The separation of policy from mechanism is a very important principle, it allows maximum flexibility if policy decisions are to be changed later. Ex: I/O Intensive programs have priority over CPU intensive programs? Ex: Microkernel-based OS. It’s basic building blocks are almost policy free. 69 System Implementation §3.7.3 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. 70 Example MS-DOS was written in Intel 8088 assembly language. Consequently, it is available on only the Intel family of CPUs. The UNIX written in C is available on a number of different CPUs, including Intel 80X86, Motorola 680X0, SPARC, and MIPS RX000. 71 System Implementation Major complaint about higher-level language are reduced speed and increased storage requirements. (However….) Modern processors can handle complex dependencies that can overwhelm the limited ability of the assembly-language programmer to keep track of details. Major performance improvements in operating systems are more likely to be the result of better data structures and algorithms than of excellent assembly-language code. 72 System Generation (SYSGEN) §3.8 Operating systems are designed to run on any of a class of machines; the system must be configured or generated for each specific computer site, a process known as system generation (SYSGEN). SYSGEN program obtains information concerning the specific configuration of the hardware system, including What CPU is to be used? How much memory is available? What devices are available? What OS options are desired? 73 System Generation Hardware configuration information can be used in several ways: Used to modify a copy of the source code of the OS and have it re-compiled. Used to create tables and modules from a precompiled library. The needed modules are linked together to form the generated System generation is faster but the OS. resulting system may be overly general. Construct a system that is completely table driven. All the code is always part of the system, and selection occurs at execution time. 74 System Generation Major differences among above? THINK Booting – starting a computer by loading the kernel. Bootstrap program – code stored in ROM that is able to locate the kernel, load it into memory, and start its execution. 75