SlideShare a Scribd company logo
1 of 33
Download to read offline
I componenti del Sistema Operativo
• Un SO viene progettato ed implementato
  a moduli
• Interfaccia ben definita fra programmi
  utente e moduli del SO
• Gli aspetti interni dei diversi SO possono
  variare notevolmente
  – requisiti diversi
  – obiettivi di design diversi
• Primo passo della progettazione:
   – DEFINIRE GLI SCOPI DEL SO
• In base agli scopi, si definisce il design
                                               1
Componenti di un SO




        SO

                      2
Componenti di un SO


             Gestione
             processi




        SO

                        3
Componenti di un SO


             Gestione
             processi


             Gestione
             memoria
             centrale



        SO

                        4
Componenti di un SO




 Gestione
 memoria
             SO
secondaria


                       5
Componenti di un SO


Gestione
sistema
   I/O




           SO

                       6
Componenti di un SO


 Char
devices


Gestione
  file




           SO

                       7
Componenti di un SO




Gestione
  file

     Block
    devices
              SO

                       8
Componenti di un SO




Gestione    Block
  file      device



           SO

                       9
Componenti di un SO


                   P1

                   P2

      Sistema di
      protezione




         SO

                        10
Componenti di un SO


                   P1

                   P2

      Sistema di
      protezione




         SO

                        11
Componenti di un SO




             Gestione
        SO     rete


                        12
Componenti di un SO:
il quadro complessivo

                        Gestione
Gestione
                        processi
sistema
   I/O
                        Gestione
             Sistema di
Gestione                memoria
             protezione
  file                  centrale

 Gestione
                       Gestione
 memoria
                SO       rete
secondaria


                                   13
Gestione dei processi
• Attività principale CPU: esecuzione di
  codice
• PROCESSO: è un programma in
  esecuzione
  – area codice del processo
  – area dati del processo
  – stato del processo
• Tipici processi:
  – programmi utente
  – esecuzione driver sistema operativo
  – servizi (spool di stampa, server Web)
                                            14
Gestione dei processi
• PROCESSO != PROGRAMMA
• Programma: entità passiva
  – contenuto di un file (codice) scritto su disco
• Processo: entità attiva
  – può essere eseguito
  – ha bisogno di tutta una serie di informazioni
    aggiuntive per potersi coordinare con altri
    processi
  – due o più processi possono eseguire lo
    stesso programma
     ♦ sequenze di esecuzione distinte

                                                     15
Gestione dei processi
• Un processo, per svolgere i propri
  compiti, ha bisogno di risorse
  – tempo di CPU, accesso a file, dispositivi I/O
• Le risorse possono essere assegnate al
  processo:
  – al momento della sua creazione
  – durante la sua esecuzione




                                                    16
Gestione dei processi
• Il processo è l'unità di lavoro del SO
• SO: caratterizzato da un insieme di
  processi
  – organizzazione ad albero
  – esecuzione concorrente e sequenziale
     ♦ concorrente: più processi in esecuzione
       simultaneamente
     ♦ sequenziale: ciascun processo esegue
       gruppi di istruzioni, una alla volta



                                                 17
Gestione dei processi
• Responsabilità del SO:
  – creare processi utente e di sistema
  – cancellare processi utente e di sistema
  – sospendere e ripristinare processi
  – fornire meccanismi per la sincronizzazione
    di processo
  – fornire meccanismi per la comunicazione di
    processo
  – fornire meccanismi per la gestione di
    situazioni di stallo


                                                 18
Gestione della memoria centrale
• Caratteristiche della memoria centrale:
  – vasto array accessibile per byte/parole
  – ciascun elemento della memoria ha il
    proprio indirizzo
  – magazzino di dati velocemente accessibili
  – condivisa fra CPU e dispositivi di I/O
    ♦ CPU  legge istruzioni dalla memoria durante il
      ciclo di fetch delle istruzioni
    ♦ CPU interagisce con la memoria in r/w
      durante il ciclo di fetch dei dati
    ♦ Trasferimento efficiente dei dati tramite DMA


                                                       19
Gestione della memoria centrale
• Solitamente, la memoria è l'unico
  dispositivo indirizzabile direttamente
  dalla CPU
  – i dati del disco, vanno trasferiti in memoria
    attraverso richieste di I/O, prima di poter
    essere utilizzati
  – le istruzioni vanno trasferite in memoria
    centrale prima di poter essere eseguite




                                                    20
