Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


Share this Page URL
Help

2.4 Looking Back and Ahead > 2.4 Looking Back and Ahead - Pg. 90

90 CHAPTER 2 Elements of Computer System Organization Word processing program Application program Implementations of OPEN , READ , WRITE, and CLOSE: check permissions, map files into blocks, etc. File system Read characters from keyboard Map blocks into tracks and sectors, read and write them Write characters on display Device managers FIGUre 2.19 Using the file abstraction and layering to integrate different kinds of input and output devices. The file system acts as an intermediary that provides a uniform, abstract interface, and the various device managers are programs that translate that abstract interface into the operational requirements for different devices. One feature of such a uniform interface is that in many situations one can, by sim- ply rebinding the name, replace an I/O device with a file, or vice versa, without modi- fying the application program in any way. This use of naming in support of modularity is especially helpful when debugging an application program. For example, one can easily test a program that expects keyboard input by slipping a file filled with text in the place of the keyboard device. Because of such examples, the file system abstrac- tion has proven to be very successful. 2.4 lOOKING BaCK aND aHeaD This chapter has developed several ideas and concepts that provide useful back- ground for the study of computer system design. First, it described the three major abstractions used in designing computer systems--memory, interpreters, and com- munication links. Then it presented a model of how names are used to glue together modules based on those abstractions to create useful systems. Finally, it described some parts of a typical modern layered computer system in terms of the three major abstractions. With this background, we are now prepared to undertake a series of more in-depth discussions of specific computer system design topics. The first such in-depth discussion, in Chapter 3, is of the several engineering problems surrounding the use of names. Each of the remaining chapters undertakes a similar in-depth discus- sion of a different system design topic. Before moving on to those in-depth discussions, the last section of this chapter is a case study of how abstraction, naming, and layers appear in practice. The case study uses those three concepts to describe the unix system.