SlideShare a Scribd company logo
1 of 59
Download to read offline
API e ABI
• Application Program Interface (API)
  – Insieme delle regole che definiscono
    l'interfaccia del SO, in termini di funzioni
    utilizzabili
• Application Binary Interface (ABI)
  – Insieme delle regole che definiscono
    l'interazione di un programma con le librerie
• Obiettivi:
  – Garantire la riproducibilità del processo di
    compilazione su diverse istanze dello stesso
    SO (API)
  – garantire la compatibilità di comportamento di
    un programma fra diverse istanze dello stesso
    SO (ABI)                                         1
Tassonomia
• Su quali strutture si mappano i programmi ora
  visti?
• Strutture di SO reali
   – Struttura semplice, struttura stratificata
   – Macrokernel, Microkernel, Hybrid kernel




                                                  2
Tassonomia
• Tutte le tassonomie prevedono:
  – User space: insieme degli indirizzi in cui sono
    memorizzati i software che girano con privilegi
    ridotti
  – Kernel space: insieme degli indirizzi in cui
    sono memorizzati i software che girano con
    privilegi pieni
  – User mode: modalità con cui il SO esegue il
    codice con privilegi ridotti
  – Kernel mode: modalità con cui il SO esegue il
    codice con privilegi pieni



                                                      3
Struttura semplice
• In realtà, è una assenza di struttura vera
  e propria
  – sistemi “giocattolo”
  – massima funzionalità nel minimo spazio
• Due elementi principali:
  – kernel (gestione interruzioni, driver)
  – programmi di sistema e applicativi
• Esempi:
  – MS-DOS
  – Primi UNIX

                                               4
MS DOS: caratteristiche
• Microsoft Disk Operating System
   – Famiglia di sistemi operativi per PC IBM
     compatibili (1981-1995)
• Caratteristiche:
   – singolo utente
   – singolo task
   – interfaccia semplice da linea di comando
• Funzioni del kernel non eseguibili
  concorrentemente (non rientranti)
   – una volta invocato un servizio di sistema,
     non può essere interrotto

                                                  5
MS DOS e IBM PC: caratteristiche
• I primi processori IBM (8088) potevano
  indirizzare 2^20=1024KB
  – Primi 640 KB: RAM programmi (conventional
    memory)
  – Ultimi 384 KB: dedicati all'hardware (upper
    memory area)
• “640K is more memory than anyone will ever
  need”, Bill Gates, 1981
  – Ovviamente, ai programmatori 640KB non
    bastarono più e cominciarono ad usare anche
    gli ultimi 384KB
  – Bisogno di aumentare la RAM disponibile
  – Bisogno di mantenere la compatibilità hw/sw
                                                  6
MS DOS e IBM PC: caratteristiche
• Intel 80286 (1982): in grado di indirizzare 16MB
  di memoria
• Memoria sopra il primo MB: extended memory
   – gestita tramite il driver himem.sys
• Primi 64KB (-16 byte) della extended memory:
  high memory
   – Utilizzati per estendere il DOS




                                                     7
MS DOS e IBM PC: caratteristiche
• Intel 80286 (1982): in grado di indirizzare 16MB
  di memoria
• Due modalità di uso: real mode e protected
  mode
• Real mode:
   – equivalente ad un vecchio 8086/8088
   – Indirizzamento a 20 bit
• Protected mode:
   – Utilizzo di una Memory Management Unit
     (MMU) per l'indirizzamento dei 16MB


                                                     8
MS DOS e IBM PC: caratteristiche
• Intel 80386 (1985): in grado di indirizzare 4GB
  di memoria (extended memory)
• Real mode:
   – equivalente ad un vecchio 8086/8088
   – Indirizzamento a 20 bit
• Protected mode:
   – Utilizzo di una Memory Management Unit
     (MMU) per l'indirizzamento dei 4GB
   – Paginazione
• Virtual 8086 mode:
   – Real mode + modello di segmentazione di un
     8086 + paginazione
                                                    9
MS DOS: chiamate di sistema
• Invocabili tramite l'eccezione 21H
  (int 21H, int 0x21)
• Il registro %eax contiene l'identificatore della
  chiamata di sistema
• Categorie:
  –   Standard character device I/O
  –   Memory management
  –   Process management
  –   File and directory management
  –   Miscellaneous



                                                     10x
MS DOS: programmi TSR
• Una chiamata di sistema (Terminate and Stay
  Resident, TSR) permette di ritornare il
  controllo al sistema, mantenendo in memoria il
  programma che la invoca
• Il programma torna in esecuzione sulla base di
  eventi esterni
• Meccanismo primordiale per:
   – multitasking (forzato da eventi)
   – server
   – software gestione di dispositivi hardware


                                                   11
MS DOS: programmi TSR
• Un programma scrive il proprio indirizzo di
  partenza in uno o più elementi del vettore delle
  interruzioni
• Quando un programma vuole interrompere il
  proprio funzionamento, invoca l'eccezione
  relativa al TSR:
   – int 21H (prime versioni, limite di 64KB)
   – int 27H (nessun limite di memoria, exit code)
• Meccanismo ideale per creare un virus
   – si impostano i vettori di interruzione relativi
     all'I/O alla routine principale del virus
   – ciascuna richiesta di I/O allega il virus al file
                                                         12
MS DOS: componenti
• Il sistema MS DOS è composto da tre parti
  principali: BIOS, kernel, shell
• BIOS: Basic Input/Output System
  – circuito integrato (ROM, EPROM, EEPROM)
    contenente I software di gestione delle
    periferiche (device driver)
  – funzioni di lettura/scrittura invocabili tramite
    eccezioni (trap) o tramite il file io.sys
  – fornito dalle case produttrici delle schede
    madri, piuttosto che dalla Microsoft
  – occupa gli indirizzi vicini al 1MB
  – solitamente, è proprietario; è in corso di
    sviluppo un “Free BIOS” da parte della FSF
                                                       13
MS DOS: componenti




Integrato AMIBIOS   Configurazione BIOS




                                          14
MS DOS: componenti
• Il sistema MS DOS è composto da tre parti
  principali: BIOS, kernel, shell
• kernel: contiene la parte del sistema operativo
  indipendente dalla macchina
  –   memorizzato nel file msdos.sys
  –   gestione dei processi
  –   gestione della memoria
  –   gestione del file system
  –   smistamento delle chiamate di sistema




                                                    15
MS DOS: componenti
• Il sistema MS DOS è composto da tre parti
  principali: BIOS, kernel, shell
• shell: interfaccia a linea di comando
  – memorizzata nel file command.com
  – comandi di base (builtin)
• Due parti: residente e non residente
• Residente:
  – memorizzata subito dopo msdos.sys
  – gestore interruzioni 22H (terminate address),
    23H (Ctrl-Break Handler), 24H (Critical Handler)
