SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
Sistemi Operativi
                 A.A. 2008/2009



               Mauro Andreolini
          mauro.andreolini@unimore.it


               Home page del corso:
<http://informatica.scienze.unimo.it/sistemi-operativi.shtml>
Prerequisiti del corso
• Conoscenza di base della struttura di un
  calcolatore elettronico
• Conoscenza del linguaggio C
• Utilizzo “di base” di un calcolatore
  elettronico




                                             2
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
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
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
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
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
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
I primi sistemi (1940-1950)
Atanassov-Berry
  (1937)




                                    9
I primi sistemi (1940-1950)
Colossus
 (1944)




                                    10
I primi sistemi (1940-1950)
Harvard Mark I
 (1944)




                                     11
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
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
I primi sistemi (1940-1950)
Schede perforate IBM
 (Fortran, 1964)
Codifica +
Codifica -
Codifica
digit 0-9




                 Codifica di 80 cifre “0-9”




                                              14
I primi sistemi (1940-1950)
Unità nastro Digital
 (1964)




                                    15
I primi sistemi (1940-1950)
Unità stampante
 IBM 1403 (1959)




                                   16
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
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
I monitor residenti (1950-1960)

              caricatore

           sequenzializzatore
                di job

            interprete delle
          schede di controllo

            area programmi
                 utente




                                  19
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
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
I monitor residenti (1950-1960)
Cassetto di schede




                                      22
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
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
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
Funzionamento offline (1950-1960)
IBM 1401 (1959)




      IBM 1402     IBM 1401    IBM 1403
     Card reader   Processor    Printer   26
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
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
Buffering
Elaboratore

 Input         Output
                        BUFFER




Unità di I/O




                                 29
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
Spooling
                           Unità di I/O
Elaboratore
                           (disco)
 Input            Output
                             Area spool

     Pronto    Output

Unità di I/O
(stampa)




                                          31
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
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
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
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
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
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
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
Sistemi distribuiti (1980)
• Pregi dei sistemi distribuiti
  – condivisione di risorse
  – accelerazione del calcolo
  – affidabilità
  – comunicazione fra utenti




                                     39
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

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Secondary storage
Secondary storageSecondary storage
Secondary storage
 
Linux Memory Management
Linux Memory ManagementLinux Memory Management
Linux Memory Management
 
L’ apparato locomotore
L’ apparato locomotoreL’ apparato locomotore
L’ apparato locomotore
 
Ubuntu installation-presentations
Ubuntu installation-presentationsUbuntu installation-presentations
Ubuntu installation-presentations
 
step by step to install the ubuntu
step by step to install the ubuntustep by step to install the ubuntu
step by step to install the ubuntu
 
SPI Drivers
SPI DriversSPI Drivers
SPI Drivers
 
Linux Interrupts
Linux InterruptsLinux Interrupts
Linux Interrupts
 
placche tettoniche
placche tettonicheplacche tettoniche
placche tettoniche
 
Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU
 
SPI Bus Protocol
SPI Bus ProtocolSPI Bus Protocol
SPI Bus Protocol
 
Serial Peripheral Interface
Serial Peripheral InterfaceSerial Peripheral Interface
Serial Peripheral Interface
 
Board Bringup
Board BringupBoard Bringup
Board Bringup
 
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
 
SATA Protocol
SATA ProtocolSATA Protocol
SATA Protocol
 
Persone giuridiche
Persone giuridichePersone giuridiche
Persone giuridiche
 
Parallel Processing & Pipelining in Computer Architecture_Prof.Sumalatha.pptx
Parallel Processing & Pipelining in Computer Architecture_Prof.Sumalatha.pptxParallel Processing & Pipelining in Computer Architecture_Prof.Sumalatha.pptx
Parallel Processing & Pipelining in Computer Architecture_Prof.Sumalatha.pptx
 
Windows Server 2012
Windows Server 2012Windows Server 2012
Windows Server 2012
 
Sistema scheletrico
Sistema scheletricoSistema scheletrico
Sistema scheletrico
 
Block Drivers
Block DriversBlock Drivers
Block Drivers
 
Pram model
Pram modelPram model
Pram model
 

Andere mochten auch

Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1caioturtle
 
2 sistemi informativi d azienda
2 sistemi informativi d azienda2 sistemi informativi d azienda
2 sistemi informativi d aziendaMajong DevJfu
 
esercizio sigda n 11
esercizio sigda n 11esercizio sigda n 11
esercizio sigda n 11Majong DevJfu
 
Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Majong DevJfu
 
5 Trasporto Affidabile Teoria
5 Trasporto Affidabile Teoria5 Trasporto Affidabile Teoria
5 Trasporto Affidabile TeoriaMajong DevJfu
 
Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03Majong DevJfu
 
Linguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendLinguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendMajong DevJfu
 
4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 ColorMajong DevJfu
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su LinuxMajong DevJfu
 
Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Majong DevJfu
 
Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Majong DevJfu
 
Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07Majong DevJfu
 
Calcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaCalcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaMajong DevJfu
 
Introduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneIntroduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneMajong DevJfu
 

Andere mochten auch (20)

Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
 
3 H2 N Parte3
3 H2 N Parte33 H2 N Parte3
3 H2 N Parte3
 
2 sistemi informativi d azienda
2 sistemi informativi d azienda2 sistemi informativi d azienda
2 sistemi informativi d azienda
 
esercizio sigda n 11
esercizio sigda n 11esercizio sigda n 11
esercizio sigda n 11
 
Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86
 
