1/48
These flashcards cover key vocabulary terms and concepts from the lecture notes on Operating Systems and Computer Networks.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
Operating System (OS)
A bridge between the user and the hardware that manages program execution, resource allocation, I/O operations, accounting, file systems, communication, error detection, and security.
Program Execution
The process by which the OS loads a program into memory at user request, executes it, and stops it while deallocating resources.
I/O Operations
Managed by the OS through drivers and high-level interfaces to handle input/output devices efficiently and safely.
File system management
Required for reading and writing files/directories, performing operations like copying and moving while managing permissions.
Communication between processes
Uses shared memory for same computer processes and message passing for networked processes.
Error Handling
The process of invoking an error handling routine or shutting down a process when an error occurs.
Resource Allocation
The method of distributing memory and power for multiple concurrent users and jobs, often handled through CPU scheduling.
Accounting
The tracking of resource usage for all running processes to aid in administration or billing.
Protection & Security
Mechanisms in OS to ensure that concurrent processes do not interfere with each other and to protect against outside attacks.
Kernel
The core of an OS that handles memory management, process scheduling, and file handling, always running after system startup.
Kernel/User space
Memory division where the kernel operates in a protected area not accessible to user processes.
System calls
Mechanisms that allow user processes to request services from the kernel.
Dual mode operation
A hardware feature distinguishing between kernel mode (privileged) and user mode operations.
Monolithic kernel
An OS structure where all functionalities are integrated into a single kernel.
Layered Approach
An OS design that reduces dependencies among components by organizing them in layers.
Microkernel
A minimal kernel design that provides only essential services with non-essential components placed in user space.
Loadable kernel modules
Core kernel services that can be dynamically loaded and unloaded at runtime.
Hybrid Approach
Modern OS design that incorporates various kernel strategies to optimize performance.
Process
An active program loaded into memory which has distinct states: new, running, waiting, ready, terminated.
Virtual address space
The memory space of a process that includes text, data, heap, and stack.
Process Control Block (PCB)
Data structure containing important process information like state, program counter, memory allocation, and I/O status.
Context Switch
The process of saving the state of a currently running process and loading the state of another process.
Short-term (cpu) scheduler
Component that selects the next process to execute from the ready queue.
Long-term (job) scheduler
Component that selects processes from the new state and brings them into the ready queue.
Concurrency
The ability of a system to run multiple processes simultaneously.
Fork()
A system call that creates a new process by duplicating an existing one.
Execlp()
A system call that replaces a process's memory space with a new executable.
Zombie Process
A terminated child process whose exit status has not yet been collected by its parent.
Orphan Process
A child process that remains when its parent has terminated without invoking wait().
Interprocess communication (IPC)
Mechanisms that allow cooperating processes to communicate and synchronize their actions.
Shared memory
Memory that can be accessed by multiple processes for fast communication.
Message Passing
A communication method where processes send and receive messages through the OS.
Producer-Consumer Paradigm
A model where one process produces data and another consumes it, requiring synchronization.
Mutex lock
A synchronization primitive that ensures mutual exclusion for shared data access.
Semaphore
A signaling mechanism used to control access to a common resource in concurrent programming.
Deadlock
A situation where multiple processes are indefinitely waiting for resources held by each other.
Starvation
A condition where a process waits indefinitely because the resources are continuously allocated to other processes.
Priority Inversion
A situation where a lower-priority task holds a lock needed by a higher-priority task.
Throughput
The rate of successful message delivery over a communication channel.
Protocol
A set of rules defining the format and order of messages exchanged between nodes.
Socket
An endpoint for sending or receiving data across a computer network.
TCP (Transmission Control Protocol)
A connection-oriented protocol that provides reliable, ordered delivery of data.
UDP (User Datagram Protocol)
A connectionless protocol that allows fast data transmission without reliability guarantees.
HTTP (Hypertext Transfer Protocol)
An application layer protocol used for transferring web pages over the internet.
DNS (Domain Name System)
The system that translates human-friendly domain names to IP addresses.
Network Address Translation (NAT)
A method used to remap an IP address space into another by modifying network address information.
Link-State Routing Algorithm
A type of algorithm that computes the shortest paths from a source node to all other nodes.
Bellman-Ford Equation
An equation used in distance vector routing to calculate the shortest path in a network.
Layering
A design approach in networking where each layer provides services to the layer above and uses services from the layer below.