Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1131 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Divers

  [os]question sur le principe d un system d exploitation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[os]question sur le principe d un system d exploitation

n°271390
slvn
Posté le 01-06-2003 à 17:15:17  profilanswer
 

bonjour,  
 
j ai une question sur le fonctionnement d un system d exploitation :
 
l OS permet d proteger l execution d un programme :
zone memoire protege, temps d execution limite, qui font en sorte qu on ne plante pas un OS bien concu!
 
Cependant, a partir du moment ou un programme s execute, comment l OS fait il pour reccuperer la main :??:
 
est ce que c est prevu au depart, que l OS recupere la main apres un certain temps ?
et puis comment prevoit il que le processus ne sorte pas de l espace memoire allouee ?
 
 

mood
Publicité
Posté le 01-06-2003 à 17:15:17  profilanswer
 

n°271404
Mr YouP
-- le crayon et le clavier --
Posté le 01-06-2003 à 17:50:32  profilanswer
 

mmm.. c un peu plus compliqué. Je suis loin d'être un spécialiste mais dans un un OS multitaches (Linux/Unix, NT), chaque processus (tache) possède son propre environement de travail soit autant d'environnements que de tache. C'est pour ça que sur un OS multitache quand un programme est planté, il est planté dans son envirronement et tu as toujours la main (c pour ça que 98 était si plantogène). Tu ne récupère pas la main, tu ne la perd pas.
 
Après, bien sur si il n'y a pas assez de place pour tous les process, on ralenti le système mais les taches déjà en place ont toujours leur envirronement et reste en vie. Par exemple un serveur avec un samba qui tourne et qui commence à monter en charge  pour une raison quelconque. Samba reste étonnament vivace jusqu'à la mort de la machine bien sur.
 
 

Citation :

et puis comment prevoit il que le processus ne sorte pas de l espace memoire allouee

 
Ben il ne sort pas de l'espace alloué, sinon c'est un bug.
 
En fait des fois on a l'impression que son PC est totallement planté (aucune réponse souris clavier) et on s'apercoit qu'en y accédant en ssh et en tuant X ça repart....


---------------
Les fiches libres : http://www.aldil.org/projets/fiches_libres/
n°271418
udok
La racaille des barbus ©clémen
Posté le 01-06-2003 à 18:34:40  profilanswer
 

Slvn a écrit :


est ce que c est prevu au depart, que l OS recupere la main apres un certain temps ?


 
je crois que c'est le scheduler qui s'occupe de ça
il alloue un temps d'exécution à chaque processus
ça tourne entre tous les processus, chacun leur tour (tu peux établir des priorités pour qu'un processus garde la main plus souvent, ou pour qu'il prenne la main plus souvent ... c'est selon l'algo utilisé)
mais quoiqu'il arrive, tu récupères toujours la main, sauf si c'est le kernel lui-même (ou un driver) qui est buggé


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
n°271419
Mr YouP
-- le crayon et le clavier --
Posté le 01-06-2003 à 18:43:24  profilanswer
 

udok a écrit :


 
je crois que c'est le scheduler qui s'occupe de ça
il alloue un temps d'exécution à chaque processus
ça tourne entre tous les processus, chacun leur tour (tu peux établir des priorités pour qu'un processus garde la main plus souvent, ou pour qu'il prenne la main plus souvent ... c'est selon l'algo utilisé)
mais quoiqu'il arrive, tu récupères toujours la main, sauf si c'est le kernel lui-même (ou un driver) qui est buggé


tout à fait. Je me positionnais sur le plan purement théorique. Maintenant le proc il fait une chose à la fois , d'où l'ordonanceur...


---------------
Les fiches libres : http://www.aldil.org/projets/fiches_libres/
n°271420
ganjo
Posté le 01-06-2003 à 18:46:14  profilanswer
 

je crois qu'au niveau materiel il y a une intetuption qui permet de rendre la main a l'ordonaceur

n°271422
slvn
Posté le 01-06-2003 à 18:54:45  profilanswer
 

ganjo a écrit :

je crois qu'au niveau materiel il y a une intetuption qui permet de rendre la main a l'ordonaceur


 
oui c est plutot de se cote la que ca m interesse:)
 
mais si y a une interruption, elle se declenche sur quoi ??
sur une temps de xx milisec??
 
dans ce cas, comment ca peut tester si des pointeurs touches un autre espace memoire??

