Introduction

Informations horarires, crédits, seconde sess

Les cours théoriques représentent 42h et les laboratoires représentent 35h. Le cours vaut 6 crédits ECTS et est fini en janvier. La seconde session est en septembre et il est préférable de ne pas devoir présenter le sdeux parties du cours pendant la même session vu le volume conséquent de matière !

Laboratoires

Les laboratoires permettent d'illustrer les nombreux concepts étudiés en cours et se réalisent dans un environment UNIX (Linux, macOS X, BSD, etc).

Répartition des points

Le cours de C est plus tôt bien réussi mais celui d'OS pas tellement.

Si on a réussi le labo mais pas la théorie ou inversément, on doit uniquement représenter la partie ratée en seconde sess. Mais si on rate l'un des deux en seconde sess, on est obligé de représenter les deux l'année suivante.

Prérequis

Contact

Pas de contact via Teams, il vaut mieux priviléger les mails et le forum sur Moodle.

Mind map

Une mindmap est autorisée pour répondre aux questions à l'oral. L'oral a des questions de base qui sont connues à l'avance auquel il faut se préparer. Les conditions sur ce qui peut se trouver sur cette mind map seront évoquées plus tard

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

Le système d'exploitation peut être vu sous deux aspects :

Exemples de systèmes d'exploitations

Tour d'horizon

Systèmes Windows

Systèmes UNIX

Il existe énormément de systèmes UNIX qui se sont développé depuis les années 60, UNIX inclus entre autres macOS, Linux ou BSD. Si ça vous intéresse je vous invite à aller lire la page Wikipedia sur l'histoire de UNIX et la page Wikipedia sur UNIX.

Processeur

Le CPU est l'unité centrale de traitement de l'ordinateur.

Les registres sont des zones mémoires attachées au processeur

Il existe deux modes :

Les appels systèmes sont des moyens/fonctions mis en place par le SE pour permettre aux programmes utilisateurs de demander des services au système d'exploitation.

Les programmes n'ont jamais un accès direct au matériel et doivent toujours passer par le SE.

Appels systèmes

Les appels systèmes sont des mécanismes par lequel on demande au SE un service (open, close, read, write, printf, scanf, etc) sont des appels systèmes.

Le SE peut par exemple alouer des ressources (mémoire par exemple) ou encore gérer les périphériques (souris, clavier, écran, etc).

Multithreading

Le multithreading (ou même l'hyperthreading) permet de faire travailler plusieurs "morceaux de programmes" en même temps sur un processeur. Le fait d'avoir plusieurs actions simultannées s'appelle le paralélisme

Il y a aussi les processeurs multicoeurs qui ont plusieurs CPU au sein d'une même puce.

Vous pouvez en savoir plus sur le multithreading, l'hypethreading et le multicoeurs en lisant cet article.

Mémoire

C'est un élément essentiel de l'ordinateur, et pour qu'un programme s'exécute, il faut que toutes ses données soient en mémoire.

Il existe plusieurs niveaux de mémoire : les registres, la mémoire cache (niveaux 1,2,3), mémoire centrale/RAM.

La mémoire est volatile, une fois déconnectée, elle ne conteint plus aucune information.

La mémoire étant une ressource partagée, il faut qu'elle soit gérée efficacement (allocation adaptée aux besoins, nécessité de pouvoir satisfaires, ne pas gaspiller les ressources, etc).

La taille de la mémoire peut aller de quelques Ko à plusieurs Go.

Disque dur

Le disque dur est non-volatile et a des performances moins bonne que la RAM, cependant son coût est plus bon marché, avec généralement plus de stockage (allant de plusieurs Go à quelques To).

Il existe des technologies variées pour ce dernier : SATA, SCSI, SAS, SSD, etc.

Attention aux backups

Il faut bien faire des backups régulièrement autant de son ordinateur que des serveurs, les backups sont la dernière ligne de défense en cas de cyber attaque ou domage matériel.

Il faut également se rappeller que les clés USB ne sont pas un moyen fiable de stoquer de l'information, les clés USB peuvent servir à transférer de l'information mais pas de la stoquer à long terme.

Règle des trois
Backup en ligne

Une bonne méthode pour faire des backups plus souvent est de mettre ne place un système automatique pour faire des backups de son ordi/serveur sur des serveurs distants.

De plus pour protéger les données c'est une bonne idée de chiffrer les backups (ainsi même l'opérateur·ice du serveur ne pourra pas lire les données). Si on veut être 100% maître de ses backups on peut également héberger un serveur soi-même et utiliser rsync pour le backup.

Stockage

Le stockage est un enjeu d'avenir car la taille de l'information grandit, et une gestion efficace est nécessaire pour retrouver l'information souhaitée. Il faut donc stocker beaucoup de données tout en pouvant assurer une certaine performance et fiabilité en combinant par exemple plusieurs disques dans un système RAID (on réparti l'information sur plusieurs disques pour pouvoir améliorer la fiabilité et la performance).

Entrées sorties

Un ordinateur doit absolument pouvoir communiquer à l'extérieur aujourd'hui. L'ordinateur doit donc être capable de communiquer avec des périphériques extérieurs :

Driver/pilote

Le SE dialogue avec un contrôleur sur lequel le périphérique est connecté, pour cela le SE doit utiliser un pilote (driver) adapté pour le matériel connecté qui va réaliser l'échange entre le controleur et le SE.

Ce dernier s'exécute en mode noyau (kernel) et est écrit par le fabriquant.

Virtualisation

La virtualisation est un concept inventé par IBM dans les années 70 qui permet de simuler un environmenet matériel différent (émulateur, virtualbox, etc).

Il permet d'exécuter plusieurs systèmes d'exploitations sur la même machine physique afin d'optimaliser l'utilisation des processeurs.

Il permet aussi de réduire les coûts des datacenter car il y a moins de machines physiques nécessaires.

On peut donc allouer la mémoire et le CPU en fonction des besoins (cloud computing, plus le besoin augmente, plus au augmente la mémoire allouéee)

Il existe des systèmes d'exploitations orientés VM comme VMWare-ESXhi, Hypr-V ou XEN.

La virtualisation est aussi pratiquée par des systèmes comme Docker.

On peut même faire en sorte de partager les ressources entre plusieurs serveurs (comme ça si il y a beaucoup de traffic, 2 serveurs peuvent répondre à la charge ou encore si un serveur est down, un autre peut prendre le relai). C'est notament le cas de VMWare-ESXhi ou Kubernetes (Docker).

Plan du cours


Revision #2
Created 27 September 2023 13:42:14 by SnowCode
Updated 6 January 2024 19:14:47 by SnowCode