4003-440-02 Operating Systems I
Module 1. OS Structures -- Lecture Notes
Prof. Alan Kaminsky -- Winter Quarter 2012
Rochester Institute of Technology -- Department of Computer Science
What Is an Operating System?
- Examples of OSes
- Views of the computer
- Below the operating system
- Above the operating system
Review of Computer Organization
- The three major parts of a computer
- Input/output
- I/O devices
- Device controllers
- The two methods of transferring data from/to I/O devices
- Interrupts and traps
- Storage hierarchy
- Registers
- Level 1 cache
- Level 2 cache
- Main memory
- Electronic disk
- Magnetic disk
- Optical disk
- Magnetic tape
Review of Computer Architecture
- Single processor computers
- Multiprocessor computers
- Asymmetric multiprocessors
- Symmetric multiprocessors (SMPs)
- Multicore processors
- Cluster computers
- Hybrid SMP cluster computers
- Distributed systems
- Relationship between computer architecture and OS
- Single processor OS
- SMP/multicore OS
- Cluster computers/distributed systems
- Separate independent OSes
- Distributed OS
- Relationship between computer architecture and application design
- Multiple threads, shared memory
- Multiple processes, message passing
- The coming importance of multiprocessor programming (parallel programming)
Operating System Operations
- Multiprogramming
- Why multiprogramming is good
- Batch/non-interactive
- Time sharing/interactive
- Interrupt handling
- Interrupts from I/O devices
- Traps from user programs
- User mode and kernel (privileged) mode
- Timer interrupts
- Process management
- Job scheduling
- CPU scheduling
- Threads and processes
- Interprocess communication
- Synchronization
- Shared memory
- Messages
- Streams
- Storage management
- Swapping
- Virtual memory
- File system management
- Mass storage management
- Caching of mass storage data
- I/O management
- Peripherals
- Network protocol stacks
- Graphical user interface (GUI) management
- Integrated into the OS
- Above the OS
- Protection and security
- User authentication
- Access control
Operating System Structure
- Three major alternatives
- Monolithic OS
- The entire OS is one big program that runs in kernel mode
- Example: Early Unix systems
- Modular OS
- OS consists of a base program that is always loaded plus modules that are loaded only when needed, all running in kernel mode
- Examples: Linux (2.5 million lines of code), Windows (> 5 million lines of code)
- Microkernel OS
- OS consists of a very small program running in kernel mode (microkernel) plus lots of manager processes running in user mode
- Examples: Minix (microkernel has 4,000 lines of code); many embedded and real-time OSes
- Pros and cons
- Article: "Can we make operating systems reliable and secure?"
Operating System Interfaces and APIs
- OS interfaces: System calls
- OS application program interfaces (APIs): Programming language subroutines
- What an API routine does
- Examples of OS APIs
- Command interpreters
- Text oriented shells
- GUI desktops
Virtual Machines
- Virtual machines to provide virtual hardware
- Virtual machines to provide a hardware-independent computing platform
- Java Virtual Machine (JVM)
- Android Dalvik Virtual Machine
- Microsoft .NET
|
Operating Systems I
|
|
•
|
|
4003-440-02
|
|
•
|
|
Winter Quarter 2012
|
|
Course Page
|
|
Alan Kaminsky
|
|
•
|
|
Department of Computer Science
|
|
•
|
|
Rochester Institute of Technology
|
|
•
|
|
4486 +
2220 =
6706
|
|
Home Page
|
Copyright © 2012 Alan Kaminsky.
All rights reserved.
Last updated 20-Nov-2012.
Please send comments to ark@cs.rit.edu.
|