ebook img

Fundamentals of Operating Systems PDF

209 Pages·1993·18.068 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Fundamentals of Operating Systems

Macmillan Computer Science Series Consulting Editor: Professor F. H. Sumner, University of Manchester A. Abdellatif, J. Le Bihan, M. Limame, Oracle-A User's Guide S. T. All worth and R.N. Zobel, Introduction to Real-time Software Design, second edition Ian 0. Angell, High-resolution Computer Graphics Using C Ian 0. Angell and Gareth Griffith, High-resolution Computer Graphics Using FORTRAN 77 Ian 0. Angell and Gareth Griffith, High-resolution Computer Graphics Using Pascal M. Azmoodeh, Abstract Data Types and Algorithms, second edition C. Bamford and P. Curran, Data Structures, Files and Databases, second edition Philip Barker, Author Languages for CAL P. Beynon-Davies, Information Systems Development, second edition G. M. Birtwistle, Discrete Event Modelling on Simula B. G. Blundell, C. N. Daskalakis, N. A. E. Heyes and T. P. Hopkins, An Introductory Guide to Silvar Lisco and H/LO Simulators Richard Bomat, Understanding and Writing Compilers Linda E. M. Brackenbury, Design ofVLSI Systems-A Practical Introduction Alan Bradley, Peripherals for Computer Systems G. R. Brookes and A. 1. Stewart, Introduction to occam 2 on the Transputer P. C. Capon and P. J. Jinks, Compiler Engineering Using Pascal J. C. Cluley, Introduction to Low Level Programming for Microprocessors Eric Davalo and Patrick Nairn, Neural Networks S.M. Deen, Principles and Practice of Database Systems C. Delannoy, Turbo Pascal Programming Tim Denvir,lntroduction to Discrete Mathematics for Software Engineering D. England et al., A Sun User's Guide, second edition 1. S. Florentin, Microprogrammed Systems Design A. B. Fontaine and F.Barrand, 80286 and 80386 Microprocessors Michel Gauthier, Ada-A Professional Course 1. B. Gosling, Design ofArithmetic Units for Digital Computers M.G. Hartley, M. Healey and P. G. Depledge, Mini and Microcomputer Systems 1. A. Hewitt and R. J. Frank, Software Engineering in Modula-2-An Object-oriented Approach Roger Hutty, COBOL 85 Programming Roland N. Ibbett and Nigel P. Topham, Architecture of High Performance Computers, Volume I Roland N. Ibbett and Nigel P. Topham, Architecture of High Performance Computers, Volume II Patrick Jaulent, The 68000-Hardware and Software P. Jaulent, L. Baticle and P. Pillot, 68020-30 Microprocessors and their Coprocessors M. J. King and J.P. Pardoe, Program Design Using JSP -A Practical Introduction, second edition V. P. Lane, Security of Computer Based Information Systems Bernard Leguy, Ada-A Programmer's Introduction M. Leonard, Database Design Theory David Lightfoot, Formal Specification Using Z A.M. Lister and R. D. Eager, Fundamentals of Operating Systems,fifth edition Elizabeth Lynch, Understanding SQL Tom Manns and Michael Coleman, Software Quality Assurance, second edition B. A. E. Meekings, T. P. Kudrycki and M.D. Soren, A Book on C, third edition R. J. Mitchell, Microcomputer Systems Using the STE Bus R. J. Mitchell, C++ Object Oriented Programming R. J. Mitchell, Modula-2 Applied Y. Nishinuma and R. Espesser, UNIX-First contact Pharo Thu Quang and C. Chartier-Kastler, MERISE in Practice A. J. Pilavakis, UNIX Workshop continued overleaf E. 1. Redfern, Introduction to Pascal for Computational Mathematics Gordon Reece, Microcomputer Modelling by Finite Differences F. D. Rolland, Programming with VDM W. P. Salman, 0. Tisserand and B. Toulout, FORTH L. E. Scales, Introduction to Non-Linear Optimization A. G. Sutcliffe, Human-Computer Interface Design, second edition C. 1. Theaker and G. R. Brookes, Concepts of Operating Systems M. Thorin, Real-time Transaction Processing M. R. Tolhurst eta/., Open Systems Interconnection A. 1. Tyrrell, COBOL from Pascal I. R. Wilson and A.M. Addyman, A Practical Introduction to Pascal with BS6/92, second edition Other titles I. 0. Angell, Advanced Graphics on VGA and XGA Cards Using Borland C++ B. V. Cordingley and D. Chamund, Advanced BASIC Scientific Subroutines N. Frude, A Guide to SPSS!PC+, second edition Percy Mett, Introduction to Computing Tony Royce, COBOL-An Introduction Tony Royce, Structured COBOL-An Introduction Barry Thomas, A PostScript Cookbook Funda01entals of Operating Systems A.M. Lister University of Queensland R. D. Eager University of Kent at Canterbury Fifth Edition 150th YEAR M ©A.M. Lister 1975, 1979, 1984 © A. M. Lister and R. D. Eager 1988, 1993 All rights reserved. No reproduction, copy or transmission of this publication may be made without written permission. No paragraph of this publication may be reproduced, copied or transmitted save with written permission or in accordance with the provisions of the Copyright, Designs and Patents Act 1988, or under the terms of any licence permitting limited copying issued by the Copyright Licensing Agency, 90 Tottenham Court Road, London WlP 9HE. Any person who does any unauthorised act in relation to this publication may be liable to criminal prosecution and civil claims for damages. First edition 1975 Reprinted 1977, 1978 Second edition 1979 Reprinted 1980 (twice), 1981 (four times), 1983 (three times) Third edition 1984 Reprinted 1984, 1985, 1986 Fourth edition 1988 Reprinted 1989 (twice), 1990, 1991, 1992 Fifth edition 1993 Published by THE MACMILLAN PRESS LTD Houndmills, Basingstoke, Hampshire RG21 2XS and London Companies and representatives throughout the world ISBN 978-0-333-59848-1 ISBN 978-1-349-13283-6 (eBook) DOI 10.1007/978-1-349-13283-6 A catalogue record for this book is available from the British Library. Contents Preface to the First Edition xi Preface to the Second Edition xii Preface to the Third Edition xiii Preface to the Fourth Edition xiii Preface to the Fifth Edition xiv 1 Introduction 1 1.1 Types of operating system 3 1.2 System structure 6 1.3 The 'paper' operating system 8 2 Functions and Characteristics of an Operating System 9 2.1 Operating system functions 9 2.2 Operating system characteristics 13 2.3 Desirable features 15 3 Concurrent processes 17 3.1 Programs, processes and processors 17 3.2 Communication between processes 19 3.3 Semaphores 21 3.4 Monitors 29 3.5 Message passing 30 3.6 Summary 32 4 The System Nucleus 33 4.1 Essential hardware facilities 33 4.2 Outline of the nucleus 35 4.3 Representation of processes 37 4.4 The first-level interrupt handler 38 4.5 The dispatcher 41 4.6 Implementation of wait and signal 45 5 Memory Management 51 5.1 Objectives 51 5.2 Virtual memory 53 5.3 Implementation of virtual memory 54 5.4 Memory allocation policies 66 5.5 The working set model 72 vii viii Fundamentals of Operating Systems 5.6 Implementation in the paper system 74 6 Input and Output 76 6.1 Design objectives and implications 77 6.2 The 1/0 procedures 80 6.3 The device handlers 82 6.4 Buffering 85 6.5 File devices 87 6.6 Spooling 89 6.7 Conclusion 91 7 The Filing System 92 7.1 Objectives 92 7.2 File directories 93 7.3 Sharing and security 96 7.4 Secondary memory organisaton 99 7.5 File system integrity 106 7.6 Opening and closing files 108 7.7 Conclusion 112 8 Resource Allocation and Scheduling 114 8.1 General observations 114 8.2 Allocation mechanisms 115 8.3 Deadlock 117 8.4 The scheduler 124 8.5 Scheduling algorithms 126 8.6 Process hierarchies 131 8.7 Control and accounting 134 8.8 Summary 138 9 Protection 140 9.1 Motivation 140 9.2 Development of protection mechanisms 141 9.3 A hierarchical protection mechanism 145 9.4 General systems 147 9.5 Conclusion 152 10 Reliability 153 10.1 Objectives and terminology 153 10.2 Fault avoidance 155 10.3 Error detection 158 10.4 Fault treatment 160 10.5 Errorrecovery 161 10.6 Multilevel error handling 163 10.7 Conclusion 165 Contents ix 11 The User Interface 166 11.1 Some general remarks 166 11.2 Command languages 167 11.3 Job control languages 170 11.4 Modern control languages 173 11.5 Graphical user interfaces 173 11.6 The job pool 174 11.7 System messages 175 11.8 Passage of a job through the system 175 Conclusion 177 Appendix: Monitors 182 References 185 Index 191 to my parents Preface to the First Edition An operating system is probably the most important part of the body of soft ware which goes with any modem computer system. Its importance is reflected in the large amount of manpower usually invested in its construction, and in the mystique by which it is often surrounded. To the non-expert, the design and construction of operating systems has often appeared an activity impenetrable to those who do not practise it. I hope this book will go some way toward dispelling the mystique, and encourage a greater general under standing of the principles on which operating systems are constructed. The material in the book is based on a course of lectures I have given for the past few years to undergraduate students of computer science. The book is therefore a suitable introduction to operating systems for students who have a basic grounding in computer science, or for people who have worked with computers for some time. Ideally the reader should have a knowledge of pro gramming and be familiar with general machine architecture, common data structures such as lists and trees, and the functions of system software such as compilers, loaders and editors. It will also be helpful if he or she has had some experience of using a large operating system, seeing it, as it were, from the outside. The first two chapters of the book define the functions of an operating system and describe some common operating system characteristics. Chapter 3 establishes the process as a basic concept in the discussion of the concurrent activities which go on inside an operating system, and describes how processes communicate with each other. The rest of the book then describes the construc tion of an operating system from the bottom up, starting at the interface with the machine hardware and ending at the interface with the user. By the end of the book the system which has been constructed is seen to possess the features demanded at the beginning. Throughout the book I have tried to show how each stage in the construc tion of an operating system naturally follows on the previous ones, and have emphasised the logical structure of the system as a whole. I have done this for two reasons. The first is pedagogical: my experience indicates that students gain a better understanding of complex material if it is presented in a coherent manner. The second is frankly polemic: this is the way I believe operating systems should be built. Attention to structure and logical dependence are the best means we have of building operating systems which are easy to under stand, easy to maintain, and relatively error free. Finally, I would like to thank xi

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.