Operating Systems
Total Page:16
File Type:pdf, Size:1020Kb
Operating Systems Vlastimil Babka Lubomír Bulej Vojtechˇ Horký Petr T ˚uma Operating Systems by Vlastimil Babka, Lubomír Bulej, VojtˇechHorký, and Petr T ˚uma This material is a work in progress that is provided on a fair use condition to support the Charles University Operating Systems lecture. It should not be used for any other purpose than to support the lecture. It should not be copied to prevent existence of outdated copies. It comes without warranty of any kind. This is version c4e8ea9cbfd46e2abdb2d2a46bd50950b29e8edb (modified) generated on 2018-01-11 10:11:55. For the latest version, check http://d3s.mff.cuni.cz/~ceres. Table of Contents 1. Introduction.......................................................................................................................1 Foreword.......................................................................................................................1 Origins..................................................................................................................1 Structure...............................................................................................................1 Historic Perspective.....................................................................................................1 Stone Age.............................................................................................................1 Transistors............................................................................................................3 Low Integration..................................................................................................4 High Integration.................................................................................................5 Basic Concepts..............................................................................................................5 Hardware Building Blocks................................................................................6 Basic Computer Architecture............................................................................7 Advances In Processor Architecture..............................................................10 Advances In Memory Architecture................................................................11 Advances In Bus Architecture........................................................................11 Operating System Structure............................................................................13 2. Process Management......................................................................................................17 Process Alone..............................................................................................................17 Process And Thread Concepts........................................................................17 Starting A Process.............................................................................................17 What Is The Interface.......................................................................................28 Rehearsal............................................................................................................32 Achieving Parallelism................................................................................................32 Multiprocessing On Uniprocessors................................................................32 Multiprocessing On Multiprocessors............................................................35 Cooperative And Preemptive Switching......................................................35 Switching In Kernel Or In Process.................................................................35 Process Lifecycle...............................................................................................36 How To Decide Who Runs..............................................................................36 What Is The Interface.......................................................................................44 Rehearsal............................................................................................................46 Process Communication............................................................................................48 Means Of Communication..............................................................................48 Shared Memory.................................................................................................48 Message Passing...............................................................................................49 Remote Procedure Call....................................................................................52 Rehearsal............................................................................................................54 Process Synchronization............................................................................................55 Synchronization Problems...............................................................................55 Means For Synchronization............................................................................57 Memory Models................................................................................................61 Synchronization And Scheduling..................................................................64 What Is The Interface.......................................................................................66 Rehearsal............................................................................................................70 3. Memory Management....................................................................................................73 Management Among Processes...............................................................................73 Multiple Processes Together...........................................................................73 Separating Multiple Processes........................................................................74 What Is The Interface.......................................................................................82 Rehearsal............................................................................................................82 Allocation Within A Process.....................................................................................84 Process Memory Layout..................................................................................84 Stack....................................................................................................................85 Heap...................................................................................................................87 Rehearsal............................................................................................................92 iii 4. Device Management.......................................................................................................95 Device Drivers............................................................................................................95 Asynchronous Requests..................................................................................95 Synchronous Requests.....................................................................................97 Power Management.........................................................................................98 Rehearsal............................................................................................................98 Devices.........................................................................................................................99 Busses.................................................................................................................99 Clock.................................................................................................................103 Keyboard..........................................................................................................104 Mouse...............................................................................................................104 Video Devices..................................................................................................104 Audio Devices.................................................................................................104 Disk Storage Devices......................................................................................104 Memory Storage Devices...............................................................................109 Network Cards................................................................................................109 Parallel Ports....................................................................................................109 Serial Ports.......................................................................................................109 Printers.............................................................................................................109 Modems............................................................................................................109 Rehearsal..........................................................................................................109 Rehearsal...................................................................................................................110 5. File Subsystem..............................................................................................................111 Abstractions And Operations.................................................................................111