Operating System Core Concepts
Classified in Computers
Written on in English with a size of 3.83 KB
Operating System (OS)
Software that manages hardware resources and provides a high-level abstraction for the user.
Process
A program currently executing.
Multitasking System
An OS allowing multiple programs to run concurrently.
Multiuser System
An OS allowing simultaneous access for multiple users.
Command Interpreter (Shell)
A user interface program that executes commands.
System Calls
Interfaces (APIs) used by programs to request services from the OS.
Single-Tasking System
Allows only one job in memory at a time. The CPU is idle during I/O operations, as it cannot be used by another process when the current one accesses system resources.
Time-Sharing System
Allows multiple terminals connected to a central computer. Enables multiple processes to use the CPU alternately.
Process Definition
Instructions associated with an execution state.
Program
A set of instructions intended for execution.
Process States
The different stages a process goes through:
- New: The process is being created.
- Ready: The process is waiting to be assigned to a processor.
- Running: Instructions are being executed.
- Waiting (Blocked): The process is waiting for some event to occur (e.g., I/O completion).
- Terminated (Finished): The process has finished execution.
Concurrent Application
An application where different parts compete for resources, often using threads or child processes for concurrent execution.
Mutual Exclusion (Mutex)
A mechanism ensuring that two or more concurrent processes do not access shared resources simultaneously. It can be implemented via:
- Hardware: e.g., Disabling interrupts, Test-and-Set Lock (TSL) instruction.
- Software: e.g., Algorithms with busy-waiting or without busy-waiting (sleep/wakeup).
Blocked Wait (Sleeping Wait)
A process enters a waiting (blocked) state until the required resource becomes available.
Busy Waiting (Spinlock)
A process repeatedly checks a condition (e.g., resource availability) in a loop without relinquishing the CPU, remaining in the ready/running state.
Process Context
The part of the process state represented by the CPU registers and other system information necessary to resume execution.
Context Switch
The process of saving the current process's context (CPU state, etc., often in its Process Control Block - PCB) and loading the context of a different process.
Thread
An independent, alternative flow of execution within a single process. Threads allow parts of a process to run concurrently or in parallel.
Schedulers
Components responsible for process scheduling:
- Short-Term Scheduler (CPU Scheduler): Selects which process from the ready queue will execute next on the CPU.
- Long-Term Scheduler (Job Scheduler): Decides which processes from the new state should be admitted to the ready queue.
Preemptive Scheduling
A scheduling method where the OS can forcibly stop (preempt) a running process and move it out of the CPU, often based on time slices or priority.
Non-Preemptive Scheduling
A scheduling method where a running process continues to execute until it voluntarily relinquishes the CPU (e.g., terminates or blocks for I/O).
Quantum (Time Slice)
The maximum amount of time a process is allowed to run on the CPU in a preemptive, time-sharing system before being preempted. A very small quantum leads to high context switching overhead; a very large quantum can lead to poor responsiveness.