n°271423
udok
La racaille des barbus ©clémen
Posté le 01-06-2003 à 18:58:49  profilanswer
 

Slvn a écrit :


 
oui c est plutot de se cote la que ca m interesse:)
 
mais si y a une interruption, elle se declenche sur quoi ??
sur une temps de xx milisec??


ça dépend de l'algo de l'ordonnanceur, des priorités des processus, etc...
fait un "nice -n -20 mon_prog" (man nice pour plus d'info) et tu verras que ta souris va bien ramer, les caractères dans le terminal vont s'afficher moins vite, etc...
et je pense aussi que c'est une interruption qui permet à l'ordonnanceur de reprendre la main (de toute façon y-a pas bcp d'autres solutions qui permettraient ça :D )
 

Slvn a écrit :

dans ce cas, comment ca peut tester si des pointeurs touches un autre espace memoire??


gni ? :??:


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
n°271427
slvn
Posté le 01-06-2003 à 19:05:56  profilanswer
 

oups, exucuse moi, je rend compte que je me suis mal exprime.  je tache d etre plus clair:
 
1/ comment l OS decide il qu un processus en cours ne soit plus en cours. (c est a dire qu il rend la main)
 
 
2/ comment l OS s assure t il qu un processus en cours ne touche qu a la memoire RAM qui lui est reservée.(et donc qu il touche pas a la RAM d un autre processus)
 
 
je parle de maniere bas niveau:
 
une fois qu un prog s execute, c est a dire que le processeur execute une par une les instruction de ce prog. qu est ce qu il fait qu il s arrete a un moment, et que le processeur change le processus a executer.
 
 
 

n°271430
udok
La racaille des barbus ©clémen
Posté le 01-06-2003 à 19:14:25  profilanswer
 

Slvn a écrit :

oups, exucuse moi, je rend compte que je me suis mal exprime.  je tache d etre plus clair:
 
1/ comment l OS decide il qu un processus en cours ne soit plus en cours. (c est a dire qu il rend la main)
 
 
2/ comment l OS s assure t il qu un processus en cours ne touche qu a la memoire RAM qui lui est reservée.(et donc qu il touche pas a la RAM d un autre processus)
 
 
je parle de maniere bas niveau:
 
une fois qu un prog s execute, c est a dire que le processeur execute une par une les instruction de ce prog. qu est ce qu il fait qu il s arrete a un moment, et que le processeur change le processus a executer.
 
 
 
 


 
1/ déjà dit : c'est l'ordonnanceur qui fait ça : apès un laps de temps prédéfini, l'os reprend la main (enfin l'ordonnanceur reprend la main), et autorise un autre processus à continuer là où il en était la derniere fois qu'on l'a arrété
 
2/ l'os mémorise quels segments de mémoire sont alloués à un processus
si elle veut accéder en dehors de cette mémoire => segmentation fault
par contre il y a l'histoire de buffer overflow que j'ai pas vraiment comprite [:joce]


Message édité par udok le 01-06-2003 à 19:15:34

---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
n°271446
slvn
Posté le 01-06-2003 à 20:00:47  profilanswer
 

Oui tu a repondu en parti. le role de l ordonnanceur est important dans la reaprtiion du processeur pour les processus.
La je parle pour la reprise de la "main".
 
L ordonnanceur ne reprend pas la main lui meme vu qu il n est pas en cours d execution.
 => donc comment se fait la reprise de la main??
je pense pas que ca soit fait par une interruption...


Message édité par slvn le 01-06-2003 à 20:01:10
mood
Publicité
Posté le 01-06-2003 à 20:00:47  profilanswer
 

n°271448
udok
La racaille des barbus ©clémen
Posté le 01-06-2003 à 20:02:43  profilanswer
 

Slvn a écrit :

Oui tu a repondu en parti. le role de l ordonnanceur est important dans la reaprtiion du processeur pour les processus.
La je parle pour la reprise de la "main".
 
L ordonnanceur ne reprend pas la main lui meme vu qu il n est pas en cours d execution.
 => donc comment se fait la reprise de la main??
je pense pas que ca soit fait par une interruption...


 
bah ça je ne suis pas sur mais je ne vois pas vraiment d'autre solution ...
attendons un expert en la matière qui pourra nous éclairer :D


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
n°271556
ganjo
Posté le 02-06-2003 à 09:42:28  profilanswer
 

Dns le cas du segfault, cest directement géré par le proc (pour les x86 en tout cas)
En effet le proc gère 20 exceptions possibles, de la division par zero a l'instruction non valide en passant par le point d'arret pour le debogage).

