Operating systems

Note: this page is being updated

Lecture topics

Introduction into OS architecture. Processes, threads, syncronization

1. History of operating systems
2. Purpose and main functions of OS;
3. Architecture;
4. What is process, thread. Scheduling;
5. Resources;
6. Concurrency.

File systems

1. Addressing for block devices;
2. Files;
3. Character and block devices;
4. Disk memory on different layers of OS
5. Architecture of virtual file system (vfat)
6. Comparative analysis of file systems: FAT, NTFS, extX, CDFS....

Virtual memory

1. Address spaces, review of addressing schemes ;
2. Virtual memory;
3. Memory from different point of view: compiler, linker, OS.
4. Memory models on modern SW/HW platforms.
5. Virtual address. Address translation.
6. Paging, GDT, LDT, TLB, swap.

Network subsystem

1. Clients and servers;
2. TCP/IP stack review;
3. Network addressing. Networks. Hosts.
4. Routing algorithms
5. TCP, UDP
6. Application level protocols;
7. Socket programming.
8. Other types of IPC.

Practical work

1. Shell development
2. Boot loader for i386
3. Classic synchronization problems
4. Patterns for multi-thread processing. Queue management.
5. Memory manager modelling.
6. Page management modelling.
7. Modelling of scheduling algorithms
7. File system modelling
8. Practical tasks on IPC