# Système d'Exploitation : Cours 2 : Intro Historique

- [Système d'Exploitation : Cours 2 : Intro Historique](#système-dexploitation--cours-2--intro-historique)
  - [Mémoire](#mémoire)
    - [Hiérachie des mémoires](#hiérachie-des-mémoires)
  - [Système d'exploitation](#système-dexploitation)
  - [Multiprogrammation](#multiprogrammation)
    - [Notion de processus](#notion-de-processus)
    - [Notion de Thread](#notion-de-thread)
    - [Gestion de processus](#gestion-de-processus)
    - [Etats des processus](#etats-des-processus)
  - [Gestion de fichiers](#gestion-de-fichiers)
    - [Structure des répertoires](#structure-des-répertoires)
  - [Histoires des Systèmes d'Exploitation](#histoires-des-systèmes-dexploitation)
    - [Gen 1 : Tubes à vide (1945-1965)](#gen-1--tubes-à-vide-1945-1965)
    - [Gen 2 : Transistor et bandes magnétiques (1955 - 1965)](#gen-2--transistor-et-bandes-magnétiques-1955---1965)
    - [Gen 3 : Circuits intégrés (1965 - 1980)](#gen-3--circuits-intégrés-1965---1980)
    - [Gen 4 : PC (1980 - today)](#gen-4--pc-1980---today)
  - [Types d'OS](#types-dos)

## Mémoire

Organisée en 2<sup>N</sup> mots de M bits.

* Un mot est séléctionné par son adresse
* La mémoire stocke des programmes et des données

### Hiérachie des mémoires

- CPU : 
  - Registres
  - Caches mémoire
- Ordinateur : 
  - Cache secondaire
  - RAM
  - Disque Dur

## Système d'exploitation 

Ensembles des programmes gérant les organes physiques d'un ordinateur : 

- Coordonne les différents éléments de la machine et coordonne les échanges entre eux.
- Exécute les commandes de l'utilisateur ou des applications
- Sécurise son intégrité

Couche logicielle pour utiliser de manière optimale les ressources de l'ordinateur.

- Interface simple
- Gestion et partage des ressources

Un OS peut être : 

- Multi-tâches : plusieurs programmes en parallèle.
- Multi utilisateurs

|         |Mono utilisateurs  |Multi utilisateurs  |
|---------|---------|---------|
|Mono tâche     |    MS-DOS     |         |
|Multi-taches     |     Windows 95-98    |    Windows NT, UNIX     |

## Multiprogrammation

### Notion de processus

- Unité de traitement d'un programme par l'ordinateur
  - Ensemble d'instruction
  - Espace d'adressage (ou mémoire)
- PCB (Process Control Block)
  - Structure contenant les informations nécessaires à la gestion du processus (Etat, conteur ordinal, registres ...)

### Notion de Thread

- Processus léger => un processus = plusieurs threads
  - Ensemble d'instructions propres
  - Partages de données entre les threads
- Fin d'un processus => fin de tous les threads

### Gestion de processus

- Scheduler : gestionnaire de processus
- Affecte une zone mémoire aux programmes
- Contrôle les demandes de mémoire
- Permet l'échange de données entre applications
- Ordonnancement avec quota de temps

### Etats des processus

- Création
- Runnable
- Stopped
- Sleeping
- Running
- Zombie
- Terminated

## Gestion de fichiers

Trois classes d'utilisateurs : 
- Propriétaire
- Groupe
- Autre

Trois attributs pour chaque classe  :
- Lecture : r
- Ecriture : w
- Excécution : x

### Structure des répertoires

- Unique arborescence (racine : "/")
- On peut monter une partition depuis un disque, une clé USB => création d'un nouveau répertoire dans l'arborescence.

## Histoires des Systèmes d'Exploitation

### Gen 1 : Tubes à vide (1945-1965)

- Machine énormes, peu fiables, lentes
- Pas d'OS, pas de langage de haut niveau
- Une équipé créait et utilisait la machine
- 1950 : cartes perforées

### Gen 2 : Transistor et bandes magnétiques (1955 - 1965)

- Traitement par lot
- Fortran et assembleur

### Gen 3 : Circuits intégrés (1965 - 1980)

- Moins chers
- Mémoire partitionnée
- Multi programmation
- Système d'exploitation contraignant

### Gen 4 : PC (1980 - today)

- MS DOS, Windows, Windows NT
- UNIX, Linux
- IHM Graphiques

## Types d'OS

- Mainframe : gros système d'entreprise
- Serveur : assure des services à des utilisateurs via le réseau
- Système Multi processeur : station à plusieurs processeurs
- Système personnel : Windows, Mac, Linux, adapté au besoin des utilisateurs.
- Système temps réel : Pilotages de machines industrielles et de robots.
- Système embarqué : IoT