Lesson 1: Introduction Flashcards
What is an operating system?
A program that provides an environment within which other programs can do useful work.
It comes between the users and the hardware and provides a convenient, safe, and efficient way to access the hardware.
What is Spooling?
Simultaneous Peripheral Operation On-Line
This means that you are overlapping an I/O of one job with the computation of another job. (Used to manage slower IO devices like printers)
What is a job pool?
A data structure that allows the OS to select which job to run next in order to increase CPU utilization
Latency
זמן השהייה
The time it takes to perform a job or process data.
Units: seconds
Throughput
תפוקה
The rate of work/production/processing.
Units: byte/second (or jobs/second)
Utilization
ניצולת
The fraction of time the CPU is performing useful tasks
(=the time the CPU isn’t idle)
This is a number between 0-1.
For example:
The utilization of a lesson at school is:
(lesson time)/(lesson time + time it takes to get to university)
CPU usage
The fraction of time the CPU is executing instructions (useful and not useful tasks)
Overhead
תקורה
Excess or indirect computation time, memory, bandwidth, or other resources that are required to attain a particular goal.
Units: seconds
What is the goal of multiplexing in the CPU?
To maximize the resource utilization
Multi-programming
When the first program reached an instruction waiting for a peripheral, the second program in memory is given a chance to run
Time sharing
Switch program even if not waiting for peripheral
In multi-programming, when does the CPU move between jobs?
- When one job finished running
2. When a job “gives up” on its CPU usage when its waiting for a response from an IO device.
In time sharing, when does the CPU move between jobs?
- When one job finished running
2. When the OS decides to stop a job and run another one instead
Can the OS and another program run simultaneously?
No!
The OS is just like any program, and when it’s running, it’s the only program running.
What has a higher throughput: multi-programming or time sharing?
Throughput = תפקודה
Time sharing.
In time sharing the OS can plan its “maintenance work”, but in multiprogramming you need to always move between jobs and that involves needing to do a lot of work in order to switch jobs.