Operating Systems Architectures

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

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/

Contacts

Responsable(s) de l'enseignement