Operating Systems High Level View Chapter 1 2

  • Slides: 43
Download presentation
Operating Systems High Level View • Chapter 1, 2

Operating Systems High Level View • Chapter 1, 2

Who is the User? • • End Users Application Programmers System Programmers Administrators

Who is the User? • • End Users Application Programmers System Programmers Administrators

End Users Want • • Ease of use and learn Adaptable to user’s style

End Users Want • • Ease of use and learn Adaptable to user’s style Alternative ways to do things Lots of visual cues Free of nasty surprises Reliable quick response Consistency among features

Application Programmers Want • Easy to write programs – read keystrokes – draw to

Application Programmers Want • Easy to write programs – read keystrokes – draw to screen – change windows • Consistent view of system • Easy to use system facilities – creating new windows – accessing a network • Platform portability

System Programmers Want • Easy to – – – create correct programs configure debug

System Programmers Want • Easy to – – – create correct programs configure debug maintain expand

Administrators Want • • • Easy to add or remove devices Protect system and

Administrators Want • • • Easy to add or remove devices Protect system and data Easy to upgrade Easy to manage user accounts Good & predictable average response Affordable

A Mouse Example • • User moves mouse -> hardware interrupt OS driver sees

A Mouse Example • • User moves mouse -> hardware interrupt OS driver sees movement in pulse rate OS moves cursor on screen Application sees “mouseover” event -> updates screen image • User sees image change – clicks icon

Terms & Concepts • Operating System - software that manages resources of a computer

Terms & Concepts • Operating System - software that manages resources of a computer & provides interfaces to them. • Device - piece of hardware connected to the main computer hardware. • Device controller - electronic interface which controls devices connected to the computer.

Terms & Concepts • Bus - conductors connecting many hardware components in a computer.

Terms & Concepts • Bus - conductors connecting many hardware components in a computer. • Device driver – a part of the OS that interfaces to a device controller. • Kernel - part of an OS that implements basic functions – always running.

Terms & Concepts (cont. ) • Service - functions an OS provides to users

Terms & Concepts (cont. ) • Service - functions an OS provides to users through programmer interfaces. • Utility - programs not part of the operating system kernel. • Shell - user interface to most system services – command interpreter.

Simplified PC Hardware Bus CPU Disk Controller Video Controller Memory Keyboard Controller Hard Disk

Simplified PC Hardware Bus CPU Disk Controller Video Controller Memory Keyboard Controller Hard Disk Video Monitor Keyboard

One picture of an OS Shell (Command Interpreter) Utilities Other Programs (Browsers, games, word

One picture of an OS Shell (Command Interpreter) Utilities Other Programs (Browsers, games, word processing) Operating System Kernel Devices (disks, keyboards) Memory CPU

A Personal Computer & OS Command (Command Interpreter) Utilities Other Programs (Browsers, games, word

A Personal Computer & OS Command (Command Interpreter) Utilities Other Programs (Browsers, games, word processing) Operating System Kernel Device Drivers BIOS (DVD driver, video driver) (Interface to hardware) Devices (Disks, keyboards) CPU Memory

The Process Concept and OS Process Information • Process – a program in execution

The Process Concept and OS Process Information • Process – a program in execution – Also called a job or task • Has CPU state – registers • Has allocated resources

Process States • • • Started Ready Running Waiting (Blocked) Terminated (Ended)

Process States • • • Started Ready Running Waiting (Blocked) Terminated (Ended)

Process State Diagram 0 - Program Loaded New 1 - Process Initialized 4 –

Process State Diagram 0 - Program Loaded New 1 - Process Initialized 4 – Got What it needed Wait Ready 2 – Gets CPU Time 3 – Needs something 5 - Interrupted Run 6 - Finished or aborted Exit 7 - Exits System

State Transitions • • 0 – OS is preparing the job to run 1

State Transitions • • 0 – OS is preparing the job to run 1 – Job is ready to run 2 – Job starts (or resumes) running 3 – Job is waiting for something 4 – Job waiting has finished 5 – Job is preempted 6 – Job ends or is aborted 7 – Job exits system

Process Information the OS Maintains • Process ID – a number (PID) • Process

Process Information the OS Maintains • Process ID – a number (PID) • Process Control Block (PCB) – Priority information – Process state – Processor (CPU) state – -> Memory access table – -> Open files table – -> Next PCB

Types of Processes • User or Application Processes • Systems Program Processes • OS

Types of Processes • User or Application Processes • Systems Program Processes • OS Processes

Processor Modes • Privileged – Monitor, kernel, supervisor, ring 0 or system • Non-privileged

Processor Modes • Privileged – Monitor, kernel, supervisor, ring 0 or system • Non-privileged – user or application

Types of OSs • Single-user • Multi-tasking or multi-programming • Time Sharing • Network

Types of OSs • Single-user • Multi-tasking or multi-programming • Time Sharing • Network and distributed • Real-Time

Single-user OS • • • One user One process running Limited memory management File

Single-user OS • • • One user One process running Limited memory management File services I/O services

Multi-tasking OS • • Multiple processes running May still be single user All that

Multi-tasking OS • • Multiple processes running May still be single user All that a single task system does, + CPU scheduling – Context switching

Multi-user OS • Multiple users • Users are interactive • Jobs – are short

Multi-user OS • Multiple users • Users are interactive • Jobs – are short – need fewer resources – need fast response time

Network/ Distributed OS • Low-level services – Connect to the network – Send messages

Network/ Distributed OS • Low-level services – Connect to the network – Send messages between systems • Higher-level services – Browsing – File sharing – Print services

Real-Time OS • Time deadlines • Hard deadlines – Useless results or catastrophe •

Real-Time OS • Time deadlines • Hard deadlines – Useless results or catastrophe • Soft deadlines – Some lateness tolerated

Architectural Approaches to Building an OS • • Monolithic single-kernel Microkernel and Layered Object-oriented

Architectural Approaches to Building an OS • • Monolithic single-kernel Microkernel and Layered Object-oriented Approach Virtual Machines

Monolithic Architecture • • One dense module RAM was expensive Started adding features Got

Monolithic Architecture • • One dense module RAM was expensive Started adding features Got bloated – Harder to add to – Harder to maintain

Layered Architecture • Functions divided into Layers • Each layer higher abstraction • Hopefully

Layered Architecture • Functions divided into Layers • Each layer higher abstraction • Hopefully don’t skip layers – Faster – Less portable

Layered Architecture Shell (Command Interpreter) Utilities User Programs (Browsers, games, word processing) API Memory

Layered Architecture Shell (Command Interpreter) Utilities User Programs (Browsers, games, word processing) API Memory Management Processor Scheduling File System Device Drivers Devices (disks, keyboards) CPU Memory Kernel

Microkernel Architecture • One small module • RAM getting cheaper • Started removing features

Microkernel Architecture • One small module • RAM getting cheaper • Started removing features – Moved into higher layers – Run in user mode – Still OS functions

Microkernel Architecture Shell (Command Interpreter) Memory Management Other Programs (Browsers, games, word processing, …)

Microkernel Architecture Shell (Command Interpreter) Memory Management Other Programs (Browsers, games, word processing, …) Utilities Processor Scheduling File System Microkernel Devices (disks, keyboards, …) USER Mode KERNEL Mode

Implementation Techniques • Interrupt Handling – Interrupt Vectors • • • System Calls Queues

Implementation Techniques • Interrupt Handling – Interrupt Vectors • • • System Calls Queues and Tables Object Oriented Approach Minimalist vs. Maximalist Approaches Backward Compatibility

Interrupt Handling – Interrupt Vectors • Hardware signals an event – I/O completion or

Interrupt Handling – Interrupt Vectors • Hardware signals an event – I/O completion or fault • Interrupt register holds interrupt # • # used to select routine address – Vector table in low RAM

Interrupt Vector Interrupt Register Index into interrupt vector Address of interrupt service routine 1

Interrupt Vector Interrupt Register Index into interrupt vector Address of interrupt service routine 1 Address of interrupt service routine 2 Address of interrupt service routine 3 ooo Illustrating an for handling interrupts Address of interrupt service routine N

System Calls • Load registers/ variables with arguments • TRAP instruction • Generates an

System Calls • Load registers/ variables with arguments • TRAP instruction • Generates an interrupt • Automatic switch to kernel mode • Arguments tell OS what to do • Afterwards • “return” as from a function call • Force return to user mode

System Call There are 11 steps in making the system call 9/26/2020 read (fd,

System Call There are 11 steps in making the system call 9/26/2020 read (fd, buffer, nbytes) B. Ramamurthy 37

Some System Calls For Process Management and File Management 9/26/2020 B. Ramamurthy 38

Some System Calls For Process Management and File Management 9/26/2020 B. Ramamurthy 38

OS Queues and Tables • Tables – PCB – Open File Table – Page

OS Queues and Tables • Tables – PCB – Open File Table – Page Tables • Queues – Ready processes – I/O requests – event waits

Object Oriented Architecture • • A collection of objects Better software engineering Performance penalty

Object Oriented Architecture • • A collection of objects Better software engineering Performance penalty Any object can use any other

Virtual Machine Architecture • • OS emulates hardware architecture Runs other OS, not user

Virtual Machine Architecture • • OS emulates hardware architecture Runs other OS, not user applications Good for OS development Related – simulate abstract machines – Java –. Net CLR

Hardware Virtual Machine Model Shell, Utilities, or Programs Kernel 1 Shell, Utilities, or Programs

Hardware Virtual Machine Model Shell, Utilities, or Programs Kernel 1 Shell, Utilities, or Programs Kernel 2 Kernel 3 Virtual Machine Devices (disks, keyboards, … ), CPU, Memory

Minimalist vs. Maximalist • Less is more – Minimum in kernel – Else in

Minimalist vs. Maximalist • Less is more – Minimum in kernel – Else in libraries and layers – More choices – Linux • All in One – Operating Standards – MAC OS