Newsgroup: it.comp.os.os2
Titolo: ancora sulle memorie...

Ciao,
non contento di aver rotto abbastanza con questi discorsi, ci riprovo! ;-)
Assodato che la memoria del sistema e' a "L" (ossia che tutti i programmi 
possono avere 0.5 GB teorici a disposizione ciascuno), mi domandavo: ma il 
quantitavivo totale di memoria quale deve essere? 
-4 GB
-0.5GB x 1024 processi + 3.5 GB (le altre 2 arene)
Domanda 2: ho provato a rispondermi da solo sperando di riuscire ad allocare
piu' di 4 GB con il mio programmino ciuccia memoria. Ho notato questo:
-con swapfile di hpfs (quando la dimensione massima dei files e' di 2 GB) se
alloco (anche senza riempire!!!) piu' di 2 GB il sistema va in crash! Ma 
completamente... strano... la memoria e' totalmente libera, lo swapfile 
pure... forse lui controlla che lo swapfile possa riuscire a contenere in 
anticipo tutta la memoria allocata (anche se effettivamente non usata e 
quindi libera).
-se invece alloco e riempio la memoria allocata lo swapfile si attesta a 
2GB, poi il sistema va in crash (e qui niente di strano)
-se provo a fare lo stesso con eCS (con swapfile su JFS e quindi la 
dimensione massima del file dovrebbe ssere 2 TB!) il sistema non sembra 
riuscire a gestire swapfile piu' grandi di 2 GB!!! Ma pork... perche'?!? 
Riempindoli un po' alla volta (senza che gli indirizzi "si esauriscano"), mi
compare addirittura la finestra d'errore che dice "pirla, swap file 
pieno!"... chi mi spiega come mai?
Domanda 3 (ultima!): come gestisce fisicamente Os2 la situazione dal punto 
di vista della segmentazione? Crea un segmento per l'arena di sistema, uno 
per quella condiviso e uno per ogni arena privata? Poi mappa sulla memoria 
reale solo 3 segmenti alla volta (i 2 sempre attivi e il programma attivo)? 
Oppure usa tecniche diverse?
Grazie e scusate se abuso della vostra pazienza... :-)
-- 
Ciao 
        /^\
       / - \ntonio
 -+- Internet: 
aarregh-at-libero.it
 -+- Team Os/2 Italia
 -+- PGP Public Key Available on request
 -+- Homepage: 
http://digilander.iol.it/arrex
 -+- The Arrex/2... powered by Os/2 Warp 4... proud to be 100% Micro$oft 
free
--- ProNews/2 1.5 + Os/2 Warp 4
* Origin "Human Disasters: Hiroshima '45, Chernobyl '86, Windows '95

 completamente... strano... la memoria e' totalmente libera, 
Usa il Theseus e guarda cosa succede nella Linear Memory Map, cosi' capisci anche come 
gestisce la memoria virtuale OS2 (e eCS)...
Nel tuo caso magari la ram era tutta libera, pero' chi lo sa che gli indirizzi della 
private memory non abbiano finito x sconfinare nella shared arena?
Non so se cosi' e' successo ma in questo caso possono succedere le cose piu' strane...
blocchi, ecc.. ecc...
Sappi che se hai applicazioni (oltre al s.o. stesso) che sono brave :) e sono quindi 
"aware" della high memoria area (la private sopra i 2gb) puoi alzare il 
virtualaddresslimit a 3072 per es. e vedrai che invece che saturare tutti gli indirizzi 
della private memori (bassa) e quindi andare a sconfinare nella shared arena (la memoria x
le dll per es..) andranno a mettere pezzi "loro" nella high memory area senza cosi' 
mandare in esaurimento di risorse il sistema..
non e' molto semplice a spiegarsi la cosa, ma se lanci il Theseus e guardi "Linear Usage 
by Process" le cose ti sembreranno subito piu' chiare.
bye
-- 
Massimo
=-  Quasar BBS     
http://bbs.quasarbbs.net
 
=-  
irc.quasarbbs.net
      channel: #eCSita   
=-  
http://www.teamos2.it
 
http://www.ecomstation.com/

 by Process" le cose ti sembreranno subito piu' chiare.
a me sono sembrate ancora piu' fumose... ;-)) In particolare non capisco:
1- Perche' 2 stadi di traduzione?
2- La massima memoria TOTALE (=somma di tutto il codice memoriazzato) 
allocabile e' 4 GB?


 allocabile e' 4 GB?
as far as i know... si :>


 molto probabilmente x chissa' quale compatibilita' col passato...
