System is to provide an environment in which a user can execute programs in a conoenient and gfficient manner. We trace the development of operating. Request PDF on ResearchGate | On Jan 1, , Abraham Silberschatz and others published Operating System Concepts, Sixth Edition. provides a clear description of the concepts that underlie operating systems. As . As we wrote this Sixth Edition, we were guided by the many comments and.
|Language:||English, Spanish, Hindi|
|Distribution:||Free* [*Registration needed]|
[Free] Operating System Concepts 6th Edition Silberschatz Galvin Gagne Solution Manual [PDF]. [EPUB] aracer.mobi is a platform for. It consists of answers to the exercises in the parent text. In cases where the answer to a question involves a long program, algorithm development, or an essay. principles, sixth edition operating systems, sixth edition - william stallings database system concepts 6th aracer.mobi marrini patuwondatu. download with google.
Sort by: Influence Recency. Highly Influenced.
Khawatreh Practical transactional memory: The hybrid approach Fuad Tabba , James R. Goodman Application-specific resource management in real-time operating systems Ameet Patil Sakhare Systems that control scientific experiments, medical imaging systems, industrial control systems, and certain display systems are real-time systems. Some automobile-engine fuel-injection systems, home-appliance controllers, and weapon systems are also real-time systems.
A real-time system has well-defined, fixed time constraints. Processing must be done within the defined constraints, or the system will fail. For I instance, it would not do for a robot arm to be instructed to halt after it had smashed into the car it was building. Contrast this requirement to a time-sharingsystem, where it is desirable butnot mandatory to respond quickly, or to a batch system, which may have no time constraints at all.
Real-time systems come in two flavors: A hard real-time system guarantees that critical tasks be completed on time. This goal requires that all delays in the system be bounded, from the retrieval of stored data to the time that it takes the operating system to finish any request made of it.
Such time constraintsdictatethe facilitiesthat are availablein hard real-timesystems. I Secondary storage of any sort is usually limited or missing, with data instead being stored in short-term memory or in read-only memory ROM. ROM is located on nonvolatilestorage devices that retain their contentseven in the case of electric outage; most other types of memory are volatile.
Most advanced operating-system features are absent too, since they tend to separate the user from the hardware, and that separation results in uncertaintyabout the amount of time an operation will take. For instance, virtual memory Chapter 10 is almost never found on real-time systems. Therefore, hard real-time systems conflict with the operation of time-sharing systems, and the two cannot be mixed.
Since none of the existing general-purpose operating systems support hard real-time functionality, we do not concern ourselves with this type of system in this text. A less restrictive type of real-timesystem is a soft real-time system, where a critical real-time task gets priority over other tasks, and retains that priority until it completes. As in hard real-time systems, the operating-system kernel delays need to be bounded: A real-time task cannot be kept waiting indefinitely for the kernel to run it.
Soft real time is an achievable goal that can be mixed with other types of systems. Soft real-timesystems, however, have morelimited utility than hard real-time systems. Given their lack of deadline support, they are risky to use for industrial control and robotics. They are useful, however in several areas, including multimedia, virtual reality, and advanced scientific projects-such as undersea exploration and planetary rovers.
These systems need advanced operating-system features that cannot be supported by hard real-timesystems. Because of the expanded uses for soft real-timefunctionality, it is finding its way into most current operating systems, including major versions of UNIX.
In Chapter 10, we describe the design of memory management for real-time computing. Finally, in Chapter 21, we describe the real-timecomponents of the Windows operating system. Developers of handheld systems and applications face many challenges, most of which are due to the limited size of such devices.
For example, a PDA is typically about 5 inchesin height and 3 inches in width, and it weighs less than one-half pound. Due to this limited size, most handheld devices have a small amount of memory, include slow processors, and feature small display screens.
We will take a look now at each of these limitations. Many handheld devices have between KB and 8 MB of memory. Con- trast this with a typical PC or workstation, which may have several hundred megabytesof memory! As a result, the operating system and applicationsmust manage memory efficiently.
This includes returning all allocated memory back to the memory manager once the memory is no longer being used. In Chapter 10 we will explorevirtual memory, which allows developers to write programs that behave as if thesystem has more memory than may be physically available. Currently,many handheld devices do not use virtual memory techniques,thus forcing program developers to work within the confines of limited physical memory.
A second issue of concern to developers of handheld devices is the speed of the processor used in the device. Processorsfor most handheld devices often run at a fraction of the speed of a processor in a PC.
Faster processors require more power. To include a faster processor in a handheld device would requirea larger battery that would have to be replaced orrecharged morefrequently.
To minimize the size of most handheld devices, smaller, slower processorswhich consume less power are typically used. Therefore, the operating system and applications must be designed not to tax the processor.
The last issue confronting program designers for handheld devices is the small display screens typically available. Whereas a monitor for a home com-i 3 I puter may measure up to 21 inches, the display for a handheld device is often no more than 3 inches square. Familiar tasks, such as reading e-mail or brows- ing web pages, must be condensed onto smaller displays.
One approach for I displaying the content in web pages is web clipping, where only a small subset I I of a web page is delivered and displayed on the handheld device. I Some handheld devices may use wireless technology, such as BlueTooth Section 1. Cellular telephones with connectivity to the Internet fall into this category. However, To download data to these devices, typically one first downloads the data to a PC or workstation, and then downloads the data to the PDA.
Some PDAs allow data to be directly copied from one device to another using an infrared link. Generally, the limitations in the functionality of PDAs are balanced by their convenience and portability.
Their use continues to expand as network connectionsbecome more available and other options, such as cameras and MP3 players, expand their utility.
The same concepts are appropriate for the var- ious classes of computers: Many of the concepts depicted in Figure 1. However, to start understanding modern operating systems, you need to realize the theme of feature migration and to recognize the long history of many operating-system features. It ran on a large, complex mainframe computer the GE Thus, the features developed for a large mainframe system have moved to microcomputersover time. At the same time as features of large operating systems were being scaled down to fit PCs, more powerful, faster, and more sophisticated hardware sys- tems were being developed.
Many uni- versities and businesses have large numbers of workstations tied together with local-area networks. As PCs gain more sophisticated hardware and software, the line dividing the two categories-mainframes and microcomputers-is blurring. Computing Environments Now that we have traced the development of operating systems from the first hands-on systems through multiprogrammed and time-shared systems to PCs and handheld computers, we can give a brief overview of how such systems are used in a variety of computing environment settings.
Consider the "typical office environment. Remote access was awkward, and portability was achieved by laptop computers carrying some of the user's workspace.
Terminalsattached to mainframes were prevalent at many compa- nies as well, with even fewer remote access and portability options. The current trend is toward more ways to access these environments. Web technologies are stretching the boundaries of traditional computing.
Com- panies implement portals which provide web accessibility to their internal servers. Network computers are essentially terminals that understand web- Handheld computers can synchronize with PCs to allow very portable use of company information. They can also connect to wireless networks to use the company's web portal as well as the myriad other web resources.
At home, most users had a singlecomputer with a slow modem connection to the office, the Internet, or both. Network connection speeds once attainable only at great cost are now available at low cost, allowing more access to more data at a company or from the Web. Those fast data connections are allowing home computers to serve up web pages and to contain their own networks with printers, client PCs, and servers. Some homes even have firewalls to protect these home environments from security breaches.
Those firewalls cost thousands of dollars a few years ago, and did not even exist a decade ago. PCs are still the most prevalent access devices, with workstations high-end graphics-oriented PCs , handheld PDAs, and even cell phones also providing access.
Web computing has increased the emphasis on networking. Devices that were not previously networked now have wired or wireless access. Devices that were networked now have faster network connectivity,either by improved networking technology,optimized network implementation code, or both. The implementation of web-based computing has given rise to new cate- gories of devices, such as load balancers which distribute network connections among a pool of similar servers.
Operating systems like Windows 95, which acted as web clients, have evolved into WindowsME and Windows, which can act as web servers as well as clients.
Generally, the Web has increased the complexity of devices as their users require them to be web-enabled. They run embedded real-time operating systems. These devices are found everywhere, from car engines and manufacturing robots to VCRs and microwave ovens. They tend to have very specific tasks. The systems they run on are usually primitive, lacking advanced features, such as virtual memory, and even disks.
Thus, the operating systems provide limited features. They usually have little or no user interface, preferring to spend their time monitor- ing and managing hardware devices, such as automobile engines and robotic arms. As an example, consider the aforementionedfirewalls and load balancers. Some are general-purpose computers, running standard operating systems- such as UNIX-with special-purpose applications loaded to implement the Others are hardware devices with a special-purpose operating system embedded within, providing just the functionalitydesired.
The use of embedded systems continues to expand. The power of those devices, both as standalone units and as members of networks and the Web, is sure to increase as well. Entire houses can be computerized, so that a central computer-eithera general-purpose computer or an embedded system-can control heating and lighting, alarm systems, and even coffee makers.
Web access can let a home-owner tell the house to heat up before he arrives home. Someday, the refrigerator may call the grocery store when it notices the milk is gone. Summary Operating systems have been developed over the past 45 years for two main purposes.
First, the operating system attempts to schedule computational activ- ities to ensure good performance of the computing system. Second, it provides a convenient environment for the development and execution of programs. Initially, computer systems were used from the front console.
Software such as assemblers, loaders, linkers, and compilers improved the convenience of programming the system, but also required substantial set-up time.
To reduce the set-up time, facilities hired operators and batched similar jobs. Batch systems allowed automatic job sequencing by a resident operating system and greatly improved the overall utilization of the computer.
The computer no longer had to wait for human operation. Off-line operation of slow devices provided a means to use multiple reader-to-tapeand tape-to-printer systems for one CPU.
To improve the overall performance of the computer system, developers introduced the conceptof multiprogramming, so that several jobscould be kept in memory at one time. The CPU is switched back and forth among them to increase CPU utilization and to decrease the total time needed to execute the jobs. Multiprogramming also allows time sharing. Time-shared operating sys- tems allow many users fromone to several hundred to use a computer system interactivelyat the same time. PCs are microcomputers;they are considerablysmaller and less expensive than mainframe systems.
Operating systems for these computers have ben- efited from the development of operating systems for mainframes in several ways. However, since an individual has sole use of the computer, CPU utiliza- tion is no longer a prime concern. Hence,some of the design decisionsmade for mainframeoperating systemsmay not be appropriatefor these smaller systems. Other design decisions, such as thosefor security, are appropriate for bothsmall and large systems, as PCs can now be connected to other computers and users through networks and the Web.
Such systems can provide increased throughput and enhanced reliability. Dis- tributed systems allow sharing of resourceson geographicallydispersed hosts. Clustered systems allow multiple machines to perform computations on data contained on shared storage, and let computing continue in the case of failure of some subset of cluster members.
A hard real-time system is often used as a control device in a dedicated application. A hard real-time operating system has well-defined, fixed time constraints. Soft real-time systems have less stringent timing constraints, and do not support deadline scheduling.
Recently,the influence of the Internet and the World Wide Web has encour- aged the development of modern operating systems that include web browsers and networking and communicationsoftware as integral features.
We have shown the logical progression of operating-system development, driven by inclusion of features in the CPU hardware needed for advanced functionality. This trend can be seen today in the evolution of PCs, with inexpensive hardware being improved sufficiently to allow, in turn, improved characteristics.
Exercises I 1. This situation can result in various security problems. What are two such problems? Can we ensure the same degree of security in a time-sharedmachine as we have in a dedicated machine? Explain your answer. Batch b. Interactive BibliographicalNotes 25 c.
Time sharing d. Real time e. Network f. Parallel g. Distributed h. Clustered i. Handheld 1. When is it appropriate for the operating system to forsake this principle and to "waste" resources? Why is such a system not really wasteful? What are three advantages and one disadvantage of multipro- cessor systems? Consider whether the operating system should include applications such as web browsers and mail programs. Argue both pro and con positions, and support your answers.
Describetwo ways in which the cluster software can manage access to the data on the disk. Discuss the benefits and detriments of each. Bibliographical Notes Time-sharing systems were proposed first by Strachey . An overview of the Apple Macintosh hardware and software is pre- sented in Apple . Solomon and Russinovich  discuss the structure of Microsoft Windows operating system.
A good coverage of cluster computing is presented by downloadya . In this chapter, we look at several disparate parts of this structure to round out our background knowl- edge. This chapter is mostly concerned with computer-system architecture,so you can skim or skip it if you already understand the concepts.
The operating system must also ensure the correct operation of the com- puter system. To ensure that user programs will not interfere with the proper operation of the system, the hardware must provide appropriate mechanisms to ensure correctbehavior. Later in this chapter,we describethe basiccomputer architecture that makes it possible to write a functional operating system.
We conclude with a network architectureoverview. Computer-System Operation A modern, general-purpose computer system consists of a CPU and a number of device controllers that are connected through a common bus that provides access to shared memory Figure 2.
Each device controller is in charge of a specific type of device for example, disk drives, audio devices, and video displays. The CPU and the device controllerscan execute concurrently, competingfor memory cycles. To ensure orderly access to the shared memory, a memory controlleris provided whose function is to synchronize access to the memory. For a computer to start running-for instance, when it is powered up or rebooted-it needs to have an initial program to run.
This initial program, or bootstrap program, tends to be simple. It initializes all aspects of the system, from CPU registers to device controllers to memory contents. The bootstrap program must know how to load the operating system and to start executing that system.
To accomplish this goal, the bootstrap program must locate and load into memory the operating-system kernel. The operating system then starts executing the first process, such as "init," and waits for some event to occur. The occurrence of an event is usually signaled by an interrupt from either the hardware or the software. Hardware may trigger an interrupt at any time by sending a signal to the CPU, usually by way of the system bus.
Software may trigger an interrupt by executing a special operation called a system call also called a monitor call. Modern operating systems are interrupt driven. Events are almost always signaled by the occurrence of an interrupt or a trap.
A trap or an exception is a software-generated interrupt caused either by an error for example, division by zero or invalid memory access or by a specific request The interrupt-driven nature of an operating system defines that system's general structure. For each type of interrupt, separate segments of code in the operating system determine what action should be taken. An interrupt service routine is provided that is responsiblefor dealing with the interrupt. When the CPU is interrupted, it stops what it is doing and immediately transfers execution to a fixed location.
The fixed location usually contains the starting address where the service routine for the interrupt is located. The interrupt service routine executes; on completion, the CPU resumes the interrupted computation. A time line of this operation is shown in Figure 2. Interrupts are an important part of a computer architecture. Each computer design has its own interrupt mechanism, but several functions are common. The interrupt must transfer control to the appropriate interrupt service routine.
The straightforward method for handling this transfer would be to invoke a generic routine to examine the interrupt information; the routine, in turn, would call the interrupt-specifichandler. However, interrupts must be handled quickly, and, given that only a predefined number of interrupts is possible, a table of pointers to interrupt routines can be used instead. The interrupt routine is then called indirectly through the table, with no intermediate routine needed.
Generally, the table of pointers is stored in low memory the first or so locations. These locations hold the addresses of the interrupt service routines for the various devices.
This array,or interrupt vector, of addresses is then indexed by a unique device number, given with the interrupt request, to provide the address of the interrupt service routine for the interrupting device.
The interrupt architecture must also save the address of the interrupted instruction. Many old designs simply stored the interrupt address in a fixed location or in a location indexed by the device number. More recent architec- CPU user process executing I10 interrupt processing I10 idle device transferring I I10 transfer transfer request done request done Figure 2. If the interrupt routine needs to modify the processor state-for instance, by modifying register values-it must explicitly save the current state and then restore that state before return- ing.
After the interrupt is serviced, the saved return address is loaded into the program counter, and the interrupted computation resumes as though the interrupt had not occurred. A system call is invoked in a variety of ways, depending on the function- ality provided by the underlying processor. In all forms, it is the method used by a process to request action by the operating system. A system call usually takes the form of a trap to a specific location in the interrupt vector.
This trap can be executed by a generic t r a p instruction, although some systems suchas the MIPS R family have a specific syscall instruction. I10 Structure As we discussedinSection2. Each devicecontroller is in chargeof a specific type of device. Dependingon the controller,there may be more than one attached device. For instance, the small computer-systems interface SCSI controller can have seven or more devices attached to it.
A device controllermaintains some local buffer storage and a set of special-purposeregisters. The devicecontroller is responsiblefor moving the data between the peripheral devices that it controlsand its local buffer storage. The size of the local buffer within a device controllervaries from one controller to another, depending on the particular device being controlled.
For example, the size of the buffer of a disk controller is the same as or a multiple of the size of the smallest addressable portion of a disk, called a sector, which is usually bytes. The device controller, in turn, examinesthe contents of these registersto determine what action to take. For example, if it findsa read request, the controller will start the transfer of data from the device to its local buffer.
Once the transfer of data is complete, the device controller informs the CPU that it has finished its operation. It accomplishes this communicationby triggering an interrupt. Some computers have a special wait instruction that idles the CPU until the next interrupt. Machines that do not have such an instruction may have a wait loop: If no user programs are ready to run, and the operating system has no other work to do, we still require the wait instruction or idle loop, as before.
Each table entry indicates the device's type, address, and state not functioning, idle, or busy. If the device is busy with a request, the type of request and other parameters will be stored in the table entry for that If there are additional requests waiting in the queue for this device, the operating system starts processingthe next request.
If a process was waiting for this request to complete as recordedin the device-statustable ,we can now return control to it. In a time-sharing system, the operating system could switch to another ready-to-run process. The schemes used by specific input devices may vary from this one. Many interactivesystems allow users to type ahead-toenter data before the data are requested-on the keyboard. In this case, interrupts may occur, signaling the arrival of characters from the terminal, while the device-status block indicates that no program has requested input from this device.
If typeahead is to be allowed, then a buffer must be provided to store the typeahead charactersuntil In general, we may need a buffer for each input device.
In Section 2. When that character is received, the asynchronous-communication or serial-port device to which the terminal line is connected interrupts the CPU. When the interrupt request from the terminal arrives, the CPU is about to execute some instruction. If the CPU is in the middle of executing an instruction, the interrupt is normally held pending the completion of instruction execution.
The address of this interrupted instruction is saved, and control is transferred to the interrupt service routine for the appropriate device.
The interrupt service routine saves the contents of any CPU registers that it will need to use. It checks for any error conditions that might have resulted from the most recent input operation. It then takes the character from the device, and stores that character in a buffer. The interrupt routine must also adjust pointer and counter variables, to be sure that the next input characterwill be stored at the next location in the buffer.
The interrupt routine next sets a flag in memoryindicating to the other parts of the operating system that new input has been received. I'd like to read this book on Kindle Don't have a Kindle?
Computer Science. Is this feature helpful? Thank you for your feedback. Share your thoughts with other customers. Write a customer review. Read reviews that mention operating systems computer science high level easy to understand introductory course william stallings good book easy to read case studies source code end of chapter system calls process management linux kernel website virtual memory good job poorly organized modern operating book is great.
Top Reviews Most recent Top Reviews. There was a problem filtering reviews right now. Please try again later. Hardcover Verified download. I like reading this book. The authors did a pretty decent job taking a hard subject and writing about in a way I could understand, and organizing the sections in a way that builds your knowledge. My professor gave us a number of hard programming assignments in C that followed the book as well and reinforced that knowledge.
So if you use this book within the right system, it can be very good. I don't think it would be easy for a beginner to just read however. You really need to dive into some of the things that you read about and get your hands dirty to gain the full value from this book. My graduate class was able to cover 6 chapters completely plus a spattering from a few other chapters in one semester. It was a very worthwhile class. Paperback Verified download. Very succinct book for early learners like myself neophytes as my teacher calls us.
There is the full linux kernel development book in its fifth edition, but that can be dense and frustrating for beginners. This Operating System Concepts Essentials has a great accompanying website with lots of great code examples and various resources that are very helpful. Had to get this book for a class. The most confusing book I have every read, typos and you will need to read over the chapters twice to get what it being said.
Best to use the Powerpoint on the linked site to get the summary of each chapter or just go to the summary within the chapter. I know they author's tried well to break down the subject but it seemed at times that it was too much filler and not just enough for what need to be explained. Loving this book. Had to download for my Operating Systems Theory class. When I saw that the regular edition cost over bucks I was ready to grit my teeth and just download it.
Then I heard about the Indian edition which was insanely cheaper so I bought it without a second thought. Shipping was fast and the book is high quality. As for content, this book is great. After finishing a particularly long chapter, I found myself continuing to read simply because I was feeling more curious about what the author would talk about next. This edition is great! Hermin Hollerith, Maker of Tacky Wreaths in the 70's.
This is a very well written book on operating system design, multiprogramming, threads and all the great things that go on inside your computer while it runs an operating system.
It requires some prerequisite knowledge of computer hardware and some programming. As other reviewers have stated, it is not a freshman level book. It is however, an excellent guide for people studying software design. It seems to be lacking in some areas, the section on semaphores was probably the worst area of the book.
I had to turn to Tanenbaum's works for better information. Overall though, worthy of four stars. Unfortunately, I have to add to my review that I am deeply disappointed in the direction the publisher has taken with respect to the text.