Systèmes Flashcards

1
Q

def. : Système d’exploitation

A
Logiciel entre les applications et le matériel.
Ses principales fonctions sont : 
- gestion de l'activité
- gestion de l'information (mémoire)
- gestion des communications
- protection
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

def : interface + 2 types

A

L’interface est l’ensemble des fonctions accessibles aux utilisateurs du service
Interface de commande (ex : commande Shell) et interface de programmation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Les différentes couches du système avec ce qu’elles contiennent

A

+ Niveau utilisateur : Applications utilisateur, Logiciels de base, Bibliothèques système, Appels de fonction
+ Niveau noyau : Gestion des processus, Système de fichier, Gestion de la mémoire
+ Niveau matériel : Firmware, contrôleur, SOC (système complet embarqué sur une seule puce)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Méthodes d’isolation des programmes (et utilisateurs) dangereux

A

+ Préemption : ne donner aux applications que ce qu’on peut leur reprendre
+ Interposition : pas d’accès direct, vérification de la validité de chaque accès
+ Mode privilégié : certaines instructions machines réservées à l’OS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

def : processus + exemples

A

Entité dynamique représentant l’exécution d’un programme sur un processeur
ex : - L’exécution d’un programme
- La copie d’un fichier sur disque
- La transmission d’une séquence de données sur un réseau
Un processus est identifié grâce à son PID et possède une mémoire propre et un contexte

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Le père attend la fin de l’un des fils (donner la fonction)

A
pid_t wait (int *ptr_etat)
retour : pid du fils qui a terminé ; code de fin stocké dans ptr_etat
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Attendre la fin du fils pid (donner la fonction)

A

pid_t waitpid (pid_t pid, int *ptr_etat, int options)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

def : processus zombie

A

un fils terminé dont le père n’a pas fait wait()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

résultat création fork()

A
0 = fils
>0 = père 
<0 = erreur
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Moyens de communication entre processus sous Unix

A
  • Signaux
  • Fichiers et tubes (pipes, FIFOs)
  • Files de messages : pas étudié dans ce module
  • Mémoire partagée et sémaphores
  • Sockets (dans les réseaux, mais aussi en local)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Signal : synchrone ou asynchrone ? émis par ? limites ? Intérêt ? Exemples de signaux

A
  • asynchrone
  • émis par l’OS ou un processus
  • intérêts : simplifient le contrôle d’un ensemble de processus, pratique pour des événements liés au temps
  • limites : à manipuler avec précaution (risque de pertes de signaux)
  • exemples : SIGINT -> frappe du caractère
    SIGTSTP -> frappe du caractère
    SIGSTOP / SIGCONT
    SIGTERM
    SIGKILL
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

fonction open

A

fd = open(“/home/toto/fich”, O_RDONLY, 0);
Ici, ouverture en lecture seule
- Autres modes : o_rdwrite, o_wronly
- fd stocke le descripteur alloué par le système (ou –1 si erreur)
- Fichier créé s’il n’existe pas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

création d’un pipe()

A

int fd[2]

pipe(fd)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

utilisation write et read

A
write(fd, &amp;BUFF, TAILLE).
ex :
#define BUFSIZE 10
char bufin[BUFSIZE] = "empty";
char bufout[ ] = "hello";
write(fd[1], bufout, strlen(bufout)+1);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

def : cluster

A

Découpages du disque en clusters (4Ko en général)

Le cluster est la plus petite unité de stockage du système de fichiers.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

def : i-node

A

C’est un cluster du disque où sont stockées les meta-données du système de fichiers décrivant
un fichier particulier. On y trouve le propriétaire du fichier, les droits d’accès, ainsi que la liste des clusters contenant les données du fichier (si le fichier est trop gros, il y a une indirection).

17
Q

def bibliothèque

A

recueil de fonctions utilisées dans divers programmes

18
Q

bibliothèques statiques vs dynamiques

A

Statique :

  • Pourquoi : collection de fonctions
  • Comment : archive ar
  • Avantages et défauts : simple, mais le code est dupliqué dans chaque processus les utilisant et la liaison a lieu à la compilation (nouvelle version de bibliothéque ⇒ recompilation)

Dynamique :

  • Pourquoi : partage du code entre applications
  • Comment : édition de liens au lancement
19
Q

condition de compétition

A

Deux banques modifient un compte en même temps

20
Q

mode de verrouillage impératif vs consultatif

A

impératif : bloque les accès incompatibles avec verrous présents
consultatif : ne bloque que la pose de verrous incompatibles

21
Q

def famine

A

un processus attend indéfiniment une ressource (problème d’équité)

22
Q

def sémaphore

A

Objet composé de :

  • D’une variable : valeur du sémaphore (nombre de places restantes)
  • D’une file d’attente : liste des processus bloqués sur le sémaphore
23
Q

def Exclusion mutuelle + solution

A

ressource accessible par une seule entité à la fois

on utilise : sem=semaphore(1)

24
Q

Problème de cohorte + solution

A

ressource partagée par au plus N utilisateurs

on utilise : sem=semaphore(3) (pour 3 places)

25
Q

def Rendez-vous

A

Des processus collaborant doivent s’attendre mutuellement.

26
Q

def Moniteurs

A

Objet auto-protégé par sémaphore

Pas d’erreur de manipulation possible

27
Q

def thread + avantages

A
  • Techniquement : un flot d’exécution pouvant être ordonnancé par l’OS
  • En pratique : une procédure s’exécutant indépendamment du main

avantages :

  • Les threads contiennent moins de choses qu’un processus (ils partagent la plupart des ressources du processus lourd)
  • Les threads sont plus rapides à créer
  • Les communications inter-threads sont rapides
28
Q

def code réentrant

A

Peut être appelé récursivement ou depuis plusieurs ≪endroits≫

29
Q

def code thread-safe

A

Fonctionne même si utilisé de manière concurrente

30
Q

Fichiers et flots d’entrée sortie

A

Tout processus est créé avec des flots d’entrée/sortie standard :
- stdin : entrée standard (connecté au terminal, descripteur 0)
- stdout : sortie standard (connecté à l’écran, descripteur 1)
- stderr : sortie d’erreur (connecté à l’écran, descripteur 2)
On lit sur 0 (stdin), et on écrit sur 1 (stdout)