o forse perche' altrimenti non saprebbe come allocare la memoria 
virtuale.... o forse per implementare la crash protection....


 mettercene quanta ne vuoi che non la usa.... :-(((
devono fare le chiamate alla doscall con il parametro objany se non ricordo male, per 
poter usufruire della HMA.
ma sappi che gia' di per se' il sistema ci va a mettere delle sue cose (vedi parti del 
sistema stesso, pmspool, dll varie della wps ecc..) quindi un minimo di beneficio ce l'hai
lo stesso, ma e' anche vero che programmi scritti bene come DB2 per es. fanno uso della 
HMA.. 


 HMA.. 
puoi costringere anche il java a mettersi lassu'... ma non e' un beneficio 
per il sistema... solo per il programma stesso che puo' allorare 3 GB 
(teorici) e non 512 MB (teorici pure questi).... per il resto ce ne 
frega....


 Con i Motorola mai esistiti problemi del genere!
immaginavo...


 frega....
 
per esperienza..
piu' programmi riescono a piazzarsi nella hma e piu' i "poveretti" che non possono farlo 
funzionano meglio :)
anche se la differenza non e' che sia come tra il giorno e la notte :D



teorici per te:-)
Ho un PC con 512MB di ram... metti che 60-70 siano per il sistema 
operativo, una appl
riuscirebe ad allocarli... quasi quasi faccio un prg magnaram :-)
-- 
ciao, Mirco.
[ 
http://www.quasarbbs.net/mircomir/
 ] [ Icq#:51640305 ]
[ 
http://www.quasarbbs.net/pido2/
 ]
 ******************************************************
  Important:                               Importante: 
 
  @
msn.com
, @
excite.com
, @
sina.com
, @
dispensa.com
, 
  @
prontomail.com
, @
freeze.com
, @
ieg.com.br
 
  are deleted by mail spam filter           
  vengono cestinati automaticamente         
 ****************************************************** 

 riuscirebe ad allocarli... quasi quasi faccio un prg magnaram :-)
signori, vedo che le disquisizioni dell'altra volta non sono servite! :-) 
512 MB sono il limite teorico (vedi sopra) per OGNI applicazione. Ogni 
pagina di memoria e' allocata del SO con uno strano metodo (16:16) ma cosi' 
non e' utilizzabile. Per utilizzarla il suo indirizzo deve venire 
trasformato in un indirizzo 0:32, detto linear address space; questo 
costruisce un grosso segmento di memoria di 4 GB del quale 3.5 sono in arena
di sistema, 0.5 tra arena condivisa e il programma che si sta eseguendo. Con
il context switching (l'operazione che il SO fa quando cambia il task in 
esecuzione) l'arena privata viene interamente rimappata dalla nuova 
applicazione in esecuzione. Per cui TUTTE le applicazioni hanno a 
disposizione 512 MB - lo spazio dell'arena condivisa.
Dovrebbe pero' permanere il limite totale di memoria allocabile di 4 GB 
(infatti il sistema 16:16 permette di allocare 4 GB)...
Per cui non c'e' alcun vantaggio nel sistema allocare i programmi nell'HMA 
piuttosto che nell'area bassa... solo svantaggi visto che si riduce l'arena 
di sistema (c'e' da dire che comunque questa non utilizza l'area tra 0.5 GB 
e 1.5 GB, per cui quella si puo' assegnarla senza problemi all'HMA...).
Il vantaggio sta solo nell'applicazione che gode di maggior spazio... ah, 
no, c'e' un vantaggio anche per il sistema: programmi troppo grossi 
restringono l'arena condivisa e possono limitare il numero di DLL da 
caricare... ma sinceramente e' un problema trascurabile... quando avete in 
memoria 60 MB di DLL e' gia' un valore astronomico...


 anche se la differenza non e' che sia come tra il giorno e la notte :D
puo' essere, ma non capisco perche'... forse perche' il context switching e'
piu' veloce?


 piu' veloce?
non ti fare pippe mentali :)
nel senso che e' meglio xche' e' piu' difficile che ti si impasti la macchina...
tutto qui :> 



so benissimo come funziona un SO :-) (non per niente mi sto per laureare in
ing. informatica).


 ing. informatica).
ficata... sai consigliarmi un testo su cui studiare ste cose? In ing. 
elettronica non trattano molto i sistemi operativi...



purtroppo no, io ho sempre fotocopiato e/o usato dispense. CMq, se riesci
segui un corso di SO...



Sistemi Operativi del Maestrini della McGrallHill. E' usato a Pisa per 
Informatica e Scienze dell'informazione (ormai deceduta...). La sua 
trattazione è molto teorica e nel contempo MOLTO orientata allo UNIX.
Per esempio la trattazione della schedulazione dei processi la potete 
trovare pari pari nei manuali di Unix e Linux. In particolare si spiega la 
trattazione della divisione dei processi in classi (vi ricorda qualche 
cosa?) e ogni classe è schedulata con un algoritmo diverso; in OS/2 con lo 
stesso!
Ciao,
 Claudio


Se ricordo bene dipendeva dalla compatibilità di OS/2 alla sua vecchia 
versione per 286 (a 16 bit). Questo problema è rimasto fino ad Aurora e fix 
13.
Ciao,
      Claudio