• Non residente:
  – memorizzata al termine della memoria
  – prompt, legge/interpreta/esegue i comandi          16
MS DOS: componenti




   La shell MSDOS
                     17
MS-DOS: struttura
                                           User
           Programmi di applicazione
                                          space


       Programmi di sistema residenti

                                          Kernel
Driver dei dispositivi                    space
      MS-DOS


        Driver dei dispositivi ROM BIOS


                    Hardware

                                                   18
MS DOS:
  inizializzazione e configurazione
• Due obiettivi: configurazione device driver e
  script di avvio del sistema
   – sysinit: programma che avvia il SO
• Primo passo: sysinit carica config.sys
   – allocazione buffer cache
   – inizializzazione device driver
   – impostazione code page
• Secondo passo: sysinit carica command.com
• Terzo passo: command.com legge lo script di
  avvio autoexec.bat


                                                  19
MS DOS: memoria secondaria
• Rappresentazione tramite file e directory
• Gerarchia di directory (albero)
• Formato nomi file: 8.3
   – 8 caratteri per il nome, 3 per l'estensione
   – case insensitive
• Presenza di una unica “directory di lavoro”
• Redirezione stdin (<) e stdout (>)




                                                   20
MS DOS: gestione dispositivi
• I dispositivi sono identificati tramite sigle
  terminate dal carattere “:”
   – COM1,...,COM4: le quattro porte seriali
   – CON: la console di lavoro (shell)
   – LPT1, ..., LPT3: stampanti
   – PRN: identico ad LPT1
   – NUL: nessun dispositivo (scarto)
   – A: primo floppy (3 ½)
   – B: secondo floppy (3½, 5¼)
   – C: hard disk


                                                  21
Struttura stratificata
• Le funzionalità fornite dal SO vengono
  suddivise in strati
  – ciascun strato implementa le proprie
    funzionalità basandosi su quelle definite
    negli strati inferiori
  – strato 0: strato fisico
  – strato n: interfaccia utente




                                                22
Struttura stratificata
Uno strato di sistema operativo

Le operazioni dello strato m fanno      strato m
uso delle funzionalità definite nello
strato m-1.


                                        strato m-1


                         fj




                                                     23
Struttura stratificata
Uno strato di sistema operativo
Lo strato m definisce anche
                                         strato m
operazioni nascoste, non visibili
agli strati superiori. Tali operazioni
sono di supporto.

                                         strato m-1
                         gk


                         fj




                                                      24
Struttura stratificata
Uno strato di sistema operativo
 Le funzionalità dello strato m+1
                                       strato m
 utilizzano le funzionalità definite
 nello strato m. Non sono visibili
 le funzioni di supporto.

                                       strato m-1
                         gk

   strato m+1
                         fj




                                                    25
Struttura stratificata
• Vantaggi: modularità
  – ciascuno strato usa funzionalità dei livelli
    inferiori (idealmente, quello direttamente
    inferiore)
  – il primo strato può essere progettato senza
    considerare il resto del sistema
  – una volta implementato e corretto il primo
    strato, il secondo si appoggia sulle funzioni del
    primo
      ♦ approccio a guscio (shell)
      ♦ incrementale, più semplice da correggere
  – ogni strato nasconde a quelli superiori i dettagli
    implementativi
                                                         26
Struttura stratificata
• Svantaggi:
  – come definisco esattamente gli strati?
      ♦ dove finisce uno e comincia l'altro?
      ♦ Es.: il sistema di gestione della memoria ha
        bisogno dei driver del disco, per poter
        implementare lo “swapping”
          – driver disco in uno strato più basso
            rispetto alla gestione della memoria
  – l'efficienza di un sistema stratificato è minore
    rispetto ad un sistema a strutttura semplice
      ♦ aggravio computazionale legato alle di
        chiamate funzioni fra strati

                                                       27
UNIX
                           utenti                        User
                                                        space
                interprete comandi, comandi
                    compilatori, interpreti
                      librerie di sistema
                                                             Kernel
                  interfaccia syscall/kernel
                                               scheduling CPU space
       segnali             file system
 gestione terminali     avvicendamento sostituzione pagine
sistema I/O caratteri sistema I/O blocchi      demand paging
   driver terminali   driver nastri, dischi memoria virtuale
              interfaccia kernel/architettura fisica

controller terminali                           controller mem.
                       controller disp.
     terminali                                    memoria
                        nastri, dischi


                                                                 28
UNIX
• Due parti: kernel e programmi di sistema
   – KERNEL
      ♦ interfaccia system call
      ♦ system call, funzionalità di basso livello
      ♦ interfaccia architettura fisica
   – struttura tendente alla stratificazione
      ♦ prime versioni di UNIX ancora semplici
      ♦ oggi UNIX è più stratificato
          –approccio progettuale top-down
• Per una “panoramica” di tutti I SO UNIX mai
  esistiti:
  http://upload.wikimedia.org/wikipedia/commons/7/77/U
  nix_history-simple.svg                                 29
OS/2
                                                      User
                                                     space
Applicazione       Applicazione           Applicazione


 Application Program Interface (API) Estensione (API)

  sottosistema      sottosistema          sottosistema

                                    gestione della memoria
 Kernel
                        kernel         dispatching dei task
 space                              gestione dei dispositivi


  device driver     device driver         device driver

                                                               30
OS/2




Il desktop grafico di OS/2
                             31
Macrokernel
• Detto anche kernel monolitico
• L'intero insieme dei servizi (stratificato o no)
  esegue in kernel mode
• L'intero insieme delle applicazioni (stratificato
  o no) esegue in user mode
• Vantaggi:
  – Esecuzione dei servizi estremamente veloce
• Svantaggi:
  – Marcata fragilità (un crash interrompe il
    funzionamento della macchina)
  – Dimensione del kernel enorme
• Esempi:
  – Unix-like kernels, Linux, BSD, AIX                32
Macrokernel: moduli
• Per mitigare gli svantaggi, parecchi SO hanno
  introdotto il meccanismo dei moduli caricabili
  (loadable modules)
  – Solo la funzionalità strettamente necessaria del
    kernel viene caricata all'avvio
  – Le funzionalità superflue possono essere
    caricate dinamicamente, successivamente
• Vantaggi:
  – La dimensione di base del kernel diminuisce
    sensibilmente
  – Un crash di un modulo non pregiudica il
    funzionamento del sistema

                                                       33
Microkernel
• Con l'aumentare dei servizi, il kernel dei
  sistemi UNIX è cresciuto notevolmente
  – problemi enormi di manutenzione del codice
  – Alta probabilità di “crash” con brusca
    interruzione del funzionamento del SO
• IDEA: concepire la maggior parte dei
  servizi come applicazioni
• Fine anni '80: nascita di Mach
  – Carnegie Mellon University
  – Prima implementazione di microkernel

                                                 34
