OS 3
Critical region
A critical part of the program whose execution must be handled as a unit and must complete before other processes can have access to the resources being used.
Thread Control Block
A data structure that contains information about the current status and characteristics of a thread.
Non preemptive scheduling policy
A job scheduling strategy that functions without external interrupts so that once a job captures the processor and begins its execution it remains in the running state uninterrupted until it issues an I/O request or its finished.
I/O bound
A job that requires a large number of input/output operations resulting in substantial free time for the CPU it contrasts with CPU-bound.
CPU bound
A job that will perform a great deal of nonstop computation before issuing an I/O request. It contrasts with I/o bound.
Process Scheduler
A low level scheduler that establishes the order in which processes in the READY queue will be served by the CPU.
Turnaround
A measure of a systems efficiency that tracks the time required to execute a job and return output to the user
Semaphores
A non-negative integer variable that's used as a binary signal. P: test, decrement by 1 if greater than 0. V: Increment by 1.
Time Quantum
A period of time assigned to a process for execution before it is preempted.
Thread
A portion of a process that can run independently. Multi threaded systems can have several threads running at one time with the same or different prioities.
Round Robin
A preemptive process scheduling policy (or algorithm) that allocates to each job one unit of processing per turn to ensure that the CPU is equally shared among all active processes and isnt monopolized by one job.
Earliest Deadline First (EDF)
A preemptive process scheduling policy (or algorithm) that selects processes based on the proximity of their deadlines (appropriate for real time environment)
Lock and key
A process must retrieve an available key and put it in the lock which locks out all other processes. Both actions must be executed in one cycle.
Multiple level Queues
A process scheduling scheme (used with other scheduling algorithms) that group jobs according to a common characteristics.
Explicit Parallelism
A programmer explicitly states which instructions can be executed in parallel.
test and set
A single instruction executed in one cycle. If the key is available set it to unavailable. results in starvation if no queue is used. Waiting processes remain in resources-consuming loop.
Multiprocessing
A situation in which two or more processors operate in unison executing instructions simultaneously. Benefits: Increased reliability and faster processing.
Processor
A synonym for the CPU or (2) any component in a computing system capable of performing a sequence of activities.
High level scheduler
A synonym for the job scheduler.
Multiprogramming
A technique that allows a single processor to process several programs residing simultaneously in main memory and interleaving their execution by overlapping I/o requests with CPU requests.
Program
A unit of instructions.
Process synchronization
Algorithms resolve conflicts between processors. The need to ensure that events occur in the proper order even if they are carried out by several processes.
Natural Wait
An I/O request from a program in multi-programming environment that would cause a process to wait "naturally" before resuming execution.
Process
An instance of execution of a program that is identifiable and controllable by the operating system.
Scheduling Policy
Any policy used by the process manager to select the order in which incoming jobs processes and threads will be executed.
COEND
Command used with COBEGIN to indicate to a multiprocessing compiler the end of a section where instructions can be processed concurrently.
COBEGIN
Command used with COEND to indicate to a multiprocessing compiler the beginning of a section where instructions can be processed concurrently.
Thread Control Block (TCB)
Contains Basic Information of a thread: ID, State, pointer to parent process, priority, pointer to child threads.
Scheduling algoritms only for batch systems
Fcfs SJN Priority SRT
Multi-core processors
Have several processors on a single chip.
Job Scheduler handles.....
Hold state Finished state
Process Status
Information stored in the Jobs PCB that indicates the current location in memory of the job and the resources responsible for that status.
Thread Status
Information stored in the thread control block that indicates the current position of the thread and the resources responsibe for that status.
Synchronization at Different Leves
Job: No Synchronization Process: Moderate Synchronization for tracking progress Thread Level: High synchronization requiring instructions form programmer.
Mutex
Mutual Exclusion test(mutex): if mutex > 0 then mutex: = mutex - 1 increment(mutex): mutex: = mutex + 1
Busy waiting
Not only consumes valuable processor time but also relies on the competing processes to test the key.
Concurrent Programming
One job using several processors to execute sets of instructions.
Master/Slave configuration
One process managing other processors. Disadvantages: Low reliability, poor use of resources, high number of interrupts.
Producers and Consumers
One process produces some data that another process consumes. Problems: Producer tries to add to full bin. Consumer tries to take from empty bin.
Symmetric Configuration
Operating system and global table stored in common memory. Each processor use the same scheduling algorithm. Requires high synchronization. More reliable, uses resources effectively, balances loads well, degrades gracefully.
Process State contains
Process state word Register contents Main memory Resources Process priority
Process Scheduler handles .....
Ready state Running state Waiting state
Heavyweight Processes
Require space in memory during execution. Pass through several states from initial entry to completion. Require other resources.
Loosely Couples Configuration
Several complete computer systems each with its own memory, I/O devices, CPU, and operating system cooperating with each other. Each processor needs a global table. Not prone to catastrophic failure.
Context Switching
The acts of saving a jobs processing information in its PCB so the job can be swapped out of memory and of loading the processing information from the PCB of another job into the appropriate registers so the cpu registers can process it. Context switching occurs in all preemptive policies.
Implicit Parallelism
The compiler automatically detects which instructions can be performed in parallel.
Job Status
The condition of a job as it moves through the system from beginning to the end of its execution: HOLD READY RUNNING WAITING or FINISHED.
Job Scheduler
The high level scheduler of the processor manager that selects jobs from a queue of incoming jobs based on each jobs characteristics.
Parallel Processing
The process of operating two or more CPUs in parallel, with more than one CPU executing instructions simultaneously.
Task
The term used to describe a process or (2) the basic unit of concurrent programming languages that define a sequence of instructions that may be executed in parallel with other similar units.
Wait and Signal
Wait: When busy condition,set the process's PCB to blocked and links it to waiting queue. Signal: When process exits critical region, set condition to free.
Readers and Writer
When two different type of processes need to access a shared resource such as a file or database. Readers: do not modify data, several can exist at a time. Writers: modify data, no other process can exist.
Process Control Block (PCB)
a data structure that contains information about the current status and characteristics of a process.
interrupt
a hardware signal that suspends execution of a program and activates the execution of a special program known as the interrupt handler.
Queue
a linked list of PCBs that indicates the order in which jobs or processes will be serviced.
First Come First Serve Basis
a non preemptive processing policy (or algorithm) that handles jobs according to their arrival time.
Priority scheduling
a nonpreemptive process scheduling policy (or algorithm) that allows for the execution of high priority jobs before low priority jobs.
Shortest Job Next (SJN)
a nonpreemptive process scheduling policy (or algorithm) that selects the waiting job with the shortest CPU cycle time.
Aging
a policy used to ensure that jobs that have been in the system for a long time in the lower level queues will eventually complete their execution.
Shortest Remaining time (SRT)
a preemptive process scheduling policy (or algorithm) similar to the SJN algorithm that allocates the processor to the job closest to completion.
middle level scheduler
a scheduler used by the processor manager to remove active processes from memory when the system becomes overloaded. the middle level scheduler swaps these processes back into memory when the system has become cleared.
low level scheduler
a synonym for process scheduler
Pointer
an address or other indicator of location
Scheduling Algorithm
an algorithm used by the process scheduler to allocate the CPU and move jobs or processes through the system.
Preemptive scheduling policy
any process scheduling policy based on predetermined policies that interrupts the processing of a job and transfers the CPU to another job. It is widely used in time sharing environments.
Concurrent Processing
execution by a single processor of a set of processes in such a way that they appear to be happening at the same time.
Response time
one measure of the efficiency of an interactive system that tracks the time required for the system to respond to the users command.
indefinite postponement
signifies that a jobs execution is delayed indefinitely.
interrupt handler
the program that controls what action should be taken by the operating system when a certain sequence of events is interrupted.