Introduction & OS Structures Flashcards
Operating system
A program that manages a computer’s hardware. Also provides a basis for application programs and acts as an intermediary between the computer user and the computer hardware
Virtualization
The OS takes a physical resource and transforms it into a more general, powerful and easy-to-use virtual form of itself / abstracting underlying hardware
What does an OS provide?
- Standard library for resources
- Resource management
What are the advantages of the OS providing abstractions?
- Separate interface & underlying hardware implementation
- Allows applications to reuse common facilities
- Makes different devices look the same
What are the advantages of the OS providing resource management?
- Protect applications from one another
- Provide efficient access to resources /cost, time & energy)
- Provides fair access to resources
Resource
Anything valuable
What abstraction does a modern OS provide for the resource CPU?
Process / thread
Virtualizing the CPU
Turning a single CPU into a seemingly infinite number of CPUs and thus allowing many programs to seemingly run at once
What abstraction does a modern OS provide for the resource memory?
Address space
Virtualizing memory
Each process accesses its own private virtual address space, which the OS maps onto the physical memory of the machine
What abstraction does a modern OS provide for the resource disk?
Files
Resource management
Sharing of resources in a good manner
What techniques are deployed to manage the increasing complexity of OS’s?
Modularity, abstraction and hierarchy
What is the core component of an OS?
Kernel
Kernel
The software responsible for providing secure access to the hardware and executing programs
What four areas does the kernel handle?
Process management
Device driver
Memory management
System calls
System calls
Provide the interface between a running program and the operating system kernel
Describe the standard implementation of a system call
A run-time support system provides a system call interface where:
- A number is associated with each system call
- The system call interface maintains a table for system calls
- The intended system call is indexed according to its number
Describe an OS with a simple structure
Programs and OS have the same level of privilege
What are the pros of an OS with a simple structure?
Efficient - no switching between user and kernel space
What are the cons of an OS with a simple structure?
No isolation - between applications & the OS leads to security issues
Describe an OS with a monolithic kernel
The entire OS works in kernel space
What are the pros of a monolithic kernel?
Good isolation & security - user space cannot directly access OS
What are the cons of an OS with a monolithic kernel?
Inflexibility - to modify something in the OS, the entire kernel space must be reviewed
Unreliable - Device drivers can crash the entire system
Describe an OS with a microkernel
Some services / modules are decoupled from the OS kernel and stay in the user space
What are the pros of an OS with a microkernel?
Reliability - possible to change a service without affecting the entire OS
Security - isolation of device drivers in user space
Flexibility - changing a service in the user space won’t make it necessary to rebuild the system from scratch
What are the cons of an OS with a microkernel?
Complexity
Communication overhead
Describe an OS with a hybrid kernel
Combines monolithic kernel and microkernel
What are the pros of an OS with a hybrid kernel?
Inherited from microkernel & monolithic kernel
What are the cons of an OS with a hybrid kernel?
Inherited from microkernel & monolithic kernel
What are the primary goals of an OS?
- Efficient use of computer hardware
- Easier problem solving for users & execution of user programs
- Making the computer system more convenient to use
What three things helps the OS achieve its goals?
Virtualization, concurrency, persistence
What does virtualization mean for an OS?
Abstraction of underlying hardware
Concurrency
Events are occurring simultaneously and may interact with one another
Persistence
Safely storing data on different storage devices
What are the other goals of the OS?
- Protection between applications & between the OS and applications
- Reliability
- Energy efficiency
- Security
- Mobility