logo Insalogo Insa

System and Network Programming

Presentation

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.

 

Organisation:

-         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.

Objectives

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...

Benefits

-   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