Estratto del documento

SISTEMI

OPERATIVI

SISTEMI OPERATIVI

SISTEMI OPERATIVI

Un sistema operativo è un componente software

  • Lo spooling (Simultaneous Peripheral Operation On-Line) consiste nello spostamento dei dati in un buffer (o in un disco fisico) in attesa di essere spostati verso il dispositivo che li deve elaborare.
  • Nei sistemi operativi time-sharing il tempo di CPU viene assegnato ai vari job secondo un determinato algoritmo di scheduling stabilito dal sistema operativo.

Interruzioni

  • Le interruzioni permettono il ritorno del controllo al sistema operativo.
  • Tipicamente viene utilizzata la Interrupt Description Table (IDT) che è un array che contiene gli indirizzi delle rispettive routine nel codice del sistema operativo.
  • Un'architettura che gestisce gli interrupt deve fornire supporti per il salvataggio dell'indirizzo dell'istruzione successiva al programma interrotto (PC) e dei valori dei registri di CPU.

Processi

  • Un processo è un'applicazione attiva su un sistema time-sharing.
  • Ogni processo ha associato
    • dati su cui opera
    • un contesto di esecuzione
  • Un processo può generare altri processi figli.

System Call

  • Il meccanismo delle syscall fornisce un'interfaccia per l'accesso al software del sistema operativo.
  • Alcuni linguaggi come il C consentono l'invocazione diretta delle system call.
  • Generalmente invocare a livello applicativo una syscall significa avere nel codice delle istruzioni di trap.
    • Istruzioni particolari che modificano il flusso di esecuzione del sist. operativo.

Programmi Unix

Quando utilizziamo un programma il sistema operativo riserva un'area di memoria chiamato "Address Space".

  • [Text] - Routine macchina e librerie linkate staticamente
  • [Data] - Variabili globali inizializzate
  • [BSS] - Variabili globali non inizializzate
  • [Heap] - Area per allocazione dinamica (malloc)
    • Utilizzato quando stack e data non sono sufficienti
  • [Stack] - Controllo di flusso e variabili locali

Memoria Logica

SCANF e PRINTF

SCANF

  • Vuole una stringa di formato (%d) che identifica un numero generico di informazioni da consegnare dal chiamante e la relativa tipologia.
  • Per ogni informazione da consegnare scanf vuole la relativa locazione in memoria dove effettuare la consegna.
  • Quando viene invocata scanf crea una syscall offerta dal sistema operativo che preleva i dati e salva in un buffer (regola bufferizzata).
    • Se il formato di dati in buffer è corretto vengono salvati in memoria.
  • Il valore di ritorno di scanf indica il numero di informazioni realmente consegnate.

PRINTF

  • Come scanf, utilizza una stringa di formato per definire il messaggio da produrre, salve i dati in un buffer.
  • Per ogni argomento richiesto in input da parte di printf un ulteriore parametro.
  • Il valore di ritorno di printf corrisponde al numero di byte effettivamente scritturate il messaggio prodotto.

Schema di Bufferizzazione

scanf() printf()

INPUT BUFFER OUTPUT BUFFER

STRUTTURE DATI DELLA LIBRERIA

SYSTEM OPERATIVO

LIBRERIE STANDARD

  • Standard di linguaggio
    • Definiscono servizi standard per la programmazione permettono la portabilità dei software su piattaforme differenti.
    • Ogni funzione di libreria invocata su volta le system call proprie del sistema operativo su cui si opera
      • es. printf() WINDOWS WriteFile()...
      • UNIX write()
  • Standard di sistema
    • Definiscono i servizi offerti da uno specifico sistema.
    • Set dove syscall set funzioni di libreria specifiche

SISTEMI UNIX → STANDARD

SISTEMI WINDOWS

Kernel

Con la denominazione Kernel di un sistema operativo si intende l’insieme dei moduli software

  • Gestione delle interruzioni
  • Gestione della memoria
  • Comunicazione tra processi
  • Scheduling

Nel Kernel sono implementate un numero ristretto di funzionalità

Il sistema operativo vero e proprio mette a disposizione moduli software aggiuntivi a quelli interni al Kernel

Come ad esempio programmi per l’interazione con l'utente

Ambiente

Tipicamente i programmi applicativi vengono compilati secondo regole canoniche tali da generare

  • Eseguibili formati da
  • Codice vero e proprio (main)

un set di moduli software chiamati ambiente di esecuzione

Le funzioni d'ambiente eseguono task preliminari per far sì che il codice applicativo esegua poi correttamente e sotto certe precondizioni

Utilizzo dell’ambiente

  • Rapporto tra il sistema operativo e il codice di startup di un app.
  • Come mezzo per pilotare l’esecuzione di specifiche funzioni
Anteprima
Vedrai una selezione di 4 pagine su 21
Appunti Teoria di Sistemi Operativi Pag. 1 Appunti Teoria di Sistemi Operativi Pag. 2
Anteprima di 4 pagg. su 21.
Scarica il documento per vederlo tutto.
Appunti Teoria di Sistemi Operativi Pag. 6
Anteprima di 4 pagg. su 21.
Scarica il documento per vederlo tutto.
Appunti Teoria di Sistemi Operativi Pag. 11
1 su 21
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher MicheleCim di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma Tor Vergata o del prof Quaglia Francesco.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community