Estratto del documento

Appunti di sistemi operativi

Bimbati Alan

Contents

  • 1 Introduzione 2
  • 1.1 Classificazioni . . . . . . . . . . . . . . . . . . . . . . . . . 2
  • 1.2 Sistemi Batch Monoprogrammati . . . . . . . . . . . . . . . . 2
  • 1.3 Sistemi Multiprogrammati . . . . . . . . . . . . . . . . . . . . 2
  • 1.3.1 Sistemi Multiprogrammati con Spooling . . . . . . . . 3
  • 1.4 Time-Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
  • 1.5 Overhead per la gestione del multi-tasking . . . . . . . . . . . 3
  • 1.6 Sistemi in tempo reale . . . . . . . . . . . . . . . . . . . . . . 4
  • 1.7 Architettura di un sistema di elaborazione . . . . . . . . . . . 4
  • 1.8 Funzionamento del Meccanismo di Interruzione . . . . . . . . 4
  • 1.9 Meccanismi di Protezione . . . . . . . . . . . . . . . . . . . . 5
  • 1.9.1 Stato utente . . . . . . . . . . . . . . . . . . . . . . . . 5
  • 1.9.2 Supervisore (Kernel Mode) . . . . . . . . . . . . . . . . 5
  • 1.9.3 Transazione Stato Utente - Supervisore . . . . . . . . 6
  • 2 Gestione dei processi 6
  • 2.1 Direct Memory Access (DMA) . . . . . . . . . . . . . . . . . 6
  • 2.2 Struttura dei Sistemi Operativi . . . . . . . . . . . . . . . . . 6
  • 2.3 Processi concorrenti . . . . . . . . . . . . . . . . . . . . . . . 7
  • 2.4 Tipi di interazione tra Processi . . . . . . . . . . . . . . . . . 7
  • 2.5 Sincronizzazione . . . . . . . . . . . . . . . . . . . . . . . . . 7
  • 2.6 Nucleo di un sistema a processi . . . . . . . . . . . . . . . . . 8
  • 2.7 Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
  • 2.7.1 Scheduling FIFO . . . . . . . . . . . . . . . . . . . . . 9
  • 2.7.2 Scheduling SJF (Shortest Job First) . . . . . . . . . . 9
  • 2.7.3 Scheduling Round Robin . . . . . . . . . . . . . . . . 9
  • 2.7.4 Scheduling con priorità . . . . . . . . . . . . . . . . . 10
  • 3 Thread 10
  • 3.1 Implementazione dei thread . . . . . . . . . . . . . . . . . . . 11
  • 4 Semafori 11
  • 4.1 Semafori con multiprocessori . . . . . . . . . . . . . . . . . . 12

1 Introduzione

Un sistema operativo è un codice scritto in parte in C e in parte in Assembly e serve ad interfacciare l’hardware con il software. Esso inoltre serve a facilitare l’utilizzo di una macchina e garantisce l’efficienza del suo utilizzo.

1.1 Classificazioni

Organizzazione interna dei processi

  • Monoprogrammati: l’esecuzione avviene per un programma alla volta
  • Multiprogrammati: più programmi vengono eseguiti contemporaneamente
  • Time-sharing: in un arco di tempo più programmi sono eseguiti “contemporaneamente”

In base alla visibilità dell’utente

  • Batch: sistemi per l’esecuzione di “lotti” di programmi (non più usati)
  • Interattivi: sistemi che interagiscono con l’utente
  • Real-time: sistemi che richiedono risorse “al momento”, esempio: sistema di un Aereo
  • Dedicati: sistemi specializzati, esempio: Android
  • Distribuiti: sistemi non centralizzati

1.2 Sistemi batch monoprogrammati

Questi sistemi non sono interattivi, sono gestiti tramite lotti fisici. In questo modo il processore ha un utilizzo inefficiente in termini di tempo. Infatti l’esecuzione non richiede molto tempo, al contrario però della preparazione del processo.

Le periferiche sono notevolmente più lente dell’esecuzione del processore, ecco perché l’esecuzione è molto più veloce della preparazione.

1.3 Sistemi multiprogrammati

I programmi vengono gestiti contemporaneamente. Questo permette un’ottimizzazione dell’uso delle risorse; possibilità di sovrapporre operazioni diverse nel tempo; multi-tasking.

Vantaggio: riduzione del tempo globale dei processi.

Svantaggio: aumento del tempo di risposta per un singolo programma.

1.3.1 Sistemi multiprogrammati con spooling

Lo spooling permette di gestire task di tipo differente (I/O), così da creare una sorta di pipeline e quindi velocizzare l’esecuzione dei processi. Lo spooling sovrappone le istruzioni di I/O con quelle di calcolo.

1.4 Time-sharing

Per ogni processo il S.O. assegna ciclicamente un intervallo di tempo della CPU per cui quel processo viene eseguito.

Vantaggio: maggior interattività, il processo viene eseguito circa la chiamata di quel processo, favorisce i tempi I/O bound.

Svantaggio: ogni processo preso singolarmente richiederà molto più tempo di risposta, penalizza i tempi CPU bound.

Nota:

  • I/O bound sono i processi che richiedono interazione con l’utente, processi che richiedono risorse di input o output (esempio Word)
  • CPU bound sono i processi che richiedono un lavoro da parte della CPU (esempio calcoli matematici)

1.5 Overhead per la gestione del multi-tasking

L’overhead è il tempo necessario che richiede un processo per far eseguire il processo successivo. Esso gestisce:

  • Il cambio di contesto, cioè l’esecuzione di un nuovo processo che
Anteprima
Vedrai una selezione di 4 pagine su 13
Sistemi operativi Pag. 1 Sistemi operativi Pag. 2
Anteprima di 4 pagg. su 13.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 6
Anteprima di 4 pagg. su 13.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 11
1 su 13
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 alan.bimbati 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 Ferrara o del prof Schifano Fabio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community