Sie sind auf Seite 1von 55

Systmes d'expoloitations

Patrick Reuter LIPSI-ESTIA INRIA Futurs Bordeaux Anne 2005

Planning
Mardi, 15/03 8:30 10:30 Cours

Mardi, 29/03

16:00 18:00

Cours

Mercredi, 20/04

8:30 12:30

TP/TD

Systmes d'exploitations
angl. Operating System (OS) Qu'est-ce que c'est?
Programme assurant la gestion de l'ordinateur et de ses priphriques [www.dicofr.com]

A quoi ca sert?

simplifier la vie des utilisateurs et des programmeurs grer les ressources de la machine d'une manire efficace

Abstraction
Cacher la complexit des machines pour l'utilisateur afin d'utiliser la machine sans savoir ce qui est derrire

Abstraction du terme Machine selon Coy:


machine relle = Unit centrale + priphriques machine abstraite = machine relle + systme d'exploitation machine utilisable = machine abstraite + application

Exigences un Systme d'exploitation


Gnralits
Satisfaire les utilisateurs et les programmeurs Grer 2D, 3D, vido, audio, rseau, CD, DVD, cl USB, ... Plusieurs utilisateurs (itinrants) --> multi-utilisateurs tre extensible

De plus en plus gros et complexe :


Efficace, volutif, maintenable

Exigences de l'utilisateur
Faut que a marche ! (comme j'en ai envie ...) a imprime pas ... = Machine utilisable (machine tendu)

Exigences du programmeur
Simplifier l'accs aux ressources de la machine :
Mmoire, processeur, priphriques, fichiers, programmes, rseaux, communication interne Modle de programmation simple et unifi

Efficacit dans tous les cas = Machine tendue

Quelques dfinitions
Processus Traitement par lots Systmes Multi-tache Systmes Multi-utilisateurs Systmes Multi-processeurs Systmes temps rel Systmes distribus

Dfinitions: Processus

Df.:

Un processus est un programme lors de l'xcution (aspect dynamique d'un programme)

Dfinitions: Traitement par lots (Batch processing)


Un utilisateurs donne plusieurs commandes ( Jobs ) dans une queue d'xcution de programmes Entirement squentielle p.ex. pour faire plusieurs calculs pendant la nuit

p.ex. autoexec.bat

Dfinitions: Systmes Multi-tache (Multitasking)


Assurer l'xcution de plusieurs programmes en meme temps (c--d. plusieurs processus)

Chaque processus a besoin du processeur


situation concurrente solution: scheduling

Dfinitions: Systmes Multi-processeurs


systme avec plusieurs processeurs

parallle vrai multi-tache doit assurer qu'il y a l'xecution d'autant de processus que processeurs en meme temps

contrairement: systme avec un seul processeur


quasi-parallle arreter et reprendre les diffrentes processus


Gestion avec le scheduler (ordonnancement des processus)

Dfinitions: Systmes Multi-utilisateurs ( time-sharing )


permettre a diffrentes personnes de travailler avec un ordinateur en mme temps connexion par

via le terminal de l'ordinateur lui-mme distance (telnet, ssh, ftp, ...)

donner l'impression chaque utilisateur qu'il est seul exige une gestion des droits

de fichiers (pour viter la destruction des fichiers etc.) de processus

Dfinitions: Multi-utilisateurs
Login

Type:

Administrateur ( root ) Groupes Utilisateurs

pour grer les droits

Dfinitions: Systmes Temps rels


Sert pour le pilotage et le contrle des droulements externes (p.ex. centrale lectrique)

doit garantir des temps de ractions donnes pour des signaux extrieur urgents

plusieurs systmes d'exploitations n'y arrivent pas car l'interruption de certaines activits met le systme dans un tat instable

Dfinitions: Systmes distribus


doit permettre l'xecution d'un seul programme sur plusieurs machines

distribuer les processus et les remettre ensemble

pour gros calculs, p.ex. inversion de grandes matrices

SE: Modle en couches


Application (Logiciel, p.ex. Microsoft Word) Gestion des fichiers Gestion des priphriques (entres/sorties) Gestion des processus Gestion de la mmoire Noyau du Systme dexploitation Pilote Pilote Pilote Matriel

