Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 14/01/2013, à 22:54

Bloupies

Linux et gestion des processus

Bonsoir

J'essaie de comprendre quelques nouvelles notions en système traitant sur les processus sous Linux et j'avoue avoir un peu de mal .


Quelques problèmes de gestion quand :
a)-Quand le systeme a besoin de plus d’un executable
b)-Quand 2 programmes veulent accéder au même fichier
c)-Quand 2 instances d’un programme utilisent la même zone mémoire
d)-Quand l’utilisateur veut lancer plusieurs taches en même temps ( et fait planter un programme )

J ‘aimerais bien cerner quelques trucs : Les affirmations sont claires mais j’aurai bien avoir 1-2 exemples pour chaque si possible ..

-----------------

Processus ou tâche : image active de tout ou partie d’un programme en mémoire .

Hum c’est à dire image active d’un programme ?

-----------------

Multitache : Tous les systemes sont multitaches , mais ils n’offrent pas tous cette possibilité aux utilisateurs  .

Cela veut dire que pas tous les systemes sont multitaches ou bien que mêmes si certaines sont multitaches , on ne peut pas en profiter ?

-----------------

Ordonnancement

Cela permet de ce que j’ai compris de donner des priorités ( systeme , phériphériques ) , cela permet ainsi de choisir la priorité des processus que l’on veut selon nos choix ?

-----------------

Exclusion mutuelle

Cela devrait permettre de garantir l’accès à un seul programme pour une ressource. Donc un seul processus pour un seul programme ?

-------------------

Programmation concurrente

Je n’ai pas vraiment compris le sens , ou du moins l’utilisé : «  Tenir compte , dans des langages spécialisés ou non , du multiprocessing ou du multiprocesseur

-------------------

Pour synchroniser les processus , on utilise des fonctions matérielles :
-Test and Set , qui est une opération atomique en assembleur
ou des solutions logicielles :
-Booléens
-drapeaux(algo. De Dekker)
- sémaphores
On synchronise pour garantir l’accés aux sectionS critiques d’un programme .  Les attentes sont actives (SpinLock) ou non .
Quelques problemes subsistent , notamment l’interblocage ou deadlock .

Hum synchroniser les processus , on entend quoi par synchroniser ?
Garantir l'accès aux sections critiques ? C'est à dire ?

-------------------

Et pour finir , un exemple que je n'arrive pas à saisir :

972073Capturedcran20130114180855.png

476752Capturedcran20130114180958.png


Voilà voilà .

Merci d'avance de votre aide

Hors ligne

#2 Le 15/01/2013, à 14:21

Bloupies

Re : Linux et gestion des processus

Petit up si quelqu'un saurait m'aider hmm

Hors ligne

#3 Le 15/01/2013, à 16:36

Haleth

Re : Linux et gestion des processus

Bonsoir,

Quelques problèmes de gestion quand :
a)-Quand le systeme a besoin de plus d’un executable
b)-Quand 2 programmes veulent accéder au même fichier
c)-Quand 2 instances d’un programme utilisent la même zone mémoire
d)-Quand l’utilisateur veut lancer plusieurs taches en même temps ( et fait planter un programme )

J ‘aimerais bien cerner quelques trucs : Les affirmations sont claires mais j’aurai bien avoir 1-2 exemples pour chaque si possible ..

a) Comprend pas
b) Y'a pas de problème pour la lecture: chacun peut lire la même zone en même temps. Pour l'écriture, des mécanismes sont inclus.
c) Ca n'arrive .. jamais. Sauf dans le cas de mémoire partagée, ce n'est pas la mémoire d'un processus, mais une zone spécifiquement déclarée comme étant "partagée"
d) J'imagine qu'il parle du scheduler: on fait fonctionner chaque process, l'un après l'autre (en gros), pendant un cours instant histoire de simuler le multi-processing sur mono-proc. Sur multi-cores, c'est moins "magique" puisque le kernel fait travailler le plus de proc possible.


Processus ou tâche : image active de tout ou partie d’un programme en mémoire .

Hum c’est à dire image active d’un programme ?

