Course label : | Systems programming |
---|---|
Teaching departement : | MIN / Applied Mathematics and General Computing |
Teaching manager : | Madam ISABELLE LE GLAZ |
Education language : | French |
Potential ects : | 0 |
Results grid : | |
Code and label (hp) : | LA1_A_IF_MIN_PSY - Programmation systèmes |
Education team
Teachers : Madam ISABELLE LE GLAZ / Mister THOMAS BOURDEAUD HUY
External contributors (business, research, secondary education): various temporary teachers
Summary
This module allows you to present the system programming elements in C under Linux. Concepts related to the architecture of a monolithic and multitasking operating system Notions necessary to implement the different inter-process communication techniques under UNIX, as well as the protection and sharing of resources: Process & scheduling, creation of child processes, creation of threads Mutex, semaphores protections Production/Consumption of resources, Synchronization, Mutual exclusion Communication via signals, shared memory, anonymous tubes, named tubes, anonymous semaphores, named semaphores, mailboxes ? Sessions 1 & 2: Processes and signals ? Session 3: Processes, threads, parallelism and competition, mutex ? Session 4: Semaphores ? Session 5: Shared Memory ? Session 6: Named Tubes and Tubes ? Session 7: Mailboxes
Educational goals
At the end of the course, the student will be able to: ? understand the basics of centralized operating systems ? respect the constraints of POSIX system programming, in a UNIX environment ? understand a system by programming these components: processes, system calls - instruction/interruption, signals, semaphores, threads,... ? design a multi-process or multi-threaded application with concurrent access. Contribution of the course to the competency framework; at the end of the course, the student will have progressed in: ? design a system ? build, develop a system ? set up test protocols ? make and execute test sets Working knowledge: ? System programming vocabulary ? Good practices in system development ? Process management ? Exception processing ? advanced use of inter-process communications ? algorithmic ? concurrent programming Skills developed: ? Good development practices ? create your own code ? perform unit tests ? comment on your code ? Share your code ? Develop a communicating application
Sustainable development goals
Knowledge control procedures
Continuous Assessment / Final Exam
Comments: Reports of practical works + Defence/report on mini-project
Online resources
Documents on Moodle
Pedagogy
The sessions alternate between TD and TP. Each major subject is to be carried out in the form of a TD with a noted report (continuous monitoring). In parallel, students must produce a multi-process application, implementing at least two types of inter-process communication and resource sharing and/or synchronization (work noted as terminal control, subject to a mini technical maintenance + a report).
Sequencing / learning methods
Number of hours - Lectures : | 0 |
---|---|
Number of hours - Tutorial : | 32 |
Number of hours - Practical work : | 28 |
Number of hours - Seminar : | 0 |
Number of hours - Half-group seminar : | 0 |
Number of student hours in TEA (Autonomous learning) : | 0 |
Number of student hours in TNE (Non-supervised activities) : | 0 |
Number of hours in CB (Fixed exams) : | 0 |
Number of student hours in PER (Personal work) : | 0 |
Number of hours - Projects : | 0 |
Prerequisites
Programming in C language Shell / Linux