5 Trasporto Affidabile Teoria
5 Trasporto Affidabile Teoria5 Trasporto Affidabile Teoria
5 Trasporto Affidabile Teoria
 
E6 Concorre
E6 ConcorreE6 Concorre
E6 Concorre
 
Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03
 
Linguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendLinguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: Frontend
 
8 Www2009 Parte1
8 Www2009 Parte18 Www2009 Parte1
8 Www2009 Parte1
 
4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su Linux
 
Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04
 
9 Ftp Telnet Email
9 Ftp Telnet Email9 Ftp Telnet Email
9 Ftp Telnet Email
 
6 Dns Parte2
6 Dns Parte26 Dns Parte2
6 Dns Parte2
 
Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05
 
esercizio sigda n 8
esercizio sigda n 8esercizio sigda n 8
esercizio sigda n 8
 
Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07
 
Calcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaCalcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di Macchina
 
Introduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneIntroduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazione
 

Ähnlich wie Sistemi Operativi: Introduzione - Lezione 01

Concetti di base della Tecnologia dell'informazione
Concetti di base della Tecnologia dell'informazioneConcetti di base della Tecnologia dell'informazione
Concetti di base della Tecnologia dell'informazioneAndrea Silipo
 
Elementidi informatica
Elementidi informaticaElementidi informatica
Elementidi informaticagiu89
 
Dal computer ad un sistema informativo
Dal computer ad un sistema informativoDal computer ad un sistema informativo
Dal computer ad un sistema informativoMarco Liverani
 
Introduzione ai Sistemi Operativi
Introduzione ai Sistemi OperativiIntroduzione ai Sistemi Operativi
Introduzione ai Sistemi OperativiorestJump
 
Storia dei sistemi di elaborazione
Storia dei sistemi di elaborazioneStoria dei sistemi di elaborazione
Storia dei sistemi di elaborazioneDavideMeschini
 
Storia dei sistemi di elaborazione
Storia dei sistemi di elaborazioneStoria dei sistemi di elaborazione
Storia dei sistemi di elaborazioneUniversita' di Bari
 
Informatica Concetti Di Base - prima parte
Informatica Concetti Di Base - prima parteInformatica Concetti Di Base - prima parte
Informatica Concetti Di Base - prima parteAnna Rita Colella
 
Sistemi operativi
Sistemi operativiSistemi operativi
Sistemi operativiPaola Bez
 
Introduzione al computer e a Internet
Introduzione al computer e a InternetIntroduzione al computer e a Internet
Introduzione al computer e a InternetCarlo Vaccari
 
Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2CSP Scarl
 
Corso base introduzione pc
Corso base introduzione pcCorso base introduzione pc
Corso base introduzione pcclaudiatti
 
Architetturacomputer1
Architetturacomputer1Architetturacomputer1
Architetturacomputer1cesarem
 

Ähnlich wie Sistemi Operativi: Introduzione - Lezione 01 (20)

Storia del computer
Storia del computerStoria del computer
Storia del computer
 
Ti 2021 22_new
Ti 2021 22_newTi 2021 22_new
Ti 2021 22_new
 
Concetti di base della Tecnologia dell'informazione
Concetti di base della Tecnologia dell'informazioneConcetti di base della Tecnologia dell'informazione
Concetti di base della Tecnologia dell'informazione
 
Elementidi informatica
Elementidi informaticaElementidi informatica
Elementidi informatica
 
Dal computer ad un sistema informativo
Dal computer ad un sistema informativoDal computer ad un sistema informativo
Dal computer ad un sistema informativo
 
Introduzione ai Sistemi Operativi
Introduzione ai Sistemi OperativiIntroduzione ai Sistemi Operativi
Introduzione ai Sistemi Operativi
 
Ti base 2020
Ti base 2020Ti base 2020
Ti base 2020
 
Storia dei sistemi di elaborazione
Storia dei sistemi di elaborazioneStoria dei sistemi di elaborazione
Storia dei sistemi di elaborazione
 
Storia dei sistemi di elaborazione
Storia dei sistemi di elaborazioneStoria dei sistemi di elaborazione
Storia dei sistemi di elaborazione
 
Ti base 2020b
Ti base 2020bTi base 2020b
Ti base 2020b
 
Informatica Concetti Di Base - prima parte
Informatica Concetti Di Base - prima parteInformatica Concetti Di Base - prima parte
Informatica Concetti Di Base - prima parte
 
HARDWARE & SOFTWARE
HARDWARE & SOFTWAREHARDWARE & SOFTWARE
HARDWARE & SOFTWARE
 
Sistemi operativi
Sistemi operativiSistemi operativi
Sistemi operativi
 
01 hardware
01 hardware01 hardware
01 hardware
 
01 Hardware
01  Hardware01  Hardware
01 Hardware
 
Lezione 1
Lezione 1Lezione 1
Lezione 1
 
Introduzione al computer e a Internet
Introduzione al computer e a InternetIntroduzione al computer e a Internet
Introduzione al computer e a Internet
 
Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2
 
Corso base introduzione pc
Corso base introduzione pcCorso base introduzione pc
Corso base introduzione pc
 
Architetturacomputer1
Architetturacomputer1Architetturacomputer1
Architetturacomputer1
 

Mehr von Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 

Mehr von Majong DevJfu (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 

Kürzlich hochgeladen

Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 

Kürzlich hochgeladen (9)

Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 

Sistemi Operativi: Introduzione - Lezione 01

  • 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