1、 device management,process and resource management, memory management, file management, and functional organization. Next, we will address general implementation methodologies: performance and trusted software. Software modularization issuses are introduced in this chapter, and are discussed in more
2、 detail in Chapter 19. This chapter concludes with a description of the general organization of UNIX kernels and the Windows NT kernel.BASIC FUNCTIONSThere are two basic responsibilities of the OS(see Figure 3.1): Create an abstract machine environment with multiple, autonomous abstract components.
3、Many of the components can be in use concurrently. For example, the OS uses multiprogramming to create an abstract machine for each process. Coordinate the use of the components according to the policies of the machines administrator. For example, the scheduler decides when and which different proce
4、sses should be allocated the processpor.The creation part of the OS provides the spectrum of abstraction (such as processes,threads, and resources) that programmers use, and the coordination part manages their concurrent use so that the community of processes works in harmony. FIGURE 3.1 Purpose of
5、an OSPart of an OS creates a set of abstractions that will be used by application programmers these abstractions include processes, threads, and files. In a multiprogramming OS,multiple processes compete for the use of the abstract resources, so the OS corrdinates the way that these processes use th
6、e abstract resources.There is no complete agreement about the exact set of functions required for an OS. Instead, each OS provides a set determined by engineering and marketing choices. Our goal is to learn the general principles behind OS functions, and then to put those principles to work in OS-sp
7、ecific Laboratory Rxercises. Over the years, OS functions have been characterized as satisfying one of the following basic requirements:Device managementProcess,thread,and resource managementMemory managementFile managementWe will use these general characterizations as a framework for considering de
8、tailed requirements, design issues, architectures,and implementation. Lets first consider a general description of each of these components of an OS.DEVICE MANAGEMENTThe OS manages the allocation, isolation, and sharing of the devices according to policies chosen by the designer or system adminstrat
9、or. Even operation systems that do not support multiprogramming incorporate device managrment. Most operating systems treat all devices such as disks,tapes, terminals, and printers in the same general manner, but they provide special management approaches for the processor and memory. Device managem
10、ent refers to the way the generic devices are handled.There are device-dependent and device-independent parts of a device manager(see Figure 3.2). The dependent parts, called device drivers, implement the aspects of device management that are unique to each device type. For example, a device driver
11、for a keyboard is constructed explicitly to sense keystrokes from a key board device as the corresponding keys are pressed. A device manager for a display screen is constructed to write characters or graphics to a bideo display. FIGURE 3.2 Device ManagementThe device manager is composed of a device-
12、independent part and a collection of device-dependent parts,one for each type of device. The device-dependent parts export services to the deviceindependent part, which provides a unified interface for all the different device types.The independent part of the device manager dfines a general softwar
13、e environment in which a device-dependent driver can execute. For example, the independent part of the device manager. Most of the functionality is implemented in the collection of device drivers.By partitioning the design into dependent and independent componecnts, the task of adding a device to a
14、computer is greatly simplified. First, the OS designer decides which aspects of device management are device-dependent and which parts can be independent of all devices. The independent parts are the implemented id the base operation system(they will work with all devices). The dependent parts are i
15、mplemented in the driver for each device type. This means that the imdependent part of the device manager has system calls to read and/or write any device. A printer device driver contains all the software that is specific to a particular type of printer(such as a Postscript). Since the independent
16、parts are generic for all devices and are bulit into the OS, the designer can add device drivers to the OS whenever a device is added to the camputer.Device management is an important but relatively simple part of the overall OS design. Chapter 4 introduces device behavior(from a system programmers
17、perspective) as part of the computer organization discussion. Chapter 5 addresses device management in detail.PROCESS, THREAD, AND RESOURCE MANAGEMENTProcesses and threads are the basic units of computation defined by programmers, and(abstract) resources are the elements of the computing evironment
18、needed by a process so that its threads can execute. This part of the OS implements all parts of the abstract machine that create the abstractions of processes, threads, and resources (see Figure 3.3).This part of the OS is completely responsible for managing the hardware processor resource and vari
19、ous abstract resources such as messages. It shares the responsibility of managing the hardware primary memory with the memory manager. FIGURE 3.3 Process, Thread, and Resource ManagementThe process, thread, and resource manager is responsible for the administration of the processor and various abstr
20、act resources. It cooperates with the memory manager to administer the primary memory.Process management, thread management, and resource management could be sepatated into their own logical units, but most operating systems combine them into a single module, since together they define the essential
21、 parts of the abstract machine evironment. In this book, this part of the OS is simpley referred to as the “process manager” rather than the more proper(and longer) name “process, thread, and resource manager.”In Chapter 2, the UNIX process model was described as one example of how an OS can define
22、a computational environment. A UNIX-style OS provides a set of process management facilities for creating, destroying,blocking, and running a process. Chapter 2 also desribed the more modern thread-based approach in which the computational element is divided into a static process part and a dynamic
23、thread part. The process manager for thread-based systems is more complex than one for process-based systems since it must manage processes and threads as separate entities.The resource manager allocates resources to processes when they are requested by a thread, and keeps track of resources when a
24、thread finishes using them. Logically, a designer could separate resource management functionality from process/thread management. However, changes is status to a resource are usually related to a change in status of a process, so OS designers tend to talk about resource managements as if it were a
25、part of process management.The process manager allows multiple users(or processes and threads) to share the machine by providing multiple execution contexts and scheduling the processor so that each thread receieves an equitable fraction of the available time. Primary considerations of the process m
26、anager are how it will enforce isolation of resource access among the processes(according to some policy) and how it will allow the processes to circumvent the isolation mechanism when the policy calls for the processes to share a resource. Chapters 6 through 10 describe the issues related to design
27、ing a process manager.MEMORY MANAGEMENTThe memory manager cooperates whit the process manager to administer the allocation and use of the primary(also called the executable or main) memory resource-see Figure 3.4 Every process requests and uses memory according to its program definition. The memory
28、manager allocates memory to competing processes according to a specified policy and enforces resource isolation. A strategy that allows sharing is more complex to manage than one with no sharing, Hence, the memory manager incorporates mechanisms to allow blocks to be shared in the presence of the is
29、olation mechanism. FIGURE 3.4 Memory ManagementThe memory manager cooperates with the process manager to administer the primary memory. If the OS supports virtual memory, then that part of the memory manager cooperates with the device and/pr the file managers to manage the memory and pagind devices.
30、Modern memory managers provide virtual memory extensions so that the abstract machines primary memory appears to be larger than the physical machines memory. This is accomplished by integrating the computers primary memory and the memory from its storage devices, allowing processes to refernce infor
31、mation stored on a storage device as if it were stored in the primary memory. Virtual memory requirements differ from conventional memory management requirements. This is because the system is managing an abstract resource-the virtual memory space-which must be managed by controlling the way the primary memory and the storage devices are used together. Chapters 11 and 12 discuss memory management approaches, issues, and designs.Modern menory managers alse provide a means for a thread on one machine to access and s
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1