Curiosità in merito a variabili e RAM

di il
53 risposte

53 Risposte - Pagina 4

  • Re: Curiosità in merito a variabili e RAM

    La gestione della memoria è complicata anche per i più bravi, ecco perché hanno creato tutto questo meccanismo.

    PROCESSO address 0/xbit
    SISTEMA OPERATIVO decide come gestire la memoria virtuale.
    MMU aiuta il s.o. a calcolare l'indirizzo reale.

    questa è la base più semplice di tutte.
    Poi se si ha lo swap si possono salvare delle pagine di memoria non utilizzate li, ad esempio hai aperto fitefox ma è da x tempo che non lo usi allora il kernel oltre che metterlo in stato "dormiente" salva le "pagine" di memoria nello swap in modo che nella memoria reale hai solo ciò che realmente usi.
    Questo passaggio non è obbligatorio ma tu hai almeno un centinaio di processi che magari "dormono", pensa al servizio di stampa, mica stampi sempre! e allora perché sprecare memoria quando non la usi? l'unica scusante sono i nuovi HD SSD o le " semplici" SD/emmc perché sono più "sensibili" alle continue scritture.
    Ma potresti benissimo montare un HD esterno atto a infilare dentro una tipologia di processi ben definita e qui per la gioia di Oregon potresti modificare qualche file di configurazione linux o crearti le tue regole....su windows sei solo succube delle suebgestioni...
  • Re: Curiosità in merito a variabili e RAM

    @ultrasound: la cosa e' decsamente piu' complicata di cosi'!

    In soldoni.

    In Windows i programmi non vengono caricati in memoria.

    Quello che Windows fa e' mappare il file dell'eseguibile nel segmento della memoria virtuale associata al codice, quindi crea il segmento relativo allo stack e allo heap.

    Ora, ritorna in gioco la questione delle pagine! Ed in particolare il concetto di working set (WS): Il SO carica nella memoria fisica solo le pagine associate al segmento di codice correntemente in esecuzione, dello stack e dello heap correntemente in uso.
    A mano a mano che l'esecuzione avanza, piu' stack viene usato o piu' dati vengono allocati nello heap, si vanno a caricare in memoria altre pagine.

    Quante? C'e' un numero minimo e un numero massimo, che dipende dalla dimensione dell'eseguibile, dalla quantita' di memoria fisica, dal numero di processi attivi e dai relativi WS.

    Il numero di queste pagine cambia con il tempo, secondo opportune politiche di ottimizzazione.
    Se il processo richiede di caricare PIU' pagine del WS, il SO si occupa di scaricare su disco alcune pagine del processo corrente, o di altri processi ed allocarne di nuove.

    Ovviamente tutto l'ambaradan entra in gioco in modo evidente quando vuoi usare piu' memoria di quella fisicamente disponibile: se non hai abilitato i PagingFile, Windows non puo' liberare la memoria ed il processo corrente va in crash (oltre ad impastare il sistema, perche' con scarsita' di memoria, tutto va in malora).

    Ovviamente, visto che anche il PagingFile ha generalmente una dimensione massima, se tenti di allocare PIU' memoria di quella fisica + quella disponibile nel PagingFile, schianta tutto!


    Nota: la partizione di swap di Linux e' l'equivalente del PagingFile di Windows: hanno lo stesso compito.
  • Re: Curiosità in merito a variabili e RAM

    Moltiplica il tutto per xxx e ottieni solo una gestione superficiale di memoria...
    Ad esempio Windows dato che usa la segmentazione può caricare in memoria solo una parte di eseguibile mentre il resto lo può lasciare su HD e richiamarlo solo quando c'è realmente bisogno, questa è la causa che tu devi riavviare il computer per aggiornare certe applicazioni o librerie di sistema, linux invece ha bisogno si caricare tutto in memoria e quindi puoi sovrascrivere una libreria anche se di sistema senza vedere nessun cambiamento fino a che tu non riavvii tale applicazione.
    Tale meccanismo di windows è stato usato anche come base delle applicazioni .NET, non tutto viene compilato e caricato in memoria ma solo ciò di cui hai realmente bisogno.
    Chi è meglio? nessuno! dipende da cosa devi fare.
  • Re: Curiosità in merito a variabili e RAM

    ultrasound91 ha scritto:


    ... faccio un uso consapevole ...
    Più che altro un uso moderato ...
  • Re: Curiosità in merito a variabili e RAM

    Prova a vederla cosi:
    windows vede un programma come se fosse uno schedario, quando ha bisogno di qualcosa apre l'archivio ed estrae la scheda che ha bisogno, quando non gli serve più la rimette a posto e ne preleva un'altra, se provassi a cambiargli anche solo una scheda lui andrebbe in "banana"
    Linux invece vede un programma come fosse un libro, quando ne ha bisogno lo legge tutto e lo ripone ricordando tutto a memoria e anche se tu lo cambi a lui non gli importa e neppure se ne accorge.
    Questa è la teoria di base ma come avrai ben capito esistono mille sfumature.
    Questo principio però lo vivi spesso, pensa se sei su windows e stai usando firefox, a un certo punto mentre navighi viene installato un aggiornamento e ti viene chiesto di riavviare l'applicazione, questo per diverse ragioni una di quelle è questa appena spiegata.
    Su linux puoi continuare a navigare nonostante hai appena installato il nuovo firefox senza bisogno di chiudere l'applicazione.
    Lo so è già un casinò spiegata cosi terra a terra, pensa se introduciamo tutte le sfumature che possono insorgere!!!!!!!
    Ma a noi basta sapere i concetti di base anche sommariamente anche se riferiti a dei 386...poi col tempo forse impareremo tutte le sfumature.
  • Re: Curiosità in merito a variabili e RAM

    Su linux no!
    mentre windows blocca la scrittura sui file in esecuzione linux lascia fare ciò che si vuole, questo permette di aggiornare un server senza mai riavviarlo cosa impossibile su windows.( sto sempre un po estremizzando)
  • Re: Curiosità in merito a variabili e RAM

    È basato su BSD, freebsd conosci? unix like, in sostanza è simile a linux.
    non dirlo a nessuno ma sul mac c'è il terminale come su linux.....
  • Re: Curiosità in merito a variabili e RAM

    https://www.freebsd.org/doc/it_IT.ISO8859-15/articles/explaining-bsd/comparing-bsd-and-linux.html

    dopo che hai letto e appreso le minime differenze tra un apple, regina della grafica e un pc gnu/linux capirai che quello che hai detto tu sulla grafica è più che altro questione di soldi/licenze più che di sistema.
    Ma non dirlo a chi usa un osx e sopratutto non dire a nessuno che uno smartphone android usa il kernel linux, non dirgli che il sistema operativo si chiama gnu e non android.....
  • Re: Curiosità in merito a variabili e RAM

    Bhe se mi dici che app è te la copip per linux , anzi non ne avrò bisogno perché l'avra fatta uno che ha studiato e quindi più bravo di me!
    Tanto avrai usato QT.....
Devi accedere o registrarti per scrivere nel forum
53 risposte