===== Système d'exploitation L2 - printemps 2018 ===== ==== Ressources utiles ==== * L'emploi du temps officiel [[http://adelb.univ-lyon1.fr/direct/index.jsp?projectId=1&ShowPianoWeeks=true&resources=12606,12608,12623,12626,12711,12637,12723,12730&projectId=1&weeks=24,25,26,27,28,29,30,31,32,33,34,35,36,37,38&days=0,1|sur ADE]] * Les [[systeme:annales|annales]] attention elles sont mélangées avec l'UE programmation concurrente de L3. * La bibliothèque d'application [[https://github.com/fabienrico/socklib|SockLib]] * Un [[systeme:commande|formulaire de commandes]] unix à connaître ==== Cours ==== * Le cours d'introduction : {{ :systeme:2018p:cm-intro.pdf |slides}} et {{ :systeme:2018p:cm-intro_a.pdf |version imprimable}}. * Les prérequis : {{ :systeme:2018p:cm-prerequis.pdf |slides}} et {{ :systeme:2018p:cm-prerequis_p.pdf |version imprimable}}. * Le cours sur les processus : * {{ :systeme:2018p:cm-processus.pdf |slides}} et {{ :systeme:2018p:cm-processus_p.pdf |version imprimable}}; * {{ :systeme:2018p:system.cpp |code utilisant la fonction ''systeme''}}; * {{ :systeme:2018p:signal.cpp |code utilisant la fonction ''signal''}}; * {{ :systeme:2018p:sigaction.cpp |code utilisant la fonction ''sigaction''}}. * Le cours sur la communication entre processus : * [[https://github.com/fabienrico/socklib|lien vers la bibliothèque d'application socklib]] à utiliser en TP; * {{ :systeme:2018p:cm-ipc.pdf |sildes}}, une {{ :systeme:2018p:cm-ipc_p.pdf |version imprimable}}; * {{ :systeme:2018p:pipe.cpp |code utilisant un pipe}}; * code utilisant un pipe nommé le {{ :systeme:2018p:fifol.cpp |lecteur}} et le {{ :systeme:2018p:fifoe.cpp |rédacteur}}; * code utilisant des sockets le {{ :systeme:2018p:serveur.cpp |serveur}} et le {{ :systeme:2018p:client.cpp |client}}. * Le cours sur les fichiers : {{ :systeme:2018p:cm-fichiers.pdf |sildes}}, une {{ :systeme:2018p:cm-fichiers_p6.pdf |version imprimable}}; * Le cours sur l'utilisation du système : {{ :systeme:2018p:cm-admin.pdf |sildes}}, une {{ :systeme:2018p:cm-admin_p6.pdf |version imprimable}}; ==== TDs ==== * TD1 : programmer et utiliser des primitives de lecture/écriture : {{ :systeme:2018p:td1.pdf }} * Correction du TD1 * {{ :systeme:2018p:td1_corr.pdf }}; * le {{ :systeme:2018p:election.cpp |code complet}}. * TD2 : protocole de communication : {{ :systeme:2018p:td2.pdf }} * Correction du TD2 * {{ :systeme:2018p:td2_corr.pdf }}; * TD3 : Fichiers et droits : {{ :systeme:2018p:td3.pdf }} * Correction du TD3 * {{ :systeme:2018p:td3_corr.pdf }}; * TD4 : Protocoles : {{ :systeme:2018p:td4.pdf }} * Correction du TD4 * {{ :systeme:2018p:td4_corr.pdf }}; ==== TPs ==== * TP1, variable d'environnement, fork et signaux : * {{ :systeme:2018p:tp1.pdf |Le sujet}} * {{ :systeme:2018p:signal_temps.cpp |Le fichier pour commencer la question 3}} * Correstion du TP1 * {{ :systeme:2018p:tp1_corr.pdf }}; * {{ :systeme:2018p:bonjour.cpp |}}; * {{ :systeme:2018p:famille.cpp |}} (un peu plus compliqué que ce qui est demandé, cela crée un lignée de ''n'' descendants); * {{ :systeme:2018p:signal_temps_corr.cpp |}} * TP2, lancement d'une commande dans un shell, utilisation des signaux : * Le {{ :systeme:2018p:tp2.pdf |sujet}} * Le {{ :systeme:2018p:cli_skel.cpp | code de départ}} * Correction du TP2 * {{ :systeme:2018p:tp2_corr.pdf |}} * Correction des questions 1 et 2 {{ :systeme:2018p:cli_part_0.cpp |}} * Correction des questions 3 et 4 {{ :systeme:2018p:cli_part_2.cpp |}} ou {{ :systeme:2018p:cli_part_1-sigaction.cpp |}} * Correction de la question 5 {{ :systeme:2018p:cli_part_2.cpp |}} * Une correction plus complète avec discussion [[http://spiralconnect.univ-lyon1.fr/webapp/forum/thread.html?id=931226&idPost=931229#p_931229| sur l'ancien site]] * TP3, prise en mains des sockets : * Le {{ :systeme:2018p:tp3.pdf |sujet}} * Les codes {{ :systeme:2018p:serveur.cpp}} et {{ :systeme:2018p:client.cpp}} * Les codes {{ :systeme:2018p:socklib.hpp}} et {{ :systeme:2018p:socklib.cpp}} * Correction du TP3 * {{ :systeme:2018p:tp3_corr.pdf |}} * Correction {{ :systeme:2018p:discussion.cpp}} * Correction {{ :systeme:2018p:discussion_final.cpp}} de la partie optionnelle * TP4, suite des sockets et prise en main de la librairie [[https://github.com/fabienrico/socklib|SockLib]]. * le sujet {{ :systeme:2018p:tp4.pdf }} * le code pour démarrer {{ :systeme:2018p:socket_bench.tar.gz }} * Correction du TP4 * le code pour l'envoie de donnée {{ :systeme:2018p:socket_bench-180307.tgz }} * celui de la lecture de l'entête HTTP {{ :systeme:2018p:get_http_header-180310.tgz }} * TP5 noté sur l'envoi de mail * Le sujet {{ :systeme:2018p:tp5.pdf |}} * Le {{ :systeme:2018p:auto_mail.tar.gz |code pour commencer}} * TP6, utilisation du système, connexion à distance... * le sujet {{ :systeme:2018p:tp6.pdf }} * le code {{ :systeme:2018p:exemple.cpp }} * le code {{ :systeme:2018p:ChangeUser.c }} * Correction du TP6 {{ :systeme:2018p:tp6_corr.pdf }} * TP7, droits création d'utilisateur, information sur les processus et fichiers de log * le sujet {{ :systeme:2018p:tp7.pdf }} * le code {{ :systeme:2018p:code1.c }} * Correction du TP7 {{ :systeme:2018p:tp7_corr.pdf }}