Gestione della memoria centrale
• Schema di esecuzione di un programma
  1.Il programma viene mappato in indirizzi
    assoluti e caricato in memoria.
  2.Viene generato l'indirizzo assoluto
    corrispettivo ad istruzione/dato corrente.
  3.Viene eseguita l'istruzione corrente oppure
    elaborato il dato corrente.
  4.Al termine dell'esecuzione, lo spazio di
    memoria occupato dal processo viene reso
    di nuovo disponibile.



                                                  21
Gestione della memoria centrale
• La memoria centrale è un dispositivo
  molto veloce
  – più processi mantengo in memoria centrale,
    più veloce sarà la loro esecuzione
• Diversi schemi di gestione della memoria
  – la scelta dello schema più adatto dipende
    dalle esigenze specifiche
  – in pratica, il tipo di hardware detta la scelta
    dello schema di gestione



                                                      22
Gestione della memoria centrale
• Responsabilità del SO:
  – tenere traccia di quali parti della memoria
    sono attualmente utilizzate e da chi
  – decidere quali processi debbano essere
    caricati in memoria quando vi sia lo spazio
    disponibile
  – allocare e deallocare lo spazio di memoria in
    base alle necessità




                                                    23
Gestione della memoria secondaria
• La memoria centrale è troppo piccola per
  poter contenere l'intero insieme di
  programmi
  – serve una memoria secondaria di ausilio a
    quella centrale
• Caratteristiche memoria secondaria:
  – molto più ampia della memoria centrale
  – molto più lenta della memoria centrale




                                                24
Gestione della memoria secondaria
• Tipicamente, la memoria secondaria
  viene fornita da un disco
  – dispositivo di massa
  – memorizza codice e dati indifferentemente
• I programmi rimangono sul disco fino a
  quando non vengono eseguiti
• Quando un programma deve essere
  eseguito, viene caricato in memoria



                                                25
Gestione della memoria secondaria
• Responsabilità del SO:
  – gestione dello spazio libero su disco
  – allocazione di spazio su disco
  – scheduling/riordino delle richieste per il
    disco




                                                 26
Gestione del sistema di I/O
• SCOPI del sistema di I/O:
  – mascherare le differenze tra i vari dispositivi
    di I/O
  – presentare all'utente una visione omogenea
    dei dispositivi
  – concetti di:
     ♦ File
     ♦ Directory
     ♦ File system




                                                      27
Gestione del sistema di I/O
• Responsabilità del SO:
  – gestire un sistema di buffer caching
    ♦ memorizzazione     preventiva di dati non
      ancora letti dai programmi
    ♦ scrittura dei dati a buffer riempito

  – fornire un'interfaccia generica di uso per i
    device driver




                                                   28
Gestione dei file
• Le informazioni possono essere
  memorizzate sui supporti fisici più
  disparati
  – nastro magnetico
  – disco magnetico
  – disco ottico
• Il SO maschera le differenze fra device e
  fornisce una visione unica ad alto livello
   – file


                                               29
Gestione dei file
• FILE: raccolta di informazioni definite dal
  loro creatore
  – sequenza di bit, byte, righe o record
  – significato di tale sequenza definito dal
    programmatore
  – contengono codice di programmi oppure dati
• L'organizzazione dei file è gerarchica
  – organizzazione per cartelle (directory)
  – rappresentazione ad albero



                                                 30
Gestione dei file
• Responsabilità del SO:
  – creare e cancellare file
  – creare e cancellare directory
  – supportare primitive per la manipolazione di
    file e directory
  – mappare file su memoria secondaria




                                                   31
Sistema di protezione
• I diversi processi di un SO devono
  essere protetti contro le attività di altri
  processi
  – attività involontarie o maliziose
• PROTEZIONE: meccanismo che controlla
  l'accesso alle risorse di calcolo da parte
  di:
  – programmi
  – processi
  – utenti


                                                32
