1 / 74

Chapter 3 Operating System Structure

Chapter 3 Operating System Structure. Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation. Common System Components. §3.1. Process Management

porta
Download Presentation

Chapter 3 Operating System Structure

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. Chapter 3Operating System Structure

  2. Operating-System Structures • System Components • Operating System Services • System Calls • System Programs • System Structure • Virtual Machines • System Design and Implementation • System Generation

  3. Common System Components §3.1 • Process Management • Main Memory Management • Secondary-Storage Management • I/O System Management • File Management • Protection System • Networking • Command-Interpreter System

  4. 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.

  5. 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

  6. 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.

  7. 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.

  8. 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.

  9. 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

  10. 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

  11. 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 high-speed buses or networks. • The communication network design must consider message routing and connection strategies, and the problem of contention and security.

  12. 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

  13. 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.

  14. 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.

  15. §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

  16. 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

  17. 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.

  18. 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.

  19. 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 for systems programming allow system calls to be made directly (e.g., C, C++, Perl) • Example: UNIX system calls may be invoked directly from a C or C++ program. • Example: System calls are part of the Win32 API, which is available for use by all the compilers written for Windows. Win32 is an application programming interface that is common to all Microsoft's 32-bit Windows operating systems. These include: Windows 95, Windows 98, Windows NT and Windows CE.

  20. 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. 本土

  21. 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.

  22. Passing of Parameters– As A Table Back

  23. System Calls • System calls can be grouped roughly into five major categories: • Process control • File manipulation • Device manipulation • Information maintenance • communications

  24. 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 (createprocess) • For controlling the execution, determine (getprocessattribute) and reset (setprocessattribute) the attributes of a job or process, and terminate the job or process we created (terminateprocess).

  25. Process Control • Having created new jobs or processes, we may want to wait for a certain amount of time (waittime) for them to finish, or wait for a specific event to occur (waitevent). • The jobs or processes should then signal when the event has occurred (signalevent).

  26. Process ControlMS-DOS Execution At System Start-up Running a Program

  27. 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.”

  28. Process Control–UNIX Running Multiple Programs

  29. 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.

  30. File Management §3.3.2 • First 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.

  31. 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 MS-DOS, to merge the two into a combined file-device structure.

  32. 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.

  33. Communication Models §3.3.5 • Message-passing model • Shared-memory model Shared Memory Message Passing

  34. 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.

  35. 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.

  36. Shared-Memory Model • In 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.

  37. 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.

  38. System Programs §3.4 系統程式 • System programs provide a convenient environment for program development and execution. The can be divided into: • File manipulation • Status information • File modification • Programming language support • Program loading and execution • Communications • Application programs • Most users’ view of the operation system is defined by system programs, not the actual system calls. See Fig. 1-1

  39. Fig. 1-1System Components Back

  40. 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. 指令解譯器

  41. 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

  42. System Structure – Simple Approach §3.5 • 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 • Application programs are able to access the basic I/O routines and make system vulnerable to errant programs. MS-DOS was limited by the hardware of its era: Intel 8088 provides no dual mode and no hardware protection, it has no choice but to leave the base hardware accessible. 易受傷的

  43. MS-DOS Layer Structure

  44. 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.

  45. UNIX System Structure OS retain greater control over the computer and over the applications that using the computer. Implementors are free to make changes to the inner working of the system. Information hiding also leaves programmers free to implement the low level routines. Enormous amount of functionality combined into one level. New version of UNIX are designed to use more advanced hardware and the OS may be broken into pieces that are smaller and more appropriate.

  46. System Structure – Layered Approach §3.5.2 分層法 • 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.

  47. An Operating System Layer

  48. Problems of Layered Approach • 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.

  49. Examples on layered approach • OS/2 – descendant of MS-DOS that adds multitasking and dual-mode operation with more layered fashion. • OS/2 advantages: • 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. • ….

  50. OS/2 Layer Structure

More Related