Sistemi Operativi: Introduzione - Lezione 01
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Sistemi Operativi: Introduzione - Lezione 01

on

  • 2,340 views

 

Statistics

Views

Total Views
2,340
Views on SlideShare
2,333
Embed Views
7

Actions

Likes
1
Downloads
69
Comments
0

1 Embed 7

http://www.slideshare.net 7

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Sistemi Operativi: Introduzione - Lezione 01 Presentation Transcript

  • 1. Sistemi Operativi A.A. 2008/2009 Mauro Andreolini mauro.andreolini@unimore.it Home page del corso: <http://informatica.scienze.unimo.it/sistemi-operativi.shtml>
  • 2. Prerequisiti del corso • Conoscenza di base della struttura di un calcolatore elettronico • Conoscenza del linguaggio C • Utilizzo “di base” di un calcolatore elettronico 2
  • 3. Prerequisiti del corso • Testi consigliati: – A. Silberschatz, J. Peterson, P.Galvin, “Operating System Concepts” (Settima Edizione), Pearson, 2004 ISBN: 0471694665 – R. Love, “Linux Kernel Development”, Novell Press, 2005 ISBN: 0672327201 – R. Love, “Linux System Programming”, O'Reilly, 2007 ISBN: 0596009585 – Dispense fornite dal docente 3
  • 4. Definizione di SO • Sistema Operativo(SO): programma che agisce come intermediario fra utente di un computer e l'hardware del computer stesso • Scopi di un SO: – fornire un ambiente in cui un utente sia in grado di eseguire dei programmi – rendere semplice e conveniente l'utilizzo di un computer – utilizzare l'hardware del computer in maniera efficiente 4
  • 5. SO in un sistema di calcolo utente utente utente utente 1 2 3 n compilatore assemblatore editor di testo database Programmi applicativi Sistema Operativo Hardware 5
  • 6. Ruoli di un SO • Allocatore di risorse – il SO alloca le risorse a sua disposizione (CPU time, DISK space, I/O devices) a programmi ed utenti in base alle necessità – il SO risolve i conflitti di assegnazione delle risorse in modo tale da operare efficientemente e correttamente • Programma di controllo – il SO è un grande programma di controllo – controllo esecuzione programmi – impedisce che vengano commessi errori – impedisce utilizzi non corretti 6
  • 7. L'evoluzione dei SO I primi sistemi • • Automatizzazione tramite monitor • Funzionamento off-line • Buffering e Spooling • I sistemi multiprogrammati Time sharing • • Sistemi distribuiti • Sistemi real-time 7
  • 8. I primi sistemi (1940-1950) • Macchine molto grandi pilotate in maniera elettromeccanica – input: schede perforate immesse dall' operatore, console con switch elettrici – output: indicatori elettrici di stato, stampa su schede perforate • Natura interattiva del sistema – programmatore = operatore – tempo di esecuzione della macchina gestito manualmente tramite foglio prenotazioni 8
  • 9. I primi sistemi (1940-1950) Atanassov-Berry (1937) 9
  • 10. I primi sistemi (1940-1950) Colossus (1944) 10
  • 11. I primi sistemi (1940-1950) Harvard Mark I (1944) 11
  • 12. I primi sistemi (1940-1950) • Svantaggi – schema di prenotazione scomodo ed inefficiente – assenza di librerie generiche per la gestione delle risorse (device driver) – immissione del programma scomoda 12
  • 13. I primi sistemi (1940-1950) • Migliorie successive – introduzione dei device driver – facilitazione del processo di generazione del programma tramite: ♦ assemblatori ♦ compilatori ♦ linker ♦ librerie di funzioni comuni – utilizzo di periferiche più avanzate ♦ lettori di schede ♦ stampanti ♦ nastri magnetici 13
  • 14. I primi sistemi (1940-1950) Schede perforate IBM (Fortran, 1964) Codifica + Codifica - Codifica digit 0-9 Codifica di 80 cifre “0-9” 14
  • 15. I primi sistemi (1940-1950) Unità nastro Digital (1964) 15
  • 16. I primi sistemi (1940-1950) Unità stampante IBM 1403 (1959) 16
  • 17. I primi sistemi (1940-1950) • Job: è la sequenza di operazioni – caricamento nastro compilatore – esecuzione nastro compilatore – rimozione nastro compilatore – caricamento nastro assemblatore – esecuzione nastro assemblatore – rimozione nastro assemblatore – caricamento programma oggetto – esecuzione programma oggetto 17
  • 18. I monitor residenti (1950-1960) • Problemi – Tempo necessario per la preparazione di un job troppo elevato – Esecuzione alternata di programmi scritti in linguaggi diversi estremamente scomoda – Interruzione di un job problematica • Soluzioni – operatore professionista (diverso dal programmatore) – sequenzializzatore automatico dei job (monitor residente) 18
  • 19. I monitor residenti (1950-1960) caricatore sequenzializzatore di job interprete delle schede di controllo area programmi utente 19
  • 20. I monitor residenti (1950-1960) • Monitor residente: programma residente in memoria che automatizza il caricamento di un job • Caricatore: si occupa del caricamento del programma in memoria • Sequenzializzatore di job: si occupa della esecuzione sequenziale dei job • Interprete delle schede di controllo: gestisce le cosiddette “schede di controllo” che indicano al monitor quale programma eseguire 20
  • 21. I monitor residenti (1950-1960) • Ciascun programma è descritto da una scheda di controllo che lo attiva • Un job è delimitato da due schede di controllo speciali: $JOB, $END $END dati del programma $RUN $LOAD programma da compilare $FTN $JOB 21
  • 22. I monitor residenti (1950-1960) Cassetto di schede 22
  • 23. Funzionamento offline (1950-1960) • Problemi – velocità I/O << velocità CPU – di conseguenza, la CPU è spesso inattiva, aspettando il completamento I/O • Soluzioni – utilizzo di periferiche più veloci – modalità di funzionamento off-line 23
  • 24. Funzionamento offline (1950-1960) • Modalità off-line: – i nastri di input vengono riversati su un nastro veloce – la CPU legge i dati dal nastro – il calcolatore riversa i dati su nastro – i dati su nastro vengono stampati – funzionamento delle periferiche lente (lettori di schede, stampanti) avviene off-line – primo esempio di gerarchia di memoria – device-independence dei programmi 24
  • 25. Funzionamento offline (1950-1960) • Approcci off-line: – periferiche (lettori di nastro, stampanti) direttamente collegate alle unità nastro – piccolo elaboratore delegato alla copia da/su nastro • Es.: sistema IBM 1401 (1959) 25
  • 26. Funzionamento offline (1950-1960) IBM 1401 (1959) IBM 1402 IBM 1401 IBM 1403 Card reader Processor Printer 26
  • 27. Buffering e Spooling (1960) • Problemi: – la modalità di funzionamento off-line richiede l'utilizzo di più macchine separate • Soluzioni: – utilizzo delle tecniche di: ♦ buffering ♦ spooling 27
  • 28. Buffering • Buffering: area di memoria intermedia dedicata al salvataggio temporaneo di informazioni – sovrapposizione tempo I/O – tempo CPU – appena letto il blocco di dati corrente: ♦ la CPU elabora il blocco dati corrente ♦ la periferica legge il blocco dati successivo – la CPU produce dati fino al riempimento del buffer – buffering implementato nel (device driver del) dispositivo – se velocità CPU >> velocità I/O, il buffering non sempre è efficiente 28
  • 29. Buffering Elaboratore Input Output BUFFER Unità di I/O 29
  • 30. Buffering e Spooling (1960) (3) • Spooling: – Simultaneous Peripheral Operations On Line – Se velocità CPU >> velocità I/O, occorrono buffer enormi per gestire un numero elevato di utenze – Implementazione dei buffer tramite file temporanei memorizzati su dischi – utilizzo dei primi sistemi a disco – Utilizzato ancora oggi nei sistemi in cui l'output predomina sul calcolo: ♦ Posta elettronica ♦ Stampa 30
  • 31. Spooling Unità di I/O Elaboratore (disco) Input Output Area spool Pronto Output Unità di I/O (stampa) 31
  • 32. Multiprogrammazione (1960) • Problemi: – singoli job eseguiti sequenzialmente – problema dei tempi morti dovuti ad I/O • Soluzioni: – job eseguiti fino a quando non si verifica attesa su I/O (non più eseguiti integralmente) – quando un job è in attesa di I/O, il sistema ripristina l'esecuzione di un altro job – finchè c'è un job da eseguire, la CPU rimane attiva – requisiti: gestione memoria, job scheduling 32
  • 33. Sistema monoprogrammato Job scheduling Sistema monoprogrammato Job 1 I/O CPU Job 2 Job Idle Job 3 0 5 10 15 20 25 30 35 40 45 Tempo 13+25=38 Finisce a 39! istanti di idle 33
  • 34. Sistema multiprogrammato Job scheduling Sistema multiprogrammato Job 1 I/O Idle Job 2 CPU Job Idle Job 3 0 5 10 15 20 25 30 35 Tempo 3+5+8+16=32 Finisce a 33! istanti di idle 34
  • 35. Time Sharing (1960) • Problemi – mancanza di interattività fra macchina ed utente durante l'esecuzione del job – il programmatore può ricevere l'output del job svariati giorni dopo la sua esecuzione • Soluzioni – Aumentare l'interattività del sistema con l'utente – Tecnica del Time Sharing 35
  • 36. Time Sharing (1960) • estensione logica della multiprogrammazione • la CPU esegue più job (concorrentemente) in modalità multiprogrammata • ciascun job possiede, a turno, la CPU per un intervallo di tempo (quanto) • Frequenza commutazione elevata: job scheduling->CPU scheduling • gli utenti possono interagire con i programmi • evoluzione rispetto ai sistemi batch non interattivi • interazione on-line tramite schermi e tastiera (concetto di shell) • utilizzo dei primi file system • multiutenza 36
  • 37. Time Sharing (1960) Job scheduling Sistema time sharing Job 1 I/O Idle CPU Job 2 Idle Job CPU Idle Job 3 0 5 10 15 20 25 30 35 40 Tempo Uso CPU finisce a 6! 37
  • 38. Sistemi distribuiti (1980) • Problemi – singolo elaboratore peggiora le prestazioni al crescere della richiesta di calcolo – dati utente non replicati • Soluzioni – distribuzione del calcolo su diversi processori fisici ♦ sistemi multiprocessori (strettamente accoppiati) ♦ nodi distribuiti in rete locale (debolmente accoppiati) 38
  • 39. Sistemi distribuiti (1980) • Pregi dei sistemi distribuiti – condivisione di risorse – accelerazione del calcolo – affidabilità – comunicazione fra utenti 39
  • 40. Sistemi real time (1980) Problemi • spesso le prestazioni di un SO sono altamente fluttuanti • alcuni problemi dedicati richiedono elaborazione entro un prefissato intervallo di tempo • Soluzioni – estendere il SO con supporto real-time ♦ soft real-time ♦ hard real-time 40