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