Un processus, c'est en gros:
- Une zone mémoire contenant le code à exécuter
- Une zone mémoire contenant les données du programme
- Une entrée dans le kernel

Grossièrement, on peut dire qu'un process est une zone mémoire .. c'est surtout la dimension sémantique que l'on donne à cette zone qui importe.

Multitache : Tous les systemes sont multitaches , mais ils n’offrent pas tous cette possibilité aux utilisateurs  .

Cela veut dire que pas tous les systemes sont multitaches ou bien que mêmes si certaines sont multitaches , on ne peut pas en profiter ?

Pas compris: sur chaque PC, y'a plusieurs process qui fonctionnent.
Il fait peut-être allusion à la possibilité de limité le nombre de processus d'un utilisateur (limité à 1 -> ce n'est plus multitache), m'enfin c'est jamais utilisé (on se demande pourquoi ..)

Ordonnancement

Cela permet de ce que j’ai compris de donner des priorités ( systeme , phériphériques ) , cela permet ainsi de choisir la priorité des processus que l’on veut selon nos choix ?

Ordonnancement, c'est le scheduleur. Il se charge d'executer les programmes que tu veux, en fonction des procs disponibles, et de divers politiques mises en place (nice, cgroups etc)

Exclusion mutuelle

Cela devrait permettre de garantir l’accès à un seul programme pour une ressource. Donc un seul processus pour un seul programme ?

C'est quand A attend B, et B attend A.
Par exemple, tu as deux cuistots. L'un fait un poulet roti, il a besoin d'un four et d'une table pour préparer le roti. L'autre fait des gateaux, il a besoin d'un four et d'une table pour les démouler. Le gateau est dans le four, le poulet est sur la table.
Le poulet attend le four: il reste sur la table en attendant.
Le gateau attend la table: il reste dans le four en attendant.
-> interblocage

Programmation concurrente

Je n’ai pas vraiment compris le sens , ou du moins l’utilisé : «  Tenir compte , dans des langages spécialisés ou non , du multiprocessing ou du multiprocesseur

