Operating Systems Architectures
Licence InformatiqueParcours Computer Sciences (UFAZ) (délocalisé en Azerbaïdjan)
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
Disciplines
- 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/