Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

Interrupt ReQuest). Queste linee vengono continuamente sorvegliate dal circuito del PIC, che

assegna a ciascuna un particolare numero d'interrupt. Quando interviene un particolare interrupt

hardware, il PIC colloca il relativo numero d'interrupt sul bus dati del sistema dove il

microprocessore può leggerlo. Il PIC assegna anche determinate priorità alle varie richieste

d'interrupt. Se, mentre viene elaborato un’interrupt su richiesta di una periferica, sopravviene una

richiesta d'interrupt hardware a minore priorità, il PIC ritarda l'accettazione dell’interrupt a

priorità inferiore fino a quando la routine di gestione dell'interrupt della periferica precedente

segnala di aver terminato l'esecuzione.

C'è un particolare interrupt hardware che "salta" completamente il PIC: è l'interrupt non

mascherabile (NMI, Non-Maskable Interrupt), a cui viene assegnato il numero d'interrupt 02H,

NMI è impiegato dai dispositivi che richiedono una priorità assoluta, "ora e subito", rispetto a

tutte le altre funzioni della CPU.

Ogni volta che interviene uno di questi interrupt hardware la CPU utilizza lo stack corrente per

salvare CS:IP e il registro dei flag. Se lo stack risulta troppo piccolo, o se si stava manipolando

SS o SP quando è avvenuto l'interrupt, la CPU rischia di danneggiare dati importanti quando

salva CS:IP e i flag, quindi si provvede a disabilitare preventivamente gli interrupt hardware

coll'istruzione CLI prima di aggiornare SS. Ciò evita la possibile generazione di un interrupt

hardware fra le due istruzioni MOV, in un momento in cui SS:SP punta a una locazione

completamente sbagliata.

Le routine di avviamento

Il primo compito che i programmi della ROM debbono svolgere è l’avviamento del computer. Le

routine di avviamento svolgono compiti diversi:

- effettuano un rapido controllo dell'affidabilità del computer (e delle routine della ROM) per

accertare che tutto sia in ordine

- inizializzano i chip e i dispositivi standard collegati al computer

- inizializzano la tabella dei vettori d'interrupt

- controllano quali dispositivi opzionali sono collegati al sistema

- caricano infine il sistema operativo dal disco

Il test di affidabilità (POST), serve per controllare che il computer sia pronto a funzionare. Tutte

le routine del POST sono veloci, salvo per il controllo della memoria.

Il processo di inizializzazione è un po' più complesso. Una routine inserisce i valori prefissati dei

vettori d'interrupt. Questi valori di default puntano alle apposite routine di gestione degli errori

poste entro il ROM BIOS, oppure puntano a certe routine "vuote" nel ROM BIOS, che non

fanno nulla ma possono venire sostituite successivamente a opera del sistema operativo oppure

da routine di gestione d'interrupt definite dall'utente. Un'altra routine d'inizializzazione determina

che tipo di dispositivi risulta collegato al computer, e pone in memoria bassa un elenco dei

relativi indirizzi. Le routine del POST apprendono la configurazione hardware in base a un

esame logico e appositi controlli. In pratica, è come se il programma d'inizializzazione lanciasse

un appello a ogni possibile dispositivo "Ci sei?!", e registra la relativa risposta.

Le routine di inizializzazione verificano pure l'esistenza di nuovi dispositivi e di estensioni della

ROM. Se ce ne sono, viene passato momentaneamente il controllo alle estensioni della ROM, in

modo che queste possano procedere alla rispettiva inizializzazione. Poi le routine di

inizializzazione proseguono nell'esecuzione delle rimanenti routine di avviamento. La parte

finale della procedura di avviamento, dopo il POST, l'inizializzazione e l'acquisizione delle

estensioni della ROM, è costituita dal cosiddetto caricatore bootstrap, Si tratta di una breve

routine che carica un programma dal disco. Sostanzialmente, il caricatore di bootstrap della

ROM tenta di leggere un programma di boot (avviamento del sistema) dal primo settore del

disco. Se questa lettura ha successo, il caricatore della ROM trasferisce il controllo del computer

a questo programma. Il programma di "boot" del disco a sua volta procede a caricare un altro

9

programma dal disco, più lungo, normalmente un sistema operativo come il DOS. Se il

caricatore bootstrap non trova il programma di boot sul disco, visualizza un messaggio di errore.

Una volta che si è verificato uno o l’altro di questi eventi, la procedura di avviamento è

