Centrale Lille Course Catalogue

Systems programming

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

Maximum number of registrants

Remarks