====== Système d'exploitation (ASR5 - L2) Printemps 2017====== Le planning prévisionnel {{ :systeme:2017p:planing_systeme_l2.pdf |est ici}}. Le planing sur ADE [[http://adelb.univ-lyon1.fr/direct/index.jsp?projectId=1&ShowPianoWeeks=true&resources=12606,12608,12623,12626,12711,12637,12723,12730&projectId=1&weeks=23,24,25,26,27,28,29,30,31,32,33,34,35,36&days=0,1|est là]] ===== Cours ===== - Introduction : les {{ :systeme:2017p:cm1-intro.pdf |diapos}}, leur {{ :systeme:2017p:cm1-intro_p6.pdf |version imprimable}} et la {{ :systeme:2017p:cm1-intro_a.pdf |version détaillée}} - Les processus : les {{ :systeme:2017p:cm-processus.pdf |diapos}}, leur {{ :systeme:2017p:cm-processus_p6.pdf |version imprimable}} * Exemple d'utilisation de la commande système {{ :systeme:2017p:system.cpp |}} (ou en c {{ :systeme:2017p:system.c |}}) * Exemple de gestionnaire de signal avec ''signal'' (compatible windows) en C++ {{ :systeme:2017p:signal.cpp |}} ou en C {{ :systeme:2017p:signal.c |}} * Exemple de gestionnaire de signal avec ''sigaction'' (fonction POSIX) en C++ {{ :systeme:2017p:sigaction.cpp |}} ou en C {{ :systeme:2017p:sigaction.c |}} - Les communications entre processus : les {{ :systeme:2017p:cm-ipc.pdf |diapos}} et leur {{ :systeme:2017p:cm-ipc_p6.pdf |version imprimable}} * La bibliothèque que je vous conseille d'utiliser {{ :systeme:2017p:socklib.tar.gz |}} un exemple d'utilisation vu en cours {{ :systeme:2017p:client_ftp.cpp |}} * Une autre un peu équivalente mais en C {{ :systeme:2017p:socklibc.tar.gz |}} ainsi qu'un exemple pour lire l'IP et le port utilisés par une socket {{ :systeme:2017p:recup_ad.c |}}. * Exemple de client en C {{ :systeme:2017p:client_ipv6.c |}} et de serveur {{:systeme:2017p:serveur_ipv6.c |}}. * Exemple de pipe {{ :systeme:2017p:pipe.c |}}. * Exemple de pipe nommé le lecteur {{ :systeme:2017p:fifol.c |}} et le rédacteur {{ :systeme:2017p:fifoe.c |}}. * [Pour info] Exemple de Client, Serveur, pipe ... utilisant la librairie ''boost::asio''((C'est une librairie portable et efficace mais plutôt compliquée à utiliser ce qui fait que nous préférons vous en proposer une autre )) * {{ :systeme:2017p:client.cpp |}} et {{ :systeme:2017p:serveur.cpp |}}; * {{ :systeme:2017p:pipe.c |}}; * {{ :systeme:2017p:fifol.cpp |}} et {{ :systeme:2017p:fifoe.cpp |}}. - Les fichiers : les {{ :systeme:2017p:cm6-fichiers.pdf |diapos}} et leur {{ :systeme:2017p:cm6-fichiers_p.pdf |version imprimable}}. - Administration * les {{systeme:2017p:pc:cm7-admin.pdf|diapos}} ou la {{systeme:2017p:pc:cm7-admin_p6.pdf|version imprimable}} ===== TDs ===== - Lecture/écriture entre processus : * le sujet {{ :systeme:2017p:td1.pdf |}} * la correction {{ :systeme:2017p:td1_corr.pdf |}} avec un code pour tester {{ :systeme:2017p:election.cpp |}} - Préparation du projet client/serveur de mail et droix unix : * le sujet {{ :systeme:2017p:td2.pdf |}} * la correction {{ :systeme:2017p:td2_corr.pdf |}} * la fonction de lecture d'une réponse d'un serveur {{ :systeme:2017p:lire_reponse.cpp |}} - ACL ldap et lecture de données * le sujet {{ :systeme:2017p:td3.pdf |}} * la correction {{ :systeme:2017p:td3_corr.pdf |}} - Révision * le sujet {{:systeme:2017p:td4.pdf|}} * la correction {{ :systeme:2017p:td4_corr.pdf |}} et {{:systeme:2017p:prog_signal_de_message.tar.gz}} (voir le fichier popup.cpp) ===== TPs ===== Les questions de TP sont accompagnées de leur correction. Bien sur, il est inutile de venir en TP pour obtenir la correction sans essayer de faire le travail. === tp1 : Lancement de processus et gestionnaire de signaux=== * le sujet {{ :systeme:2017p:tp1.pdf |}} * le fichier de configuration pour changer le processus suivit lors d'un fork (voir annexe du sujet) {{ :systeme:2017p:config_kdbg_suivre_fils.txt |}} * le code de départ pour le gestionnaire de signal {{ :systeme:2017p:signal_temps.cpp |}} Quelques éléments de corrections : {{:systeme:2017p:tp1_corr.pdf}}, {{ :systeme:2017p:famille.cpp |code pour créer la famille}} et {{ :systeme:2017p:signal_temps_corr.cpp |code du gestionnaire de signal}} ===tp2 : Création d'un petit shell=== * le sujet {{ :systeme:2017p:tp2.pdf |}} * le code pour démarrer {{ :systeme:2017p:cli_skel.cpp |}} * la correction des questions 1 et 2{{ :systeme:2017p:cli_part_0.cpp |}} * la correction des question 3 et 4 {{ :systeme:2017p:cli_part_1.cpp |}} * la correction de la question 5{{ :systeme:2017p:cli_part_2.cpp |}} === tp3 Prise en main des sockets=== * le sujet {{ :systeme:2017p:tp3.pdf |}}; * le code du client {{ :systeme:2017p:client_ipv6.c |}} et du serveur {{ :systeme:2017p:serveur_ipv6.c |}}; * le début de la librairie {{ :systeme:2017p:socklib.hpp |}} et {{ :systeme:2017p:socklib.cpp |}} * la correction {{ :systeme:2017p:tp3_corr.pdf |}}; * le code pour la question II {{ :systeme:2017p:discussion.cpp |}}; * le code pour la question III {{ :systeme:2017p:discussion_final.cpp |}}. ===tp4 : Lecture sur une socket === * le sujet {{ :systeme:2017p:tp4.pdf |}}; * le code pour démarrer {{ :systeme:2017p:socket_bench.tar.gz |}} * le code qui lit ligne par ligne {{ :systeme:2017p:get_text.cpp |}} * le code qui lit de façon binaire {{ :systeme:2017p:get_data.cpp |}} * le code qui obtient un entête de page HTTP {{ :systeme:2017p:get_header.cpp |}} * le code précédant mais qui fait des analyse {{ :systeme:2017p:get.cpp |}} ==== Le projet==== Une page lui est consacrée pour pouvoir ajouter des informations durant le déroulement [[:systeme:projet:mail|]]