MentOSMentoring Operating System · University of Verona

8 files

Operating Systems

The lecture course. These slides are about operating systems in general — the concepts, the mechanisms, and the vocabulary — and do not assume MentOS.

  1. C Programming

    The subset of C the rest of the course assumes — pointers, memory, and the compilation model.

    1_c_programming.pdf

  2. Fundamental Concepts

    What an operating system is for — kernel and user mode, the system-call boundary, and how a machine gets from power-on to a shell prompt.

    2_fundamental_concepts.pdf

  3. Filesystem

    Files, directories, inodes and mount points, and the interface a process actually sees.

    3_filesystem.pdf

  4. Processes

    Process creation and termination, the process tree, and what fork and exec each do.

    4_process.pdf

  5. IPC: System V concepts and semaphores

    The System V IPC model, and semaphores as the primitive the rest of it is built on.

    5_IPC_semaphores_shared_memory.pdf

  6. IPC: shared memory and message queues

    Two ways for unrelated processes to exchange data, and when each is the right one.

    6_IPC_system_v_message_queue.pdf

  7. IPC: signals, pipes and FIFOs

    Asynchronous notification and byte streams — the mechanisms a shell is built out of.

    7_IPC_signal_pipe_fifo.pdf

  8. Real-time scheduler basics

    Deadlines, periodic tasks, and what makes a schedule feasible.

    8_real_time_scheduler_basics.pdf

7 files

MentOS

The same topics again, but read off the source tree: where each mechanism lives in MentOS, and what the code actually does.

  1. Fundamental Concepts

    How MentOS is put together, and where in the tree each part of the course lives.

    mentos_1_fundamental_concepts.pdf

  2. Process Management

    The task structure, the process list, and the path a process takes through fork, exec and wait.

    mentos_2_process_management.pdf

  3. Real-time Scheduler

    The scheduling policies MentOS ships, and the ones left as an exercise.

    mentos_3_real_time_scheduler.pdf

  4. Memory Management

    Two-level x86 paging, the buddy allocator, and the slab layer above it.

    mentos_4_memory_management.pdf

  5. System Calls

    The int 0x80 path from a libc wrapper to a kernel handler, and how to add one.

    mentos_5_system_call.pdf

  6. Timers

    The PIT, the tick, and how the kernel measures time.

    mentos_6_timers.pdf

  7. Signals

    Delivery, handlers, and the return path back into user code.

    mentos_7_signals.pdf

1 file

Exercises

Worked exercises handed out alongside the lectures.

  1. Deadlock prevention

    A worked exercise on the conditions for deadlock and how to design them away.

    mentos_example_1_deadlock_prevention.pdf