logo Insalogo Insa

System and Network Programming


Program (detailed contents):


The UF is composed of three parts:


Part 1: « System programming and multithreading » (12,5h CM, 6,25h TD, 11h TP)

The course details the concepts end technics associated to the use and processing on an instance of operating systems of:

-      multi-programming mechanisms (processes, thread),

-      local communication mechanisms (IPC)

-      process synchronization mechanisms (signaling, semaphores, …)

-      scheduling mechanisms

An introduction on parallel processing is also done. The overall is applied to threads programming using synchronization and scheduling functions.



Part 2: « Network programming » (7,5h Course and 5,5h Labs)

-         The first part of the course details the main applications that are distributed in the Internet (http, ftp, etc.)

-         The second part describes the services provided by the main two Transport protocols of the Internet (UDP and TCP), and then details the « socket » programming interface, which is the basic technology allowing the   communication within a distributed applications.

-         2 Labs are dedicated to the implementation (in C language) of the concepts associated to distributed programming using TCP/UDP socket.


Part 3: “Network Project” (13,75h Labs + 2,5h tutorials)

The objective of the network project is to design and develop, using the C language, a transport protocol aimed at carring a video stream distributed in real time by an application. The project particularly relies on learning outcomes coming from the multithreading and network programming courses, as well the network introduction course.



-         Parts 1 and 2 in parallel, then part 3

-         Within part 1: course then tutorials

-         Within part 2: course then labwork then tutorials

-         Within part 3: Tutorials then labs


Main difficulties for students:


Knowledge and practical abilities in C language and on Computer Networks are required.


At the end of this module, the student will have understood and be able to:

-      the concurrency programming with thread

-      Use of system calls

-      the main applications which are distributed in the Internet

-      the principles and the fundamental notions associated with socket-based Internet programming


The students will be able to:

-      use the socket API for programming (in C or JAVA languages) an Internet application

design and program in C language an end-to-end communication protocol aimed at ensuring a video data transfer

Needed prerequisite

-    Introduction to operating systems (3e year MIC)

-    Introduction to computer networks (3e year MIC)

-    C langage (3e year MIC)

-    Assembling language (notion) ((3e year MIC)

Form of assessment

The evaluation of outcome prior learning is made as a continuous training during the semester. According ot the teaching, the assessment will be different: as a written exam, an oral exam, a record, a written report, peers review...


-   Computer Networking: A Top Down Approach Featuring the Internet. 5th ed. JF Kurose, KW Ross, Addison Wesley, 2010.

-   La communication sous Unix - Applications répartie. 2e ed. JM Rifflet, Ediscience 1995.

-    Programming with threads / S.Kleiman, S.Shah, B.Smaalders. Prentice Hall. Prentice Hall

-    L'environnement de programmation UNIX / B.Kernighan, R.Pike. Intereditions 1987

Additional information

System calls, multithreading, parallel computing, Internet Application, socket API, protocol programing