1/37
Comprehensive vocabulary flashcards covering operating system structures, components, historical timeline and generations, system calls, and CPU scheduling algorithms.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Operating System
A large software system that serves as an interface between a computer user and computer hardware, managing components such as the CPU, memory, storage devices, and input/output devices.
Operating System Structure
The blueprint of how an operating system is organized and how its different parts interact with each other.
Process Management Component
An OS component responsible for managing multiple simultaneously running processes, including process creation, deletion, suspension, resumption, synchronization, and communication.
Main Memory Management Component
An OS component that keeps track of primary memory, determines which parts are in use, maps programs to absolute addresses, and allocates or de-allocates memory upon process request.
File Management Component
An OS component involved in creating, deleting, and manipulating files and directories, mapping files onto secondary storage, and backing up files on stable storage media.
I/O Device Management Component
An OS component that hides the variations of specific hardware devices from the user by offering a buffer caching system, general device driver code, and device-specific drivers.
Secondary Storage Management Component
An OS component that provides permanent backup for main memory by managing storage allocation, free space, and disk scheduling across devices like hard drives, SSDs, USB drives, and CD/DVD drives.
Command Line Interpreter (CLI)
A user operating system interface that allows direct command entry and is implemented either in the kernel or by a systems program.
Graphical User Interface (GUI)
A user-friendly desktop metaphor interface utilizing icons to represent files, programs, and actions via mouse clicks.
System Calls
A mechanism allowing user-level programs to request services from the OS kernel, typically written in C, C++, or assembly language and accessed via high-level APIs.
read() API
A standard UNIX/Linux system call interface defined in <unistd.h> using parameters int fd, void *buf, and size_t count, returning the number of bytes read, 0 for end of file, or −1 for errors.
System Programs
Software that provides a convenient environment for program development and execution, categorized into file manipulation, status information, programming support, program loading/execution, communications, and application programs.
Charles Babbage
English mathematician and inventor credited with conceiving the first automatic digital computer and developing plans for the Analytical Engine during the mid-1830s.
Ada Lovelace
Recognized as the world's first programmer, she helped Charles Babbage program the Analytical Engine.
ENIAC
Electrical Numerical Integrator and Computer built in 1946 by John Eckert and John Mauchly to calculate artillery firing tables; utilized vacuum tubes and punched cards with a memory of up to 10 decimal digits.
EDVAC
Electronic Discrete Variable Automatic Computer built in 1949 as a binary stored-program computer with an ultrasonic serial memory capacity of 1000 34-bit words.
EDSAC
Electronic Delay Storage Automatic Calculator built in 1949 by Maurice Wilkes using mercury delay lines and derated vacuum tubes, utilizing 17 usable bits per 18-bit word due to timing constraints.
BINAC
Binary Automatic Computer built in 1949 by Eckert-Mauchly Computer Co., featuring a capacity of 512 words and 700 vacuum tubes for high-speed binary arithmetic.
UNIVAC
Universal Automatic Computer developed in 1951 as a commercial data-processing machine capable of reading 7200 decimal digits per second with a card-to-tape converter running at 240 cards per minute.
IBM 701
Electronic Data Processing Machine built in 1952 by Jerrier Haddad and Nathaniel Rochester for scientific research, utilizing vacuum tube logic and electrostatic storage.
FORTRAN
A programming language developed between 1954 and 1957 by John Backus (originally Speedcoding) for scientific and mathematical applications.
Compatible Time-Sharing System (CTSS)
The first general-purpose time-sharing OS developed at MIT in the 1960s, introducing multi-tasking capabilities to allow multiple simultaneous users.
Burroughs Master Control Program (MCP)
A 1963 operating system that pioneered multi-processor management, commercial virtual memory, and being written exclusively in a high-level language.
IBM System/360
A family of computers announced in April 1964 that replaced five 6-bit product lines with an 8-bit architecture using hybrid integrated circuit technology.
Intel 4004
The first commercially available 4-bit Central Processing Unit microprocessor, released by Intel Corporation in July 1971.
Ethernet
The first high-speed LAN technology designed to interconnect computer workstations and printers, described in a memo written by Bob Metcalfe in 1973.
BASIC
Beginners' All-purpose Symbolic Instruction Code, completed for microcomputers by Bill Gates and Paul Allen in 1974.
Process
An instance of a computer program being executed by one or many threads in an operating system.
Process Scheduling
The action of the process manager removing an active process from the CPU and selecting another process based on a specific strategy.
CPU Scheduling
An operating system process that selects which process gains access to the CPU while others wait, ensuring system efficiency, speed, and fairness.
First Come First Serve (FCFS)
A non-preemptive CPU scheduling algorithm that allocates the CPU to processes strictly in the order they arrive in the ready queue.
Shortest Job First (SJF)
A non-preemptive CPU scheduling algorithm that schedules processes based on the length of their burst times, executing the shortest task first.
Shortest Remaining Time First (SRTF)
A preemptive CPU scheduling algorithm where the process with the shortest remaining burst time is selected to run next.
Non-Preemptive Priority Scheduling
A CPU scheduling algorithm that allocates execution to the process with the highest priority and runs it to completion without interruption.
Preemptive Priority Scheduling
A CPU scheduling algorithm in which a currently running process is preempted if a process with a higher priority enters the ready queue.
Round Robin (RR)
A preemptive time-sharing scheduling algorithm where each process is allocated a fixed time unit called a time quantum before being placed back into the ready queue.
Multilevel Queue (MLQ)
A CPU scheduling algorithm that permanently assigns a process to a fixed queue associated with a specific scheduling algorithm upon entering the system.
Multilevel Feedback Queue (MLFQ)
A CPU scheduling algorithm that allows processes to dynamically move between queues based on their CPU usage history and wait times.