Programmation concurrente, c'est la faculté d'utiliser plusieurs processus (et donc processeur, puisque le scheduleur ne donne qu'un processus par proc à la fois) pour une même tache.
Exemple:
- Tu as 4 processeurs
- Tu as une image à traiter
- Tu coupes l'images en 4, chaque proc traite un quart de l'image
-> traitement plus rapide, utilisation des 4 procs au lieu d'un seul


Pour synchroniser les processus , on utilise des fonctions matérielles :
-Test and Set , qui est une opération atomique en assembleur
ou des solutions logicielles :
-Booléens
-drapeaux(algo. De Dekker)
- sémaphores
On synchronise pour garantir l’accés aux sectionS critiques d’un programme .  Les attentes sont actives (SpinLock) ou non .
Quelques problemes subsistent , notamment l’interblocage ou deadlock .

Hum synchroniser les processus , on entend quoi par synchroniser ?
Garantir l'accès aux sections critiques ? C'est à dire ?

Pour reprendre l'exemple au dessus: afin de recuperer l'image traitée, il faut que les 4 procs aient fini de travailler. Il faut donc que le premier qui a fini attende les 3 autres.
C'est de la syncho.
Dans les solutions qu'il donne, c'est plutôt dans le sens: "accès à une ressource critique", c'est également une synchro puisque chacun ne peut aller dans la "section critique" si un autre y est déjà.

Attente active:
"Y'a quelqu'un ? Je peux entrer ?"
"Dégage, c'est occupé"
"Ok, je repasse tout à l'heure"

Attente passive:
"Y'a quelqu'un ? Je peux entrer ?"
"Dégage, c'est occupé"
"Ok, tu m'dit quand t'as fini, j'attend devant la porte"

Et pour finir , un exemple que je n'arrive pas à saisir :

http://img11.hostingpics.net/pics/97207 … 180855.png

http://img11.hostingpics.net/pics/47675 … 180958.png


Voilà voilà .

Merci d'avance de votre aide

C'est de l'exclusion à base de sémaphore on dirait: l'un vérifie ce que fait l'autre avant d'exec le code "critique".


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#4 Le 31/01/2013, à 22:13

Bloupies

Re : Linux et gestion des processus

Salut .

Merci pour tes infos , ça m'a super aidé pour affiner mes cours , j'en ai profité pour chercher plus loin .

Je me demandais quelles différences y a t-il entre l'algol de Decker et le TAS ( test and set )  , car les deux , après être rentré , mettent un verrou à 1 empêchant le second processus de rentrer , le laissant attendre .

Merci

Hors ligne

#5 Le 31/01/2013, à 22:17

Haleth

Re : Linux et gestion des processus

Ressemblance: les deux sont mauvais: les opérations ne sont pas canoniques, deux process peuvent donc lock le truc en même temps.


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#6 Le 31/01/2013, à 22:18

Bloupies

Re : Linux et gestion des processus

Mais n'y a t-il pas quelque chose les distinguant l'un l'autre ?

Hors ligne

#7 Le 31/01/2013, à 22:26

Bloupies

Re : Linux et gestion des processus

deux processus peuvent rentrer en même temps et lock ? T'es sur ? C'est pas que l'exclusion mutuelle ( attente active ) ?

Car pour le TAS , il y a une vérification permettant de savoir s'il y a déjà quelqu'un à l'intérieur , si personne , hop il lock après être rentré .

Je pensais que ces deux là sortaient du lock en évitant le problème des deux pross en même temps .

Hors ligne

#8 Le 31/01/2013, à 23:26

Haleth

Re : Linux et gestion des processus

Je pensais que ces deux là sortaient du lock en évitant le problème des deux pross en même temps .

Ouais, mais sauf que le scheduleur attribue du temps processeur aux process par "groupe" d'instruction.

Tu peux donc avoir le process A qui test, personne est lock, il se prépare à lock.
Hop, le scheduleur balance le process B, il voit que personne est lock, il lock.
Hop, le scheduleur rebalance le process A: il continue son exec, et lock.

Résultat: A et B sont lock.

Tous ces algo sont très théoriques, mais dans la pratique, y'a deux choses pour garantir une zone privée:
- opération canonique (ou groupe d'opération): le scheduleur ne peut pas "couper" entre deux instructions
- on se base sur le kernel: on lui demande, il lui te garanti l'affaire

C'est sur ce dernier procédé que se fondent les progs généralement, j'imagine.


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#9 Le 31/01/2013, à 23:30

Bloupies

Re : Linux et gestion des processus

Salut , je comprends maintenant un peu mieux .

Ton explication s'explique pour l'algo de decker et le TAS également . Même défaut ?

Au passage : Tu es étudiant , ingénieur ou autres ?
Je serais bien curieux d'en savoir plus concernant tes connaissances smile

Dernière modification par Bloupies (Le 31/01/2013, à 23:58)

Hors ligne

#10 Le 01/02/2013, à 16:08

Hoper

Re : Linux et gestion des processus

Pas compris: sur chaque PC, y'a plusieurs process qui fonctionnent.
Il fait peut-être allusion à la possibilité de limité le nombre de processus d'un utilisateur (limité à 1 -> ce n'est plus multitache), m'enfin c'est jamais utilisé (on se demande pourquoi ..)

Oui et non... Ok, de nos jours, tous les OS sont multitâches. Mais si on remonte un tout petit peu dans le temps (MS-DOS...) il me semble bien que l'OS n'était pas multitâche. Un seul processus pouvait tourner, et rien ne pouvais l’interrompre avant qu'il ne se termine. (et qu'on puisse donc enchainer sur un autre).

J'ignore si il existe encore des OS monotache, mais je ne serai pas trop surpris que ce soit le cas (calculatrice, distributeur etc).


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/tdc/

Hors ligne

#11 Le 01/02/2013, à 16:14

Haleth

Re : Linux et gestion des processus

Bloupies a écrit :

Au passage : Tu es étudiant , ingénieur ou autres ?
Je serais bien curieux d'en savoir plus concernant tes connaissances smile

Je suis étudiant en Master 4, admin-sys chez un FAI dans l'ain, technophile, psychopath et philanthrope.

Dernière modification par Haleth (Le 01/02/2013, à 17:02)


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

Haut de page ↑