Here is a glossary of terms related to system programming:
1. System Programming: The practice of writing software that interacts directly with the underlying hardware and operating system to perform low-level tasks.
2. Operating System (OS): The software that manages computer hardware and software resources, provides services, and enables the execution of applications.
3. Kernel: The core component of an operating system that manages system resources, provides abstractions, and facilitates communication between hardware and software.
4. Device Driver: A software component that enables communication between an operating system and a specific hardware device, allowing the OS to control and interact with the device.
5. File System: The method and data structure used to organize and store files on a storage medium, providing access and management capabilities.
6. Memory Management: The management of computer memory resources, including allocation, deallocation, and optimization, to ensure efficient and safe utilization.
7. Process: An instance of a program running on a computer, consisting of code, data, and resources, with its own execution context and memory space.
8. Thread: A lightweight unit of execution within a process, allowing for concurrent execution and sharing of resources.
9. Scheduling: The process of determining the order and allocation of resources to processes or threads, ensuring efficient utilization of system resources.
10. Interrupt: A signal sent by hardware or software to the CPU, indicating the need for immediate attention or action.
11. System Call: A mechanism that allows a user program to request services or resources from the operating system, such as file operations or process creation.
12. Virtual Memory: A memory management technique that allows the execution of processes that are larger than the available physical memory by utilizing disk space as an extension.
13. Deadlock: A situation in which two or more processes are unable to proceed because each is waiting for a resource held by another process, resulting in a stalemate.
14. Interprocess Communication (IPC): Mechanisms that enable communication and data exchange between processes, such as shared memory, message queues, or pipes.
15. Synchronization: Techniques and mechanisms used to coordinate and control the access to shared resources by multiple concurrent processes or threads.
16. Mutex: A synchronization primitive used to provide mutual exclusion, ensuring that only one thread or process can access a critical section at a time.
17. Semaphore: A synchronization construct used to control access to a shared resource, allowing multiple threads or processes to access it simultaneously within defined limits.
18. I/O (Input/Output): The communication between a computer system and external devices, such as keyboards, displays, disks, or networks.
19. File Descriptor: A unique identifier used by the operating system to represent an open file or I/O resource.
20. Pipe: A unidirectional communication channel used for interprocess communication, allowing the output of one process to serve as the input of another.
21. Signal: A software interrupt delivered to a process, notifying it of an event or condition, such as a user interruption or a system event.
22. Shell: A command-line interface that allows users to interact with the operating system and execute commands or scripts.
23. System Programming Language: A programming language specifically designed for system-level programming tasks, often offering low-level access to hardware and operating system features.
24. Debugging: The process of finding and fixing defects or errors in software to ensure correct behavior and identify performance bottlenecks.
25. System Performance: The measurement and optimization of system resources, such as CPU usage, memory utilization, and I/O throughput, to achieve optimal performance.
26. Assembler: A program that translates low-level assembly language code into machine code instructions that can be executed by the CPU.
27. Linker: A program that combines object code generated by the compiler with libraries and resolves external references to create an executable program.
28. Loader: A program that loads executable code into memory and prepares it for execution, resolving memory addresses and initializing necessary resources.
29. Compiler: A program that translates high-level programming language code into low-level machine code or bytecode that can be executed by the CPU or virtual machine.
30. Static Linking: The process of including libraries and dependencies into an executable file at compile-time, resulting in a standalone executable that does not rely on external libraries.
31. Dynamic Linking: The process of linking an executable with libraries at runtime, allowing shared libraries to be loaded and accessed when needed.
32. Profiling: The process of gathering and analyzing data about the execution of a program to identify performance bottlenecks and optimize resource usage.
33. System Analysis: The process of studying and evaluating existing systems to understand their functionalities, constraints, and requirements for potential improvements or enhancements.
34. Kernel Space: The protected and privileged area of the operating system where the kernel and critical system components reside.
35. User Space: The area of memory in which user applications and non-privileged code execute, isolated from the kernel space.
36. System Initialization: The process of bootstrapping an operating system, including hardware initialization, loading the kernel, and setting up system components.
37. System Shutdown: The process of gracefully shutting down an operating system, ensuring that all processes and resources are properly terminated and released.
38. Fault Tolerance: The ability of a system to continue operating properly in the presence of faults, failures, or errors, often achieved through redundancy and error recovery mechanisms.
39. Real-Time Systems: Systems that must respond to events or input within specific time constraints, often used in critical applications such as aerospace, industrial control, or medical devices.
40. System Security: The protection of computer systems and data from unauthorized access, breaches, or malicious attacks, involving measures such as authentication, encryption, and access control.
41. Device I/O Drivers: Software components that enable the operating system to communicate with and control specific hardware devices, handling device-specific protocols and operations.
42. Interrupt Handlers: Software routines that handle interrupts generated by hardware devices, allowing immediate response and processing of events.
43. BIOS (Basic Input/Output System): Firmware that provides the initial
instructions and hardware initialization routines for booting a computer system.
44. UEFI (Unified Extensible Firmware Interface): A modern replacement for the BIOS that provides enhanced boot and system management capabilities.
45. System Clock: A hardware or software component that tracks and provides a reference for timekeeping and synchronization within a computer system.
46. Parallel Processing: The execution of multiple tasks or instructions simultaneously, often achieved through multiple CPU cores or distributed systems.
47. Distributed Systems: Systems composed of multiple interconnected computers or nodes, working together to solve a common problem or perform a specific task.
48. API (Application Programming Interface): A set of functions, protocols, and tools provided by a system or library for building software applications and interacting with system services.
49. Command-Line Interface (CLI): A text-based interface that allows users to interact with a computer system by entering commands and receiving textual output.
50. System Administration: The management and configuration of computer systems and networks, including tasks such as installation, configuration, maintenance, and troubleshooting.
Courses
- Home
- OOP
- Data Structures
- DLD
- Algorithms
- DBMS
- Computer Networks
- SE
- Compiler Construction
- Artificial Intelligence
- Theory of Automata
- DCN
- Digital Image Processing
- OS
- Web Engineering
- CSA
- Network Security
- Assembly Language
- Operation Research
- Wireless & Mobile Communication
- Computer Graphics
- Numerical Analysis
- Discrete Structures
- System Programming
- Principles of Programming Languages
- Programming Fundamentals
System Programming
Subscribe to:
Posts (Atom)