General

What is an OS?

What do you get when you buy an OS?

What does the OS do?

What are the parts of an OS?

What is the kernel?

What is a device driver?

What is the history of OS's?

What did people do in the 1950's without an OS?

What is a batch System?

What is Timesharing?

What different types of OS are there?

What is a Parallel System?

What is a Distributed OS?

What is a Real Time OS?

What features does a modern OS have?

What are some of the important concepts involved in OS design?

What is a Process?

What is Multiprogramming?

What is Scheduling?

What is a System Call?

What is Inter-Process Communication?

What is Concurrent Programming?

What are threads?

What is Communicating sequential processes (CSP)?

Why do concurrent programming?

How do we do it?

Hardware structures

What is the overall structure of computer hardware?

What are computers made of

How are the CPU,Memory and I/O connected?

What is Memory Management?

What devices are connected to the I/O subsection?

How is input and output performed?

What is an interrupt?

What types of interrupt are there?

How are interrupts used for I/O?

What is DMA?

What happens during a DMA transfer?

What is the storage hierarchy?

What is primary storage?

What is secondary storage?

What is buffering?

What is caching?

How does the hardware support protection?

What is Supervisor Mode?

What is User Mode?

What is allowed in Supervisor and User Modes?

What is Memory Protection?

How does the OS stay in control of the system?

Software Structures

How is an OS written?

What language/s should be used?

What is the difference between a monolithic kernel and microkernel?

What parts can the kernel be split up into?

How do parts of the kernel communicate?

How does the OS start?

How does a User Communicate with the Operating System?

What does a user need to do?

What is a System Administrator?

What does a System Administrator need to do.

What is a Command-Interpreter?

What are Systems Programs?

What is a GUI?

How does a program communicate with the Operating System?

What is a System Call?

How are parameters passed to the OS in a System Call?

How can the OS be structured?

What is the simplest structure?

What is the Layered Approach?

What is a Virtual Machine?

Processes

What is the life cycle of a process?

What is needed to store the complete state of a process?

What states can a process be in?

How does a process move from one state to another?

How are Processes Created?

What is the process tree?

What does the unix fork system call do?

What is a thread?

What does the WIN32 CreateThread system call do?

How does a process terminate?

How are Processes Scheduled?

What is the ready queue and wait queue?

When do scheduling decisions need to be made?

How do Processes Co-operate?

Why do processes need to co-operate?

What is shared Memory?

What is the producer consumer problem?

What is Busy Waiting?

What is Inter-Process Communication(IPC)?

Why do we need IPC?

What types of IPC are there?

How is IPC implemented?

What is the difference between direct and indirect IPC?

What is a mailbox?

What is a pipe?

Scheduling

What are the basic concepts of CPU scheduling?

What is burst time?

What is pre-emption?

What is a context switch?

What is the dispatcher?

How do we compare scheduling algorithms?

What are Utilisation, Throughput, Turnaround Time, Waiting Time and Response Time?

What properties does a good scheduling algorithm have?

What is a schedule diagram?

What are some common scheduling algorithms?

What is FCFS?

What is SJF?

What is SRTF?

How do we predict the future for SJF and SRTF?

What is RR?

How do we choose the time quantum for RR?

What is Priority Scheduling?

What is a multilevel queue?

What is a multilevel feedback queue?

What other types of scheduling are there?

What is multiprocessor scheduling?

What is real time scheduling?

How do we test a scheduling algorithm?

What are the relative merits of Modelling, Simulation and Implementation?

Synchronisation

Why is synchronisation important?

What is a race condition?

How can a race condition occur in the producer consumer problem?

What is a critical section?

How can we solve the critical section problem?

What properties must a solution have?

How is a solution possible for two processes?

How does the bakery algorithm solve the problem for more than 2 processes?

What hardware is often used to help with critical sections?

What is busy-waiting?

What is a semaphore?

What does the value of a semaphore mean?

What operations can be performed on semaphores?

How are semaphores implemented?

What Synchronisation examples do all the books use?

What is the bounded buffer problem?

What is the readers and writers problem?

What is the dining philosophers problem?

What is the sleeping barber problem?

How do high level languages support synchronisation?

What is a monitor?

How are monitors implemented?

What is a condition variable?

How does Java do synchronisation?

Deadlock

How does deadlock happen?

What are some real life examples of deadlock?

What machine resources may cause deadlock?

What conditions must be true for deadlock to occur?

How can the state of resource allocation be described?

What is a resource allocation graph?

How can deadlocks be handled?

Can we make it impossible for deadlock to occur?

Can we avoid deadlocks by controlling resource allocation?

How can deadlock be avoided?

What is a safe state?

Can we use resource the allocation graph to avoid deadlock?

How does a miserly banker avoid lending too much money?

What are the safety and resource request algorithms?

How can deadlock be detected?

Can the resource allocation graph be used for deadlock detection?

How can the bankers algorithm be used for deadlock detection?

What do we do if we detect deadlock?

Memory Management

How is memory organised?

What is physical memory?

What is logical memory?

How is physical memory mapped logical memory?

What does the MMU do?

How are programs and data stored in memory?

How are programs loaded into memory?

What does a loader do?

What is linking?

What is the difference between static and dynamic linking?

How is memory space allocated?

What is contiguous allocation?

What is a hole?

What is fragmentation?

How do we decide which hole to fill?

What happens if there is not a large enough hole?

What is paged allocation?

What is the difference between internal and external fragmentation?

How does paging work?

What is a page and what is a frame?

What is the page table?

What is stored in the page table?

Where is the page table stored?

How big does the page table have to be?

What affect on memory access time does paging have?

What is internal fragmentation?

What are the advantages of paging?

What is demand loading?

What is a page fault?

What do we need for demand paging?

How can paging be used for shared memory?

How can we make paging efficient?

How does a TLB help with paging?

How do we choose the page size?

What is multilevel paging?

What is the performance of multilevel paging?

What is an inverted page table?

What is segmentation?

What is the difference between a segment and a page?

Can we use segmentation together with paging?

What do some real CPU's use?

What happens if the memory is full?

What is swapping?

What is the cost of swapping?

What is the dirty bit in the page table?

How do we choose a page to replace?

What if we replace the page that has been in memory longest?

What is Belady's anomaly?

What would be the Optimal page replacement algorithm?

What is we replace the page that has been least recently used?

How do we find the least recently used page?

How do we share out Frames between processes?

What if we give an equal allocation to each process?

What if we use the size of the process to help with allocation?

What is thrashing?

What happens when a system thrashes?

What is the Working set of a process?

How do we find the working set of a process?

How can we use the page fault rate to avoid thrashing?

File Systems

How does the user see the file system?

What information needs to be stored about a file?

What operations can be performed on files?

What is a directory?

What operations can be performed on directories?

What is a link?

How are links managed?

How are files protected?

What types of access are there?

How is access allowed and to whom?

How are files stored on a disk?

Isn't this just the same as memory management?

What is contiguous allocation?

What is linked allocation?

What is indexed allocation?

How is free space managed?

What are some examples of real file systems?

What is a logging file system?

How is file system consistency maintained?

How are reads and writes performed on the disk?

What is the physical structure of a disk?

What are seek, latency and transfer times?

What different algorithms are there for disk scheduling?