Exam topics

The questions on the final exam will be about the core concepts explored in the following modules.

Module Description Overview Seminar questions
1 Fundamental concepts Overview Seminar questions
2 The process concept Overview Seminar questions
3 CPU scheduling Overview Seminar questions
4 Threads, Synchronization and Deadlock Overview Seminar questions
5 Memory management, files and file systems Overview Seminar questions

Seminar questions

If you passed all the seminars and remember what you learnt, you should be able to pass the final exam with grade 3 without much extra effort.

  • Use the seminar questions to prepare for the final exam.
  • The quesiton on the final exam may not be limited to the questions from the seminars, but most questions on the final exam will be related to similar topics and similar in style.

Lecture slides

The majority of the questions on the final exam will be about topics and concepts covered in the lecture slides.

  • To pass the final exam with grade 3 you probably can focus your exam preparations on the seminar questions and the lecture slides.

Self study slides

A few questions may also be about topics and concepts covered in the self study slides.

  • If you aim for grade 4 or 5 on the final exam, in addition to the lecture slides and seminar quesitons, you should also inlcude the self study slides in your exam preparations.

Programming assignments

A few questions may be related to the programing assignments and how these assignments relate to the core concepts of the course.

  • If you passed all the programming assignments and remember what you learnt, you should be able to pass the final exam with grade 3 without much extra effort.

Overview of core concepts

The majority of the questions on the exam will be about the core concepts listed in the below sections. These lists may not be complete but should serve as an indication what is considered the most important concepts in each module.

Module 1 - Fundamental concepts

  • Basic computer architecture
    • CPU
    • ALU
    • registers
    • primary storage (RAM)
    • secondary storage (hard drives, solid state disks)
  • Input/Output (I/O)
  • Program, executable and process
  • CPU context
  • Kernel
  • Dual mode operation
  • Synchronous and asynchronous events
  • Exceptions and interrupts
  • System calls
  • Multiprogramming
  • Multitasking

Module 2 - The process concept

  • The process memory space (aka the process memory image)
    • Text
    • Data
    • Stack
    • Heap
  • Process control block (PCB)
  • Context switch
  • Basic process management:
    • fork()
    • exit()
    • exec()
    • wait()
  • Process states
    • New
    • Ready
    • Running
    • Terminated
    • Waiting
    • Zombie
  • Signals
  • File descriptors
  • Pipes

Module 3 - CPU scheduling

  • Different types of scheduling: scheduling criteria
    • Short term
    • Long term
    • Medium term
  • Dispatch
  • Scheduling criteria
    • CPU utilization
    • Throughput
    • Turnaround time
    • Waiting time
    • Response time
  • Classification of processes
    • CPU burts, I/O burst
    • CPU bound vs I/O bound
    • Interacive vs batch
    • Real-time
  • Scheduling dispatch
  • Basic scheduling algorithms
    • FCFS and the convoy effect
    • SJF
    • PSFJ
    • RR
  • Priority scheduling
    • Preemption
    • Starvation
    • Ageing
  • Multilevel queue scheduling
    • Without feedback
    • With feedback
  • Linux and Solaris scheduling

Module 4 - Threads, synchronization and deadlock

  • Threads

    • Parallelism vs concurrency
    • Thread resource management
      • Text
      • Data
      • Stack
      • Heap
      • CPU context
    • Challenges when using threads
      • Divining activities
      • Balance
      • Data splitting
      • Data dependencies
      • Testing and debugging
    • Atomic and non-atomic operations
    • Race conditions and data races
    • Thread pools
    • User level threads vs kernel level threads
  • Synchronization

    • Critcal section
      • Mutual exclusion (mutex)
      • Progress
      • Bounded waiting
      • Starvation
    • Petersson’s solution
    • Spin locks
      • Test-And-Set
      • Swap
      • Busy waiting
    • Semaphores
    • Mutex locks
    • Synchronization problems
      • Critical section and mutual exclusion
      • Rendezvous
      • Bounded buffer
      • Readers and writers
    • Priority inversion and priority inheritance
  • Deadlock

    • Conditions for deadlock
      • Mutual exclusion
      • Hold and wait
      • No preemption
      • Circular wait
    • Dinging philosophers
    • Resource allocation graph (RAG)
    • Deadlock prevention
    • Deadlock avoidance
      • Safe state
      • Resource allocatio graph (RAG)
      • Banker’s algorithm
    • Deadlock detection
      • Wait for graph
      • Banker’s algorithm

Module 5 - Memory management, files and file systems

  • Memory management

    • Process control block (PCB)
    • Process memory space (aka process memory image)
    • Single contiguous allocation
    • Partitioned allocation
    • Dynamic storage allocation
      • Holes
      • First-fit, best-fit, worst-fit
      • Internal fragmentation
      • External fragmentation
    • Logical and physical address spaces
    • Memory managment unit (MMU)
    • Compaction
    • Address binding
    • Paging
      • Page table
      • Translation lookaside buffer (TLB)
    • Virtual memory
    • Memory resident
    • Swapping
  • Files and file systems

    • Persistent data storage
    • Files and directories
    • Block data storage
      • Sequential access
      • Direct access and random access
    • Disk allocation
      • Contigous
      • Linked
      • FAT
      • Indexed
      • Multilevel index
    • File control block (FCB)
      • iNode
    • In memory file system structures
      • File descriptor table
        • open()
        • close()
      • System-wide open file table
      • Per-process open file table
    • Hard and soft links