Matière
Operating Systems Architectures
Description
This course presents the features of the main architectural components of operating systems (kernel, memory management, processes and threads, files and peripherals), the interface with hardware (interrupts, address translation, peripheral management) and the underlying mechanisms (paging, synchronisation, switching, scheduling, etc.). Synchronisation mechanisms and concurrency problems are addressed through programming in C with POSIX APCs: threads, memory sharing between processes and semaphores.
Compétences requises
-
write complex programs in C
-
write programs using POSIX system primitives
-
write simple programs in assembler
Compétences visées
At the end of this course, students will know:
-
how operating systems work
-
how hardware and operating systems interact
-
to precisely identify system administration tasks
-
to identify and solve concurrency problems in programs
-
to write programs that share resources
-
to organise access to shared resources
Discipline(s)
- Informatique
Syllabus
-
Lectures:
-
Intro, concurrent systems
-
Parallelism
-
IPC SysV - msg queues
-
Processes
-
IPC SysV - memory
-
Project launch
-
Threads
-
POSIX Threads and signals
-
Deadlocks
-
Mutual exclusion
-
Semaphores
-
Thread synchronisation
-
C11
-
Memory Management
-
-
Tutorials:
-
IPCs - Message queue
-
IPC - shared memory
-
Threads - thread, barrier
-
Semaphores
-
-
Lab sessions:
-
processes - environment
-
fork()
-
IPC_SystV - msg queue
-
IPC_SystV - shared memory
-
Deadlocks
-
POSIX Threads
-
Semaphores
-
V7 signals
-
Cunit testing
-
threads_API
-
Concurrency
-
Memory stats
-
File, directories
-
Condition variable
-
Bibliographie
-
A. Silberschatz, P. B. Galvin, G. Gagne, Operating System Concepts (9th Edition), Wiley
-
R. Arpaci-Dusseau, A.C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, http://pages.cs.wisc.edu/~remzi/OSTEP/