interessante grazie... non e' che per caso esiste un testo in cui il caso 
os2 venga trattato in un certo dettaglio?



Ti consiglio Inside_OS2 disponibile su PIDO/2.
Ciao,
 Claudio

 Ciao,
Seleziona Lingua inglese poi sezione manuals...
Oppure premi su (Tutti) (o (All)) di fianco alla scritta manuali (o manuals)

 Ti consiglio Inside_OS2 disponibile su PIDO/2.
ma che e' sta roba?!? Inside_os2?!? Ma e' una roba di os2 1.0?!? Parla anche
di bill gates, di 286... :-))))))


 Nella sezione Dl ci sono degli interessanti pidieffoni... 
..nella sezione ebooks ci sono dei pdf ma non sono cosi' inerenti questo 
topic... :-(


 trattazione è molto teorica e nel contempo MOLTO orientata allo UNIX.
a udine tutto ci' non esiste... se lo ordino passano mesi! :-(( Ho comunque 
comprato il libro che qui usano a informatica... alcune cose sono 
interessanti... solo che non ho ben capito una cosa:
Quando parla della paginazione con segmentazione nel 386 (e riporta proprio 
il caso di os2) lui dice:
Ci sono degli indirizzi segmentati che chiamiamo "indirizzi virtuali"; il 
386 alloca fino a 8192 segmenti con con 32 bit di offset!?!? (possibile?!?) 
sarebbe a dire indirizzi a 45 bit!
Poi continua; ogni indirizzo virtuale (e non si capisce se tutti o ogni 
processo, suppongo tutti) ha un identificatore di segmento a 16 bit e un 
offset a 32 bit (ora i bit diventano 48!)... dei primi 16 i primi 13 servono
per identificare il segmento (8K segmenti), il 14esimo per dire se il 
segmento e' privato o condiviso (o va nella GST LST) e gli ultimi 2 per 
definire i permessi di accesso...
Questo indirizzo segmentato "virtuale" viene trasformato in un indirizzo 
lineare a 32 bit... poi paginato ecc... e qui nessun problema... le mie 
domande sono:
1-E' vero?!?
2-Se si ci sono 8192 segmenti per programma o in totatale (di cui magari os2
ne usa solo 1024...)
3-Se e' cosi' la memoria totale ipotetica allocabile da os2 sarebbe di 512MB
per processo *  1024 processi e non soli 4 GB?


512MB per processo *  1024 processi e non soli 4 GB?
No. Il SO alloca quanto serve al processo, non tutto il possibile. Se ci 
sono più processi che vogliono 2G di RAM (Aurora), oltre i due non possiamo 
andare. Cioè, tutto lo spazio di indirizzamento è totale (quasi, perché il 
SO occupa e non se ne va!): se c'è un solo processo lo può usare tutto, 
altrimenti no! Naturalmente sto trascurando il problema della memoria 
virtuale. Ma il concetto è lo stesso. Io uso quanto voglio fino al massimo 
4G, se non ci sta in RAM uso il disco (basta che il totale sia 4G, dovuto 
ai 32bit).
Sarebbe bello parlarne di persona...
Ciao,
 Claudio

 Sarebbe bello parlarne di persona...
vero.... ma come si fa? e su irc?


 > assicuro che quel programma non sconfina! ;-)
Visto, come evidente, che ne sapete a pacchi sulle memorie e sempre a 
proposito di "pacchi", cosa sono gli errori di "page fault" di Win2000
presenti nel TaskManager e che raggiungono valori inusitati durante il
normale lavoro (es., 6milioni di page fault in explorer.exe, e fortuna
che lo fanno loro...)
Sono errori nell'allocazione della memoria da parte del programma 
('sti tonti sono riusciti ad acquistare una P4 2000per il CADCAM con 
una scheda video 32Mb penosa, HDD IDE invece di SCSI e 256Mb di 
memoria: il mio AMD450 ne ha 300...)?
-- 
Saluti, Stefano.
OS/2 Warp4 FP9-ProNews V1.51.ib104(Reg.). Remove ##NOSBARI## to reply

 proposito di "pacchi", cosa sono gli errori di "page fault" di Win2000
e ke ne so?
non uso piu' windows dalla beta di w95... 



E' verissimo. Ma, a differenza di quello che si potrebbe credere, è molto 
più attuale di quello che si pensa. Poi, per le questioni del multitasking, 
gestione della memoria e altro, quasi quasi l'implmentazione in eComStation 
non gli differisce in nulla rispetto a quanto descritto, o pochissimo.
Ciao,
 Claudio


Ciao,
  Claudio

 non uso piu' windows dalla beta di w95... 
Ooooh, la'....
E la Mitrosoft s'e' inventata un altro modo di crearsi degli errori al
di fuori della Teoria dei Sistemi Operativi.
E poi dicono l'innovazione...
-- 
Saluti, Stefano.
OS/2 Warp4 FP9-ProNews V1.51.ib110(Reg.). Remove ##NOSBARI## to reply