Sistema di protezione
• ESEMPI DI MECCANISMI:
 – il SO sfrutta l'hardware di indirizzamento
   della memoria per impedire che un processo
   possa accedere ad aree non di sua
   competenza
 – il timer di sistema assicura che nessun
   processo possa acquisire il controllo
   indefinito della CPU
 – esecuzione di istruzioni di I/O diretto solo
   tramite interfaccia privilegiata (system call)
 – classificazione degli utenti e schema di
   permessi per accesso alle risorse
                                                    33

More Related Content

What's hot

Architettura dei Calcolatori 06 Elementi Architetturali Di Base
Architettura dei Calcolatori 06 Elementi Architetturali Di BaseArchitettura dei Calcolatori 06 Elementi Architetturali Di Base
Architettura dei Calcolatori 06 Elementi Architetturali Di BaseMajong DevJfu
 
Linux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneLinux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneFulvio Corno
 
Architettura degli Elaboratori
Architettura degli ElaboratoriArchitettura degli Elaboratori
Architettura degli Elaboratorisviciu
 
Elementidi informatica
Elementidi informaticaElementidi informatica
Elementidi informaticagiu89
 
Architettura degli elaboratori
Architettura degli elaboratoriArchitettura degli elaboratori
Architettura degli elaboratoriservetti
 
Scheda Madre
Scheda MadreScheda Madre
Scheda Madreteoimpro
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode LinuxMajong DevJfu
 
L' architettura dell' elaboratore( parte 1) (parte 2) periferiche
L' architettura dell' elaboratore( parte 1) (parte 2) perifericheL' architettura dell' elaboratore( parte 1) (parte 2) periferiche
L' architettura dell' elaboratore( parte 1) (parte 2) perifericheandreaciaramella
 
Introduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleIntroduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleMajong DevJfu
 
LUG - Logical volumes management
LUG - Logical volumes managementLUG - Logical volumes management
LUG - Logical volumes managementAlessandro Manfredi
 
Sistemioperativi
SistemioperativiSistemioperativi
Sistemioperativieleonora4g
 
Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriFulvio Corno
 
Amministrazione base dei sistemi Linux
Amministrazione base dei sistemi LinuxAmministrazione base dei sistemi Linux
Amministrazione base dei sistemi LinuxPaolo Campegiani
 
Gestione dischi - File system - LVM
 Gestione dischi - File system - LVM Gestione dischi - File system - LVM
Gestione dischi - File system - LVMFulvio Corno
 
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxDeveler S.r.l.
 

What's hot (20)

Architettura dei Calcolatori 06 Elementi Architetturali Di Base
Architettura dei Calcolatori 06 Elementi Architetturali Di BaseArchitettura dei Calcolatori 06 Elementi Architetturali Di Base
Architettura dei Calcolatori 06 Elementi Architetturali Di Base
 
Linux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneLinux Kernel, driver e compilazione
Linux Kernel, driver e compilazione
 
Architettura degli Elaboratori
Architettura degli ElaboratoriArchitettura degli Elaboratori
Architettura degli Elaboratori
 
Elementidi informatica
Elementidi informaticaElementidi informatica
Elementidi informatica
 
Architettura degli elaboratori
Architettura degli elaboratoriArchitettura degli elaboratori
Architettura degli elaboratori
 
Lezione 1
Lezione 1Lezione 1
Lezione 1
 
Scheda Madre
Scheda MadreScheda Madre
Scheda Madre
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode Linux
 
L' architettura dell' elaboratore( parte 1) (parte 2) periferiche
L' architettura dell' elaboratore( parte 1) (parte 2) perifericheL' architettura dell' elaboratore( parte 1) (parte 2) periferiche
L' architettura dell' elaboratore( parte 1) (parte 2) periferiche
 
Personal computer
Personal computerPersonal computer
Personal computer
 
Software7
Software7Software7
Software7
 
Hardware3
Hardware3Hardware3
Hardware3
 
Introduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleIntroduzione Alla Uml Mconsole
Introduzione Alla Uml Mconsole
 
LUG - Logical volumes management
LUG - Logical volumes managementLUG - Logical volumes management
LUG - Logical volumes management
 
Sistemioperativi
SistemioperativiSistemioperativi
Sistemioperativi
 
Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatori
 
Amministrazione base dei sistemi Linux
Amministrazione base dei sistemi LinuxAmministrazione base dei sistemi Linux
Amministrazione base dei sistemi Linux
 
