×
Yes studying sucks... But NO, NOT more than FAILURE.
--Your friends at LectureNotes
Close

Note for Advanced Operating System - AOS By Mohammad Akbal

  • Advanced Operating System - AOS
  • Note
  • 6 Topics
  • 26 Views
  • Uploaded 8 months ago
0 User(s)
Download PDFOrder Printed Copy

Share it with your friends

Leave your Comments

Text from page-1

Advanced Topic in Operating Systems Lecture Notes Dr. Warren Toomey School of Information Technology Bond University Queensland, Australia With quotes from ‘The New Hacker’s Dictionary’ Third Session, 2003 c 1992-2003, Warren Toomey

Text from page-2

Contents 1 Introduction to Operating Systems 1 1.1 What is an Operating System? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Kernel Mode and User Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Other System Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Types of Operating Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Design Principles & Concepts 3 2.1 The Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.4 Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.5 Operating System Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.6 Unix and Laboratory Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.7 Operating System Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.8 The Monolithic Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.9 Client-Server Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3 The OS/Machine Interface 10 3.1 The CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 Main Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3 Buses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.4 Peripheral Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.6 Interrupt Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.7 The OS vs The User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.8 Traps and System Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4 Operating System History and Evolution 16 4.1 1st Generation: 1945 – 1955 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.2 2nd Generation: 1955 – 1965 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.3 3rd Generation: 1965 – 1980 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.4 Timesharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.5 3rd Generation – Part 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.6 4th Generation: 1980 onwards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5 Processes 20 5.1 What is a Process? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.2 The Process Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 i

Text from page-3

5.3 System Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.4 Layout of a Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.5 Process Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.6 How the Operating System Deals with System Calls . . . . . . . . . . . . . . . . . . . . . . . 22 5.7 Process Control Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.8 Context Switching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6 Process Scheduling 25 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.2 Scheduling Algorithms – Interactive (Pre-emption) . . . . . . . . . . . . . . . . . . . . . . . . 26 6.3 First Come First Served/ Round Robin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.4 Timeslice Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.5 Multiple Priority Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.6 Long-Term Schedulers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.7 The Unix Long-Term Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.8 Which is the Right Scheduling Algorithm to Use? . . . . . . . . . . . . . . . . . . . . . . . . 28 6.9 The Idle Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 7 Introduction to Input/Output 29 7.1 Why does the Operating System do I/O? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 7.2 Devices and the Machine Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 7.3 Direct Memory Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 8 Principles of Input/Output 31 8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 8.2 Goals of I/O Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 8.3 Interrupt Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 8.4 Device Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 8.5 The Device-Independent Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 8.6 Clocks – Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 8.7 Clocks – Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 9 Device Drivers and Interrupt Handlers 35 10 The Disk Device 36 10.1 Disk Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 10.2 Disk Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 10.3 Arm Scheduling – FCFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 10.4 Shortest Seek Time First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 10.5 SCAN Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ii

Text from page-4

10.6 C-SCAN Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 10.7 Sector Queueing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 10.8 Interleaving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 10.9 Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 10.10Recent Disk Advances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 11 Terminals 41 11.1 Terminal Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 11.2 Serial Terminal Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 11.3 Memory-Mapped Terminals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 11.4 Terminal Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 11.5 Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 12 Introduction to Memory Management 45 12.1 What is Memory & Why Manage It? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 12.2 Process Compilation & Memory Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 12.3 Bare Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 12.4 Operating System in ROM – Resident Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . 46 12.5 Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 12.6 Allocating & Placing Partitions in Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 13 Pages 48 13.1 Problems with Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 13.2 Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 13.3 An Example Page Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 13.4 Pages vs. Paging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 13.5 Huge Logical Memory Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 13.6 Problems of Paged Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 13.7 Sharing Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 13.8 Copy-on-Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 13.9 Operating System Use of Page Entry Protections . . . . . . . . . . . . . . . . . . . . . . . . . 53 14 Virtual Memory 53 14.1 Why Use Virtual Memory? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 14.2 Paging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 14.3 Paging – How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 14.4 Hardware Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 14.5 Optimal Page Replacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 14.6 Not Recently Used Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 iii

Lecture Notes