Microkernel
• Con l'aumentare dei servizi, il kernel dei
  sistemi UNIX è cresciuto notevolmente
   – problemi enormi di manutenzione del codice
   – Alta probabilità di “crash” con brusca
      interruzione del funzionamento del SO
• IDEA: concepire la maggior parte dei servizi
  come applicazioni cooperanti tramite scambio
  messaggi
• Il kernel implementa il minimo indispensabile
• Fine anni '80: nascita di Mach
   – Carnegie Mellon University
   – Prima implementazione di microkernel
                                                  35
Microkernel
• Si rimuove dal kernel tutto ciò che non è
  strettamente essenziale
• Tutto ciò che non è strettamente
  indispensabile è implementato come
  applicativo server (demone) utente
• Cosa rimane nel kernel?
  – meccanismo di comunicazione a messaggi
    fra le varie componenti del sistema (Inter
    Process Comunication, IPC)
  – gestione processi
  – gestione memoria
                                                 36
Microkernel
• Vantaggi:
  – facilità di estensione del SO
      ♦ si scrive un nuovo applicativo server
      ♦ il kernel NON deve essere modificato
  – il kernel è ridotto all'osso
      ♦ modifiche ridotte e localizzate

• Svantaggi:
  – meno performante di un kernel monolitico
• Implementazioni:
  – Tru64 UNIX (Digital), Mach, MacOS, Minix

                                                37
Macrokernel vs. Microkernel
   Macrokernel                        Microkernel
(kernel monolitico)

   Applicazione
                                 User
                                 mode
Virtual File System
 IPC, File System
                               Applicazione Unix Device File
                                   IPC      server driver server
   Scheduler
 Memoria virtuale
                      Kernel             IPC di base
                                       Memoria virtuale
                      mode
  Device drivers                          Scheduler

                                         Hardware
    Hardware

                                                                   38
Minix
• Sistema operativo UNIX-like, progettato da
  Andrew S. Tanenbaum (1987)
• Oggi siamo alla versione 3 (2005-2008)
• Approccio microkernel:
  – 5K linee di codice (Minix v3)
  – 2.5M linee di codice (Linux)
  – 5M linee di codice (Windows XP)
• Scritto per sistemi Intel a 32 bit (almeno 386)
  – Port per PowerPC ed ARM




                                                    39
Minix: obiettivi
• Affidabilità
  – ridurre l'impatto di un crash di sistema
  – riattivare automaticamente parti difettose
  – sviluppo di nuovi driver “a caldo”
• Prestazioni
  – ridurre la perdita di prestazioni rispetto ai kernel
    monolitici
• Sviluppo
  – modularità




                                                           40
Minix: design
• Kernel: servizi essenziali per instanziare e far
  parlare tra loro componenti distinti
  –   Gestione interruzioni
  –   Gestione memoria
  –   Scambio messaggi (IPC) fra componenti
  –   Gestione orologio di sistema (clock driver)
  –   Invocazione servizi messi a disposizione dal
      kernel (system task): copia dati kernel<->user,
      chiamate I/O dirette alle periferiche
• User: driver periferiche, servizi, applicazioni
  – Device driver dischi, audio, rete, stampante
  – Gestione file, processi, rete, fault tolerance
  – Shell, editor, browser                              41
Minix: design
User                                       ...
         bash       vim      make                  lynx     Apps
mode

                                 Chiamate di sistema, messaggi

    File     Process      Network       Reinc.     Data     Servizi
   server    manager       server       server     store

                             Chiamate di kernel, messaggi

    SATA        Audio                  SCSI       Printer
                           ...                              Driver
    driver      driver                 driver     driver

                             Chiamate di kernel, messaggi

                                  Clock          System
Kernel                                                      Kernel
          IRQ, MMU, IPC
mode                              driver          task
                                                                      42
Minix: comunicazione fra processi
• Aree di memoria dei processi rigorosamente
  separate
• La comunicazione fra processi diverse avviene
  tramite scambio di messaggi di lunghezza
  fissa
• Lo scambio di messaggi è sincrono:
  – Il mittente si blocca se nessuno può ricevere
  – Il ricevente si blocca se nessuno può inviare
  – Il kernel copia il messaggio dall'area dati
    mittente all'area dati ricevente



                                                    43
Minix: comunicazione processi/kernel
• Avviene tramite chiamate di sistema, effettuate
  dai processi ai servizi
• I servizi inviano messaggi ai driver
• I driver effettuano le necessarie chiamate di
  kernel
• Il kernel soddisfa la richiesta
• Il risultato si propaga per i livelli superiori
  attraverso messaggi di risposta




                                                    44
Minix: affidabilità
• Ottenuta tramite due servizi:
  – Reincarnation server
  – Data store
• Reincarnation server:
  – Controlla se un componente crasha
  – Riavvia il componente, se necessario, in
    maniera trasparente alle applicazioni
  – Se non lo può riavviare, notifica l'applicazione
  – Registra le operazioni andate male
  – Non altera il comportamento dei programmi
• Data store:
  – Minuscolo database di configurazioni
  – Ciascun processo ci scrive quello che vuole        45
Minix




        46
Hybrid kernel
• Combina gli aspetti positivi dei microkernel e
  dei macrokernel
• Tutti i device driver girano in kernel mode
• Per il resto, simile ad un microkernel
• Vantaggi:
  – Esecuzione driver più veloce (no messaggi)
  – Crash servizi non interrompe la macchina
• Svantaggi:
  – È comunque più lento di un macrokernel
  – È comunque meno robusto di un microkernel
• Esempi:
  – Windows NT, Windows XP, Plan 9
                                                   47
Macro vs. Micro vs. Hybrid kernel
   Macrokernel               Microkernel            Hybrid kernel
(kernel monolitico)



  Applicazione              Applicazione            Applicazione




      VFS                                          Unix        File
                                                  server      server
                      Appl. Unix Device File
       IPC
                       IPC server driver server
  File System
                                                    Appl.   Device
  Scheduler                                          IPC    driver
Memoria virtuale
                            IPC di base              IPC di base
                          Memoria virtuale         Memoria virtuale
 Device drivers
                             Scheduler                Scheduler

                             Hardware                 Hardware
   Hardware
  User space
                                                                       48
  Kernel space
Windows XP
•   Sistema operativo Microsoft (2001)
•   Successore di Windows 2000
•   Fondato sull'architettura di Windows NT
•   Diverse versioni:
    – Home Edition: Media player, Messenger,
      Wireless capabilities, Firewall
    – Professional Edition: Home + Remote desktop,
      accesso “disconnesso” a file remoti, SMP,
      amministrazione gruppi, Win Server Domains
    – Professional x64 Edition: Professional +
      supporto 64 bit
    – Media Center Edition: Home + SMP, televisione
    – Tablet Edition: versione per Tablet PC          49
