1/30
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Memory management
is the functionality of an operating system (OS) that manages the primary memory, which includes the movement of processes back and forth between the main and the secondary memory during execution
Virtual Memory Paging
This partitioning method is similar to simple paging, but does not necessarily load all of the pages of the process
Virtual Memory Segmentation
This partitioning method is similar to simple segmentation, but does not necessarily load all the segments of a process.
Virtual memory
is an abstraction of the main memory, providing processes and the kernel with their own, almost infinite, private view of the main memory
Simple Paging
The memory is divided into a number of equally sized frames, while each process is divided into a number of equally sized pages of the same length as the frames
Dynamic Partitioning
The partitions are created dynamically, wherein each process is loaded into a partition of exactly the same size as the process.
Fixed Partitioning.
The main memory is divided into a number of static partitions at system generation time, wherein a process may be loaded into a partition of equal or greater size.
Main memory
This is a volatile memory that provides fast access at a relatively high cost.
Secondary memory
This is usually a non-volatile memory at a cheaper cost with slower access.
Simple Segmentation
Each process is divided into a number of segments, wherein a process is loaded by adding all of its segments into dynamic partitions.
Symbolic addresses
These are the addresses used in a source code. The variable names, constants, and instruction labels are the basic elements of a symbolic address space.
Relative addresses
These are the addresses at the time of compilation. A compiler converts symbolic addresses into relative addresses.
Physical addresses
These addresses are generated by the loader when a program is loaded into the main memory
Frame
This pertains to a fixed-length block of main memory
Page
This refers to a fixed-length block of data that resides in the secondary memory
Segment
A variable-length block of data that resides in the secondary memory
Swapping
It is a mechanism in which a process can be swapped temporarily out of the main memory to the secondary memory in order to make memory space available for other processes
Swapping
It is also known as memory compaction
Fragmentation
This occurs due to the continuous loading and removal of processes in the memory, wherein free memory spaces are broken down into smaller fragments.
External fragmentation
This occurs when the allotted memory blocks are of varying sizes
Internal fragmentation
This occurs when the allotted memory blocks are of fixed size, and specific processes need more space or less space than the size of the allotted memory block
Scheduling or process scheduling
is the act of selecting a job or a task that is to be dispatched.
Job queue
This queue contains all the processes in the system
Ready queue
This queue keeps a set of all processes residing in the main memory, ready and waiting to execute.
Device queue
This queue contains processes waiting for a device to become available.
Long-term scheduling
This involves a long-term scheduler, also known as a job scheduler, that determines which programs are admitted to the system for processing.
Short-term scheduling
This involves a short-term scheduler, also known as the dispatcher, that is invoked whenever an event that may lead to the blocking of the current process occurs.
Medium-term scheduling
This is a part of the swapping function. The medium-term scheduler is in charge of handling the swapped-out processes.
Swapping
A running process becomes suspended if it makes an I/O request, wherein it cannot make any progress towards completion.
CPU-bound
This includes applications that perform heavy compute operations, such as scientific and mathematical analysis, which are expected to have long runtimes.
I/O-bound
This includes applications that perform input/output operations, such as web servers, file servers, and interactive shells, where low-latency responses are desirable.