What is the role of an OS?
A computer is a set of resources for the movement, storage and processing of data
The OS is responsible for managing these resources
What are the key interfaces of an OS?
The key interfaces are:
What is a simple batch system?
Early computers were really expensive, so we had simple batch systems which allowed users to submit jobs to a computer, which the computer would execute and would display results back to a monitor when finished.
What is the processor point of view?
What are two modes of operation?
- Kernel Mode
What are the differences between user-mode and kernel-mode?
What is Uniprogramming?
Uniprogramming is wehre the processor spends a certain amount of time executing, until it reaches an I/O instruction; it must then wait until that I/O instruction finishes before proceeding
What is Multiprogramming? Is it better than Uniprogramming?
When one job needs to wait for I/O to finish, the processor can switch to another job which is likely not waiting for I/O.
It is better than uniprogramming because it utilizes the processor better while waiting for an I/O operation to finish.
What is time slicing?
Time slicing is where a short amount of time is allotted to a user or program on a multiprogramming or time shared system.
When it was time to switch, old user programs and data are written out to disk.
The old user prgoram code and data were restored in main memory when the program was next given a turn
What is a process?
There are multiple definitions of a process (any of them are fine):
- A program in execution
What are the 4 main causes of errors in an O.S?
What are the 3 components of a process?
What is “Paging”?
Paging allows processes to be comprised of an umber of fixed-size blocks called pages.
A program references a word by means of a virtual address
What policies must resource allocation consider?
What is multithreading?
What is a thread?
What are the basic measures of a performant OS?
Explain the Client/Server model
Windows OS Services and applications are all structured using the client/server model.
That is, processes communicate with each other using RPC calls.
What makes a traditional UNIX operating system bad for real-time processing?
The traditional UNIX system is a uniprocessor. This makes it bad for real-time programs because you cannot preempt the system in order to process the data streaming in.