Windows XP: aggiornamenti
• La Microsoft rilascia, occasionalmente, un
  insieme incrementale di modifiche da applicare
  al SO (Service Pack)
• Service Pack 1: settembre 2002
  – Random fixes, .NET, Messenger, USB 2.0
• Service Pack 2: agosto 2004
  – SP 1 + Security, Wi-Fi criptato (WPA), pop-up
    blocker, Bluetooth, Firewall, Security Center
• Service Pack 3: aprile 2008
  – SP2 + random fixes



                                                    50
Windows XP: HAL
• Windows XP è stato progettato per essere
  eseguito su (quasi) ogni tipologia di hardware
  esistente
• Al posto di riscrivere una versione di XP
  differente per ciascuna piattaforma hw, è stato
  creato HAL
• HAL: Hardware Abstraction Layer
  – Software frapposto tra Windows XP e
    l'hardware
  – XP non conosce nulla dell'hardware; lascia
    gestire il compito ad HAL
  – Ciascun utilizzo di hardware viene delegata ad
    HAL
                                                     51
Windows XP: Kernel
• I servizi di HAL sono sfruttati dal Kernel
• Kernel:
  – Componenti scritti da Microsoft (servizi)
  – Componenti scritti dai produttori di hw (device
    driver)
     ♦ Devono passare dei “test rigorosi”

• Il cuore del kernel è il modulo “Microkernel”
  – Molto compatto
  – Sistema di IPC per gli Executive Services




                                                      52
Windows XP: Kernel
• Executive Services: servizi forniti dal kernel
  – Analogo dei server di Minix
• Forniscono servizi alle applicazioni
  – Disegno della GUI sullo schermo
  – Controllo permessi
  – Disk I/O
• Sfruttano il servizio di messaggistica del
  Microkernel
• Microkernel + Executive Services =
  Windows XP kernel


                                                   53
Windows XP: API
• Windows XP fornisce 2 API:
  – Win32 API: permette ai programmatori di
    scrivere programmi a 32 bit che girano in User
    mode
  – Native API: permette ai processi/servizi che
    girano in User mode di invocare servizi del
    kernel
     ♦ Utilizzata dalla Win32 API

• Le API di Windows sono memorizzate in
  librerie dinamiche



                                                     54
Windows XP: DLL
• DLL: Dynamic Link Library
• Librerie di funzioni eseguibili/dati che può
  essere utilizzata da una applicazione
  – Funzioni: user32.dll, kernel32.dll
  – Dati: shell32.dll (icone)
• L'applicazione si “collega” alla DLL nel
  momento stesso in cui necessita della
  funzione
  – Non a tempo di compilazione, bensì di
    esecuzione
• Solitamente, hanno l'estensione .dll

                                                 55
Windows XP: DLL
• Le DLL possono essere utilizzate da più
  applicazioni simultaneamente
    – Condivisione di codice
    – CreateWindow() in user32.dll
• Alcune DLL sono installate con Windows XP
  ed a disposizione di tutte le applicazioni
    – C:windows contiene circa 2000 DLL
    – La maggior parte in c:windowssystem32
    Altre DLL sono installate con le applicazioni
●


    – msp232.dll fornisce funzionalità di spellcheck
      per Word, Excel, Power Point
    – Installata con Microsoft Office
                                                       56
Windows XP: DLL
• Esistono quattro DLL principali
• ntdll.dll: Native API (funzioni a livello kernel)
  – Utilizzate da Win32 API per interagire con l'hw
• kernel32.dll:
  – I/O su file
  – gestione dei thread
• user32.dll:
  – Gestione delle finestre
  – Gestione degli eventi (ad es., mouse click)
• gdi32.dll:
  – Funzioni di disegno finestre

                                                      57
Windows XP: design
        Applicazione            Applicazione               Applicazione
          Win32                   Win32                      Win32

 User                               Win32
space                                API

                 Security          Virtual
          I/O               IPC            Process  P&P     Power Window
                Reference         Memory
        Manager           manager          Manager Manager Manager Manager
                 Monitor          Manager


Kernel                            Object Manager
space                                                          Graphics
                                                                Device
             File            Device                             Drivers
                                             Microkernel
           systems           Drivers


                          Hardware Abstraction Layer


                                    Hardware
                                                                             58
Windows XP: GUI




                  59

More Related Content

What's hot

Scheda Madre
Scheda MadreScheda Madre
Scheda Madreteoimpro
 
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
 
Elementidi informatica
Elementidi informaticaElementidi informatica
Elementidi informaticagiu89
 
Architettura degli Elaboratori
Architettura degli ElaboratoriArchitettura degli Elaboratori
Architettura degli Elaboratorisviciu
 
Architettura degli elaboratori
Architettura degli elaboratoriArchitettura degli elaboratori
Architettura degli elaboratoriservetti
 
Introduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleIntroduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleMajong DevJfu
 
Linux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneLinux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneFulvio Corno
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode LinuxMajong DevJfu
 
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
 
Introduzione ai Sistemi Operativi
Introduzione ai Sistemi OperativiIntroduzione ai Sistemi Operativi
Introduzione ai Sistemi OperativiorestJump
 
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
 
Gestione dischi - File system - LVM
 Gestione dischi - File system - LVM Gestione dischi - File system - LVM
Gestione dischi - File system - LVMFulvio Corno
 
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
 
La storia dei sistemi operativi
La storia dei sistemi operativiLa storia dei sistemi operativi
La storia dei sistemi operativizsimo23
 
From Scratch To Network - User mode linux
From Scratch To Network - User mode linuxFrom Scratch To Network - User mode linux
From Scratch To Network - User mode linuxMajong DevJfu
 
Tecnologie informatiche
Tecnologie informaticheTecnologie informatiche
Tecnologie informaticheorestJump
 

What's hot (20)

Scheda Madre
Scheda MadreScheda Madre
Scheda Madre
 
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
 
Elementidi informatica
Elementidi informaticaElementidi informatica
Elementidi informatica
 
Architettura degli Elaboratori
Architettura degli ElaboratoriArchitettura degli Elaboratori
Architettura degli Elaboratori
 
Hardware3
Hardware3Hardware3
Hardware3
 
Architettura degli elaboratori
Architettura degli elaboratoriArchitettura degli elaboratori
Architettura degli elaboratori
 
Introduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleIntroduzione Alla Uml Mconsole
Introduzione Alla Uml Mconsole
 
Software7
Software7Software7
Software7
 
Linux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneLinux Kernel, driver e compilazione
Linux Kernel, driver e compilazione
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode Linux
 
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
 
Introduzione ai Sistemi Operativi
Introduzione ai Sistemi OperativiIntroduzione ai Sistemi Operativi
Introduzione ai Sistemi Operativi
 
Sistemi operativi
Sistemi operativiSistemi operativi
Sistemi operativi
 
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
 
Gestione dischi - File system - LVM
 Gestione dischi - File system - LVM Gestione dischi - File system - LVM