n°271668
slvn
Posté le 02-06-2003 à 12:36:24  profilanswer
 

donc pour le seg fault, il doit y avoir deux registres contenant les "bornes" de l espace qu il peut adresser.
 
et quand il utilise une memoire partage...
c compliquer ces choses :d

n°271694
ganjo
Posté le 02-06-2003 à 13:23:06  profilanswer
 

Slvn a écrit :

donc pour le seg fault, il doit y avoir deux registres contenant les "bornes" de l espace qu il peut adresser.
 
et quand il utilise une memoire partage...
c compliquer ces choses :d


meme chose je pense, après tout le proc pourrait avoir plusieurs bout de code qui est doit a la meme memoire
A moin que ca ne soit géré par le kernel, qui peut tenir compte d'ignorer le segfault dans certains cas

n°271697
udok
La racaille des barbus ©clémen
Posté le 02-06-2003 à 13:36:20  profilanswer
 

ouai mais la chose compliqué, c'est de comprendre le mécanisme du buffer overflow, si le segmentation fault est géré .... c'est bizarre quand même


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
n°271720
slvn
Posté le 02-06-2003 à 14:05:12  profilanswer
 

pour la memoire partage. ca passe par le system de fichier. donc le mecanisme n a surement rien a voir.
 
 
pour le buffer overflow, le but est de depasser le contenu de sa propre memoire. et de changer la valeur de retour de la fonction dans la pile.
donc le tout se faire "proprement" si on peut dire, pour bluffer le processeur...

n°271725
udok
La racaille des barbus ©clémen
Posté le 02-06-2003 à 14:09:07  profilanswer
 

Slvn a écrit :

pour la memoire partage. ca passe par le system de fichier. donc le mecanisme n a surement rien a voir.
 
 
pour le buffer overflow, le but est de depasser le contenu de sa propre memoire. et de changer la valeur de retour de la fonction dans la pile.
donc le tout se faire "proprement" si on peut dire, pour bluffer le processeur...


 
mais comment bluffer le processeur justement ? vous êtes sur que la mémoire est protéger sous linux ? c'est bizarre qu'il ne fasse pas un segfault ... dans quel cas il en fait un, et dans quel cas il y a faille ?


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
n°271727
slvn
Posté le 02-06-2003 à 14:10:39  profilanswer
 

segfault, quand tu sort de TA memoire.
 
le buffer overflow y a pas de segfault car tu reste dans ta propre memoire, en fait tu vient modifier une valeur dans la pile. l adresse de retour d une fonction.  
 
comme ca, quand le proc execute le retour de fonction. il va executer une autre prog ;)

n°271732
cassidy
Black Rainbow
Posté le 02-06-2003 à 14:17:29  profilanswer
 

Slvn a écrit :

Oui tu a repondu en parti. le role de l ordonnanceur est important dans la reaprtiion du processeur pour les processus.
La je parle pour la reprise de la "main".
 
L ordonnanceur ne reprend pas la main lui meme vu qu il n est pas en cours d execution.
 => donc comment se fait la reprise de la main??
je pense pas que ca soit fait par une interruption...


 
hehe j'ai exam la desus samedi :)
 
Ya surement plein de facons de faire mais une qu'on a vu c'est que chaque process dispose d'un quantum de temps q. Pdt son quantum, le process dispose du processeur pour travailler.  
2 possibilités:
- soit le process rend la main avant la fin de son quantum, par ex il attends un I/O. Auquel cas il fait une demande au superviseur, ce qui a pour effet de provoquer une interuption et d'etre propulser dans l'OS. Pdt que le process attend son I/O, l'OS peut donner la main a un autre process.
- soit le process consumme tout son quantum sans rendre la main, auquel cas une interuption horloge est déclenchée ce qui a pour effet de rendre la main à l'OS qui peut donner un quantum au process suivant.
Ca crée un sytème de tourniquet appelé 'Round Robin' qui donne la main à chaque process chacun à son tour.
C'est assez simplifié mais j'espère avoir été clair. :)  

n°271757
udok
La racaille des barbus ©clémen
Posté le 02-06-2003 à 14:56:35  profilanswer
 

Slvn a écrit :

segfault, quand tu sort de TA memoire.
 