Ingrdients
Gestion de la mmoire Gestion des fichiers Gestion des processus Gestion des priphriques (entres/sorties)

Contrle des pripheriques via Pilotes (Driver)

Quelques logiciels

Logiciels utilitaires (ls, pwd, format, ...) Logiciels d'application (Bloc-notes, ...) Logiciels de communication (Internet Explorer, ...)

Historique (avant les Systmes d'Exploitations)


1945 - 55 : tubes et interrupteurs
Pas de systme d'exploitation

1955 - 65 : transistors, cartes perfores


Traitement par lots

1965 - 80 : circuits intgrs, disques


Multiprogrammation, temps-partag, entres/sorties Unix, version BSD, AT&T, interface POSIX

1980 -- : ordinateurs personnels (PC)


Interface graphique (concept cre vers 1960, Stanford) Rseaux et systmes distribus

--> Systme d'exploitation ncssaire

Systmes d'exploitations
CP/M (depuis 1974), Digital Research UNIX (depuis 1969-1979), premier par AT&T MS-DOS (depuis 1981), Microsoft MacOS (depuis 1984), Apple Windows (depuis 1991), Microsoft Linux (depuis 1992), OpenSource

Systmes d'exploitations
CP/M (depuis 1974), Digital Research

Gestion de disque dur, mais pas d'arborescence Pas de graphisme Exemple:


CPU 8088, 2 MHz 64 KO de RAM 5 MO de disque dur

cf. la loi de Murphy

Systmes d'exploitations
UNIX (depuis 1969-1979), AT&T

a servi de modle pour MS-DOS, Windows, .. Multi-tche et Multi-utilisateurs


accs simultan aux fichiers, pripheriques, mmoire, processeurs, ..

Protection mmoire : aucun programme ne peut faire planter le systme systmes de fichiers hirarchique GUI X-Windows

Systmes d'exploitations
MS-DOS (depuis 1981), Microsoft

Systmes d'exploitations
MacOS (depuis 1984), Apple

premier GUI

Systmes d'exploitation Windows


Windows 3.11

pas de multitche, pas de multi-utilisateurs

Windows 95

multi-tche premier systme 32 bit

Windows 98

Internet integr dans le GUI Plug & Play

paralllement Windows NT

systme d'exploitation rseaux multi-utilisateur

Windows 2000, et aprs Windows XP

jumellage entre systme d'exploitations rseaux et stand-alone

Systmes d'exploitations
Linux (depuis 1992), OpenSource

finlandais Linus Thorwald Licence GPL (General Public Licence) OpenSource Multi-tche et Multi-utilisateurs Distributions
Red Hat Fedore S.u.S.e Debian Mandrake..

Modle en couches
Application (Logiciel, p.ex. Microsoft Word) Gestion des fichiers Gestion des priphriques (entres/sorties) Gestion des processus Gestion de la mmoire Noyau du Systme dexploitation Pilote Pilote Pilote Matriel

Modle en couches
Application (Logiciel, p.ex. Microsoft Word) Gestion des fichiers Gestion des priphriques (entres/sorties) Gestion des processus Gestion de la mmoire Noyau du Systme dexploitation Pilote Pilote Pilote Matriel

Modle en couches
Application (Logiciel, p.ex. Microsoft Word) Gestion des fichiers Gestion des priphriques (entres/sorties) Gestion des processus Gestion de la mmoire Noyau du Systme dexploitation Pilote Pilote Pilote Matriel

gestion mmoire (1/6)


Pour illustrer le travail du systme d'exploitation, on choisit de dcrire quelques tactiques appliques par les SE pour grer la mmoire : les partitions, le tassage, la pagination, la mmoire virtuelle. uvre, les

1. 2. 3. 4.

Pour chacune on prsente l'ide, la mise en avantages et les inconvnients.

gestion mmoire (2/6)


les partitions Technique historique . Ide : Diviser arbitrairement la mmoire en partitions de dimensions fixes : partitions statiques. Toutes les partitions ne sont pas de mme taille. Mise en uvre : Les programmes sont implants dans chaque partition. Avantages : Simplicit du SWAP Inconvnients : Un gros programme ne peut tre exploit que dans une partition suffisamment grande et un petit programme rentabilise mal une grande partition.

gestion mmoire (3/6)


le tassage Ide : Banaliser la mmoire et tasser les programmes les uns la suite des autres. Mise en uvre : Avantages : la mmoire centrale est mieux utilise. A un instant donn, il ne peut y avoir quune partition de libre. Inconvnients : le tassage de la mmoire est coteux en temps de traitement.

gestion mmoire (4/6)


La pagination Ide : Dcouper la mmoire en PAGES de dimension fixes et implanter les programmes dans les pages libres. Mise en uvre : La consquence est un parpillement des programmes en mmoire. Cela ncessite donc sous forme matrielle (ou logicielle) la mise en place dune table doccupation des pages, qui reconstitue lordre logique des diffrentes parties des programmes. Avantages : Ce type de gestion est trs efficace car utilise au maximum la mmoire et vite le tassage de mmoire. Inconvnients : on reste toujours limit la taille effective de la mmoire.

gestion mmoire (5/6)


La mmoire virtuelle Ide : Supprimer la contrainte de dimension de la mmoire. Mise en uvre : On dote lordinateur de deux niveaux de mmoire : la mmoire centrale (performante et chre) et la mmoire de masse (le disque) moins performante mais de dimension pratiquement illimite.

Performances lies aux : seek time ; latency time ; transmission time. L encore loptimisation est gre par le systme dexploitation qui met en place des stratgies.

gestion mmoire (6/6)


La mmoire virtuelle (suite)

Enfin, est mis en place une stratgie (algorithme) de choix de la page dont dpend beaucoup la rapidit du systme.

Avantages : Beaucoup de place ! Inconvnients : SWAP ou accs disque optimiser

Remarque 1 : Vient en combinaison dautres techniques de gestion de la mmoire. Remarque 2 : dautres stratgies ou combinaisons de stratgie ! existent

Modle en couches
Application (Logiciel, p.ex. Microsoft Word) Gestion des fichiers Gestion des priphriques (entres/sorties) Gestion des processus Gestion de la mmoire Noyau du Systme dexploitation Pilote Pilote Pilote Matriel

processus (1/5)
Cette partie sappuie sur le document "Ecrire des applications rseau sous Linux", 3ime partie, Alain Basty, Linux Magazine, octobre 1999" qui prsente un algorithme serveur (qui rend des services) pour grer des connexions simultanes. Cet article sert de fil conducteur pour la prsentation des notions fondamentales suivantes :

processus (2/5)

dfinition d'un processus (1960), table des processus. diffrentes classes de systme d'exploitation, introduction de la notion de logiciel libre (projet GNU). systme multitche, temps partag. communication : signal, pipe, socket o est le pre ? , o est le fils ? "threads" suppression d'un processus (suicide, assassinat) contrle de la communication

processus (3/5)
Les tats (simplifis) d'un processus

Waiting : le processus attend quelque chose pour pouvoir sexcuter Ready : le processus a tout pour sexcuter sauf le
processeur.

Running : le processus sexcute. Zombie : tat trs particulier, le processus est mort seul reste
son ID dans la table des processus en attente dtre lu

processus (4/5)
Notion de premption Dfinition : la premption est la mise en attente force dun processus.

Un processus spcial soccupe de faire tourner les processus qui sont en running : cest l'ordonnanceur ou scheduler en anglais. La gestion de la premption est appel lordonnancement ou le scheduling. Les critres de choix appliqu par le S.E. dterminent les performances du systme.

processus (5/5)
Notion de premption (suite) Il y a diffrent niveau dattente dun processus, cest dire diffrents tats possibles au sein de ltat waiting et de ltat ready. En effet, lorsque la mmoire est sature, le processeur transfre une zone mmoire sur le disque pour librer de la mmoire. Il choisit la zone mmoire dun processus qui ne fait rien. Lorsque le processeur devra excuter un bout du code de ce processus il devra recharger la zone mmoire stocke sur disque en mmoire centrale. Cette opration (dans un sens et dans lautre) sappelle le SWAP ! Do deux tats supplmentaires : waiting swapp et ready swapp .

processus exemple de cration simple 1


#include <stdio.h> #include <unistd.h> int main() { printf(Bonjour de %d \n , getpid()); fork(); printf(Fin de %d \n , getpid()); }

processus exemple de cration simple 2


#include <stdio.h> #include <unistd.h> int main() { printf("Bonjour de %d\n", getpid()); int pid = fork(); if (pid == 0) { printf("Je suis le FILS (pid = %d). %d\n", pid, getpid()); } else { printf("Je suis le PERE (pid = %d). %d\n", pid, getpid()); } }

Modle en couches
Application (Logiciel, p.ex. Microsoft Word) Gestion des fichiers Gestion des priphriques (entres/sorties) Gestion des processus Gestion de la mmoire Noyau du Systme dexploitation Pilote Pilote Pilote Matriel

entres-sorties
Les entres/sorties correspondent aux mcanismes quutilisent les processus pour communiquer avec lextrieur. Ces entres-sorties font largement appel aux couches les plus proches du matriel, et dont le systme tente de masquer les particularits aux utilisateurs.
Il y a 3 types dE/S : 1. lectroniques : mmoires 2. Magntiques : disques ou disquettes 3. Mcaniques : clavier, imprimantes

Modle en couches
Application (Logiciel, p.ex. Microsoft Word) Gestion des fichiers Gestion des processus Gestion des priphriques (entres/sorties) Gestion de la mmoire Noyau du Systme dexploitation Pilote Pilote Pilote Matriel

Systmes de fichiers Arborescence

Systmes de fichiers Arborescence

Systme de fichiers
Arborescence Nom des fichiers:

/home/jack/microarrays/estrogen

-rw-r----- 1 patrick lipsi 2340 Jun 11 17:45 guethary.jpg -rwxr-x--- 1 patrick lipsi 2340 Jun 11 17:45 PacMan.exe

Droits:

Utilisateur Groupe Tous 'r' lire, 'w' ecrire, 'x' xcuter

Types:

'-' Fichier regulier, 'd' repertoire, 'x' lien symbolique..

Systme de fichiers UNIX Repertoires


Crer des repertoires mkdir [repertoire] Changer le repertoire courant cd [repertoire] cd .. Connaitre le repertoire courant pwd Effacer un repertoire rmdir [repertoire]

Systme de fichiers UNIX Fichiers


Crer des fichiers emacs [fichier] Copier des fichiers cp [source] [destination] Renommer/Dplacer des fichiers mv [source] [destination]

Supprimer des fichiers


rm [fichier]

systme de fichiers
Le systme de fichier offre lutilisateur une vision homogne et structure des donnes et des ressources : disques, mmoires, priphriques. Le systme gre la cration des fichiers, leur destruction, leur correspondance avec les dispositifs physiques, ainsi quun certain nombre dautres caractristiques, telles que la protection . Il les organise enfin, en gnral, en une structure arborescente

conclusion (1/2)
Les systmes dexploitation modernes intgrent par ailleurs dautres caractristiques . linterconnexion des diffrentes machines et des diffrents systmes par des rseaux locaux ou tendus do des architectures informatiques fonds sur des clients et des serveurs (cf I2-SI) Multi-fentrage

conclusion (2/2)
Le systme dexploitation correspond linterface entre les applications et le matriel !

Le programmeur dapplications naborde que rarement sinon jamais son code interne. Il lutilise par lintermdiaire d appels systme , accessibles partir dun langage de programmation (lang. C). Ces appels permettent deffectuer la plupart des oprations sur les entits du systme dexploitation (cf. API (Application Programming Interface)). Un utilisateur peut lui aussi dans une certaine mesure . interprte de manipuler un systme dexploitation

Rfrences
1.

Computer Architecture, a first course, Van Nostrand Reinhold, ISBN 2 225 80929 1 Ecrire des applications rseau sous Linux, thme Systme et rseaux de Linux Magazine, octobre 99, par Alain Basty. man dUnix, notons ici que lorsque lon doit programmer les systmes dexploitation le man dUnix est la meilleure rfrence pour le programmeur. Il ny a rien dquivalent sur papier. J.M. Rifflet, La programmation sous Unix, 3e d., McGraw-Hill, 1993 est cependant une bonne rfrence et un ouvrage assez complet Charles Petzold, Programming Windows 95, Microsoft Press, 1996 est considr comme une bonne rfrence pour apprendre la programmation Windows. Elle a t la premire du genre.

2.

3.

4.

5.

Das könnte Ihnen auch gefallen