terminata.

La mappa di memoria dei caratteri in modo testo

Nei modi testo, la mappa di memoria comincia dall'angolo sinistro in alto dello schermo.

Utilizzando 2 byte per ogni posizione carattere. Le coppie di byte per le successive posizioni si

succedono in memoria nel medesimo ordine in cui si legge lo schermo da sinistra verso destra e

dall'alto in basso. I modi testo con un formato schermo di 80x25 caratteri: ogni riga occupa

80x2=160 byte di memoria. Conseguentemente lo schermo di formato 80x25 richiede 4 KB di

memoria, e l'area di 16 KB può accomodare fino a 4 pagine video. Normalmente ogni pagina

video parte da un indirizzo multiplo di 1 KB.

La mappa di memoria dei pixel nei modi grafici

Nei modi grafici, la mappa di memoria dei pixel risulta lineare, come nei modi testo, i pixel sono

memorizzati da sinistra a destra in ogni byte, e le varie righe di pixel si succedono nello stesso

ordine nel buffer video. Su MCGA e VGA, per esempio, i singoli pixel sono rappresentati da 8

bit del modo 320x200, 256 colori.

Struttura fisica dei dischi

Per comprendere come i dati vengono organizzati su un disco, consideriamo la struttura fisica del

disco stesso e del meccanismo che "legge" e "scrive". Osserviamo subito che i dischi fissi hanno

sostanzialmente la stessa geometria base dei floppy.

Entro il contenitore quadrato di plastica che racchiude un dischetto c'è un disco circolare di

materiale plastico, ricoperto di un materiale magnetico. Un'unità di lettura e scrittura (drive)

memorizza i dati sui dischi registrandovi e poi rileggendo le configurazioni magnetiche che

rappresentano i dati digitali. Poiché entrambe le facce del disco sono rivestite, tutte e due

possono essere utilizzate per memorizzare i dati. Un'unità a dischi contiene un motore che fa

ruotare il dischetto a velocità costante, il drive possiede internamente due testine di

lettura/scrittura, una per ciascuna faccia del disco. Le testine sono montate su un braccio che le

sposta all'unisono su una qualsiasi posizione vicina o lontana dal centro del disco. La testina di

lettura/scrittura di un drive può magnetizzare il mezzo che riveste il dischetto, per memorizzarvi

i dati; questi poi possono essere recuperati decodificando le configurazioni magnetiche registrate

sulla superficie del disco. La geometria di un disco fisso è simile a quella di un dischetto. I dischi

fissi girano tuttavia a una velocità assai superiore, e pertanto sono di metallo o vetro rivestiti, e

non di plastica. I dischi fissi inoltre in genere sono formati dalla sovrapposizione di più dischi

che ruotano assieme, i relativi drive sono dotati di più testine di lettura/scrittura, una per ciascuna

faccia di ciascun disco.

Memorizzazione dei dati

Il modo con cui i dati sono disposti sui dischetti e sui dischi fissi è strettamente legato alla

geometria dell'hardware. Quando una particolare testina di lettura/scrittura è fissa in una certa

posizione, sotto di essa il disco rotante fa scorrere un anello di materiale magnetico. Per ogni

posizione della testina relativa al centro del disco c'è un corrispondente anello di materiale

magnetico, su cui sono memorizzati i dati. Questi anelli vengono chiamati tracce.

Ogni traccia di un disco, viene suddivisa in tratti più corti chiamati settori. I settori e le tracce

ricevono una numerazione progressiva, quindi si può specificare la posizione di un particolare

byte di dati sul disco indicandone il numero di traccia e quello di settore.

10

Dato che sia i dischetti a doppia faccia sia i dischi rigidi hanno comunque più di una faccia,

occorre immaginare una struttura tridimensionale per localizzare un byte, Così la posizione di

una testina di lettura/scrittura per tali dischi viene descritta da un numero di cilindro. Come le

tracce, i cilindri sono numerati in sequenza.

Se si immagina un cilindro come dato dalla sovrapposizione di più tracce per una determinata

posizione della testina, si vede come la posizione di una certa traccia risulti fissata specificando,

oltre al numero del cilindro, anche quello della testina.

Dischi di sistema

Indipendentemente dal formato utilizzato per i dati, tutti i tipi di dischetti possono essere

potenzialmente "dischi di sistema". ossia contenere le informazioni necessarie per caricare e

rendere attivo un particolare sistema operativo quando si accende il computer. Un disco di

sistema non ha un formato speciale: semplicemente contiene quelle informazioni che rendono

possibile al ROM BIOS di caricare (boot) il sistema operativo. Su ogni dischetto o disco fisso

per PC il primo settore del disco cilindro traccia 0, testina o faccia 0, settore 1 è riservato a un

breve programma di bootstrap. La funzione del programma di bootstrap è quella di caricare in

memoria il complesso del sistema operativo, leggendolo da un'altra sezione del disco, e poi

trasferire il controllo al sistema operativo stesso.

Quando si fa partire il computer, l'ultima funzione che le routine del ROM BIOS svolgono è di

leggere sul disco il contenuto del boot sector nella posizione citata sopra, e di caricarlo in

11

memoria, verificando poi che si tratta del programma di lancio. Il BIOS compie tale verifica

esaminando gli ultimi due byte del boot record per identificare la presenza di due dati speciali

(55H e AAH), che indicano che i dati del settore rappresentano il programma di bootstrap, Se

questi byte identificativi non corrispondono, il BIOS considera che sul primo settore non sia

presente il programma bootstrap, e quindi che il disco non sia di sistema. Il compito del

programma bootstrap è copiare dal disco, nella memoria del computer, il programma che avvia

un certo sistema operativo.

Formati dei dischi fissi

Poiché la capacità di memoria dei dischi fissi è considerevole, molti utenti di PC preferiscono

utilizzare solo una parte dello spazio del disco fisso per il DOS, riservando altre sezioni del disco

ad altri sistemi operativi. Per rendere la cosa più facile, lo spazio disponibile su di un disco fisso

può essere suddiviso in un massimo di 4 partizioni logiche diverse, ciascuna accessibile

separatamente. I dati di ogni partizione possono essere mantenuti completamente separati da

quelli delle altre.

Ogni partizione può contenere il proprio boot record e il proprio sistema operativo. Il primo

settore di un disco fisso contiene una speciale tabella di partizione di 64 byte e il programma di

bootstrap. La tabella di partizione specifica la posizione delle varie partizioni sul disco; inoltre

indica una delle partizioni come avviabile. Il primo settore di tale partizione è un boot sector di

partizione che il ROM BIOS può impiegare per caricare un dato sistema operativo.

Il programma di bootstrap esamina la tabella di partizione per determinare quale delle partizioni

sia quella di avviamento, poi legge il relativo boot record in memoria. Tale settore contiene un

programma di avviamento che copia il sistema operativo in memoria e trasferisce quindi a esso il

controllo. Dato che le partizioni dotate di boot record sono indicate in una tabella, è possibile

selezionare una diversa partizione del disco fisso semplicemente aggiornando la tabella e

facendo ripartire il computer. Tutti i sistemi operativi capaci di supportare i dischi fissi sono

dotati di un programma di utilità che permette di aggiornare la tabella di partizione.(Un esempio

è il programma di servizio del DOS FDISK.)

Come il DOS organizza il disco

Ogni dischetto o partizione DOS del disco fisso comprende quattro aree distinte, Nell'ordine di

registrazione, sono l'area riservata, la tabella di allocazione dei file (FAT, File Allocation Table),

la directory radice, e l'area dei i file.

Settore logico 0 Area riservata

Area di allocazione dei file

(FAT)

Directory radice

Area dei file

(file e sottodirectory) 12

Le dimensioni di ciascuna area variano a seconda dei formati, ma la struttura base e l'ordine sono

le stesse.

Il boot sector (area riservata)

Questo è il primo settore in un dischetto DOS o in una partizione DOS, e contiene in sostanza un

breve programma in linguaggio macchina che avvia il caricamento del sistema operativo nella

memoria del computer. La prima istruzione del programma di lancio, è un'istruzione di salto,

JMP, a un indirizzo che contiene il resto del programma.

La directory radice

La directory radice di un dischetto o di una partizione di disco fisso viene creata dal programma

FORMAT del DOS. Le dimensioni della directory sono fissate da FORMAT, pertanto il numero

di voci che la directory radice può contenere ha un limite superiore.

La directory radice contiene 32 byte per ciascuna voce. Ogni voce della directory può riguardare

un file, una sottodirectory, oppure un'etichetta di volume per il disco. Il gruppo di byte per ogni

voce della directory contiene informazioni importanti, quali le dimensioni del file, la sua

posizione entro il disco, e la data e l'ora della registrazione più recente del file stesso.

Nome del file

I primi 8 byte di una voce della directory contengono il nome del file, in formato ASCII. Le

lettere sono in maiuscole. Il nome non deve contenere spazi interni. Quando viene cancellato un

file, il DOS sostituisce il primo carattere del campo del nome di file col codice E5H, che indica

che quella voce della directory è resa disponibile per un altro file. Quando viene cancellato un

file, solo due punti del disco subiscono delle modifiche: il primo byte della relativa voce nella

directory viene posto a E5H, e la sequenza delle allocazioni di spazio entro la FAT per quel file

viene cancellata. Tutte le altre informazioni nella directory riguardanti quel file rimangono

inalterate, incluso il resto del nome e perfino il numero del cluster iniziale. Con metodi speciali

idonei, come l'uso di determinati programmi di servizio, le informazioni perdute possono venire

recuperate, purché quella voce della directory non sia stata nuovamente reimpiegata per un

nuovo file. Quando viene richiesta una nuova voce entro la directory, tenete presente che il DOS

solitamente utilizza la prima disponibile, sovrascrivendo in breve tempo i dati di un file

cancellato e rendendo così il suo recupero assai più problematico.

Estensione del nome del file

Subito dopo il nome del file viene memorizzata l'estensione del file, sempre in formato ASCII.

Essa è lunga 3 byte, mentre il nome del file deve sempre avere come minimo 1 carattere,

l'estensione può anche essere vuota.

Attributi del file

Il terzo campo della directory occupa 1 solo byte. I singoli bit di tale byte degli attributi del file

hanno significati particolari, quando sono posti a 1. Se si pone a 1 il bit numero 0, quello di

ordine più basso, si identifica il file come di sola lettura. In tale stato il file viene protetto contro

operazioni di cancellazione e modifica da parte di comandi DOS. Bisogna però segnalare che

vari servizi del DOS finiscono per ignorare tale attributo, e pertanto, anche se tramite il bit 0 si

ottiene una discreta protezione, questa non è sempre assicurata.

Il bit 1, se posto a 1 contrassegna un file come nascosto, e il bit 2 come file di sistema. I file

marcati in uno o entrambi questi modi non vengono letti dalle operazioni DOS normali, come il

comando DIR. I programmi possono accedere a questi file soltanto per il tramite dei servizi DOS

per la ricerca esplicita di file nascosti o di sistema, Il bit di attributo di sistema in realtà non ha un

significato utile: serve solo a perpetuare una caratteristica del sistema operativo CP/M, e non ha

nulla a che fare col DOS.

Il bit 3 marca una voce di directory come etichetta di volume. Una voce per l'etichetta di volume

viene riconosciuta validamente solo entro la directory radice, e usa solo una parte degli otto

13

campi. L'etichetta è memorizzata entro gli 11 byte combinati del nome di file e della relativa

estensione, trattati come un campo singolo. Dimensioni e cluster iniziale non vengono usati.

mentre data e ora di registrazione sono regolarmente indicate.

Il bit 4 posto a 1 identifica una voce come relativa a una sottodirectory. Dato che queste vengono

memorizzate come i file normali, richiedono una voce di directory di supporto. Tutti i campi

della voce vengono impiegati, tranne quello relativo alle dimensioni del file, che è 0. L'effettiva

lunghezza di una sottodirectory si può ricavare solo seguendo la catena delle allocazioni entro la

FAT.

Il bit 5, l'attributo di archivio, è stato creato come ausilio nell'esecuzione delle copie di riserva

dei numerosi file che possono essere presenti su un disco fisso. Il bit vale 0 per tutti i file che non

sono stati modificati dopo l'ultima loro duplicazione; il DOS lo pone invece a 1 quando il file

viene creato per la prima volta e ogni volta che viene modificato.

Area riservata

Questo spazio lungo 10 byte è riservato per possibili utilizzi futuri. Normalmente tutti i 10 byte

sono posti eguali a 0.

L'ora

Questo campo lungo due byte contiene un'indicazione dell'ora in cui il file è stato creato o

modificato per l'ultima volta. Viene normalmente usato insieme con il campo della data.

La data

Anche questo campo occupa 2 byte e indica la data in cui il file è stato creato o modificato

l'ultima volta. Viene utilizzato insieme con il campo dell'ora, e i due riuniti vengono trattati come

un intero senza segno a 4 byte, confrontabile con quelli per gli altri file per stabilire relazioni di

eguaglianza o priorità. Il DOS non accetterà valori superiori a 2099.

Numero del cluster iniziale

Il settimo campo di una voce della directory, lungo 2 byte, indica quale è il numero del cluster da

cui parte lo spazio occupato dal file sul disco. Esso viene utilizzato come base per lo schema di

allocazione dei cluster successivi specificati dalla catena della FAT per quel file.

Lunghezza del file

L'ultimo campo di una voce della directory fornisce le dimensioni del file in byte. Esse sono

codificate come valore intero senza segno su 4 byte, il che permette dimensioni realmente

elevate per un file, idealmente sino a 4.294.967.295 byte! più che sufficienti per qualsiasi

esigenza.

Il DOS utilizza il valore di lunghezza del file indicato nella relativa voce della directory per

stabilire l'esatta dimensione del file. Dato che lo spazio sul disco viene allocato a cluster di 512

byte o più, lo spazio effettivamente occupato dal file sul disco risulta in genere maggiore di

quello indicato dalla directory (e segnalato dal comando DIR) tutto lo spazio fra la fine effettiva

del file e il termine stesso file risulta sprecato.

L’AREA DEI FILE

Tutti i file e le sottodirectory sono memorizzati entro l'area dei file sul disco, che ne occupa

l'ultima parte, quella di maggiori dimensioni. Il DOS alloca lo spazio disco ai file un cluster per

volta, in base a quanto necessario (ricordiamo che un cluster è costituito da uno o più settori

consecutivi: il numero effettivo dei settori per cluster dipende dal formato di disco). Quando Si

crea un file, oppure si aumenta la lunghezza di un file esistente, lo spazio assegnato al file

aumenta. Quando è richiesto maggiore spazio, il DOS assegna un altro cluster al file, e così via

per lunghezze maggiori.

In condizioni ideali un file viene memorizzato come unico blocco di cluster contigui sul disco.

Quando si aggiungono informazioni a un file esistente, oppure quando un file viene memorizzato

dopo che sul disco sono avvenute numerose operazioni di cancellazione di file più piccoli, può

capitare che il file venga distribuito in vari blocchi non contigui. Questa "frammentazione" del

14

file può rendere meno veloce l'accesso ai dati del file. La frammentazione di un file non ha però

altri effetti negativi, e i programmatori in genere possono fare a meno di preoccuparsi del dove e

come i loro dati sono memorizzati sul disco.

Se temete che l'eccessiva frammentazione dei file sul vostro disco fisso rallenti una particolare

applicazione, potete utilizzare uno dei vari programmi di servizio per "riorganizzare" i file

frammentati su un disco fisso, rendendoli contigui. In molti casi tuttavia la frammentazione dei

file non risulterà tanto eccessiva da avere effetti realmente negativi sulla velocità delle vostre

operazioni sul disco.

La tabella di allocazione dei file

La tabella di allocazione dei file (FAT = File Allocation Table) costituisce la "mappa" del modo

con cui il DOS utilizza lo spazio nell'area riservata ai file su un disco. Per la maggior parte dei

formati di disco il DOS crea due copie della FAT, per tenerne una di riserva nel caso che una

venga danneggiata o risulti illeggibile.

L'organizzazione della FAT è relativamente semplice: ogni voce della FAT corrisponde a un

cluster dell'area dei file. Se il valore di una voce della FAT non corrisponde a quello di un cluster

non utilizzato, riservato o difettoso, significa che quel cluster è occupato da un file, e indica al

tempo stesso qual è il prossimo cluster occupato in sequenza dal file.

Ciò significa che lo spazio assegnato a un dato file viene rappresentato da una catena di voci

della FAT, ciascuna delle quali punta alla successiva.

Il primo numero di cluster della catena corrisponde al numero di cluster iniziale per il file

indicato nella directory. Quando un file viene creato o esteso, il DOS assegna i vari cluster al file

ricercando nella FAT il successivo cluster non utilizzato (ossia con la voce della FAT eguale a

0), e lo aggiunge alla catena, Per contro, quando un file viene cancellato, o la sua lunghezza

ridotta, il DOS rende liberi i cluster in precedenza allocati al file, portando a 0 i valori delle

corrispondenti voci della FAT.

La FAT può essere formattata per voci a 12 o a 16 bit. Il formato a 12 bit è impiegato per i

dischetti e le partizioni di disco fisso con non più di 4.078 cluster (La tabella di partizione del

disco fisso indica se la partizione DOS utilizza voci FAT a 12 o l6 bit.) Le voci della FAT a 12

bit sono di identificazione più difficile, perché non corrispondono alla lunghezza di 16 bit di una

parola dei microprocessori della famiglia 8086, però una FAT con voci a 12 bit occupa meno

spazio su un dischetto, dove le riserve di spazio sono più limitate.

Le prime due voci della FAT sono riservate al DOS. Il primo byte della FAT contiene lo stesso

descrittore (ID) del supporto che compare nel blocco di parametri BIOS del boot sector. I

rimanenti byte delle prime due voci sono occupati dal valore 0FFH. Dato che i primi due cluster

del disco (O e l) sono riservati, il cluster numero 2 corrisponde al primo cluster disponibile sul

disco nell'area dei file.

La lettura dei valori della FAT è facile nel caso delle FAT a 16 bit: basta moltiplicare per 2 il

numero di cluster per stabilire l'offset (lo scostamento relativo) a cui trovare la corrispondente

voce della FAT.

Come si è detto, le prime due voci, sia nelle FAT a 12 che in quelle a 16 bit, non servono a

specificare lo stato dei cluster, ma sono invece riservate, in modo che il primo byte della FAT

15

possa riprodurre l’identificatore del supporto, che specifica il formato del disco. Non si deve

comunque ritenere che questi ID identifichino in maniera inequivocabile i formati: purtroppo

non sempre è così. Se esaminiamo i vari formati in uso, troviamo casi di duplicazione.

Da programma, è possibile ricavare il formato di un disco leggendo nella FAT appunto il byte

identificatore del supporto.

Osservazioni speciali sulla FAT

Normalmente i programmi non vanno a leggere o modificare la FAT ma la lasciano interamente

affidata alla supervisione del DOS. Le uniche eccezioni a questa regola sono quei programmi che

eseguono funzioni di allocazione dello spazio non previste dal DOS.

Tenete presente che in certi casi le FAT possono subire danni alla struttura logica: ad esempio,

una certa catena di allocazione può risultare ciclica, finendo per riferirsi a un anello precedente

della stessa catena; oppure due sequenze possono confluire sul medesimo cluster; oppure un

cluster può rimanere "orfano", cioè marcato come se fosse effettivamente utilizzato mentre non

fa parte di alcuna sequenza valida. Può anche mancare un marcatore di fine file (FFFH o

FFFFH).

Il sistema operativo

Un sistema operativo è un insieme di programmi che gestiscono e controllano il processo di un

computer. In un sistema informativo multiutente il sistema operativo nasconde a ciascun utente

la presenza di altri utenti, dando l’impressione che l’intero sistema gli sia interamente dedicato.

Il loader del sistema operativo è un programma che ha il compito di caricare nella memoria

RAM il sistema operativo registrato sul disco di avviamento. I servizi forniti dal nucleo dell’MS-

DOS ai programmi applicativi includono:

1. il controllo del processo;

2. la gestione della memoria;

3. il supporto delle unità periferiche;

4. il sistema di gestione dei file (FILE SYSTEM).

Il controllo del processo svolge i seguenti compiti: caricare, eseguire e terminare un programma,

stabilire le priorità delle funzioni e governare lo scambio delle comunicazioni. Sebbene l’MS-

DOS non sia un sistema operativo multitasking, esso può mantenere contemporaneamente in

memoria più programmi. Un programma può richiamare un secondo programma, che diventa

così il compito attivo da svolgere. Quando il programma richiamato viene ultimato, il primo

programma diventa di nuovo il compito attivo da svolgere. Questi compiti non vengono mai

svolti contemporaneamente. L’MS-DOS dispone di alcuni “agganci” che consentono a

determinati programmi di effettuare da soli più compiti contemporaneamente. Per esempio, i

programmi TSR hanno la caratteristica di restare residenti in memoria dopo aver ultimato le loro

operazioni.

Il supporto delle unità periferiche può essere una conversione diretta dal dispositivo logico al

dispositivo fisico. Ad ogni operazione di alto livello corrispondono una serie di operazioni a

basso livello, gestite dal sistema operativo. I meccanismi di gestione delle periferiche includono:

• i driver fisici (hardware), che vengono attivati direttamente dal gestore delle interruzioni per

eseguire le operazioni di trasferimento e manipolazione dati;

• i driver logici (software) , che formano parte del sistema operativo e forniscono una gerarchia

di operazioni.

Un sottosistema interessante per le stampanti è il cosiddetto spooling system, che garantisce la

gestione di molteplici richieste di stampa, provenienti da vari utenti. Lo spooling system accoda

le varie richieste di stampa una dopo l’altra fa sì che le stampe degli utenti vengano prodotte

compiutamente, senza sovrapposizioni.

Il sistema di gestione dei file (FILE SYSTEM) è responsabile della gestione di un file nella

memoria di massa; esso fa vedere una strutturazione dei dati tramite file e contenitori di file e

16

fornisce all’utente un insieme di funzioni di alto livello per operare su di essi, mascherando le

operazioni che vengono realmente effettuate per allocare la memoria di massa e per accedervi

lettura o scrittura. Tramite il file system, ciascun utente può organizzarsi una zona della memoria

di massa e garantire che i suoi file siano adeguatamente protetti da accessi esterni; il system file

consente anche che alcuni file vengano “condivisi” fra più utenti. L’MS-DOS è un sistema

operativo modulare costituito da più componenti che svolgono delle funzioni specializzate.

Quando esso viene caricato nella memoria durante il processo di avviamento, molte delle sue

componenti vengono spostate, regolate o scaricate. Un ambiente è un segmento della memoria,

allineato al paragrafo, contenente un set concatenato di stringhe si lunghezza variabile, con

l’ultima stringa nulla, secondo la formula variabile = valore che fornisce informazioni quali il

path corrente di ricerca utilizzato da COMMAND.COM per trovare i file eseguibili, la locazione

dello stesso COMMAND.COM è il formato del prompt dell’utente. La fine del set di stringhe è

marcata da una stringa nulla, cioè un byte uguale a zero. Ad ogni programma che si trova in

memoria è associato un ambiente specifico, mediante un puntatore contenuto nella posizione di

offset 2CH nel prefisso del segmento del programma (PSP) di 256 byte. La massima dimensione

di un ambiente è 32 kbyte; la dimensione di default è 160 byte. I file batch sono file di testo, con

estensione .BAT, contenente i comandi propri dell’elaborazione batch e quelli dell’utente. Ogni

riga del file batch non può superare 128 byte.

PSP DS,ES

CODE CS,IP

DATE SS

STACK SP

La gestione della memoria si occupa principalmente di allocare la memoria fisica, di capacità

finita, ai processi che ne fanno richiesta. Nessun processo può diventare attivo prima di aver

ottenuto un certo quantitativo di memoria. Un modo di supportare la multi programmazione

consiste nel dividere la memoria fisicamente disponibile in diverse partizioni, ciascuna delle

quali può venire allocata ad un processo diverso.

Allocazione contigua

Il partizionamento può essere statico o dinamico a seconda di come e di quando vengono create e

modificate le partizioni.

Il partizionamento statico implica che la suddivisione della memoria venga fatta fuori linea e che

da quel momento in poi le partizioni rimangano di dimensioni fisse. Le dimensioni di ciascuna

partizione vengono solitamente tarate in modo di essere adatte alle necessità dei processi eseguiti

più frequentemente. Dato che in generale vi sarà al massimo un processo in esecuzione per ogni

partizione in ogni istante, il numero di partizioni distinte riflette il limite superiore del numero di

processi attivi nel sistema. Questa cifra viene talvolta chiamata grado di multi programmazione.

OS

Pi

Pj

Pk

Dopo aver definito le partizioni, un sistema operativo deve, per poter allocare, tenere traccia del

loro stato, libere o in uso. Lo stato corrente delle partizioni e i loro attributi vengono spesso

raccolte in una struttura dati chiamata tabella di descrizione delle partizioni (TPD). Ciascuna

delle partizioni viene descritta dal suo indirizzo di partenza (base), dalla dimensione e dallo

17


PAGINE

21

PESO

335.34 KB

AUTORE

flaviael

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in informatica
SSD:
Università: Messina - Unime
A.A.: 2013-2014

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher flaviael di informazioni apprese con la frequenza delle lezioni di Architettura degli elaboratori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Messina - Unime o del prof Fiumara Giacomo.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Corso di laurea in informatica

Cenni sul Modello E-R
Appunto