Cours 1 : Histoire abrégée des ordinateurs, Manipulation de fichiers
Exemples
Manipulation fichier
Afficher les lignes de “ligue1” puis les trier (entrées uniques) puis les compter puis retrier par comptage
cat * ∣ sort ∣ uniq -c ∣ sort
sqlite3
select id,name from frcom where id like '94%'
Architecture (matériel) vs Système (logiciel)
Utilité d’un OS (structure de donnée abstraite fournie par le système qui gère les applications) ?
- Gérer les priorités entre applications
- Fournit une couche d’abstraction : donne les bonnes instructions au matériel (architecture)
Histoire abrégée des ordinateurs
Langages impératifs VS fonctionnels ⟶ fonctionnement des ordis plus proche de l’impératif
Principe de base pour le langage machine : on a de la mémoire, dont on modifie les “valeurs” (entrées)
NB: ce modèle est déjà une abstraction : OS utilise mémoire virtuelle pour gérer plusieurs processus en mm tps
-
Schickard : astronome allemand du 17e s. (pour la navigation)
-
Pascal : crée la “pascaline” (première “calculette” (addition et soustraction), pour les impôts)
-
Leibniz : construction d’une “calculette” avec multiplication pour la philosophie (“c’est indigne pour l’homme de faire des calculs bêtes, une machine devrait s’en occuper”)
-
de Colmar : produit ces calculettes en masse dès le 19e s.
-
Babbage (UK) : crée son “Difference Engine” : pour calculer des polynômes ⟶ ∃ registres en parallèle
Ex: 0 1 2 ⟶ 1 3 2 ⟶ 4 5 2 ⟶ 9 7 2 (1ere colonne = suite des carrés)
Laisse en plan son “Analytical Engine” (addition, multiplication), et introduit machines avec branchements conditionnels
-
Machine pour prévoir marées
-
Logarithmes : approximés par polynomes.
Puis : mathématiciens : “Peut-on contruire des machines plus générales ?”
- Turing : donne un modèle abstrait qui décrit une machine
Machine de Turing : on a des états $q_1, …, q_n$ et un ruban infini où sont écrits des symboles : La machine lit le ruban, et à chaque étape :
- soit on change l’état
- soit on change le symbole
Machine de Turing universelle : on a
- un nb de règles
- des données en entrée
MAIS : un programme peut être une donnée (ex: une autre machine) !
Question : est-ce qu’on peut construire une machine qui dit si une machine si un programme s’arrête ? NON (analogue au paradoxe de Russel)
-
Zuse (allemand) : machines Z1 et Z3, fonctionnait avec le calcul binaire
-
Colossus : pas une machine de Turing
Ordinateur de Von Neumann
EDVAC :
- Calcul binaire
- programme stocké en mémoire (appelé aujourd’hui : architecture de Von Neumann)
PUIS :
l’IAS : construit à Princeton
- mémoire ≃ 4000 fois 40 bits
- processeur : dirige tout (CPU)
- ALU (arithmetic-logic unit)
- registre
Contenu de chaque adresse = un mot
un mot = 2 instructions (40bits)
calcul hexadécimal : 1a = 26 Pq intéressant ? 16 = 2^4
Ordinateurs de 2e génération
-
Construction de terminaux : clavier qui transmet instructions I/O à la machine
-
Premiers OS
questions :
- Projet de prog ?
- Email ?
- Pourquoi une machine de T avec ces propriétés
- T-complétude ?
Leave a comment