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 assemblerCompé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
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 variableBibliographie
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/