OS Note Chapter 1: Introduction
Computer-System Architecture and Organization
I/O Devices: except CPU and memory
- I/O devices and the CPU can work concurrently(同时)
CPU and Memory in Computer
- Single processor
- Multiple processors
- Dual core
- Non-Uniform Memory Access System (NUMA)
Device driver (software)
- inside the kernel knows how to talk and manage the device
- provides uniform interface between controller and kernel
Each device controller informs CPU that it has finished its operation by causing an interrupt.
An operating system is interrupt driven
- Definition: An interrupt is a signal emitted by hardware or software when a process or an event needs immediate attention
- Software: A trap or exception is a software-generated interrupt caused either by an error or a user request (system call)
- Hardware: Device
- ISR (Interrupt Service Routines) inside the kernel determine what action should be taken for each type of interrupt
- The code of the kernel is in memory all the time but the code of the kernel is only executed when there is an interrupt, on demand!
- Interrupt Handling Steps
- Preserves the state of the CPU by storing registers and the program counter(PC) for the software that was just interrupted (so that the same software can be restarted later).
- Determine type of interrupt
- check Interrupt vector to get the address of corresponding ISR for this interrupt (used on all modern computers)
- Runs ISR in kernel to handle interrupt
How a Modern Computer Works: DMA
DMA (Direct Memory Access )
- Device controller transfers blocks of data from buffer storage directly to main memory without CPU intervention
- In the meantime the CPU can work on something else.
- Only one interrupt is generated per block
- High transfer speed: not byte by byte, but block by block
Operating System: intermediary(中间人) between a user and the computer hardware
Definition
No universally accepted definition
Introduction to Operating System
An operating system is a program that acts as an intermediary between a user of a computer and the computer hardware.
User <— Operating System —> Computer Hardware
OS provides interface to a user, run a program for a user.
General goals
- Execute user programs and make solving user problems easier
- Make the computer system convenient to use
- Use the computer hardware in an efficient manner
A definition
Everything a vendor ships when you order an operating system.
“Everything” include:
- Kernel - part of the operating system, reside in memory at all times on the computer,
- Others
- system programs: all programs associated with the operating system, but not in kernel
- application program: all programs not associated with the operating system
- middleware(中间件): a set of software frameworks that provide additional services to application developers such as databases, multimedia, graphics
Goals
Goals Depends on computer/device types
- User view: ease of use
- System view: resource allocation
Personal computer
- Feature: owned by individuals
- OS goal: convenience, ease of use and good performance
Shared computer (e.g. mainframe or minicomputer)
- Feature: shared by multiple users
- OS goal: keep all happy, efficient use of Hardware and managing user programs
Mobile devices (e.g. smartphones and tablets)
- Feature: resource poor
- OS goal: optimized for usability and battery life, provides user interfaces such as touch screens, voice recognition
Embedded computers
- Feature: little or no user interface
- OS goal: run program
Operations (Operating system activities)
Operating system does a lot of management work
Caching
- Copy information from slower into faster storage system
- Purpose: Speed up data access
Process management
Program vs process
-
A process is a program in execution
- program is a passive entity, on storage
- process is an active entity, in memory
-
Process
-
creation, execution needs resources
- CPU, memory, I/O, files
- Initialization data
-
termination requires reclaim of any reusable resources
-
-
Process can be single-threaded (线程) process, or multi-threaded process
-
Each process has a program counter to specify location of next instruction to execute
Multiprogramming and Multitasking
Single process cannot always keep CPU and I/O devices busy
- Multiprogramming: A subset of total jobs are kept in memory at the same time
- Job scheduling: choose which jobs to load into memory and execute.
- When job has to wait (for I/O for example), OS switches to another job
- Multitasking: The CPU switches jobs so frequently to increase interactions with users
- CPU scheduling: choose which job will run next If several jobs are ready to run at the same time
Secondary storage —–Job scheduling—–> memory —–CPU scheduling—–> CPU
Process Execution: Dual-mode
System call: request for operating system service
Dual-mode operation allows OS to protect itself and other system components
Process Management Activities
Process management activities include:
- Creating and deleting both user and system processes
- Suspending and resuming processes
- Process synchronization
- Process communication
- Deadlock handling
Memory management
To execute a program, all (or part) of the instructions of the program and data needed by the program must be in memory
Memory management determines what is in memory and when
Memory management activities include
- Keeping track of which parts of memory are currently being used and by whom
- Deciding which processes and data (or part of them) to move into and out of memory
- Allocating and de-allocating memory space as needed
File management
OS provides uniform, logical view of information storage
- Abstracts physical properties to logical storage unit - file
- Files are usually organized into directories
- Access control determines who can access what
- File system activities include
- Creating and deleting files and directories
- Mapping files onto secondary storage
Secondary storage management
Disks usually are used to store data that do not fit in main memory or data that must be kept for a “long” period of time
- Proper management is of central importance
- Entire speed of computer operation hinges on disk subsystem and its algorithms
Secondary storage management activities
- Mounting and unmounting
- Free-space management
- Storage allocation
- Disk scheduling
- Partitioning
- Protection
I/O
One purpose of OS is to hide peculiarities of hardware devices from the user
I/O subsystem responsible for
- Memory management of I/O including buffering (storing data temporarily while it is being transferred), caching (storing parts of data in faster storage for performance), spooling (the overlapping of output of one job with input of other jobs)
- General device-driver interface
- Drivers for specific hardware devices
Protection and security
Protection
any mechanism for controlling access of processes or users to resources defined by the OS
Security
defense of the system against internal and external attacks
- Huge range, including denial-of-service, worms, viruses, identity theft, theft of service
Systems generally first distinguish among users, to determine who can do what
- User identities (user IDs, security IDs) include name and associated number, one per user
- Group identifier (group ID) allows set of users to be defined
Types
Virtualization
Virtualization is a technology that allows us to abstract the hardware of a single computer into several different execution environments, thereby creating the illusion that each separate environment is running on its own private computer.
VMMs (Virtual Machine Managers)
Run natively, no longer run on host operating systems but rather are the host operating systems, providing services and resource management to virtual machine processes.
Examples: VMware ESX and Citrix XenServer
Virtualization Examples
- Use cases
- Apple laptop running Mac OS X host, Windows as a guest
- Developing apps for multiple OSes without having multiple systems
- Quality assurance testing applications without having multiple systems
- Executing and managing compute environments within data centers
Operating System Examples
Commercial Operating Systems
- Windows
- MacOS
- …
Free and Open Operating Systems
- Examples
- GNU/Linux and BSD UNIX (including core of Mac OS X), and many more
- VMM like VMware Player (Free on Windows), Virtualbox (open source and free on many platforms - http://www.virtualbox.com)
Main Data Structures Used in OS
- Singly linked list
- Doubly linked list
- Circular linked list
- Binary search tree
- Hash function can create a hash map