| |||||
FORUM HardWare.fr

Linux et OS Alternatifs

Divers

[os]question sur le principe d un system d exploitation| Dernière réponse | ||
|---|---|---|
| Sujet : [os]question sur le principe d un system d exploitation | ||
| slvn |
|
|
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| slvn |
|
| slvn | 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.) |
| cf ma signure...
et pis ça : www.mega-tokyo.com/forum |
| cassidy | 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. |
| slvn | 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:??: |
| cassidy |
|
| phosphorus68 | 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) |
| phosphorus68 |
|
| udok |
|
| cassidy |
|
| slvn | 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 ;) |
| udok |
|
| slvn | 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... |
| udok | 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 |
| ganjo |
|
| slvn | 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 |
| ganjo | 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). |
| udok |
|
| slvn | 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... |
| udok |
|
| slvn | 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. |
| udok |
|
| slvn |
|
| ganjo | je crois qu'au niveau materiel il y a une intetuption qui permet de rendre la main a l'ordonaceur |
| Mr YouP |
|
| udok |
|
| Mr YouP | 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.
|
| slvn | 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 ? |


