Operating Systems - Cardiff University

Download Report

Transcript Operating Systems - Cardiff University

Computer Systems Architecture
CMT603
Operating Systems
Ian Cooper
[email protected]
Plan for This session
•
•
•
•
Introduce myself
Talk about the style of the lectures
Brief introduction to Operating Systems
Cover a few basic concepts.
Ian Cooper
•BEng
Electronics
•Nortel
•Holliday group / iTouch
•Allied Telesyn Research
• MSc Computing
• Writing up PhD
The Course Info
•
•
•
•
INTERACTIVE!!!!!
11 hours + 1 revision lecture
Example Exercises
Reading
– Modern Operating Systems (second edition).
Andrew S. Tanenbaum. Prentice Hall, 2001.
– Operating System Concepts. Seventh edition.
Silberschatz Galvin, Addison-Wesley, 2005.
• INTERACTIVE!!!!!
What is an operating system?
Examples of Operating Systems.
OSX
Windows Mobile
Mac OS
Linux
Android (open handset alliance)
Unix
Windows XP
MS-DOS
Windows 95
Windows Vista
Symbian
Acorn MOS
What is an operating system?
•
What does it do?
•
•
•
•
•
•
•
Process Management
Memory management
I/O management
Support functions
Networking
User interface
Security
Where does it fit in?
Application
Program
Instruction Level
Operating System
Instruction Set
Architecture
Micro architecture
Implementation
Operating System Goals
•
•
•
•
•
•
•
•
Efficiency
Throughput
Functionality
Robustness
Extensibility
Portability
Security
Interactivity
Course Contents.
•
•
•
•
•
•
Introduction
Processes and Threads
Scheduling
Critical Section Algorithms
Semaphores
Memory
– Contiguous memory.. Fixed/Variable
partition
– Non Contiguous memory..
Paging/Segmentation
– Virtual memory
• File Systems
Concepts
• Architectures of Operating Systems
–
–
–
–
–
Monolithic
Layered
Kernel
Microkernel
Virtual Machines
• Increasing Efficiency
– Multi program
– Multi User
Monolithic Architecture
• Monolithic Architecture—the early
operating systems
– Every component is contained in the kernel,
can directly communicate with other
components
Monolithic Architecture
Applications
User Space
System Calls
OS Layer
Computer Hardware
Monolithic Architecture
• Pros
– Highly efficient – by direct intercommunication
between components
• Cons
– difficult to develop
– difficult to isolate the source of bugs and other
errors
• particularly susceptible to damage from malicious
code
Layered Architecture
• Layered OS structure:
– Group components that perform similar
functions into layers. Each layer
communicates only with neighbour layer
User Space
Layer 3
Layer 2
Kernel Space
Layer 1
Layer 0
Computer Hardware
Layered Architecture
• Pros
– It provides good modularity – helps simplify
the development of an OS
• Cons
– Less efficient
– Complex design – each functionality has to be
divided into parts to fit into different layers.
Kernel Based Architecture
• It separates the machine-independent
parts from the machine-dependent parts
– Kernel is machine-dependent. It contains the
basic component of OS.
User Space
Operating System
OS Kernel
Computer Hardware
Kernel Based Architecture
• Pros
– Better portability—Kernel encloses all the
machine-dependent code
• Cons
– Suffers similar problem as in layered OSs
Microkernel Based Architecture
• As OS expanded, the kernel became large
and difficult to manage
– Microkernel approach removes all
nonessential components from the kernel and
implementing them as system and user-level
programs.
• Result: A smaller kernel
Microkernel Based Architecture
User Space
Operating System
Microkernel
Computer Hardware
Microkernel Based Architecture
• Pros
– Enhance portability, extensibility, reliability and
security
• Cons
– Less efficient—increased system function
overhead
Virtual Machines
• Can create the
illusion that there
are more than one
separate
machines.
User Space User Space User Space
Kernel
Kernel
VM1
VM1
Virtual machine
implementation
Host Operating System
Computer Hardware
Increasing Efficiency
•
Multiprogramming
– Try to Keep the CPU busy
– CPU operations take less
time than I/O
– When a process waits for
I/O operation, OS swaps
to another process.
Operating
System
Job 1
Job 2
Job 3
Multi User
– Logical extension of Multiprogramming
Summary
•
•
•
•
•
What an Operating System does
Where an Operating System fits in
How an Operating System works
Architectures of Operating Systems
Multi [user, program]
Question…
(to think about, you don’t have to go and research this. (yet))
• If the OS is a multiprogramming OS, and
the OS chooses a job for execution, this
job will be active in the CPU. This means
that (in a single processor computer) the
OS is not running.
• How does the OS retain control over the
computer resources in order to swap the
jobs???