operating-systems
# Operating Systems in Three Easy Pieces
# I. A Dialogue on the Book
# Key Ideas
Virtualization
Concurrency
Persistence
# II. Intro to Operating Systems
# Key Ideas
How to virtualize resources?
- What mechanisms and policies are implemented by the OS to attain virtualization?
- How does the OS do so efficiently?
- What hardware support is needed?
How to build correct concurrent programs?
- When there are many concurrently executing threads within the same memory space, how can we build a correctly working program?
- What primitives are needed from the OS?
- What mechanisms should be provided by the hardware?
- How can we use them to solve the problems of concurrency?
How to store data persistently?
What techniques are needed to do so correctly? What mechanisms and policies are required to do so with high performance? How is reliability achieved, in the face of failures in hardware and software?
# Definitions
Virtualization
The OS takes a physical resources (processor, memory, disk) and transforms it into a more general, powerful, and easy-to-use virtual form of itself –> virtual machine
Typical OS exports a few hundred system calls to APIs and provides a standard library to applications
# Von Neumann
The processor fetches an instruction from memory, decodes it, and executes it. This continues until the program completes.
# Notes
OS –> resource manager
each of the CPU, memory, and disk is a resource of the system
# Virtualizing the CPU
1 2 3 4 5
#include <stdio.h> #include <stdlib.h> #include <sys/time.h> #include <assert.h> #include "common.h"
|
|
- Turning a single CPU into an infinite number of CPUs and thus allowing many programs to seemingly run at once –> virtualizing the CPU
# Concurrency
# Persistence
# Design Goals
- Abstractions
- High Performance –> minimize the overheads of the OS
- Provide protection between applications
- Isolation –> isolating processes from one another is the key to protection
- Operating systems strive to provide a high degree of reliability
- Energy-efficiency
- Security
- Mobility
# History
# References
Brinch Hansen
Early operating systems were just a set of libraries of commonly-used functions.
Batch Processing
System Call pioneered by the Atlas computing System –> added a special pair of hardware instructions and hardware state to make the transition into the OS a more formal, controlled process
- System Call vs. Procedure Call
Part 2