Gestione dischi - File system - LVM
 
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
 
La storia dei sistemi operativi
La storia dei sistemi operativiLa storia dei sistemi operativi
La storia dei sistemi operativi
 
From Scratch To Network - User mode linux
From Scratch To Network - User mode linuxFrom Scratch To Network - User mode linux
From Scratch To Network - User mode linux
 
Tecnologie informatiche
Tecnologie informaticheTecnologie informatiche
Tecnologie informatiche
 
LTSP
LTSPLTSP
LTSP
 

Viewers also liked

Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su LinuxMajong DevJfu
 
esercizio sigda n 11
esercizio sigda n 11esercizio sigda n 11
esercizio sigda n 11Majong DevJfu
 
5 Trasporto Affidabile Teoria
5 Trasporto Affidabile Teoria5 Trasporto Affidabile Teoria
5 Trasporto Affidabile TeoriaMajong DevJfu
 
4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 ColorMajong DevJfu
 
Linguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendLinguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendMajong DevJfu
 
Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Majong DevJfu
 
2 sistemi informativi d azienda
2 sistemi informativi d azienda2 sistemi informativi d azienda
2 sistemi informativi d aziendaMajong 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
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: FunzioniMajong DevJfu
 
Linguaggi Formali e Compilazione: Automi
Linguaggi Formali e Compilazione: AutomiLinguaggi Formali e Compilazione: Automi
Linguaggi Formali e Compilazione: AutomiMajong DevJfu
 

Viewers also liked (20)

Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su Linux
 
3 H2 N Parte3
3 H2 N Parte33 H2 N Parte3
3 H2 N Parte3
 
esercizio sigda n 11
esercizio sigda n 11esercizio sigda n 11
esercizio sigda n 11
 
5 Trasporto Affidabile Teoria
5 Trasporto Affidabile Teoria5 Trasporto Affidabile Teoria
5 Trasporto Affidabile Teoria
 
4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color
 
Linguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendLinguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: Frontend
 
Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86
 
8 Www2009 Parte1
8 Www2009 Parte18 Www2009 Parte1
8 Www2009 Parte1
 
2 sistemi informativi d azienda
2 sistemi informativi d azienda2 sistemi informativi d azienda
2 sistemi informativi d azienda
 
E6 Concorre
E6 ConcorreE6 Concorre
E6 Concorre
 
6 Dns Parte2
6 Dns Parte26 Dns Parte2
6 Dns Parte2
 
9 Ftp Telnet Email
9 Ftp Telnet Email9 Ftp Telnet Email
9 Ftp Telnet Email
 
Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07
 
esercizio sigda n 8
esercizio sigda n 8esercizio sigda n 8
esercizio sigda n 8
 
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
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: Funzioni
 
Linguaggi Formali e Compilazione: Automi
Linguaggi Formali e Compilazione: AutomiLinguaggi Formali e Compilazione: Automi
Linguaggi Formali e Compilazione: Automi
 
Py a5 python-text
Py a5 python-textPy a5 python-text
Py a5 python-text
 
3 Sigda
3 Sigda3 Sigda
3 Sigda
 

Similar to Sistemi Operativi: Struttura - Lezione 04

Similar to Sistemi Operativi: Struttura - Lezione 04 (20)

Struttura dell'elaboratore (sample)
Struttura dell'elaboratore (sample)Struttura dell'elaboratore (sample)
Struttura dell'elaboratore (sample)
 
Sistemi operativi
Sistemi operativiSistemi operativi
Sistemi operativi
 
Modulo1 lezione1
Modulo1 lezione1Modulo1 lezione1
Modulo1 lezione1
 
Lotus Foundations Start - Enzo Stanzione
Lotus Foundations Start - Enzo StanzioneLotus Foundations Start - Enzo Stanzione
Lotus Foundations Start - Enzo Stanzione
 
Corso base introduzione pc
Corso base introduzione pcCorso base introduzione pc
Corso base introduzione pc
 
La struttura dell' elaboratore
La struttura dell' elaboratoreLa struttura dell' elaboratore
La struttura dell' elaboratore
 
Tecnologie Di Base
Tecnologie Di BaseTecnologie Di Base
Tecnologie Di Base
 
Cpu
CpuCpu
Cpu
 
Cpu Abacus
Cpu AbacusCpu Abacus
Cpu Abacus
 
Cpu abacus
Cpu abacusCpu abacus
Cpu abacus
 
Sistemi Operativi SO
Sistemi Operativi SOSistemi Operativi SO
Sistemi Operativi SO
 
Lotus Foundations Start 1.0 Italian Version
Lotus Foundations Start 1.0 Italian VersionLotus Foundations Start 1.0 Italian Version
Lotus Foundations Start 1.0 Italian Version
 
Struttura computer
Struttura computerStruttura computer
Struttura computer
 
Modulo 1 ECDL
Modulo 1 ECDLModulo 1 ECDL
Modulo 1 ECDL
 
Ti base 2020
Ti base 2020Ti base 2020
Ti base 2020
 
Osiris Operating system
Osiris Operating systemOsiris Operating system
Osiris Operating system
 
HARDWARE & SOFTWARE
HARDWARE & SOFTWAREHARDWARE & SOFTWARE
HARDWARE & SOFTWARE
 
Ecdl Modulo 1 Concetti teorici di base
Ecdl Modulo 1 Concetti teorici di baseEcdl Modulo 1 Concetti teorici di base
Ecdl Modulo 1 Concetti teorici di base
 
Ti base 2020b
Ti base 2020bTi base 2020b
Ti base 2020b
 
