<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mes cours</title><link>https://clownatique.github.io/cours-en-ligne/lifse/</link><description>Recent content on Mes cours</description><generator>Hugo</generator><language>fr-fr</language><atom:link href="https://clownatique.github.io/cours-en-ligne/lifse/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://clownatique.github.io/cours-en-ligne/lifse/cm4/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifse/cm4/</guid><description>&lt;h1 id="les-signaux"&gt;les signaux&lt;a class="anchor" href="#les-signaux"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;les signaux sont une maniere de terminer un programme
on les utilise sans passer par des canaux de communications classiques (entree/sortie standard)&lt;/p&gt;
&lt;p&gt;ils sont asynchrones (personne ne sait quand le signal sera recu)&lt;/p&gt;
&lt;p&gt;fait penser aux interruptions bas niveau quon a vu la semaine derniere&lt;/p&gt;
&lt;p&gt;quand un programme recoit un signal, il va&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;retenir l&amp;rsquo;endroit ou il a recu le signal&lt;/li&gt;
&lt;li&gt;effectuer un &lt;strong&gt;traitement&lt;/strong&gt; en fonction du dit signal&lt;/li&gt;
&lt;li&gt;il PEUT reprendre son execution&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="les-differents-traitements-possibles"&gt;les differents traitements possibles&lt;a class="anchor" href="#les-differents-traitements-possibles"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;terminaision&lt;/li&gt;
&lt;li&gt;sommeil&lt;/li&gt;
&lt;li&gt;peut etre definies par le programmeurs&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="exemple-avec-un-super-schema-trop-joli"&gt;exemple avec un super schema trop joli&lt;a class="anchor" href="#exemple-avec-un-super-schema-trop-joli"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;les signaux permettent a lutilisateur dinteragir avec un programme qui tourne&lt;/p&gt;</description></item><item><title/><link>https://clownatique.github.io/cours-en-ligne/lifse/td2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifse/td2/</guid><description>&lt;h1 id="exercice-1"&gt;exercice 1&lt;a class="anchor" href="#exercice-1"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="1ere-question"&gt;1ere question&lt;a class="anchor" href="#1ere-question"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1ere-maniere"&gt;1ere maniere&lt;a class="anchor" href="#1ere-maniere"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; ret1;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ret1 &lt;span style="color:#f92672"&gt;=&lt;/span&gt; fork();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (fork() &lt;span style="color:#f92672"&gt;==&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;){&lt;span style="color:#75715e"&gt;// on est donc dans le fils 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (fork() &lt;span style="color:#f92672"&gt;==&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;){&lt;span style="color:#75715e"&gt;//on est dans le fils 2
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; wait(NULL);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; wait(NULL);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2eme-maniere"&gt;2eme maniere&lt;a class="anchor" href="#2eme-maniere"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;deux types de notation: == 0 ou &amp;gt; 0`&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; ret1;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ret1 &lt;span style="color:#f92672"&gt;=&lt;/span&gt; fork();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (fork() &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// pere: car fork renvoie 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; wait(NULL);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt; { &lt;span style="color:#75715e"&gt;// processus fils 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (fork() &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; wait(NULL);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; wait(NULL);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;quand processus fils se termine il passe a letat de zombie
=&amp;gt; ses ressources ne sont pas libres
=&amp;gt; wait() permets de faire disparaitre le fils&lt;/p&gt;</description></item><item><title>ordinateur</title><link>https://clownatique.github.io/cours-en-ligne/lifse/cm2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifse/cm2/</guid><description>&lt;h2 id="introduction-types-de-memoires"&gt;introduction (types de memoires)&lt;a class="anchor" href="#introduction-types-de-memoires"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;presentations des types de peripheriques&lt;/p&gt;
&lt;h2 id="comment-est-mis-la-memoire"&gt;comment est mis la memoire&lt;a class="anchor" href="#comment-est-mis-la-memoire"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="le-stockage-physique"&gt;le stockage physique&lt;a class="anchor" href="#le-stockage-physique"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;on peut voir comme un gros tableau avec des decoupages&lt;/p&gt;
&lt;h3 id="le-stockage-vue-par-lend-user"&gt;le stockage vue par lend user&lt;a class="anchor" href="#le-stockage-vue-par-lend-user"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;un fichier est un gros tableau doctets
un fichier a des attributs (date de creation, dernier acces, permission)&lt;/p&gt;
&lt;p&gt;tout ces attributs sont fournis grace au systeme de fichier&lt;/p&gt;
&lt;h2 id="systeme-de-fichier"&gt;systeme de fichier&lt;a class="anchor" href="#systeme-de-fichier"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;mais c bcp de choses un systeme de fichier non ?&lt;/p&gt;</description></item><item><title>processus</title><link>https://clownatique.github.io/cours-en-ligne/lifse/cm3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifse/cm3/</guid><description>&lt;h1 id="rappels"&gt;rappels&lt;a class="anchor" href="#rappels"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;on a vu en LIFARCHI, que le processeur ne peut pas faire beaucoup de choses en
meme temps: en fonction du nombre de coeur, de 1 a 8 instructions peuvent etre
executes en meme temps
Or, le nombre de programmes executes sur un ordinateur peut s&amp;rsquo;averer etre assez
grand: actuellement sur mon ordinateur j&amp;rsquo;ai 340 programmes qui tournent.&lt;/p&gt;
&lt;p&gt;Pour voir les programmes qui tournent:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ps&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="processus-et-ses-caracteristiques"&gt;Processus et ses caracteristiques&lt;a class="anchor" href="#processus-et-ses-caracteristiques"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Un processus est une abstraction pour designer un programme en cours d’exécution.&lt;/p&gt;</description></item><item><title>td1 de lifse</title><link>https://clownatique.github.io/cours-en-ligne/lifse/td1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clownatique.github.io/cours-en-ligne/lifse/td1/</guid><description>&lt;h2 id="exercice-1"&gt;exercice 1&lt;a class="anchor" href="#exercice-1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="definition-de-write"&gt;definition de write&lt;a class="anchor" href="#definition-de-write"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;la fonction permets de lire count octets a partir de filedescriptor fd et les en memoire dans buf&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;fd&lt;/strong&gt; ca represente la maniere dont on peut interagir avec le fichier
en general on mets la valeur de retour de open
on lappelle le file descriptor&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;buf&lt;/strong&gt; cest ladresse de lendroit ou on a stocke les donnes a ecrire&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ssize_t&lt;/strong&gt; c le nombre doctets quon mets dans le fichier
size_t jsp pk mais c un sous type des unsigned int&lt;/p&gt;</description></item></channel></rss>