Person in charge: Gilles Carpentier
Pre-requisites: II.1102 / II.1202 Algorithmics et programming
Organization: 14 lectures
Assessment: 1 final written examination
ECTS: 5 credits
The operating systems are the fundaments on which electronic, informatic and telecommunication applicative systems live and are deployed. They are the link between the applicative and hardware layers and they provide the essential services upon which efficient applications can be build, maximally exploiting the hardware. It is capital for an operational engineer in charge of the aforementioned applicative systems to have a fundamental knowledge of the operating systems.
Many systems are written in C language , particularly embedded systems.
The course has two main objectives: learn the basic concepts of operating systems (internal aspects) and system programming: to be able to write an application in C language under Linux that interacts with the OS.
• In which context should we use the C language today ?
• Overall structure of a program, syntax, data types, compiling and linking.
• Operators and expressions
• Instructions, blocks and conditions
• Array, structures and unions
• Preprocessor, libraries, modular programming, make
• Multitask system, process and task scheduler
• Memory management
• File system
• Processes and threads
• Interprocess communication (IPC) : shared memory, semaphores
• Design and development of a C program.
• Use of the gcc compiler and make.
A lecture followed by a laboratory session per week.
The C language (Kernighan & Ritchie)
Pratique performante du langage C (Emmanuel Lazard)
Linux man pages