le buffer overflow y a pas de segfault car tu reste dans ta propre memoire, en fait tu vient modifier une valeur dans la pile. l adresse de retour d une fonction.  
 
comme ca, quand le proc execute le retour de fonction. il va executer une autre prog ;)


 
ah mais oui exact  :jap:  
je confonds tout moi, je croyais qu'on pouvait obtenir les droits root avec ça, mais en fait non, et c'est là tout l'interet de ne pas démarrer quoi que ce soit en root :)


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
n°271775
phosphorus​68
Pseudo à n°
Posté le 02-06-2003 à 15:38:09  profilanswer
 

Cassidy a écrit :


- soit le process consumme tout son quantum sans rendre la main, auquel cas une interuption horloge est déclenchée ce qui a pour effet de rendre la main à l'OS qui peut donner un quantum au process suivant.


Théoriquement OK, c'est comme ça que je voyais la chose, mais en pratique, pour qu'une interruption extérieure stoppe l'exécution, il faut qu'elle ait été prévue avant?
Qqch comme "Dans tant de ms, déclencher telle interruption et maintenant passer la main à tel processus dont c'est le tour"?

n°271778
phosphorus​68
Pseudo à n°
Posté le 02-06-2003 à 15:43:50  profilanswer
 

Pour la protection de la mémoire extérieure à un programme, les anciens processeurs type Motorola 68000 ne le pouvaient pas.
Le 68030 par contre oui.
 
La différence, c'est qu'un code a 2 manières d'être exécuté; avec ou sans le bit S système. Sans le bit système, il a bcp de limitations et ne peut physiquement pas sortir d'un certain adressage.  
(j'ai pas un souvenir très clair du bit système et de la pagination mémoire. Ce sont 2 choses différentes apparues presque en même temps et qui permettent, réunies, d'éviter l'exécution de n'importe quoi et d'accéder à n'importe quoi)

n°271787
cassidy
Black Rainbow
Posté le 02-06-2003 à 16:11:51  profilanswer
 

phosphorus68 a écrit :


Théoriquement OK, c'est comme ça que je voyais la chose, mais en pratique, pour qu'une interruption extérieure stoppe l'exécution, il faut qu'elle ait été prévue avant?
Qqch comme "Dans tant de ms, déclencher telle interruption et maintenant passer la main à tel processus dont c'est le tour"?


 
L'interuption horloge est déclenchée par un circuit autonome lorsque son décompte atteint 0.
Je présume donc que lorsque l'OS donne la main a un process il remet ce compteur à la valeur d'un quantum.

n°271930
slvn
Posté le 02-06-2003 à 19:44:59  profilanswer
 

euh,
 
donc a chaque interruption, le processus en cours est derouté et le scheduler est appelé!
 
et si par hasard, l interruption apparait au moment ou le scheduler s execute...ca fout le bazaar:??:

n°271954
cassidy
Black Rainbow
Posté le 02-06-2003 à 20:36:32  profilanswer
 

le scheduler n'est pas appellé pour toutes les interruptions juste celle qui le concernent.
 
Quel interruption? Toute facon lors de la gestion d'une interruption, tu ne peux etre interrompu que par une interruption strictement plus prioritaire.

n°271966
Profil sup​primé
Posté le 02-06-2003 à 20:53:18  answer
 

cf ma signure...
 
et pis ça : www.mega-tokyo.com/forum

n°271970
slvn
Posté le 02-06-2003 à 20:55:24  profilanswer
 

dsl, c etait ambigue.
 
je parle de l'exception qui vient pour qu un processus rendent la main. (j ai mis un S, car il y a plusieurs fois la meme au court du temps.)

n°271971
slvn
Posté le 02-06-2003 à 20:56:02  profilanswer
 

Le Sot Zi a écrit :

cf ma signure...
 
et pis ça : www.mega-tokyo.com/forum


 
marrant comme signature :)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Divers

  [os]question sur le principe d un system d exploitation

 

Sujets relatifs
quel linux pour debuter + quelques questionQuestion con: du jpeg ou du png pour un fond d'écran ?
question pour linuxquestion à 10¤ sur mozilla: gestion de la mémoire
une chtite questionPetite question rapide pour XEmacs ...
Petite question sur le panel de Gnome2Question très bête : copier un fichier ?
Question mplayerQuestion de débutant sur la sécurité
Plus de sujets relatifs à : [os]question sur le principe d un system d exploitation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR