Anteprima
Vedrai una selezione di 11 pagine su 46
Conoscenze informatiche, software   Pag. 1 Conoscenze informatiche, software   Pag. 2
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Conoscenze informatiche, software   Pag. 6
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Conoscenze informatiche, software   Pag. 11
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Conoscenze informatiche, software   Pag. 16
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Conoscenze informatiche, software   Pag. 21
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Conoscenze informatiche, software   Pag. 26
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Conoscenze informatiche, software   Pag. 31
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Conoscenze informatiche, software   Pag. 36
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Conoscenze informatiche, software   Pag. 41
Anteprima di 11 pagg. su 46.
Scarica il documento per vederlo tutto.
Conoscenze informatiche, software   Pag. 46
1 su 46
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Gestore dei processi

Un processo è un programma in esecuzione. Un processo necessita di certe risorse, tra cui tempo di CPU, memoria file, dispositivi di I/O, per portare a termine il suo compito.

Il SO è responsabile delle seguenti attività coinvolte nella gestione dei processi:

  • creazione e cancellazione dei processi
  • sospensione e riesumazione dei processi
  • fornire meccanismi per:
    • sincronizzazione dei processi
    • comunicazione tra processi
    • evitare, prevenire e risolvere i deadlock.

Gestore dei processi

Uno dei compiti principali del sistema operativo riguarda la gestione dei processi.

Per il momento assumiamo di trattare sistemi monoprogrammati (anche detti mono-tasking).

In sistemi di questo tipo è possibile eseguire un solo programma alla volta: i programmi devono essere eseguiti in modo sequenziale e si può mandare in esecuzione un programma solo quando quello precedente ha terminato l'esecuzione (es. MS/DOS).

  1. Il barista è il corrispondente del processore, i clienti sono l'equivalente dei processi da eseguire
  2. Esecuzione mono-tasking:
    • A.O. = attesa ordine
    • Pr.C. = prepara cocktail
    • Ris. = riscuoti
    • At. = attesa
    • Pag. = pagamento
    • Ord. = ordina
  3. Gestore dei processi
  4. Quello che viene evidenziato dall'esempio precedente è vero in generale: qualunque processo P alterna fasi di esecuzione a fasi in cui è bloccato in attesa di qualche evento esterno
  5. Un processo può essere in attesa che sia terminata un'operazione di input di dati oppure in attesa di poter usare una risorsa in quel momento occupata
  6. La velocità di elaborazione di un calcolatore (quindi il tempo in cui un processo è in esecuzione) è dell'ordine del milionesimo di secondo, quindi molto minore dei tempi di lavoro delle periferiche di input/output, a volte
dell'ordine di secondi, o addirittura i tempi di reazione umani. In un'esecuzione sequenziale, mentre il processo attivo è bloccato in attesa di eventi esterni, il processore rimane inattivo, in uno stato chiamato idle, e risulta pertanto sotto-utilizzato. Gestore dei processi Una soluzione ragionevole per migliorare sia la "produttività" del barista che la qualità del servizio (i clienti arrivano e si mettono in coda aspettando di essere serviti) potrebbe essere contemporaneamente quella di servire più clienti. Ogni volta che un cliente inizia la consumazione del suo caffè, il barista, invece di restare inattivo, può iniziare il servizio del prossimo cliente. Contemporaneamente non è esatto, infatti, poiché vi è un solo processore (nel caso di un computer) il servizio non è realmente eseguito in parallelo ma avviene alternando il servizio tra i vari clienti. In questo modo i tempi di

inattività del barista sono eliminati

Gestore dei processi

L'idea illustrata mediante l'esempio precedente è l'idea di base del multi-tasking: più programmi vengono eseguiti contemporaneamente sullo stesso processore.

Il numero di processi attivi viene detto multiprogrammazione del sistema

  • Dal punto di vista del processore, in ogni istante vi è un solo processo in esecuzione
  • Se l'alternanza tra i processi è frequente (ad esempio ogni 10 millisecondi), l'utente ha l'impressione che l'esecuzione dei programmi sia veramente simultanea

Gestore dei processi

Un processo quindi può trovarsi in tre diversi stati:

  • in esecuzione: quando sta utilizzando il processore
  • in attesa (bloccato): quando è in attesa del verificarsi di un evento esterno (terminazione di un'operazione di input/output o altro)
  • pronto: quando è potenzialmente in condizione di

poter utilizzare il processore che è occupato da un altro processo.

Gestore dei processi multi-tasking

Il funziona efficacemente se il S.O. è in grado di offrire alcune assicurazioni:

  • cambio di contesto - Il deve essere invisibile al processo. Nell'esempio del bar i clienti non si accorgono che il barista serve un gruppo di clienti contemporaneamente. Il barista riprende a servire un cliente quando il servizio viene ripreso esattamente nel punto in cui era stato interrotto.
  • cronometro n sospende - Il barista ha un e ogni secondi il servizio che sta effettuando e passa a servire un altro cliente.

Gestore dei processi - La politica di gestione in cui il barista divide il suo tempo tra i vari clienti assegnando a ciascuno un certo intervallo di tempo è implementata nei S.O. multi-tasking e prende il nome di Round-Robin.

La politica di gestione in cui il barista serve in modo sequenziale i vari clienti viene chiamata Gestore di memoria principale.

La memoria

Il principale è un grande insieme di parole, ognuna identificata univocamente con un indirizzo, e può considerarsi come un deposito di dati velocemente accessibili da CPU e dispositivi di I/O. Tale memoria è volatile e perde i dati in caso di system failure.

Il SO è responsabile delle seguenti attività:

  • tenere traccia delle aree di memoria correntemente utilizzate e dei rispettivi utenti
  • decidere quale processo caricare in memoria quando dello spazio si rende disponibile
  • allocare o liberare (deallocare) spazio in memoria, a seconda delle richieste.

Gestore di memoria secondaria

Poiché la memoria principale è volatile e troppo piccola per contenere tutti i dati ed i programmi permanentemente, il calcolatore deve prevedere anche una memoria secondaria, di supporto a quella principale. La maggior parte dei calcolatori utilizza dischi come supporti di memoria secondaria, per memorizzare sia dati che programmi.

Il SO è responsabile delle seguenti

attività per gestire i dischi:
  • Gestione dello spazio libero
  • Allocazione dello spazio
  • Schedulazione dei dischi
Gestore del sistema di I/O Il SO gestisce le operazioni sulle periferiche di I/O tramite:
  • Un sistema di memoria a buffer (buffer: area di memoria usata per conservare temporaneamente i dati da trasferire ad un dispositivo)
  • L'interfaccia per il gestore del dispositivo di I/O (interface driver)
  • I driver stessi per ciascun dispositivo di I/O (controller)
Gestore dei files Un file è inteso come una collezione di informazioni correlate, cioè un insieme di byte che codificano una certa entità logica (testo, immagine, suono, programma, etc), organizzati secondo un certo formato, memorizzati su supporti di memoria secondaria. Comunemente rappresentano programmi e dati. Il SO è responsabile di:
  • Creazione e cancellazione di files
  • Creazione e cancellazione di directory
  • Supporto di primitive (semplici funzioni o programmi) per

la gestione di files e directory allocazione di files in memoria secondaria salvataggio di dati su supporti non volatili.

File System

Il File System è quella parte del S.O. che si occupa di gestire e strutturare le informazioni memorizzate su supporti permanenti. Deve fornire una visione astratta dei file su disco e l'utente deve avere la possibilità di:

  • identificare ogni file con un nome (filename) astrae completamente dalla sua memorizzazione fisica (blocchi su disco rigido e localizzazione dei blocchi)
  • avere un insieme di operazioni per lavorare sui file: creare o rimuovere un file, copiarlo, cambiargli nome, inserire informazioni in un file continua...

File System

effettuare l'accesso alle informazioni mediante operazioni ad alto livello, che non tengono conto del tipo di memorizzazione (accedere ad un file memorizzato sul disco rigido oppure su un CD-ROM allo stesso modo)

avere la possibilità di strutturare un insieme di file, organizzandoli

in sottoinsiemi secondo le loro caratteristiche, per avere una visione ordinata e strutturata delle informazioni sul disco - in un sistema multi-utente, inoltre l'utente deve avere dei meccanismi per proteggere i propri file, ossia per impedire ad altri di leggerli, scriverli o cancellarli

File System

Un insieme di operazioni minimale, presente in tutti i sistemi, è il seguente:

  • creazione di un file
  • cancellazione (rimozione) di un file
  • copia di un file
  • visualizzazione del contenuto di un file ad esempio sul video del terminale o in una finestra sul video
  • stampa di un file
  • lettura e modifica del contenuto di un file
  • ridenominazione di un file, per cambiare il nome ad un file
  • visualizzazione delle caratteristiche di un insieme di file (dimensione, data di creazione e dell'ultima modifica, vincoli di protezione, ecc.)

Organizzazione gerarchica

Il numero di file che devono essere memorizzati su un disco può essere

estremamente elevato- si ha quindi la necessità di mantenere i file in una forma ordinata- un unico spazio (contenitore) di file è scomodo perché le operazioni di ricerca di un file e di creazione di un nuovo file diventano onerose (non è possibile avere due file con lo stesso nome)- l'idea è quella di raggruppare i file in sottoinsiemi (seguendo magari dei criteri di tipo logico)

Organizzazione gerarchica

Tutti i sistemi operativi forniscono operazioni per creare delle directory (cartelle)- una directory (cartella) è costituita da un insieme di file- i nomi dei file sono locali alle directory (si possono avere due file con lo stesso nome purché siano in due directory diverse)- in questo modo l'indice conterrà due tipi di oggetti: nomi di file e nomi di directory- senza la strutturazione in directory, tutti i file potrebbero essere identificati semplicemente mediante il loro nome- nel caso di un'organizzazione gerarchica

più livelli si deve specificare l'intera sequenza di directory che lo contengono, a partire dalla radice dell'albero

Organizzazione gerarchica

Organizzazione gerarchica

Ad esempio il file libro1 di narrativa italiana è univocamente identificato dalla sequenza:

A:\Biblioteca\Narrativa-Ita\libro1

La directory Pautasso di Utenti è identificata dalla sequenza:

A:\Utenti\Pautasso

il carattere “\” (slash)

Dettagli
Publisher
A.A. 2022-2023
46 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Kevinzerilli di informazioni apprese con la frequenza delle lezioni di Conoscenze informatiche 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 Firenze o del prof Williams Louise.