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