• Non ci sono risultati.

Fondamenti di Informatica

N/A
N/A
Protected

Academic year: 2021

Condividi "Fondamenti di Informatica"

Copied!
90
0
0

Testo completo

(1)

Fondamenti di

Informatica

Prof. Fenza Giuseppe

Il Sistema Operativo

[Sez: 5.2, 5.4, 5.5]

[Sez: da 19.1 a 19.2]

(2)

Il Sistema Operativo

• E’ il prodotto più complesso mai progettato e realizzato dagli

uomini.

– Windows XP conta 40 Milioni di linee di codice

– Stampate su fogli A4, con interlinea singola, occuperebbero

750.000 pagine (750 volumi da 500 pagine)

• Senza Sistema Operativo non sarebbe possibile utilizzare i

(3)

Le funzioni principali del S.O.

Gestisce l’interazione tra utente e computer. Ogni operazione

dell’utente viene intercettata dal S.O.

– direttamente quando l’utente con dei comandi esegue operazioni

predefinite (es: cancellare un documento, …)

– indirettamente quando tramite programmi applicativi (es:

stampa documento tramite word, …)

Gestisce le risorse hardware

– Controlla, ottimizza l’uso e coordina la comunicazione tra le

risorse hardware del computer.

Gestisce le risorse software

– Pilota e controlla l’esecuzione degli altri programmi

– Assegna le risorse ai programmi applicativi e ne controlla

(4)

Struttura del Sistema Operativo

• I SO sono generalmente costituiti da un insieme di moduli, ciascuno dedicato a svolgere una determinata funzione;

• I vari moduli del SO interagiscono tra di loro secondo regole precise al fine di realizzare le funzionalità di base dalla

(5)

KERNEL

Struttura del Sistema Operativo

(cont.)

Gestore dei Processi Gestore della Memoria Centrale Gestore degli I/O Gestore del File System

(6)

BIOS

Il BIOS permette di collegare software e hardware.

In particolare, Il SO intercetta ogni richiesta di uso di una

periferica e la trasmette al BIOS

– Ad es.: stampa di un documento da Word

• Il comando di stampa viene passato dal programma al SO • Dal SO esso passa al BIOS

• Il BIOS, consultando anche la CMOS (che contiene le

informazioni ultime su ogni periferica), si collega alla

stampante, e trasforma la richiesta di stampa in una serie di comandi comprensibili alla stampante

(7)

Funzionalità di un SO

• Un SO esegue i seguenti compiti:

– Gestione dell'interfaccia utente e Interprete dei comandi

– Gestore dei processi

– Gestore della memoria centrale – Gestore delle periferiche di I/O – Gestore del File system

(8)

LE INTERFACCE UTENTE

L'interfaccia utente è il mezzo di interazione tra Utente e

Computer

L'utente invia comandi al sistema operativo (es. una richiesta

di stampa o di cancellazione di un documento).

Il Sistema Operativo manda in esecuzione il comando,

coinvolgendo le risorse appropriate,

La comunicazione tra utente e sistema operativo è governata dall'interfaccia utente.

L’interprete dei comandi interpreta i comandi inviati dall’utente

(9)

Le prime interfacce: TTY e Pannelli

TTY e/o Pannello

. I primi computer avevano come

interfaccia una specie di stampante (TTY o telescrivente) e,

spesso, delle luci sul pannello del computer

(10)

Interfacce a caratteri (MS-DOS)

Interfaccia a caratteri monitor “a caratteri”

– per dare al computer le istruzioni, l'utente deve digitare

(11)

Interfacce a caratteri (MS-DOS)

• Uno dei primi sistemi operativi per PC (1981)

MS-DOS (Microsoft-Disk Operating System).

L'interfaccia testuale di MS-DOS è scarna, con lo schermo nero e

i soli caratteri del prompt

C:\>

• per dare al computer le istruzioni, l'utente deve digitare da

tastiera una serie di comandi di testo piuttosto complessi.

(12)

Le interfacce Grafiche Utente (GUI)

Primi anni ’80 comparvero le prime interfacce Grafiche

(sviluppate da Xerox e Apple)

GUI

(

Graphic User Interface,

Interfaccia Grafica Utente)

basate sulla

Metafora della Scrivania

Il video è una specie di

scrivania (virtuale), il Desktop

L'utente comunica con il PC tramite

mouse

, e

icone

Finestre

menu a discesa

che semplificano la scelta dei comandi.

Le GUI utilizzano la

tecnologia WYSIWYG

(What you see

is what you get). I documenti cioè vengono visualizzati così

(13)

Le interfacce Grafiche Utente (GUI)

I

programmi hanno aspetto e linguaggio comuni

E’ possibile

passare facilmente da un documento a un

altro

e da un’applicazione ad un’altra. Infatti

Ogni

applicazione

è contenuta in una finestra.

Ogni

documento

aperto è in una sua finestra.

I

comandi hanno la stessa interfaccia

in tutti i

programmi

Per eseguire un comando basta puntare il cursore

(14)

Come operare con le icone

• Un oggetto può essere

selezionato (singolo clic del mouse)

eseguito (doppio clic del mouse). Quando si applica il doppio

clic a un’icona

• se è un programma lo si esegue

• se è una cartella si visualizza il contenuto

(15)

Le Finestre

Ogni oggetto viene eseguito in una finestra

– Finestra: area dello schermo delimitata da una cornice in cui

viene visualizzato l’output di un programma

• Sul desktop ci possono essere più finestre aperte

contemporaneamente

– più programmi eseguiti “contemporaneamente” – una sola è attiva

– L’input è inviato al programma di quella finestra

(16)

Interfacce Avanzate

Interfacce Touch Screen (Chioschi, Totem ecc…)

– L’interfaccia è un Touch Screen di dimensioni medio grandi e

l’interazione è tramite un dito dell’utente che punta ogni singolo oggetto sullo schermo

Interfaccia a Stilo (Elaboratori Tascabili)

– L’interfaccia è un touch screen, sul quale si può puntare un

comando o scrivere per mezzo di una specie di penna (detta stilo).

Interfacce Conversazionali

– In fase di sviluppo. Interfacce del futuro. L’interazione è tramite

(17)

Funzionalità di un SO

• Un SO esegue i seguenti compiti:

– Gestione dell'interfaccia utente e Interprete dei comandi

– Gestore dei processi

– Gestore della memoria centrale – Gestore delle periferiche di I/O – Gestore del File system

(18)

La Gestione dei Processi

• Un programma in esecuzione è anche detto processo

Programma = lista di istruzioni = nozione statica

(19)

Gestore dei Processi

• E’ il modulo che si occupa di controllare la sincronizzazione, interruzione e riattivazione dei programmi in esecuzione cui viene assegnato un processore;

• La gestione dei processi viene compiuta in vari modi , in funzione del tipo di utilizzo cui il sistema è rivolto.

(20)

Gestore dei Processi (Cont.)

• Il programma che si occupa della distribuzione del tempo di CPU tra i vari processi attivi, decidendone l’avvicendamento, è comunemente chiamato Scheduler.

• Nel caso di elaboratori multi-processore si occupa anche di gestire la cooperazione tra le varie CPU presenti nel sistema.

(21)

La Gestione dei Processi (Cont.)

• Diverse tecniche di gestione dei processi: – Monoprogrammazione e monoutenza

– Multiprogrammazione e monoutenza (o Multitasking) – Multielaborazione e multiutenza

– Elaborazione parallela (con hardware e software apposito)

• La scelta dipende anche dal tipo di calcolatore e dalle sue

(22)

Monoutenza e Monoprogrammazione

Single User e Single Task

• Modalità operativa dei personal computer fino a qualche anno fa

(sistema MS-DOS):

– permette l’accesso al computer ad un solo utente per volta, – il quale può mandare in esecuzione un solo programma alla

volta.

• E' il modo più semplice per gestire un elaboratore

– il S.O. gestisce in modo sequenziale i diversi programmi, uno

per volta

– poca efficienza dell'hw a causa della diversa velocità tra CPU e

(23)

Monoutenza e Multiprogrammazione

Single User e Multi Task (multiprogrammazione)

• E’ la modalità operativa dei sistemi Windows ‘client’:

– permette l’accesso al computer ad un solo utente per volta, – Il quale può mandare in esecuzione più programmi.

• il S.O

deve gestire l’uso contemporaneo delle stesse risorse (ad esempio la

RAM) da parte delle applicazioni attive, senza che si creino “conflitti”.

– In particolare, deve assegnare il/i processi alla/e CPU, tenendo fermi

tutti gli altri processi

“attivi”, che restano in attesa di poter utilizzare, a loro volta, la CPU

(24)

Monoutenza e Multiprogrammazione

• Un processo perde l’uso della CPU (Deallocazione) se:

– C’è richiesta di un’operazione di I/O da parte del processo in

esecuzione, che in termini di tempo è molto lenta.

Termina il tempo a disposizione del processo (tecnica del

time-sharing o condivisione di tempo)

• Ogni processo accede alla CPU per un breve intervallo di

tempo,

• terminato il quale la CPU viene staccata dal processo e viene

agganciata al processo successivo,

(25)

Multithreading

• Un programma può effettuare più operazioni contemporaneamente

sullo stesso documento.

– Ad esempio può leggere dati immessi da tastiera, stampare,

visualizzare e contemporaneamente salvare il documento.

• Ovviamente le operazioni non vengono fatte nello stesso momento,

ma è applicato il principio del multitasking (il processore esegue le varie operazioni un po’ alla volta, passando dall’una all’altra).

(26)

Multiutenza e Multiprogrammazione

Multi User e Multi Task

• E’ la modalità operativa dei sistemi Windows ‘server’:

– permette l’accesso al computer ad più utenti per volta, – Ognuno dei quali può eseguire più programmi.

• Richiede l’impiego di notevoli risorse sia da parte del sistema

(27)

Sicurezza e protezione - SO multiutente

• Un sistema operativo multiutente deve possedere un meccanismo

per identificare gli utenti

– Il sistema più usato è quella di attribuire a ciascun utente una

login ed una password

• Ad ogni utente può essere attribuito un costo per le risorse da lui

usate

• Si può restringere a certi utenti l’accesso al file system e alle risorse

(28)

Politiche di Scheduling

• Le politiche di schedulazione utilizzate dallo scheduler sono raggruppabili in due grandi categorie:

– Preemptive: la CPU in uso da parte di un processo può essere tolta e passata a un altro in un qualsiasi momento;

– Non Preemptive: una volta che un processo ha ottenuto l’uso della CPU non può essere interrotto fino a che lui stesso non la rilascia.

(29)

Lo stato di un processo

• Lo stato del processo può essere distinto fra stato

interno e stato esterno.

• Lo stato interno indica:

– la prossima istruzione del programma che deve essere eseguita;

– i valori delle variabili e dei registri utilizzati dal processo.

• Lo stato esterno indica se il processo è:

– in attesa di un evento, ad es. la lettura da disco o l’inserimento di dati da tastiera;

– in esecuzione;

– pronto per l’esecuzione, e quindi in attesa di accedere alla CPU.

(30)

Stato di un processo (1)

• In esecuzione: assegnato al

processore ed eseguito da esso

• Pronto: può andare in esecuzione, se il

gestore dei processi lo decide

• In attesa: attende il verificarsi di un evento esterno per andare in stato di pronto Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto

- Fine quanto di tempo - Interruzione esterna

Interruzione interna

Evento esterno atteso

- Fine esecuzione - Abort per errore

(31)

Stato di un processo (2)

• I processi appena creati sono messi in stato di pronto

• Il kernel decide quale processo pronto mettere in stato di esecuzione • Il kernel assegna il

processore a un

processo per un quanto di tempo

– Coda dei processi pronti

– Round-robin

– Priorità dei processi

Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto

- Fine quanto di tempo - Interruzione esterna

Interruzione interna

Evento esterno atteso

- Fine esecuzione - Abort per errore

(32)

Stato di un processo (3)

• Il processo in esecuzione passa in stato di attesa se richiede operazioni di I/O (interruzione interna)

– Corrisponde alla esecuzione dell’istruzione “chiamata supervisore” (SuperVisor Call, SVC) Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto

- Fine quanto di tempo - Interruzione esterna

Interruzione interna

Evento esterno atteso

- Fine esecuzione - Abort per errore

P1

(33)

Stato di un processo:

Cambio di Contesto (Context Switch)

• Cambiamento di

contesto:

– Salvare il contesto di P1 nel suo descrittore di processo

• Il processore è

ora libero, un altro

processo passerà

in esecuzione

Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto

- Fine quanto di tempo - Interruzione esterna

Interruzione interna

Evento esterno atteso

- Fine esecuzione - Abort per errore

P1

(34)

Stati di un processo (5)

• Quando l’operazione di I/O è finita viene

generata una interruzione esterna • Il processo in esecuzione viene interrotto • Il kernel esegue il gestore delle

interruzioni che esegue le azioni opportune

• P1 può tornare pronto • Il kernel sceglie quale

processo mandare in esecuzione Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto

- Fine quanto di tempo - Interruzione esterna

Interruzione interna

Evento esterno atteso

- Fine esecuzione - Abort per errore

P1 P2

(35)

Stato di un processo: Preemption

• Preemption:

quando il quanto di

tempo è scaduto, il

kernel interrompe il

processo in

esecuzione

• Si cerca di

garantire un uso

equo della CPU a

tutti i processi

Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto

- Fine quanto di tempo - Interruzione esterna

Interruzione interna

Evento esterno atteso

- Fine esecuzione - Abort per errore

P1

(36)

Funzionalità di un SO

• Un SO esegue i seguenti compiti:

– Gestione dell'interfaccia utente e Interprete dei comandi – Gestore dei processi

– Gestore della memoria centrale

– Gestore delle periferiche di I/O – Gestore del File system

(37)

La Gestione della memoria centrale

Il gestore della memoria (memory manager) è un componente

del

sistema operativo

dedito alla gestione della memoria RAM

disponibile sul computer.

Grazie al gestore della memoria gli strati superiori hanno

l’illusione che ogni processo abbia una memoria dedicata

Un servizio offerto dalla gestione della memoria è la

cosiddetta memoria virtuale

E’ possibile eseguire programmi più grandi della memoria

centrale caricando in memoria solo alcuni parti (pagine) del

programma

Quando serve una pagina del programma residente su disco

avviene la sostituzione di una pagina in memoria con quella

desiderata

(38)

La Gestione della memoria centrale

(Cont.)

• Il gestore della memoria deve allocare la memoria e

partizionarla tra i processi che la richiedono.

(39)

Schemi di gestione della memoria

• Allocazione contigua

• Paginazione

• Segmentazione

(40)

Allocazione Contigua

• Partizioni fisse

– Frammentazione Interna

– Frammentazione Esterna

• Partizioni variabili/dinamiche

– Frammentazione Esterna

(41)
(42)

MEMORIA Processo P

Allocazione Contigua

Sistema Operativo Processo Q Processo R Processo S MEMORIA Sistema Operativo Processo P Processo Q Processo R Processo S (1) Processo S (2)

Frammentazione Esterna

(43)

Allocazione Contigua

• Le strategie di allocazione stabiliscono il criterio scelto per creare o scegliere le partizioni per i programmi che le

richiedono. • First fit

– Individua la prima partizione atta a contenere il programma e, quindi, tra le partizioni disponibili, viene scelta quella con indirizzi più bassi.

• Best first

– Ricerca nella tabella la partizione più piccola atta a contenere il programma. In questo modo si vengono a creare numerose partizioni libere molto ristrette e quindi si aumenta la

frammentazione.

• Worst fit

– Tra le partizioni libere atte a contenere il programma, sceglie quella più ampia, per attenuare l'effetto della frammentazione.

(44)

Allocazione Contigua

• Partizioni fisse

– Frammentazione Interna

– Frammentazione Esterna

• Partizioni variabili/dinamiche

– Frammentazione Esterna

• Frammentazione esterna: esiste lo spazio

(45)

Allocazione Contigua

Programma A

Programma B

Programma C

Memoria 0000x

(46)

Allocazione Contigua

Programma A

Programma C

Memoria 0000x

Programma D

PROBLEMA !!!!

FRAMMENTAZIONE

(47)

Schemi di gestione della memoria

• Allocazione contigua

• Paginazione

• Segmentazione

(48)

Paginazione

Programma D

Memoria 0000x

Programma A

Programma A

Programma A

Programma B

Programma B

(49)

Paginazione

Programma D

Memoria 0000x

Programma E

Programma A

Programma A

Programma A

Programma F

Programma F

(50)

Paginazione

• Si rinuncia ad avere una zona contigua della

memoria fisica per ciascun processo

• La memoria virtuale del programma viene

suddivisa in porzioni (pagine virtuali) di

lunghezza fissa (pot. di 2, e.g., 4K)

• La memoria fisica viene divisa in pagine

fisiche della stessa dimensione

• Le pagine virtuali di un programma vengono

caricate in altrettante pagine fisiche, non

(51)

Memoria Virtuale

• Spesso la memoria non è sufficiente per contenere

completamente tutto il codice dei vari task;

• Si può simulare una memoria più grande tenendo

nella memoria di sistema (RAM) solo le parti di

codice e dei dati che servono in quel momento;

• Si usa il concetto di memoria virtuale.

(52)

Memoria Virtuale (Cont.)

• I dati dei programmi non in esecuzione possono

essere tolti dalla memoria centrale e parcheggiati su

disco nella cosiddetta area di swap;

• Il rapporto tra le dimensioni dell’area di swap e della

RAM è di 3 : 1 (max);

• I moderni processori posseggono meccanismi

hardware per facilitare la gestione della memoria

viertuale.

(53)

Memoria Virtuale

Programma D

Memoria 0000x

Programma A-1

Programma B-1

Programma A-2

Programma A-3

Programma B-2

Swap

(54)

Memoria Virtuale

Programma D

Memoria 0000x

Programma A-2

Programma B-1

Programma A-1

Programma A-3

Programma B-2

Swap

(55)

Funzionalità di un SO

• Un SO esegue i seguenti compiti:

– Gestione dell'interfaccia utente e Interprete dei comandi – Gestore dei processi

– Gestore della memoria centrale

– Gestore delle periferiche di I/O

(56)

Gestore delle Periferiche di I/O

• Il gestore dei dispositivi di I/O è quel modulo del SO

incaricato di assegnare i dispositivi ai task che ne

fanno richiesta e di controllare i dispositivi stessi;

• Da esso dipende la qualità e il tipo di periferiche

(57)

La Gestione delle Periferiche di I/O

(Cont.)

• Una caratteristica comune a tutti i dispositivi è quella di operare in

modo asincrono rispetto al processore

– Es.: Tastiera

• Sono pertanto necessarie delle forme di sincronizzazione tra i

dispositivi e il processore

– Un dispositivo di input deve avvertire il processore quando un

dato di input è disponibile

– Un dispositivo di output deve avvertire il processore quando ha

terminato di produrre dati in uscita

– I dispositivi di Input/Output inviano al processore un segnale,

detto interrupt, per richiedere l'attenzione del processore stesso

(58)

Device Dirver

• Il controllo dei dispositivi di I/O avviene attraverso

speciali programmi detti Device Driver;

• I device driver sono spesso realizzati dai produttori

dei dispositivi stessi che ne conoscono le

(59)

Device Driver

(Cont.)

• Questi programmi implementano normalmente le

seguenti funzioni:

– Rendono trasparenti le caratteristiche fisiche tipiche di ogni

dispositivo;

– Gestiscono la comunicazione dei segnali verso i dispositivi;

– Gestiscono i conflitti, nel caso in cui due o più task

vogliono accedere contemporaneamente allo stesso

dispositivo.

(60)

Funzionalità di un SO

• Un SO esegue i seguenti compiti:

– Gestione dell'interfaccia utente e Interprete dei comandi – Gestore dei processi

– Gestore della memoria centrale – Gestore delle periferiche di I/O

(61)

LA GESTIONE DEI FILES (file system)

Dati e programmi sono memorizzati sul disco fisso all’interno di

“contenitori logici” detti files.

• Un file è una contenitore di informazioni – identificato da un nome (filename) e

memorizzato in una delle memorie di massa

• Tra i compiti più importanti del sistema operativo vi è la gestione

dei files (file system management) che si occupa di gestire i documenti presenti nelle memorie di massa

(62)

I nomi dei Files

• In quasi tutti i sistemi operativi un filename è costituito da due

parti: il nome vero e proprio e l’estensione, separata dal nome da un punto.

Il nome è scelto dall’utente. – L’estensione

rappresenta il tipo di dato che il file contiene

• solitamente indica il programma con cui è stato creato il file

(“.doc” o “.docx” per i documenti Word, “.exe” o “.bat” per i file eseguibili, “.jpg”, “gif”, "bmp" per le immagini, ecc.)

In base all’estensione di un file, il Sistema Operativo sa quale

(63)

Cartelle o Directory

• Per rendere più agevole il ritrovamento dei files, il disco è diviso

in cartelle (chiamate directory)

– Una directory è un contenitore logico che, a sua volta, può

contenere altre cartelle o semplici files

– Una directory ha un nome che la contraddistingue dalle altre directory

• La maggior parte dei sistemi operativi adotta un file system

gerarchico: le cartelle sono strutturate ad albero, la cui radice è detta directory principale o ROOT

(64)
(65)
(66)

Unità

• Il file system può gestire file

memorizzati in più memorie di massa (hard disk, DVD, unità di rete,

ecc.)

• Ad ogni memoria di massa è associata

una lettera identificativa e/o un nome

A: è il floppy disk C: è l’hard disk D: è il CD-Rom

(67)

Pathname (o percorso)

• Ogni file si trova in una sola directory, la quale, a sua volta, si può

trovare in un’altra directory (e così via)

All’interno della stessa directory non possono esistere più file con lo stesso filename (nome+estensione)

Il percorso per arrivare dalla ROOT al file in questione si

chiama pathname

– La directory principale si chiama \ (ROOT – Radice) – Nel pathname le directory sono separate dal carattere \

(68)

Gestione dei file

I nomi dei file servono alla loro esatta

identificazione.

I percorsi sono invece necessari per ritrovare i file nei vari supporti di memorizzazione.

(69)
(70)

Caratteristiche di un SO

• Vari tipi di SO:

– Multitasking o Monotasking

– Monothreading o Multithreading

– Interfaccia utente a caratteri o grafica – Sicurezza alta o bassa

– Capacità di elaborazione – Portabilità

(71)

Sistemi Operativi per Desktop

MS-DOS, della Microsoft, è stato il primo sistema operativo per

PC (in disuso)

(80%) Microsoft (Windows)

Windows 2000/XP, S.O. per PC ancora molto diffusi – Windows Vista e Windows Seven (7, 8)

Windows 10

(2%) MacOS X, della Apple • (2%) Linux/Unix

(72)

Sistemi Operativi per Server

• Server: Computer che gestisce reti di altri computer. • Sistemi Operativi potenti, sicuri e affidabili.

• Sono Multiuser, Multitasking, Multithreading

• Esempi:

– Windows Server

– IBM OS/2 (non più utilizzato) – Unix

(73)

Sistemi Operativi Opensource

• Linux e Unix sono Sistemi Operativi “aperti”.

• Un SO aperto, detto anche “Opensource”, funziona su macchine

diverse.

• Fa parte della categoria dei software Public Domain, quindi esso è – completamente gratuito

– è modificabile da qualsiasi programmatore, essendo distribuito

assieme al codice sorgente

– Presente in molte versioni, a volte non compatibili tra di loro

(74)

Sistemi Operativi Proprietari

• Un SO “Proprietario” funziona su un solo tipo di computer.

Sviluppati da grandi case per mainframe e minicomputer

– IBM sviluppò il SO OpenMVS

– Digital sviluppò il VMS (poi diventato OpenVMS)

• Spesso le case costruttrici sviluppavano anche il Software

Applicativo (detto anch’esso “proprietario”)

• Svantaggi principali:

– Dipendenza pressoché totale dal produttore anche per semplici

operazioni di “personalizzazione” che coinvolgono modifica del codice

– Costi elevatissimi

(75)

Altri Sistemi Operativi

• per tascabili e palmari, che utilizzano un touch-screen e una tastiera

virtuale: – Symbian OS – Android – OSX – Windows Mobile – Palm OS

• Sistemi Operativi Embedded sono invece incorporati in piccoli

dispositivi e sono codificati su un chip di memoria ROM, invece che su Hard Disk.

(76)

Il Sistema Operativo

NOTE:

In un computer possono essere presenti più sistemi

operativi

, utilizzabili singolarmente poiché un loro uso

contemporaneo creerebbe un conflitto nella gestione delle risorse

della macchina.

Per poter installare più sistemi operativi è necessario

suddividere l'hard disk in sezioni separate (partizioni)

e

assegnare a ognuna un sistema operativo che avrà il compito di

gestire il computer ogni volta che si lavora con essa.

(77)
(78)

Master File Table (MFT)

FORMATTAZIONE di un Disco: Predisposizione del disco

all’uso da parte di un Sistema Operativo

• Questa operazione crea una tabella, detta Master File Table

(MFT) in cui verranno registrate le informazioni su ogni file e ogni directory di un disco (formattato come NTFS).

• La MFT è, in sostanza, una tabella di un database relazionale,

contenente informazioni relative ai files.

• Agisce come "punto di partenza" e funziona come una sorta di

(79)

Master File Table (MFT)

• Quando un file viene eliminato, il record che descrive è

contrassegnato come libero, può quindi essere riutilizzato quando si crea un nuovo file

• Si noti che il record eliminato nella tabella non elimina a livello

(80)

Master File Table (MFT)

• C'è un record nella MFT per ogni file sul disco, in cui troviamo le

seguenti informazioni:

– Nome lungo del file. – Nome in formato 8.3. – numero del file.

– Dimensioni dei file.

– Data e ora di creazione / modifica / accesso. – Attributi del file.

– I diritti di accesso

(81)

La Deframmentazione di un Disco

• Il Sistema Operativo memorizza un file scomponendolo in parti della stessa dimensione (cluster), pari alla dimensione del settore su disco

Il Sistema Operativo cerca di memorizzare tutti i cluster di un file su settori contigui, per minimizzare gli spostamenti della testina

del disco.

• Quando il file viene poi cancellato, i suoi cluster tornano a

disposizione e possono essere occupati da un nuovo file, che non è detto sia della stessa dimensione di quello cancellato.

(82)

La Deframmentazione di un Disco

• Con il passare del tempo e il susseguirsi di operazioni di

memorizzazione e di cancellazione di files, sul disco si formeranno "buchi" vuoti sempre più piccoli.

• Quando il disco comincia a riempirsi un file (soprattutto se è

molto grande) viene memorizzato non più contiguamente, ma i suoi cluster vengono sistemati dove c’è posto, spesso in settori molto distanti l’uno dall’altro.

(83)

La Deframmentazione di un Disco

• Quando un file è frammentato, il sistema impiega molto tempo

ad “aprirlo” (cioè a copiarlo in RAM per permettere l’utilizzo)

– la testina di lettura deve spostarsi molte volte sul disco per

(84)

La Deframmentazione di un Disco

Deframmentazione

: spostamento dei cluster di un file

finchè tutti i frammenti sono su zone contigue del disco

es. Dati i file A (4 cluster), B (3 cluster) e C (6 cluster)

… C3 C4 A1 A2 B3 A4 C6 C1 B1 A3 B2 C5 C2 …

(85)

Lo Scanning di un Disco

• Durante l’uso possono danneggiarsi parti di un supporto e diventare

quindi inutilizzabili, rendendo di fatto inutilizzabile l'intero file.

• Per limitare i danni è possibile effettuare, a livello preventivo, una

scansione del disco, in modo da accantonare i settori guasti, ma non ancora “allocati” ad alcun file.

Disk Scanner: programma che individua difetti o danneggiamenti

della superficie del disco, problemi di allocazione dei files o problemi nella Tabella di allocazione

(86)

L’eliminazione dei files e il cestino

• Cancellare un file significa eliminarlo dal file system

La cancellazione avviene a livello logico: lo spazio occupato dal

file cancellato non viene liberato immediatamente, ma viene marcato come libero

• Un file “cancellato” viene semplicemente spostato in una cartella

speciale, il CESTINO, in modo da poterlo recuperare, se necessario.

• Dopo un certo numero di giorni, oppure in caso di riempimento del

cestino, o in seguito ad un’operazione esplicita, il cestino viene “svuotato”, e quindi lo spazio viene effettivamente liberato

(87)

Domanda I

• Le interfacce grafiche servono a:

– A vedere e sentire i file multimediali senza ricorrere a

particolari applicazioni

– B eseguire un comando tramite clic sull’icona e usare

gli stessi comandi per tutti i programmi

– C visualizzare sullo schermo un’icona per ogni

dispositivo del computer

(88)

Domanda II

• Lo scopo del BIOS è:

– A accendere i dispositivi del computer

– B configurare l’hardware di sistema

– C collegare il software con l’hardware

(89)

Domanda III

• Quando il sistema operativo controlla quale processo

deve svolgere la CPU lasciando in attesa gli altri

secondo una lista di priorità, si parla di:

– A multithreading

– B multitasking

– C multiutenti

(90)

Domanda IV

• Uno dei pochi sistemi operativi in grado di lavorare sia

sui desktop che sui server è:

– A Windows

– B Unix

Riferimenti

Documenti correlati

Quando la CPU viene allocata ad un altro processo, il SO deve salvare lo stato del processo in esecuzione e caricare lo stato del nuovo processo. Il tempo per un context switch è

Il sistema operativo, quando c’è bisogno di eseguire un nuovo servizio (e quindi di mandare in esecuzione un nuovo processo) decide di mandarlo in esecuzione sul processore che

Sebbene ad oggi tutte le Regioni, coinvolte nell’attuazione del Piano quali organismi intermedi, abbiano approvato un Piano per l’attuazione della Garanzia Giovani, quelle che

ii) it only covers specific network costs (losses and infrastructure costs). The current mechanism focuses on “transit” cost compensation. 61 Even though analyses

2 Ciò non significa che, quando la CPU è in modalità kernel, sia sempre in esecuzione un kernel process, perché esistono procedure del SO che non fanno parte di un processo, come

Nei processi chimico-fisici che verranno analizzati durante il corso, vige il principio di conservazione della massa totale e dell’energia totale.. Esercizio

Senza potere qui entrare nel merito degli eterogenei fattori (anche culturali) che hanno più in generale contribuito, nella storia italiana dell’ultimo ventennio, ad

Il risultato raggiunto è il frutto di un grande sforzo organizzativo dell’Ufficio Sistemi Informativi (U.S.I.) e del personale tecnico e amministrativo che vi opera, di stretta