Slide trentin
Slide trentinSlide trentin
Slide trentin
 

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: Struttura - Lezione 04

  • 1. API e ABI • Application Program Interface (API) – Insieme delle regole che definiscono l'interfaccia del SO, in termini di funzioni utilizzabili • Application Binary Interface (ABI) – Insieme delle regole che definiscono l'interazione di un programma con le librerie • Obiettivi: – Garantire la riproducibilità del processo di compilazione su diverse istanze dello stesso SO (API) – garantire la compatibilità di comportamento di un programma fra diverse istanze dello stesso SO (ABI) 1
  • 2. Tassonomia • Su quali strutture si mappano i programmi ora visti? • Strutture di SO reali – Struttura semplice, struttura stratificata – Macrokernel, Microkernel, Hybrid kernel 2
  • 3. Tassonomia • Tutte le tassonomie prevedono: – User space: insieme degli indirizzi in cui sono memorizzati i software che girano con privilegi ridotti – Kernel space: insieme degli indirizzi in cui sono memorizzati i software che girano con privilegi pieni – User mode: modalità con cui il SO esegue il codice con privilegi ridotti – Kernel mode: modalità con cui il SO esegue il codice con privilegi pieni 3
  • 4. Struttura semplice • In realtà, è una assenza di struttura vera e propria – sistemi “giocattolo” – massima funzionalità nel minimo spazio • Due elementi principali: – kernel (gestione interruzioni, driver) – programmi di sistema e applicativi • Esempi: – MS-DOS – Primi UNIX 4
  • 5. MS DOS: caratteristiche • Microsoft Disk Operating System – Famiglia di sistemi operativi per PC IBM compatibili (1981-1995) • Caratteristiche: – singolo utente – singolo task – interfaccia semplice da linea di comando • Funzioni del kernel non eseguibili concorrentemente (non rientranti) – una volta invocato un servizio di sistema, non può essere interrotto 5
  • 6. MS DOS e IBM PC: caratteristiche • I primi processori IBM (8088) potevano indirizzare 2^20=1024KB – Primi 640 KB: RAM programmi (conventional memory) – Ultimi 384 KB: dedicati all'hardware (upper memory area) • “640K is more memory than anyone will ever need”, Bill Gates, 1981 – Ovviamente, ai programmatori 640KB non bastarono più e cominciarono ad usare anche gli ultimi 384KB – Bisogno di aumentare la RAM disponibile – Bisogno di mantenere la compatibilità hw/sw 6
  • 7. MS DOS e IBM PC: caratteristiche • Intel 80286 (1982): in grado di indirizzare 16MB di memoria • Memoria sopra il primo MB: extended memory – gestita tramite il driver himem.sys • Primi 64KB (-16 byte) della extended memory: high memory – Utilizzati per estendere il DOS 7
  • 8. MS DOS e IBM PC: caratteristiche • Intel 80286 (1982): in grado di indirizzare 16MB di memoria • Due modalità di uso: real mode e protected mode • Real mode: – equivalente ad un vecchio 8086/8088 – Indirizzamento a 20 bit • Protected mode: – Utilizzo di una Memory Management Unit (MMU) per l'indirizzamento dei 16MB 8
  • 9. MS DOS e IBM PC: caratteristiche • Intel 80386 (1985): in grado di indirizzare 4GB di memoria (extended memory) • Real mode: – equivalente ad un vecchio 8086/8088 – Indirizzamento a 20 bit • Protected mode: – Utilizzo di una Memory Management Unit (MMU) per l'indirizzamento dei 4GB – Paginazione • Virtual 8086 mode: – Real mode + modello di segmentazione di un 8086 + paginazione 9
  • 10. MS DOS: chiamate di sistema • Invocabili tramite l'eccezione 21H (int 21H, int 0x21) • Il registro %eax contiene l'identificatore della chiamata di sistema • Categorie: – Standard character device I/O – Memory management – Process management – File and directory management – Miscellaneous 10x
  • 11. MS DOS: programmi TSR • Una chiamata di sistema (Terminate and Stay Resident, TSR) permette di ritornare il controllo al sistema, mantenendo in memoria il programma che la invoca • Il programma torna in esecuzione sulla base di eventi esterni • Meccanismo primordiale per: – multitasking (forzato da eventi) – server – software gestione di dispositivi hardware 11
  • 12. MS DOS: programmi TSR • Un programma scrive il proprio indirizzo di partenza in uno o più elementi del vettore delle interruzioni • Quando un programma vuole interrompere il proprio funzionamento, invoca l'eccezione relativa al TSR: – int 21H (prime versioni, limite di 64KB) – int 27H (nessun limite di memoria, exit code) • Meccanismo ideale per creare un virus – si impostano i vettori di interruzione relativi all'I/O alla routine principale del virus – ciascuna richiesta di I/O allega il virus al file 12
  • 13. MS DOS: componenti • Il sistema MS DOS è composto da tre parti principali: BIOS, kernel, shell • BIOS: Basic Input/Output System – circuito integrato (ROM, EPROM, EEPROM) contenente I software di gestione delle periferiche (device driver) – funzioni di lettura/scrittura invocabili tramite eccezioni (trap) o tramite il file io.sys – fornito dalle case produttrici delle schede madri, piuttosto che dalla Microsoft – occupa gli indirizzi vicini al 1MB – solitamente, è proprietario; è in corso di sviluppo un “Free BIOS” da parte della FSF 13
  • 14. MS DOS: componenti Integrato AMIBIOS Configurazione BIOS 14
  • 15. MS DOS: componenti • Il sistema MS DOS è composto da tre parti principali: BIOS, kernel, shell • kernel: contiene la parte del sistema operativo indipendente dalla macchina – memorizzato nel file msdos.sys – gestione dei processi – gestione della memoria – gestione del file system – smistamento delle chiamate di sistema 15
  • 16. MS DOS: componenti • Il sistema MS DOS è composto da tre parti principali: BIOS, kernel, shell • shell: interfaccia a linea di comando – memorizzata nel file command.com – comandi di base (builtin) • Due parti: residente e non residente • Residente: – memorizzata subito dopo msdos.sys – gestore interruzioni 22H (terminate address), 23H (Ctrl-Break Handler), 24H (Critical Handler) • Non residente: – memorizzata al termine della memoria – prompt, legge/interpreta/esegue i comandi 16
  • 17. MS DOS: componenti La shell MSDOS 17
  • 18. MS-DOS: struttura User Programmi di applicazione space Programmi di sistema residenti Kernel Driver dei dispositivi space MS-DOS Driver dei dispositivi ROM BIOS Hardware 18
  • 19. MS DOS: inizializzazione e configurazione • Due obiettivi: configurazione device driver e script di avvio del sistema – sysinit: programma che avvia il SO • Primo passo: sysinit carica config.sys – allocazione buffer cache – inizializzazione device driver – impostazione code page • Secondo passo: sysinit carica command.com • Terzo passo: command.com legge lo script di avvio autoexec.bat 19
  • 20. MS DOS: memoria secondaria • Rappresentazione tramite file e directory • Gerarchia di directory (albero) • Formato nomi file: 8.3 – 8 caratteri per il nome, 3 per l'estensione – case insensitive • Presenza di una unica “directory di lavoro” • Redirezione stdin (<) e stdout (>) 20
  • 21. MS DOS: gestione dispositivi • I dispositivi sono identificati tramite sigle terminate dal carattere “:” – COM1,...,COM4: le quattro porte seriali – CON: la console di lavoro (shell) – LPT1, ..., LPT3: stampanti – PRN: identico ad LPT1 – NUL: nessun dispositivo (scarto) – A: primo floppy (3 ½) – B: secondo floppy (3½, 5¼) – C: hard disk 21
  • 22. Struttura stratificata • Le funzionalità fornite dal SO vengono suddivise in strati – ciascun strato implementa le proprie funzionalità basandosi su quelle definite negli strati inferiori – strato 0: strato fisico – strato n: interfaccia utente 22
  • 23. Struttura stratificata Uno strato di sistema operativo Le operazioni dello strato m fanno strato m uso delle funzionalità definite nello strato m-1. strato m-1 fj 23
  • 24. Struttura stratificata Uno strato di sistema operativo Lo strato m definisce anche strato m operazioni nascoste, non visibili agli strati superiori. Tali operazioni sono di supporto. strato m-1 gk fj 24
  • 25. Struttura stratificata Uno strato di sistema operativo Le funzionalità dello strato m+1 strato m utilizzano le funzionalità definite nello strato m. Non sono visibili le funzioni di supporto. strato m-1 gk strato m+1 fj 25
  • 26. Struttura stratificata • Vantaggi: modularità – ciascuno strato usa funzionalità dei livelli inferiori (idealmente, quello direttamente inferiore) – il primo strato può essere progettato senza considerare il resto del sistema – una volta implementato e corretto il primo strato, il secondo si appoggia sulle funzioni del primo ♦ approccio a guscio (shell) ♦ incrementale, più semplice da correggere – ogni strato nasconde a quelli superiori i dettagli implementativi 26
  • 27. Struttura stratificata • Svantaggi: – come definisco esattamente gli strati? ♦ dove finisce uno e comincia l'altro? ♦ Es.: il sistema di gestione della memoria ha bisogno dei driver del disco, per poter implementare lo “swapping” – driver disco in uno strato più basso rispetto alla gestione della memoria – l'efficienza di un sistema stratificato è minore rispetto ad un sistema a strutttura semplice ♦ aggravio computazionale legato alle di chiamate funzioni fra strati 27
  • 28. UNIX utenti User space interprete comandi, comandi compilatori, interpreti librerie di sistema Kernel interfaccia syscall/kernel scheduling CPU space segnali file system gestione terminali avvicendamento sostituzione pagine sistema I/O caratteri sistema I/O blocchi demand paging driver terminali driver nastri, dischi memoria virtuale interfaccia kernel/architettura fisica controller terminali controller mem. controller disp. terminali memoria nastri, dischi 28
  • 29. UNIX • Due parti: kernel e programmi di sistema – KERNEL ♦ interfaccia system call ♦ system call, funzionalità di basso livello ♦ interfaccia architettura fisica – struttura tendente alla stratificazione ♦ prime versioni di UNIX ancora semplici ♦ oggi UNIX è più stratificato –approccio progettuale top-down • Per una “panoramica” di tutti I SO UNIX mai esistiti: http://upload.wikimedia.org/wikipedia/commons/7/77/U nix_history-simple.svg 29
  • 30. OS/2 User space Applicazione Applicazione Applicazione Application Program Interface (API) Estensione (API) sottosistema sottosistema sottosistema gestione della memoria Kernel kernel dispatching dei task space gestione dei dispositivi device driver device driver device driver 30
  • 32. Macrokernel • Detto anche kernel monolitico • L'intero insieme dei servizi (stratificato o no) esegue in kernel mode • L'intero insieme delle applicazioni (stratificato o no) esegue in user mode • Vantaggi: – Esecuzione dei servizi estremamente veloce • Svantaggi: – Marcata fragilità (un crash interrompe il funzionamento della macchina) – Dimensione del kernel enorme • Esempi: – Unix-like kernels, Linux, BSD, AIX 32
  • 33. Macrokernel: moduli • Per mitigare gli svantaggi, parecchi SO hanno introdotto il meccanismo dei moduli caricabili (loadable modules) – Solo la funzionalità strettamente necessaria del kernel viene caricata all'avvio – Le funzionalità superflue possono essere caricate dinamicamente, successivamente • Vantaggi: – La dimensione di base del kernel diminuisce sensibilmente – Un crash di un modulo non pregiudica il funzionamento del sistema 33
  • 34. Microkernel • Con l'aumentare dei servizi, il kernel dei sistemi UNIX è cresciuto notevolmente – problemi enormi di manutenzione del codice – Alta probabilità di “crash” con brusca interruzione del funzionamento del SO • IDEA: concepire la maggior parte dei servizi come applicazioni • Fine anni '80: nascita di Mach – Carnegie Mellon University – Prima implementazione di microkernel 34
  • 35. Microkernel • Con l'aumentare dei servizi, il kernel dei sistemi UNIX è cresciuto notevolmente – problemi enormi di manutenzione del codice – Alta probabilità di “crash” con brusca interruzione del funzionamento del SO • IDEA: concepire la maggior parte dei servizi come applicazioni cooperanti tramite scambio messaggi • Il kernel implementa il minimo indispensabile • Fine anni '80: nascita di Mach – Carnegie Mellon University – Prima implementazione di microkernel 35
  • 36. Microkernel • Si rimuove dal kernel tutto ciò che non è strettamente essenziale • Tutto ciò che non è strettamente indispensabile è implementato come applicativo server (demone) utente • Cosa rimane nel kernel? – meccanismo di comunicazione a messaggi fra le varie componenti del sistema (Inter Process Comunication, IPC) – gestione processi – gestione memoria 36
  • 37. Microkernel • Vantaggi: – facilità di estensione del SO ♦ si scrive un nuovo applicativo server ♦ il kernel NON deve essere modificato – il kernel è ridotto all'osso ♦ modifiche ridotte e localizzate • Svantaggi: – meno performante di un kernel monolitico • Implementazioni: – Tru64 UNIX (Digital), Mach, MacOS, Minix 37
  • 38. Macrokernel vs. Microkernel Macrokernel Microkernel (kernel monolitico) Applicazione User mode Virtual File System IPC, File System Applicazione Unix Device File IPC server driver server Scheduler Memoria virtuale Kernel IPC di base Memoria virtuale mode Device drivers Scheduler Hardware Hardware 38
  • 39. Minix • Sistema operativo UNIX-like, progettato da Andrew S. Tanenbaum (1987) • Oggi siamo alla versione 3 (2005-2008) • Approccio microkernel: – 5K linee di codice (Minix v3) – 2.5M linee di codice (Linux) – 5M linee di codice (Windows XP) • Scritto per sistemi Intel a 32 bit (almeno 386) – Port per PowerPC ed ARM 39
  • 40. Minix: obiettivi • Affidabilità – ridurre l'impatto di un crash di sistema – riattivare automaticamente parti difettose – sviluppo di nuovi driver “a caldo” • Prestazioni – ridurre la perdita di prestazioni rispetto ai kernel monolitici • Sviluppo – modularità 40
  • 41. Minix: design • Kernel: servizi essenziali per instanziare e far parlare tra loro componenti distinti – Gestione interruzioni – Gestione memoria – Scambio messaggi (IPC) fra componenti – Gestione orologio di sistema (clock driver) – Invocazione servizi messi a disposizione dal kernel (system task): copia dati kernel<->user, chiamate I/O dirette alle periferiche • User: driver periferiche, servizi, applicazioni – Device driver dischi, audio, rete, stampante – Gestione file, processi, rete, fault tolerance – Shell, editor, browser 41
  • 42. Minix: design User ... bash vim make lynx Apps mode Chiamate di sistema, messaggi File Process Network Reinc. Data Servizi server manager server server store Chiamate di kernel, messaggi SATA Audio SCSI Printer ... Driver driver driver driver driver Chiamate di kernel, messaggi Clock System Kernel Kernel IRQ, MMU, IPC mode driver task 42
  • 43. Minix: comunicazione fra processi • Aree di memoria dei processi rigorosamente separate • La comunicazione fra processi diverse avviene tramite scambio di messaggi di lunghezza fissa • Lo scambio di messaggi è sincrono: – Il mittente si blocca se nessuno può ricevere – Il ricevente si blocca se nessuno può inviare – Il kernel copia il messaggio dall'area dati mittente all'area dati ricevente 43
  • 44. Minix: comunicazione processi/kernel • Avviene tramite chiamate di sistema, effettuate dai processi ai servizi • I servizi inviano messaggi ai driver • I driver effettuano le necessarie chiamate di kernel • Il kernel soddisfa la richiesta • Il risultato si propaga per i livelli superiori attraverso messaggi di risposta 44
  • 45. Minix: affidabilità • Ottenuta tramite due servizi: – Reincarnation server – Data store • Reincarnation server: – Controlla se un componente crasha – Riavvia il componente, se necessario, in maniera trasparente alle applicazioni – Se non lo può riavviare, notifica l'applicazione – Registra le operazioni andate male – Non altera il comportamento dei programmi • Data store: – Minuscolo database di configurazioni – Ciascun processo ci scrive quello che vuole 45
  • 46. Minix 46
  • 47. Hybrid kernel • Combina gli aspetti positivi dei microkernel e dei macrokernel • Tutti i device driver girano in kernel mode • Per il resto, simile ad un microkernel • Vantaggi: – Esecuzione driver più veloce (no messaggi) – Crash servizi non interrompe la macchina • Svantaggi: – È comunque più lento di un macrokernel – È comunque meno robusto di un microkernel • Esempi: – Windows NT, Windows XP, Plan 9 47
  • 48. Macro vs. Micro vs. Hybrid kernel Macrokernel Microkernel Hybrid kernel (kernel monolitico) Applicazione Applicazione Applicazione VFS Unix File server server Appl. Unix Device File IPC IPC server driver server File System Appl. Device Scheduler IPC driver Memoria virtuale IPC di base IPC di base Memoria virtuale Memoria virtuale Device drivers Scheduler Scheduler Hardware Hardware Hardware User space 48 Kernel space
  • 49. Windows XP • Sistema operativo Microsoft (2001) • Successore di Windows 2000 • Fondato sull'architettura di Windows NT • Diverse versioni: – Home Edition: Media player, Messenger, Wireless capabilities, Firewall – Professional Edition: Home + Remote desktop, accesso “disconnesso” a file remoti, SMP, amministrazione gruppi, Win Server Domains – Professional x64 Edition: Professional + supporto 64 bit – Media Center Edition: Home + SMP, televisione – Tablet Edition: versione per Tablet PC 49
  • 50. Windows XP: aggiornamenti • La Microsoft rilascia, occasionalmente, un insieme incrementale di modifiche da applicare al SO (Service Pack) • Service Pack 1: settembre 2002 – Random fixes, .NET, Messenger, USB 2.0 • Service Pack 2: agosto 2004 – SP 1 + Security, Wi-Fi criptato (WPA), pop-up blocker, Bluetooth, Firewall, Security Center • Service Pack 3: aprile 2008 – SP2 + random fixes 50
  • 51. Windows XP: HAL • Windows XP è stato progettato per essere eseguito su (quasi) ogni tipologia di hardware esistente • Al posto di riscrivere una versione di XP differente per ciascuna piattaforma hw, è stato creato HAL • HAL: Hardware Abstraction Layer – Software frapposto tra Windows XP e l'hardware – XP non conosce nulla dell'hardware; lascia gestire il compito ad HAL – Ciascun utilizzo di hardware viene delegata ad HAL 51
  • 52. Windows XP: Kernel • I servizi di HAL sono sfruttati dal Kernel • Kernel: – Componenti scritti da Microsoft (servizi) – Componenti scritti dai produttori di hw (device driver) ♦ Devono passare dei “test rigorosi” • Il cuore del kernel è il modulo “Microkernel” – Molto compatto – Sistema di IPC per gli Executive Services 52
  • 53. Windows XP: Kernel • Executive Services: servizi forniti dal kernel – Analogo dei server di Minix • Forniscono servizi alle applicazioni – Disegno della GUI sullo schermo – Controllo permessi – Disk I/O • Sfruttano il servizio di messaggistica del Microkernel • Microkernel + Executive Services = Windows XP kernel 53
  • 54. Windows XP: API • Windows XP fornisce 2 API: – Win32 API: permette ai programmatori di scrivere programmi a 32 bit che girano in User mode – Native API: permette ai processi/servizi che girano in User mode di invocare servizi del kernel ♦ Utilizzata dalla Win32 API • Le API di Windows sono memorizzate in librerie dinamiche 54
  • 55. Windows XP: DLL • DLL: Dynamic Link Library • Librerie di funzioni eseguibili/dati che può essere utilizzata da una applicazione – Funzioni: user32.dll, kernel32.dll – Dati: shell32.dll (icone) • L'applicazione si “collega” alla DLL nel momento stesso in cui necessita della funzione – Non a tempo di compilazione, bensì di esecuzione • Solitamente, hanno l'estensione .dll 55
  • 56. Windows XP: DLL • Le DLL possono essere utilizzate da più applicazioni simultaneamente – Condivisione di codice – CreateWindow() in user32.dll • Alcune DLL sono installate con Windows XP ed a disposizione di tutte le applicazioni – C:windows contiene circa 2000 DLL – La maggior parte in c:windowssystem32 Altre DLL sono installate con le applicazioni ● – msp232.dll fornisce funzionalità di spellcheck per Word, Excel, Power Point – Installata con Microsoft Office 56
  • 57. Windows XP: DLL • Esistono quattro DLL principali • ntdll.dll: Native API (funzioni a livello kernel) – Utilizzate da Win32 API per interagire con l'hw • kernel32.dll: – I/O su file – gestione dei thread • user32.dll: – Gestione delle finestre – Gestione degli eventi (ad es., mouse click) • gdi32.dll: – Funzioni di disegno finestre 57
  • 58. Windows XP: design Applicazione Applicazione Applicazione Win32 Win32 Win32 User Win32 space API Security Virtual I/O IPC Process P&P Power Window Reference Memory Manager manager Manager Manager Manager Manager Monitor Manager Kernel Object Manager space Graphics Device File Device Drivers Microkernel systems Drivers Hardware Abstraction Layer Hardware 58