===== 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 }}