Operating Systems: Architecture and General Theory
a program that acts as an interface between a user of a
computer and the computer hardware
- make the computer system convenient to use
- use the computer hardware in an efficient manner
an independently-scheduled thread of execution. a.k.a.
the code that is directly responsible for the
i.e., how the CPU's time is allocated.
A microkernel is an operating
system with only the essential services such as interprocess
communication, short-term scheduling, and memory
management. It basically provides the
process abstraction and a
means for processes to communicate. It is designed to be
portable between computer architectures, using high-level languages
such as C or C++ and reducing the machine-dependent component to
a minimal bottom layer.
The microkernel appears as a layer between the
hardware layer and a layer consisting of system
components called subsystems.
The capability of an operating system to equitably
share CPU time between several well-defined tasks
currently scheduled to run on the system.
An operating system manages resources for applications and
services. (This is its only real purpose in life).
- CPU time sharing
- Memory management
- Hardware (timers, DMA, interrupt controllers, etc.)
- Single tasking vs. Multitasking
- Pre-emptive vs. Co-operative
- Context switching
- Single User versus Multiuser
- Hardware state
- Software state
- Who, When and How Long?
- Time slicing
- Real time issues!!!
- Hardware interrupt service routines (ISRs)
- Interrupt latency
Interprocess Communications (IPCs)
- Shared Memory
memory chips and addresses as accessed by the hardware
the address space a program or the operating system
sees (via hardware translation)
the memory that programs deal with, based around a
(a 16-bit number that serves as an index to a table)
- Demand-paged virtual memory (LRU)
- Global Descriptor Table (GDT)
- Local Descriptor Tables (LDTs)
Back to the CTEC1863 page