Chapitre 2 : Les systèmes d'exploitation

2.1 Introduction

C'est un programme ou un ensemble de programmes. C'est le plus fondamental des programmes qui permet d'interagir de manière simple avec l'ordinateur. Il va gérer les ressources et unités. Il offre une interface avec l'ordinateur. Il assure la gestion et la convivialité.

2.2 Evolution des systèmes d'exploitation

2.2.1 Préhistoire

prog en attente--------------prog en cours--------ORDI
											|
										     E/S

     ent  tra  sort
A |------|----|------|
B			    |------|------|------|

fonctionnement séquentiel (un a la fois)

2.2.2 Traitement par lots (batch)

Prog-ORDI
		|
	  ordi auxiliaire
			|
		     E/S

A |-----|------|------|
B		     |-------|-------|-----|

2.2.3 Indépendance des E/S

Prog---Ordi<--->mem aux
	     E/S
		|
	périphériques

A |-----|-----|-----|
B	   |-----|-----|-----|

2.2.4 Multiprogrammation

Prog---Ordi<--->mem aux
	     E/S
		|
	périphériques

2.2.5 Multiutilisateurs ou temps partagé

Evolution de la multiprogrammation
A \
B --	Prog---Ordi<--->mem aux
C /	     E/S
		|
	périphériques

(unix, win NT)

2.2.6 Réseau

Systèmes d'exploitations prévus pour partager els ressources sur plusieurs machines.

2.3 Définition d'un système d'exploitation

Un système d'exploitation est l'ensemble des programmes qui se chargent de l'exploitation des ressources de l'ordinateur.
2 buts :
- Faciliter la tache de l'utilisateur en lui présentant une machine virtuelle 
- Assurer la gestion efficace des ressources critiques

Exemples d'OS :
- DOS
- MAC OS
- Windows 2000
- UNIX
- SOLARIS....
- LINUX

2.3.1 Machine à 2 états

Mode utilisateur : mode standard
Mode superviseur : plus de droits que l'utilisateur

en mode utilisateur, l'OS fournit un langage de commandes. Appel système : seul moyen d'accéder à toute les ressources

2.3.2 L'OS en tant que Machine etendue

La machine virtuelle a un langage de commandes (différent d'un langage de programmation) interprété par l'OS

2.3.3 Le SE gestionnaire de ressources

Consiste à :
- Eviter les conflits d'accès ( DEADLOCK )
- gérer l'état
Si prog A et très long et B rapide. Alors on va geler A (mettre en sommeil) et faire passer B devant puis remettre A

Capacité de l'OS
- Gestion de la mémoire principale
- Gestion des entrées/sorties
- Gestion des ressources critiques (comme le processeur)
- Prise en charge des travaux en cours
- Prise en charge des erreurs
- La protection de l'information
- La compatibilité et les statistiques d'utilisation

Le SE fonctionne de manière non déterministe (ne fait jamais deux fois la meme chose)

2.4 Structure du SE

			UTIL
SE 
			MACHINE

2.4.1 Notions fondamentales

	PROGRAMME
	 PROCESSEUR
	   PROCESSUS

Programme = suite statique d'instructions qui definit des taches successives à accomplir
Processeur : lance l'éxecution du programme...
Processus : combinaison d'un programme et d'un état

2.4.2. Le noyau

-> Kernel : Gestion du CPU
	• Gestion du CPU et des processus
				- Allocateur  ---> dispatcher : atribue la mémoire et allocations des ressources processeur + sauvegarde du contexte
				- Planificateur --> scheduler : attribue des priorités

contexte :
•	Identificateur
•	Etat
•	La priorité
•	Le statut (en cours, sommeil, etc...)

	• Gestion de l'ordonnancement

2.4.3 Gestion de la mémoire centrale

- Partitions de taille fixe (préhistoire)
	La mémoire est partitionnée et si un programme prend une certaine place, il faut trouver la partition de la taille la plus proche  de celle du programme sachant que l'espace de la partition restant est perdu

- Partitions de taille variable
	Si un programme prend moins de place qu'une partition, la partition est redimensionnée pour récupérer l'espace inutilisé.

- Segmentation
Un programme est constitué d'un certain nombre de sous taches que l'on peut regrouper. 
Soit un programme avec trois taches principales :
[A
[B
[C
Ces taches seront stockées dans la mémoire de façon indépendante, Ainsi plusieurs petites zones sont nécessaires au lieu d'une grande zone, ce qui est plus pratique.

- Mémoire virtuelle (Pagination)

Fausse mémoire		Vraie mémoire

2.4.4	Organisation des entrées/sorties

- Diversités fonctionnelles
- Différece de vitesse
- Différence de codage

...
...
00000'00000'00111'00000

- Différence de méthode d'accès
- Différences des conditions de partage
- Différence des mécaismes d'erreur
- Diversité des sytèmes de liaison ( ports )
- Gestionnaire des périphériques
	vo = peripheral handlers

2.4.5 Gestion des fichiers

Fichier = Regroupement des infos
		 Ensemble de données regroupées se faisant attribuer un nom.

Pour appeler un fichier, il suffit juste d'appeler le nom du ficheir, inutile de spécifier l'adresse....

Gestion des fichiers :
	- Permettre la création et la destruction des fichiers
	- Donner un nom aux fichiers
	- Faciliter la manipulation des fichiers
	- Contrôler l'accès aux fichier
	- Protéger les fichiers des défaillances
Plusieurs notions :
	- Enregistrements logiques et physiques
	- Gestion des ressources disque
	- Cataloguer (Hiérarchie des fichiers)