Show Menu
Cheatography

Systèmes d'exploitation (OS) Cheat Sheet (DRAFT) by

Os

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Process

Un process est un programme
en cours d’exéc­ution.
Ressources nécessaires:
Temps cpu
Memoire
Fichiers et periph­eriques I/O
Respon­sab­ilités du système:
Créer et effacer les processus
Mise en veille­/re­-ac­tiver process
Fournir des mécanismes pour:
Synchr­oniser process
Faire commun­iquer les process

Mémoire principale

Liste de cases mémoire sous forme de bytes ou de words (2bytes) référencés par une adresse.
Data pool à accès rapide partagé entre le CPU et périph­ériques I/O.
Périph­erique volatile: Data perdu en cas de panne du systeme.
Respon­sab­ilités du système:
Grader une trace de:
Occupation mémoire
Qui l'utilise
Décide:
Next process load in mem
When free mem. space available
Memory allocation on demand

Mémoire secondaire (morte) (DD)

Stockage programmes et données.
Accès lent mais grande capacité.
Respon­sab­ilités du système:
Gestion de l'espace libre
Allocation de l'espace
Gestion accès disques

Fichiers (files)

Groupe d'info­rma­tions du même genre.
Contient:
Programme (code source/compilé)
Données
Respon­sab­ilités du système:
Make/d­elete files
Make/d­elete folders
Fournir des primitives
(fonction bas niveau) pour la manipu­lation de fichiers et de repertoires
Make link with secondary memory
Sauvegarde les fichiers dans une mémoire non-vo­latile (Secondary memory: DD...)

Système distribué

Collection de PC autonomes connectés via protocole de commun­ica­tion. Chaque poste exécute des compos­antes coordo­nnées avec celle des autres.
L'util­isateur perçoit le système comme un unique système intégré.
Exemple: Programme SETI
(Search for Extra-­Ter­res­trial Intell­ige­nce). Séquences de calculs, issues du découpage d'un projet de calcul global.
Accès à des ressources partagées:
Augmen­tation vitesse calcule
Augmen­tation dispon­ibilité des données
Augmen­tation de la fiabilité
 

I/O (Entré­es/­Sor­ites)

Système de cache avec mémoire tampon
Interface de gestion générique
Logiciel pour accès au matériel spécifique

Système de protection

Mécanismes pour contrôler l'accès aux ressources du système par des processus systèmes ou des programmes utilis­ateurs.
Détermine si l'accès est autorisé ou non
Spécifie les contrôles à imposer
Fournit des moyens de les faire respecter

Interp­rét­ation de commandes

Les commandes données à l'os doivent gérer:
La créati­on/­des­tru­ction de process
Les I/O
La mémoire secondaire (morte, DD)
La mémoire principale (vive, RAM)
L'accès au système de fichiers
La protection
Le réseau
Commande Language Interp­reter (CLI)(W)
Shell (UNIX)
Sa fonction est d'obtenir prochaine commande et l’exéc­uter.

Services des OS

Exécution de progra­mmes: Charger un programme, en mémoire et l'exéc­uter)
Operations I/O: Pour des raisons d’effi­cacité et de sécurité, user ne les contrôle pas direct­ement. L'OS fournit services pour accès I/O.
Manipu­lation des systèmes de fichiers: Lire, écrire, créer, éffacer et modifier des fichiers.
Commun­ica­tion: Echange d'info­rma­tions entre plusieurs processus dans le même système ou dans des systèmes séparés reliés par un réseau.
Détection d'erreurs: Assure un foncti­onn­ement en détectant les erreurs dans CPU, mémoire, I/O ou dans les programmes user.

Appels Système

Fourni­ssent l'inte­rface entre process et OS:
Généra­lement en language Assembleur
Language de rempla­cement pour accès OS
Trois méthodes sont utilisées pour transm­ettre des paramètres à l'OS:
Passage par registres
Memori­sation des paramètres dans un
tableau et transm­ission de l'adresse du
début du tableau par un registre
Empiler (push) des paramètres sur la pile
qui seront ensuite "­dép­ile­s"(pop) par l'OS
Types d'appels systèmes:
Contrôle de processus:
Load,exec,stop,make,wait,warn,allocate
Gestion de fichiers:
Make,delete,open,close,read,write,move
Gestion des périphériques:
Request,free,read,write,move
Maintenance de l'information:
Récupé­rer­/ch­anger date et heure
Gérer les données système pour les
process, les fichiers ou les périphériques
Communications
Créer ou détruire les connexions
Gérer les messages

Fonctions supplé­men­taires

Ensemble de fonctions pour assurer un compor­tement correct de l'OS.
Allocation de ressources entre plusieurs utilis­ateurs et processus foncti­onnant simult­anément sur le même système.
Compta­bil­isation des ressources utilisées par chaque utilis­ateur de processus (utilisé pour des statis­tiques ou de la factur­ation).
Protection accès aux ressources système.

Structure systèmes MS-DOS

Ecrit pour donner max foncti­onn­alités dans un minimum d'espace. Ecrit "­rap­ide­men­t".
Decoupage des modules bâclé.
Interfaces et niveaux mal séparés.

Structure des couches MS-DOS

Structure système UNIX

Système original: Structure simple car limité par les foncti­onn­alités matériel.
Décomp­osition en deux parties distinctes:
Programmes système
Noyau (Kernel)
Kernel:
Contient toutes les fonctions de gestion depuis les appels système jusqu'au matériel.
Fournit le système de fichiers, l'ordo­nna­ncement des process, gestion mem + autres fonctions bas niveau.

Structure systémes UNIX

OS divisé en couches

Chaque niveau s'appuie sur le niveau inf. Le niveau le plus bas est constitué par le matériel, le plus haut est l'inte­rface user.
L'orga­nis­ation des couches doit être approprié. Chaque couche ne doit utiliser que des fonctions de la couche inféri­eure.
 

Machines Virtuelles

Le matériel et le noyau sont traités comme une seule couche matéri­elle.
Une MV simule un matériel en fourni­ssant une interface identique.
L'OS crée l'illusion d'avoir plusieurs process foncti­onnant en même temps chacun sur son processeur avec sa propre mémoire virtuelle.
Ressources physiques du PC sont partagées pour créer des MV:
Ordonn­anc­ement CPU crée l'illusion que
chaque user a son propre CPU
Simulation possible de périph­ériques

Isolateur (Software)

Isole l'exec des apps dans Zone d'exéc­­ution.
Fait tourner plusieurs fois la même app même si elle n’était pas conçue pour ça.
Très performant mais +- != Virtua­­li­s­ation car le virtualenv n'est pas complè­­tement isolé.
cLinux­-Vs­erv­er,BSD Jail, OpenVZ

Hyperv­iseur Type 2

Permet de lancer un ou plusieurs OS guest.
Le pc maître émule le matériel pour les OS guest, qui croient dialoguer direct­­ement avec ledit matériel.
Couche physique émulée, Isolation complète mais perfs réduites /rapport à la virtua­­li­s­a­tion.
Echanges entre OS (Guests, Master) vi canaux standards de la com entre OS (TCP/I­­P...). Un tampon d'échange permet d'émuler des cartes réseaux sur une seul CR réelle. ex: VirtualPC, Virtua­lBox...

Hyperv­iseur Type 1

Guest accède direct à la couche physique
Para­-­vi­­rtu­­al­i­s­at­ion: Guest sait qu'il est virtualisé et donc + opti, + de perfs.
ex:VMware vSphere, MS Hyper-V Server­­,...