L'Orgoglio Di Essere Tra I Più Grandi (Parte 2)


Un Sacco di Memoria

In questo secondo articolo, ci occuperemo di come viene gestita la memoria in Amiga OS e Windows. Prima di iniziare un'analisi approfondita, dobbiamo però esaminare alcune caratteristiche generali della maggior parte dei Sistemi Operativi (OS).


Gestione Delle Risorse

Uno dei compiti principali di tutti i sistemi operativi è la gestione delle risorse di un computer. Con il termine "risorse" non si intendono soltanto le varie unità di storaggio (floppy /hard disk, cd-rom, stampanti, scanner ecc...) ma anche le risorse "interne" come i caratteri (fonts), le varie librerie (libraries), i device audio e video, le finestre, gli schermi ecc...

Ogni risorsa viene vista dall'OS come un oggetto di dati (necessari per descrivere le caratteristiche della risorsa) e metodi di gestione. Per esempio una risorsa di tipo "stampante" conterrà tra i vari dati il numero di righe e di colonne stampabili per ogni pagina, se la stampante è a colori e così via; mentre tra i vari metodi di gestione ci saranno comandi tipo "stampa", "vai a fine pagina" ecc...


Risorse E OS

Tutte queste risorse vengono gestite dall'OS in modo trasparente. La nostra valutazione verterà sui differenti metodi di implementazione che è stata scelta da Window e Amiga OS. Vediamo subito come Amiga interpreta la gestione delle risorse.


Gestione Delle Risorse In Amiga

In Amiga, Exec si occupa della gestione delle risorse in maniera dinamica. Quando un programma chiede una determinata risorsa all'OS, prima di tutto, Exec verificherà se quella risorsa è già stata richiesta in precedenza e se è quindi in uso: in gergo tecnico, si dice che quella determinata risorsa è "allocata". Ad esempio, se un programma chiede di aprire una libreria, Exec cercherà quella libreria in memoria. Nel caso la risorsa sia già presente, Exec non la ricaricherà una seconda volta, ma fornirà al programma che la richiedeva un puntatore alla risorsa richiesta. Nel caso invece che quella risorsa non sia già stata alloca da nessuno, Exec la caricherà in memoria e restituirà al programma un puntatore alla risorsa. Come vedete, in entrambi i casi, il programma richiedente si deve solo limitare a richiedere una determinata risorsa, ricevendo come risultato un puntatore. Questo consente ad Exec di occupare la memoria per una determinata risorsa una sola volta e di fornire a tutti i programmi che ne faranno richiesta, un puntatore all'area di memoria contenente la risorsa desiderata.


Gestione Delle Risorse In Windows

In Windows, le cose stanno diversamente. Esistono delle librerie di comandi dette "DLL", Dynamic Linked Library, che vengono agganciate dinamicamente al programma. Questo somiglierebbe molto alle Shared Library, le ".library" di Amiga, se non per il fatto che due programmi che condividono una stessa DLL devono risiedere nella stessa pagina di memoria, vale a dire che devono stare in 640K, altrimenti Windows ricaricherà la DLL in memoria una seconda volta. Gli utenti di Windows, conoscono bene errori tipo: "Impossibile aprire XXXXX.DLL perchè già in uso da un altro programma". Senza contare che eventuali "linkaggi" si limitano alle DLL: fonts, devices e qualsiasi altra cosa viene comunque ricaricata per ogni programma.

Immaginate quindi adesso tre programmi che fanno uso del font "Times New Roman" grande 15 punti, che richiedono la GDI.DLL e aprano drivers MCI: il font verrà caricato tre volte, la GDI.DLL e MCI aperti (almeno) due volte. I tre programmi chiederanno complessivamente da un minimo di sette a un massimo di nove risorse al sistema, delle quali almeno quattro potevano essere evitate. Ecco perchè per utilizzare Windows avete bisogno di almeno 8 Mega di memoria. Senza contare che, anche con 8Mb, che il vostro Hard Disk (dove Windows tiene un file di swap che usa come memoria virtuale) sarà continuamente in funzione.

Buon lavoro, quindi, con Windows. E quando la lucetta del vostro hard disk si accenderà per l'ennesima volta, pensate che molti utenti Amiga non sanno neppure cosa sia la memoria virtuale.


Pagina Principale


    Scritto da: Fabio Rotondo      e-mail: fsoft@intercom.it
                C.so Vercelli 9
                28100 Novara
                ITALY               tel:    (ITA) - (0)321 459676