- shell
- GUI (Graphical User Interface)
- kernel mode / supervisor mode
- user mode
- SATA (Serial ATA)
- disk driver
- multiplexing
- mainframes
- batch system
- multiprogramming
- spooling (Simultaneous Peripheral Operation On Line)
- timesharing
- MULTICS
- cloud computing
- UNIX
- UNIX-like
- BSD (Berkeley Software Distribution)
- POSIX
- System V
- MINIX
- Linux
- LSI (Large Scale Integration)
- microcomputers
- DOS (Disk Operating System)
- network operating systems
- distributed operating systems
- X Window System (X11)
- program counter
- stack pointer
- PSW (Program Status Word)
- pipeline
- superscalar CPU
- system call
- multithreading
- hyperthreading (intel's name for multithreading)
- cores
- CPU (Graphical Processing Unit)
- cache lines
- cache hit
- L1 cache
- L2 cache
- RAM (Random Access Memory)
- core memory
- ROM (Read Only Memory)
- EEPROM (Electrically Erasable PROM)
- flash memory
- SSD (Solid State Disk)
- virtual memory
- REF: MMU (Memory Management Unit)
- context switch
- process switch
- device driver
- I/O port space
- busy waiting
- interrupt
- waiting (busy, blocking)
- interrupt vector
- DMA (Direct Memory Access)
- PCI (Peripheral Component Interconnect Express)
- ISA (Industry Standard Architecture)
- shared bus architecture
- serial bus architecture
- DMI (Direct Media Interface)
- USB (Universal Serial Bus)
- SCSI (Small Computer System Interface)
- plug and play
- BIOS (Basic Input Output System)
- PDA (Personal Digital Assistant)
- hard real-time system
- soft real-time system
- process
- address space
- process table
- core image
- command interpreter
- child process
- interprocess communication (IPC)
- UID (User IDentification)
- GID (Group IDentification)
- superuser
- Administrator
- directory
- working directory
- file descriptor
- root file system
- special file (UNIX)
- block special file
- character special file
- pipe
- rwx bits (read, write, execute)
- prompt
- PID (Process IDentifier)
- UNIX system calls
- text segment
- REF: data segment
- stack segment
- i-nodes
- partitions
- minor devices
- API (Application Programming Interface)
- shared libraries
- DLL (Dynamic-Link Library)
- monolithic system
- microkernel
- CMS (Conversational Monitor System)
- shared hosting
- type 1 hypervisor
- type 2 hypervisor
- host operating system
- guset operating system
- paravirtualization
- JVM (Java Virtual Machine)
- exokernel
- multiprocessor
- pseudoparallelism
- REF: multiprogramming
- REF: daemons
- process scheduler
- process table
- process control blocks (PCB)
- REF: interrupt vector
- short-term scheduler
- long-term scheduler
- dispatcher
- worker thread
- REF: thread table
- trap
- wrapper
- jacket
- REF: upcall
- pop-up thread
- scheduler
- scheduling algorithms
- REF: compute-bound (CPU-bound)
- REF: I/O-bound
- REF: nonpreemptive
- REF: suspended
- REF: quantum
- UMA (Uniform Memory Access)
- NUMA (Nonuniform Memory Access)
- cache line
- cache-coherence protocol
- crossbar switch
- REF: mutual exclusion
- REF:atomic
- priority inversion problem
- producer-consumer or bounded buffer problem
- futex
- condition variables
- monitor (synchronization primitive)
- message passing
- barrier (synchronization mechanism)
- RCU (Read-Copy-Update)
- banker’s algorithm
- memory hierarchy
- memory manager
- swapping
- virtual memory
- REF: free lists
- REF: bitmaps
- REF: pages
- REF: virtual address space
- REF: page frames
- REF: page table
- dirty bit
- REF: TLB (Translation Lookaside Buffer)
- associative memory
- page table walk
- minor page fault
- major page fault
- segmentation fault
- multilevel page table
- page directory
- inverted page tables
- FAT-16, FAT-32, exFAT
- NTFS
- magic number
- sequential access
- metadata
- file descriptors
- working directory
- relative path name
- current directory
- absolute path name
- hard link
- soft link
- symbolic link
- REF: MBR (Master Boot Record)
- REF: boot block
- superblock
- UDF (Universal Disk Format)
Spin lock
A lock that uses busy waiting.
Synchronization
To make sure that certain event chains do not occur.
Livelock
A situation where no process is blocked but events are happening with no progress.
Starvation
A situation where a process run indefinitely but fail to make any progress due to unfairness.
Deadlock
A situation where all processes are blocked waiting for each other and will remain in that state indefinitely.
Preemptable resource
A resource that can be taken away from another process without any bad effects.
Nonpreemptable resource
A resource that cannot be taken away from another process without any bad effects.
Static relocation
A method for relocation every memory address during the load process with a constant, the constant being the first physical memory address the program was loaded into.
Dynamic relocation
A method for mapping a process' address space onto different physical memory parts.
Memory compaction
A technique to move all processes in memory down as far as possible to avoid memory holes.
Random-access files
Files that can be read in any order.
FAT
FAT (File Allocation Table). A table in memory that keeps track of the pointers to all disk blocks in the same file.