Lezioni Anno Accademico 2016/17

From Sistemi Operativi
Revision as of 10:54, 7 October 2016 by FedericoB (talk | contribs) (Spostato nella lezione di oggi gli argomenti non ancora trattati.Aggiunti dettagli sul multitasking.)
Jump to navigation Jump to search

scrivete qui idee, riassunti dei concetti espressi, commenti approfondimenti sulle lezioni.

Lezione del 23 settembre 2016

YY

  • Presentazione del corso.
  • Strumenti del corso: web, wiki.mailing list
  • Indice dei contenuti
  • Prove di esame (Scritto, Prova Pratica, Progetto).
  • Hardware Software
  • Informatica
  • Informazione/Dato
  • Rivoluzione digitale (secondo rinascimento, Terza rivoluzione Industriale).
  • Software Libero

Lezione del 27 settembre 2016

OS:Y

  • Organizzazione (martedi' vs. venerdi')

In genere la lezione del martedì sarà più teorica mentre quella del venerdì più orientata agli aspetti pratici di laboratorio. Questa suddivisione potrebbe cambiare in quanto qualche martedì verrà saltato.

  • Università

Università = studenti + docenti

  • Digitale/Analogico

Digit significa cifra. Nell'informatica è fondamentale il passaggio dal continuo al discreto.

  • Binario/Decimale

Nei calcolatori l'informazione è memorizzata utilizzando il sistema binario ... (in quanto in passato i relè consentivano di avere due stati: " 1 e 0 ": è impreciso, qualcuno sa dare una definizione migliore? Renzo (talk) 12:00, 29 September 2016 (CEST))
In quanto è molto semplice implementare le operazioni aritmetiche con dei circuiti elettronici utilizzando la codifica binaria. Per esempio è possibile creare un circuito che somma due bit con riporto con solo due porte logiche. FedericoB (talk) 17:05, 29 September 2016 (CEST)

  • I linguaggi e i problemi dell'Informatica
    • Processing dell'informazione (Linguaggi di programmazione)
    • Comunicazione (Il problema che i dati che mi servono sono in un altro luogo) (Linguaggi dei protocolli di rete, che però sono dei linguaggi temporizzati)
    • Memorizzazione (Il problema che i dati mi serviranno in futuro) (Linguaggio del formato dei dati)
  • Conoscenze a lungo, medio e breve termine nell'Informatica.
    • BREVE: tecnologia, determinati programmi di sviluppo.
    • MEDIO: singoli linguaggi, singoli OS, protocolli di comunicazione.
    • LUNGO: algoritmi, informatica teorica, fondamenti costruttivi di reti e di OS.
  • Cos'è una distribuzione

E' un antologia di applicazioni e librerie in modo che siano compatibili tra loro.

  • Sistema Operativo: perché

Un sistema operativo è un programma che controlla l’esecuzione di programmi applicativi e agisce come interfaccia tra le applicazioni e l’hardware del calcolatore.
E' uno strumento software complesso ed implementabile in diversi modi (monolitico, microkernel, etc.). I microcontroller non hanno OS. Permette: contabilità delle risorse (consente a sua volta attività di benchmarking); continuità dei servizi; controllo errori (programmi, dispositivi); multiuser (gli utenti hanno diversi diritti e proprietà sulle risorse); protezione delle attività dei processi; astrazione file system.

  • Struttura a livelli (layer)
 ---------------
 ---------------
 ---------------
       OS
 ---------------L'
       hw
 ---------------L


Consente di: separare la complessità, di avere portabilità. Ogni livello rappresenta un cambio di linguaggio. Più aggiungiamo livelli più aumenta il livello di astrazione.

  • Programma/processo

Algoritmo: sequenza finita di istruzioni non ambigue, atta a risolvere un problema.

Programma: traduzione degli algoritmi in un linguaggio di programmazione.

Processo: istanza esecutiva di un programma. Il programma è testo statico, quando viene eseguito diviene processo. Possiamo avere uno stesso programma in esecuzione su più processi (e.g apertura di più terminali che eseguono un editor di testo).

System call: richieste di processi al OS. e.g. printf (visto nel codice compilato in assembly tramite gcc -s), invoca write(). vi è una sequenza di azioni del tipo: richiesta di stampa al kernel --> attesa --> risposta.

  • Storia dell'Informatica prima dei transistor