Gestione dischi - File system - LVM
 Gestione dischi - File system - LVM Gestione dischi - File system - LVM
Gestione dischi - File system - LVM
 
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
 
Virtualizzazione
VirtualizzazioneVirtualizzazione
Virtualizzazione
 

Similar to Sistemi Operativi: Componenti - Lezione 02

Elaborazione automatica dei dati: calcolatore e matlab
Elaborazione automatica dei dati: calcolatore e matlabElaborazione automatica dei dati: calcolatore e matlab
Elaborazione automatica dei dati: calcolatore e matlabprofman
 
Corso base introduzione pc
Corso base introduzione pcCorso base introduzione pc
Corso base introduzione pcclaudiatti
 
Linux Device Drivers
Linux Device DriversLinux Device Drivers
Linux Device DriversFabio Nisci
 
Sistemi operativi
Sistemi operativiSistemi operativi
Sistemi operativiPaola Bez
 
Modulo1 lezione1
Modulo1 lezione1Modulo1 lezione1
Modulo1 lezione1scipag
 
Architettura di un computer, istituto tecnico
Architettura di un computer, istituto tecnicoArchitettura di un computer, istituto tecnico
Architettura di un computer, istituto tecnicocesarem
 
Architettura elaboratore
Architettura elaboratoreArchitettura elaboratore
Architettura elaboratoreserex86
 
ManageEngine DesktopCentral - gestione dei Desktop e dei mobile device.
ManageEngine DesktopCentral - gestione dei Desktop e dei mobile device.ManageEngine DesktopCentral - gestione dei Desktop e dei mobile device.
ManageEngine DesktopCentral - gestione dei Desktop e dei mobile device.ManageEngine Italia
 
Architettura dell’elaboratore (13.02.13)
Architettura dell’elaboratore (13.02.13)Architettura dell’elaboratore (13.02.13)
Architettura dell’elaboratore (13.02.13)iffib
 
Struttura dell'elaboratore (sample)
Struttura dell'elaboratore (sample)Struttura dell'elaboratore (sample)
Struttura dell'elaboratore (sample)Parco nord.
 
Architetturacomputer1
Architetturacomputer1Architetturacomputer1
Architetturacomputer1cesarem
 

Similar to Sistemi Operativi: Componenti - Lezione 02 (20)

Elaborazione automatica dei dati: calcolatore e matlab
Elaborazione automatica dei dati: calcolatore e matlabElaborazione automatica dei dati: calcolatore e matlab
Elaborazione automatica dei dati: calcolatore e matlab
 
Corso base introduzione pc
Corso base introduzione pcCorso base introduzione pc
Corso base introduzione pc
 
Linux Device Drivers
Linux Device DriversLinux Device Drivers
Linux Device Drivers
 
Sistemi operativi
Sistemi operativiSistemi operativi
Sistemi operativi
 
Modulo1 lezione1
Modulo1 lezione1Modulo1 lezione1
Modulo1 lezione1
 
TI_2022.pptx
TI_2022.pptxTI_2022.pptx
TI_2022.pptx
 
Architettura di un computer, istituto tecnico
Architettura di un computer, istituto tecnicoArchitettura di un computer, istituto tecnico
Architettura di un computer, istituto tecnico
 
Architettura elaboratore
Architettura elaboratoreArchitettura elaboratore
Architettura elaboratore
 
Ti 2021 22_new
Ti 2021 22_newTi 2021 22_new
Ti 2021 22_new
 
ManageEngine DesktopCentral - gestione dei Desktop e dei mobile device.
ManageEngine DesktopCentral - gestione dei Desktop e dei mobile device.ManageEngine DesktopCentral - gestione dei Desktop e dei mobile device.
ManageEngine DesktopCentral - gestione dei Desktop e dei mobile device.
 
Modulo 1 - Lezione 2
Modulo 1 - Lezione 2Modulo 1 - Lezione 2
Modulo 1 - Lezione 2
 
Ti base 2020
Ti base 2020Ti base 2020
Ti base 2020
 
Ti base 2020b
Ti base 2020bTi base 2020b
Ti base 2020b
 
Architettura dell’elaboratore (13.02.13)
Architettura dell’elaboratore (13.02.13)Architettura dell’elaboratore (13.02.13)
Architettura dell’elaboratore (13.02.13)
 