La storia dei calcolatori non ha un inizio preciso. Nel 1900 venne trovato sul relitto di una nave greca risalente al II secolo a.C un meccanismo in grado di calcolare i movimenti degli astri, si ipotizza con una sorprendente meccanica. Oggi questo sistema viene conosciuto come Macchina di Anticitera. Negli ultimi anni di ricerche archeologiche e storiche è venuta sempre più in superficie una vena pionieristica nel mondo classico per quanto riguarda lo studio sul calcolo automatizzato e addirittura di automi (si veda Erone di Alessandria). Ma facciamo un salto in avanti di qualche secolo...
Già nel XVII secolo Pascal teorizza e mette in pratica uno strumento in grado di addizionare e sottrarre, e nel 1672 G.W. von Leibniz lo perfeziona con l'aggiunta della moltiplicazione e della divisione. Ma è solamente nei primi anni del 1800 che entra in scena la macchina analitica di Babbage. Estremamente complessa, la macchina era dotata di un sistema di input e di elaborazione dati e di un sistema di output. Ed è con Babbage che nascono le schede perforate. La macchina analitica venne presentata per la prima volta in Italia, durante un convegno torinese del 1840. Tra i vari collaboratori scientifici alla macchina è da annotare la presenza di Luigi Federico Menabrea, che tra le altre cose fu Ministro della Marina Militare, ingegnere e Presidente del Consiglio dei Ministri del Regno d'Italia (1867-1869). Il primo vero programmatore della storia, collaboratrice di Babbage, è Ada Lovelace (figlia del poeta Lord Byron!): progettò un algoritmo in grado di elaborare i numeri di Bernulli.
Nel 1896 viene fondata la Tabulating Machine Company (futura IBM) e agli albori del '900, vari scienziati (trai quali Thomas Edison e Guglielmo Marconi) portarono avanti gli studi sulla valvola termoionica, elemento indispensabile dei primi calcolatori elettronici. La valvola incrementò vertiginosamente i tempi di calcolo ma l'estrema fragilità della stessa causò una serie di problematiche che si risolsero solamente con l'entrata in gioco del transistor.

Lezione del 30 settembre 2016

YC

(Storia dopo l'avvento del transistor)

Tre innovazioni indipendenti:

  • Multitasking: Inizialmente ideato per mantenere la CPU occupata con altri processi mentre si faceva Input/Output. Permette di dare l'idea al utente di poter eseguire più processi contemporaneamente anche se questi in realtà sono eseguiti dalla cpu in modo intervallato. Ci sono certi computer che hanno più esecutori e quindi possono realmente eseguire multipli processi contemporaneamente.
  • Supporto Multiuser
  • Interattività:l'interazione con l'utente cambia il flusso del programma.

Queste tre proprietà sono ortogonali quindi possono esistere nei sistemi varie combinazioni di queste.

Iniziano anche a separarsi i ruoli tra programmatori e utenti.Prima i computer venivano utilizzati solo da chi creava programmi ora anche da chi li utilizza senza avere le conoscenze per crearli.

Il Time Sharing.

Sistemi Paralleli (SIMD/MIMD) Sistemi Real Time

Dal 1969: UNIX.

Il linguaggio C e la portabilità dei sistemi operativi. Caratteristiche del linguaggio C:

  • grande controllo sul codice generato
  • costrutti per l'elaborazione a basso livello
  • supporto per la programmazione strutturata
  • linguaggio "leggero": poche parole chiave, I/O gestito tramite librerie
  • Il compilatore C è scritto in C.

Portabilità di un compilatore. I cross-compiler.

Il comando UNIX cc (o gcc): un comando unico per attivare l'intera toolchain per generare un eseguibile.

Il punto e virgola trasforma espressioni in istruzioni (terminatore).

1975? l'avvento dei personal computer. (in realtà il primo PC forse e' la Perrottina Olivetti del 1964).

Compiti a casa: Portare esperimenti in C ritenuti "difficili".

Renzo (talk) 10:41, 1 October 2016 (CEST)

Lezione del 7 ottobre 2016

Argomenti da approfondire:

  • Sistemi Operativi e parallelismo (SMP e non SMP)
  • (Economia Push/Economia Pull)
  • architettura a livelli e virtualizzazione

Lezione del 11 ottobre 2016

Lezione del 14 ottobre 2016

Lezione del 18 ottobre 2016

Lezione del 21 ottobre 2016

Lezione del 25 ottobre 2016

Lezione del 28 ottobre 2016

Lezione del 28 ottobre 2016

Lezione del 4 novembre 2016

Lezione del 8 novembre 2016

Lezione del 11 novembre 2016

Lezione del 15 novembre 2016

Lezione del 18 novembre 2016

Lezione del 22 novembre 2016

Lezione del 25 novembre 2016

Lezione del 29 novembre 2016

Lezione del 2 dicembre 2016

Lezione del 6 dicembre 2016

Lezione del 9 dicembre 2016

Lezione del 13 dicembre 2016

Lezione del 16 dicembre 2016