HARDWARE & SOFTWARE
HARDWARE & SOFTWAREHARDWARE & SOFTWARE
HARDWARE & SOFTWARE
 
Cpu
CpuCpu
Cpu
 
Cpu Abacus
Cpu AbacusCpu Abacus
Cpu Abacus
 
Cpu abacus
Cpu abacusCpu abacus
Cpu abacus
 
Struttura dell'elaboratore (sample)
Struttura dell'elaboratore (sample)Struttura dell'elaboratore (sample)
Struttura dell'elaboratore (sample)
 
Architetturacomputer1
Architetturacomputer1Architetturacomputer1
Architetturacomputer1
 

More from 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
 

More from 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
 

Sistemi Operativi: Componenti - Lezione 02

  • 1. I componenti del Sistema Operativo • Un SO viene progettato ed implementato a moduli • Interfaccia ben definita fra programmi utente e moduli del SO • Gli aspetti interni dei diversi SO possono variare notevolmente – requisiti diversi – obiettivi di design diversi • Primo passo della progettazione: – DEFINIRE GLI SCOPI DEL SO • In base agli scopi, si definisce il design 1
  • 3. Componenti di un SO Gestione processi SO 3
  • 4. Componenti di un SO Gestione processi Gestione memoria centrale SO 4
  • 5. Componenti di un SO Gestione memoria SO secondaria 5
  • 6. Componenti di un SO Gestione sistema I/O SO 6
  • 7. Componenti di un SO Char devices Gestione file SO 7
  • 8. Componenti di un SO Gestione file Block devices SO 8
  • 9. Componenti di un SO Gestione Block file device SO 9
  • 10. Componenti di un SO P1 P2 Sistema di protezione SO 10
  • 11. Componenti di un SO P1 P2 Sistema di protezione SO 11
  • 12. Componenti di un SO Gestione SO rete 12
  • 13. Componenti di un SO: il quadro complessivo Gestione Gestione processi sistema I/O Gestione Sistema di Gestione memoria protezione file centrale Gestione Gestione memoria SO rete secondaria 13
  • 14. Gestione dei processi • Attività principale CPU: esecuzione di codice • PROCESSO: è un programma in esecuzione – area codice del processo – area dati del processo – stato del processo • Tipici processi: – programmi utente – esecuzione driver sistema operativo – servizi (spool di stampa, server Web) 14
  • 15. Gestione dei processi • PROCESSO != PROGRAMMA • Programma: entità passiva – contenuto di un file (codice) scritto su disco • Processo: entità attiva – può essere eseguito – ha bisogno di tutta una serie di informazioni aggiuntive per potersi coordinare con altri processi – due o più processi possono eseguire lo stesso programma ♦ sequenze di esecuzione distinte 15
  • 16. Gestione dei processi • Un processo, per svolgere i propri compiti, ha bisogno di risorse – tempo di CPU, accesso a file, dispositivi I/O • Le risorse possono essere assegnate al processo: – al momento della sua creazione – durante la sua esecuzione 16
  • 17. Gestione dei processi • Il processo è l'unità di lavoro del SO • SO: caratterizzato da un insieme di processi – organizzazione ad albero – esecuzione concorrente e sequenziale ♦ concorrente: più processi in esecuzione simultaneamente ♦ sequenziale: ciascun processo esegue gruppi di istruzioni, una alla volta 17
  • 18. Gestione dei processi • Responsabilità del SO: – creare processi utente e di sistema – cancellare processi utente e di sistema – sospendere e ripristinare processi – fornire meccanismi per la sincronizzazione di processo – fornire meccanismi per la comunicazione di processo – fornire meccanismi per la gestione di situazioni di stallo 18
  • 19. Gestione della memoria centrale • Caratteristiche della memoria centrale: – vasto array accessibile per byte/parole – ciascun elemento della memoria ha il proprio indirizzo – magazzino di dati velocemente accessibili – condivisa fra CPU e dispositivi di I/O ♦ CPU legge istruzioni dalla memoria durante il ciclo di fetch delle istruzioni ♦ CPU interagisce con la memoria in r/w durante il ciclo di fetch dei dati ♦ Trasferimento efficiente dei dati tramite DMA 19
  • 20. Gestione della memoria centrale • Solitamente, la memoria è l'unico dispositivo indirizzabile direttamente dalla CPU – i dati del disco, vanno trasferiti in memoria attraverso richieste di I/O, prima di poter essere utilizzati – le istruzioni vanno trasferite in memoria centrale prima di poter essere eseguite 20
  • 21. Gestione della memoria centrale • Schema di esecuzione di un programma 1.Il programma viene mappato in indirizzi assoluti e caricato in memoria. 2.Viene generato l'indirizzo assoluto corrispettivo ad istruzione/dato corrente. 3.Viene eseguita l'istruzione corrente oppure elaborato il dato corrente. 4.Al termine dell'esecuzione, lo spazio di memoria occupato dal processo viene reso di nuovo disponibile. 21
  • 22. Gestione della memoria centrale • La memoria centrale è un dispositivo molto veloce – più processi mantengo in memoria centrale, più veloce sarà la loro esecuzione • Diversi schemi di gestione della memoria – la scelta dello schema più adatto dipende dalle esigenze specifiche – in pratica, il tipo di hardware detta la scelta dello schema di gestione 22
  • 23. Gestione della memoria centrale • Responsabilità del SO: – tenere traccia di quali parti della memoria sono attualmente utilizzate e da chi – decidere quali processi debbano essere caricati in memoria quando vi sia lo spazio disponibile – allocare e deallocare lo spazio di memoria in base alle necessità 23
  • 24. Gestione della memoria secondaria • La memoria centrale è troppo piccola per poter contenere l'intero insieme di programmi – serve una memoria secondaria di ausilio a quella centrale • Caratteristiche memoria secondaria: – molto più ampia della memoria centrale – molto più lenta della memoria centrale 24
  • 25. Gestione della memoria secondaria • Tipicamente, la memoria secondaria viene fornita da un disco – dispositivo di massa – memorizza codice e dati indifferentemente • I programmi rimangono sul disco fino a quando non vengono eseguiti • Quando un programma deve essere eseguito, viene caricato in memoria 25
  • 26. Gestione della memoria secondaria • Responsabilità del SO: – gestione dello spazio libero su disco – allocazione di spazio su disco – scheduling/riordino delle richieste per il disco 26
  • 27. Gestione del sistema di I/O • SCOPI del sistema di I/O: – mascherare le differenze tra i vari dispositivi di I/O – presentare all'utente una visione omogenea dei dispositivi – concetti di: ♦ File ♦ Directory ♦ File system 27
  • 28. Gestione del sistema di I/O • Responsabilità del SO: – gestire un sistema di buffer caching ♦ memorizzazione preventiva di dati non ancora letti dai programmi ♦ scrittura dei dati a buffer riempito – fornire un'interfaccia generica di uso per i device driver 28
  • 29. Gestione dei file • Le informazioni possono essere memorizzate sui supporti fisici più disparati – nastro magnetico – disco magnetico – disco ottico • Il SO maschera le differenze fra device e fornisce una visione unica ad alto livello – file 29
  • 30. Gestione dei file • FILE: raccolta di informazioni definite dal loro creatore – sequenza di bit, byte, righe o record – significato di tale sequenza definito dal programmatore – contengono codice di programmi oppure dati • L'organizzazione dei file è gerarchica – organizzazione per cartelle (directory) – rappresentazione ad albero 30
  • 31. Gestione dei file • Responsabilità del SO: – creare e cancellare file – creare e cancellare directory – supportare primitive per la manipolazione di file e directory – mappare file su memoria secondaria 31
  • 32. Sistema di protezione • I diversi processi di un SO devono essere protetti contro le attività di altri processi – attività involontarie o maliziose • PROTEZIONE: meccanismo che controlla l'accesso alle risorse di calcolo da parte di: – programmi – processi – utenti 32
  • 33. Sistema di protezione • ESEMPI DI MECCANISMI: – il SO sfrutta l'hardware di indirizzamento della memoria per impedire che un processo possa accedere ad aree non di sua competenza – il timer di sistema assicura che nessun processo possa acquisire il controllo indefinito della CPU – esecuzione di istruzioni di I/O diretto solo tramite interfaccia privilegiata (system call) – classificazione degli utenti e schema di permessi per accesso alle risorse 33