annuncio

Comprimi
Ancora nessun annuncio.

Programmazione & Co....

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • #11
    Re: Programmazione & Co....

    Ragazzi una domanda ai programmatori
    anzi due
    1) quali sono le 2 operazioni che vengono eseguite da un file di swap (a me vengono in mente solo lettura e scrittura)
    2) come si fa a fare in modo che un programma venga caricato in memoria virtuale anziche nella memoria fisica

    a voi vi sembrano domande presentabili ad un esame di informatica all'università?

    sparate li nel nulla
    secondo me sono impazziti
    Ciao Silvietta, forse un giorno torneremo insieme. GTR è stato un piacere inchiappettare i PORCHISE con te. Lexus fottiti, aripijate sto barcone (Monti BOLLO style rulez) e adesso me la pijo in saccoccia
    Vorrei renderti intelligente cinque minuti per farti capire quanto sei idiota...!!
    Cos'è un Hondista?Colui che compensa la scarsezza del mezzo con il rumore di ferraccio che per altro da pure fastidio...by TD06

    Commenta


    • #12
      Re: Programmazione & Co....

      Originariamente inviato da Il Megane coach Visualizza il messaggio
      Ragazzi una domanda ai programmatori
      anzi due
      1) quali sono le 2 operazioni che vengono eseguite da un file di swap (a me vengono in mente solo lettura e scrittura)
      2) come si fa a fare in modo che un programma venga caricato in memoria virtuale anziche nella memoria fisica

      a voi vi sembrano domande presentabili ad un esame di informatica all'università?

      sparate li nel nulla
      secondo me sono impazziti
      1)
      un file di swap non esegue operazioni.
      un'allocazione di memoria non credo esegua qualcosa

      2)
      un programma viene caricato sempre nella memoria virtuale (RAM)

      comunque mi sembra difficile pensare che le domande del compito fossero proprio queste, sono veramente mal poste..
      L'immaginazione è più importante della conoscenza!

      Commenta


      • #13
        Re: Programmazione & Co....

        Originariamente inviato da fauley Visualizza il messaggio
        1)
        un file di swap non esegue operazioni.
        un'allocazione di memoria non credo esegua qualcosa

        2)
        un programma viene caricato sempre nella memoria virtuale (RAM)

        comunque mi sembra difficile pensare che le domande del compito fossero proprio queste, sono veramente mal poste..
        la ram è volatile nn virtuale.. ad accesso casuale Random access memory.


        la virtuale è praticamete il file di swap sommato alla fisica...
        che viene letto e scritto e mantiene i dati...
        Ultima modifica di fran_74; 28-02-2007, 13:12.
        **Fran74@RdORoma.com** ---RdO site---- The aBBBusive Power of Rome -
        -The Virtual Club- V.P.
        don't try this on the road
        Orso Nero... fratello dell'Orso Bianco e compare dell'Orso Grigio
        Member of Øя MǾΘ®$ρƠЯŤ Member of Hot RdO By Night-Vampiri della notte I sette nani dell'Obelisco ROTTOLO

        Commenta


        • #14
          Re: Programmazione & Co....

          Originariamente inviato da Il Megane coach Visualizza il messaggio
          a voi vi sembrano domande presentabili ad un esame di informatica all'università?
          ...è già tanto che le hanno poste in italiano guarda, e che abbiano addirittura detto "file di swap", che è comprensibile
          SE USATE SPESSO I FORUM, "FORUM ADDITIVE" E' L'ESTENSIONE CHE FA PER VOI!
          Ora finalmente in versione definitiva, è PERFETTO provatelo! La vita non la cambia, ma la rende parecchio comoda
          Problemi con il pc? Venite a trovarmi sul "mio" forum vi aiuteremo molto volentieri!

          Commenta


          • #15
            Re: Programmazione & Co....

            cazzo cmq che scandalo...
            JAPAN SEX LIFE...
            ECCITATO DAGLI OCCHI A MANDORLA

            Commenta


            • #16
              Re: Programmazione & Co....

              Originariamente inviato da PuntoHI-Fi Visualizza il messaggio
              Apro questo post per discutere un po' con gli appassionati (o che ci lavorano) di programmazione (java,C,c++,C#, e tt la compagnia bella) spero possa interessare! (non lasciatemi solo )


              che linguaggi usate? a che progetti state lavorando?



              susu dai nn siate timidi!
              vb, c/c++, pascal , assembly, java, html, php, asp e.. basta mi pare... ah beh.. SQL per le varie query nei db...
              prevalentemente ora uso vb ed asp...

              sto lavorando già da un paio di anni con una ditta che avvia uffici di poste private.. mi occupo del software di gestione dell'ufficio postale...

              a volte mi capita di usare ASP per gestire il sito web per il tracking della corrispondenza o per gli utenti registrati...
              Ultima modifica di SubZero83; 28-02-2007, 14:07.


              ... Ma se ghe penso alloa mi veddo o mâ, veddo i mæ monti e a ciassa da Nonsiâ, riveddo o Righi e me s'astrenze o chêu, veddo a lanterna, a cava, lazzû o mêu... Riveddo a séia Zena illûminâ, veddo là a foxe e sento franze o mâ e alloa mi penso ancon de ritornâ a pösâ e osse dov'ò mæ madonnâ...

              Commenta


              • #17
                Re: Programmazione & Co....

                Originariamente inviato da fran_74 Visualizza il messaggio
                la ram è volatile nn virtuale.. ad accesso casuale Random access memory.


                la virtuale è praticamete il file di swap sommato alla fisica...
                che viene letto e scritto e mantiene i dati...
                Comunemente si intende con memoria di massa o fisica la memoria che effettua lo storage dei dati su supporti fisici in grado di mantenere i dati anche dopo lo spegnimento dell'elaboratore, mentre con memoria volatile ci si riferisce ad una memoria temporanea che non mantiene i dati dopo lo spegnimento del calcolatore..

                effettivamente a voler essere puntigliosi è possibile distinguere fra:
                - memoria volatile e ad accesso casuale riferendoci alla ram
                - memoria virtuale (che permane dopo lo spegnimento ma viene riscritta all'accensione del calcolatore) riferendoci al file di paging o swap, cioè un metodo per estendere la memoria volatile.

                Dire che
                la virtuale è praticamete il file di swap sommato alla fisica...
                mi sembra qualcosa di molto divertente
                L'immaginazione è più importante della conoscenza!

                Commenta


                • #18
                  Re: Programmazione & Co....

                  uso c++ c e visual C e un po di java,assembly e SQL anche qualcosa sutto linux...escluso il lavoro sto sviluppando un'interfaccia centralina pc e poi modifico qualche classe di visualc per rendere un po piu bella la grafica......
                  Ultima modifica di falcon80; 01-03-2007, 11:42.
                  A.T.C. - Ancona Tuning Club - Socio n°6
                  ** Club Tuning 2 Monti **
                  Club dei CORTOCIRCUITI member N°5
                  La mia piccola:clicca qui nuove foto
                  Forum:tiburon drivers team forum
                  Sito:tiburon drivers team

                  Commenta


                  • #19
                    Re: Programmazione & Co....

                    io al massimo col commodore facevo un po di programmazione. pero vorrei imparare i nuovi linguaggi
                    Vendo Fiat Nuova 500 L del 1968 da vetrina info mandatemi un P.M.
                    http://www.elaborare.info/forum/vbul...d.php?t=112670
                    Se mi guardi in viso altro non puoi vedere, ti guarderò negli occhi e mai mentirò....
                    Fiesta Mk3 1992 1.1 cc 53cv 5200 Giri/min 86 Nm 3000 Giri/min 820 Kg peso 162 Km/h 0-100 13,70 Sec Carburatore Doppio Corpo Weber Power
                    VIDEO http://video.libero.it/app/play?id=4...1fe58d1e8e1230

                    Commenta


                    • #20
                      Re: Programmazione & Co....

                      Originariamente inviato da fauley Visualizza il messaggio
                      Comunemente si intende con memoria di massa o fisica la memoria che effettua lo storage dei dati su supporti fisici in grado di mantenere i dati anche dopo lo spegnimento dell'elaboratore, mentre con memoria volatile ci si riferisce ad una memoria temporanea che non mantiene i dati dopo lo spegnimento del calcolatore..

                      effettivamente a voler essere puntigliosi è possibile distinguere fra:
                      - memoria volatile e ad accesso casuale riferendoci alla ram
                      - memoria virtuale (che permane dopo lo spegnimento ma viene riscritta all'accensione del calcolatore) riferendoci al file di paging o swap, cioè un metodo per estendere la memoria volatile.

                      Dire che mi sembra qualcosa di molto divertente
                      divertiti..


                      Memoria virtuale
                      Da Wikipedia, l'enciclopedia libera.
                      Vai a: Navigazione, cerca

                      In informatica, la memoria virtuale è una architettura di sistema capace di simulare uno spazio di memoria centrale maggiore di quello fisicamente presente; questo risultato si raggiunge utilizzando spazio di memoria secondaria su altri dispositivi, di solito le unità a disco. La memoria centrale fisicamente presente diventa quindi la parte effettivamente utilizzata di quella virtuale, più grande: questo stratagemma è utile in virtù del principio di località dell'esecuzione dei programmi. La memoria secondaria utilizzata a questo scopo è comunemente chiamata, in ambiente Posix, swap o spazio di swap (verbo inglese che significa "scambiare"), mentre, in ambiente Windows, è chiamata file di paging. Le operazioni di spostamento delle pagine dallo spazio di swap alla memoria fisica sono chiamate swapping.

                      In un sistema dotato di memoria virtuale, il processore e i programmi si riferiscono alla memoria centrale con indirizzi logici, virtuali, che vengono tradotti in indirizzi fisici reali da una unità apposita, la MMU o memory management unit che in genere è incorporata nei processori.

                      La MMU svolge i seguenti compiti:

                      1. Traduce l'indirizzo logico in indirizzo fisico;
                      2. Controlla che l'indirizzo fisico corrisponda a una zona di memoria fisicamente presente nella memoria centrale;
                      3. Se invece la zona in questione è nello spazio di swap, la MMU solleva una eccezione di page fault e il processore si occupa di caricarla in memoria centrale, scartando una pagina già presente.

                      Questo meccanismo ha un prezzo in termini di prestazioni: la MMU impiega del tempo per tradurre l'indirizzo logico in indirizzo fisico, e ce ne vuole molto di più per caricare una zona di memoria dallo spazio di swap: in ultima analisi quindi, implementare una memoria virtuale significa sacrificare potenza di calcolo per poter eseguire un maggior numero di processi contemporanei.

                      Detto Ta il normale tempo di accesso alla memoria fisica, Tt il tempo di traduzione di indirizzi della MMU e Tload il tempo necessario a caricare una zona di memoria dallo swap, il tempo (medio) di accesso in caso di memoria virtuale è:

                      Tav = Tt + Ta + Tload * Pfault

                      dove Pfault è la probabilità di page fault, cioè di incappare in una pagina che non è presente in memoria centrale e di doverla quindi caricare dallo swap.
                      Indice
                      [nascondi]

                      * 1 Meccanismi di memoria virtuale
                      o 1.1 Memoria paginata
                      o 1.2 Memoria segmentata
                      * 2 Thrashing
                      * 3 Algoritmi di swapping
                      o 3.1 Strategia ottimale
                      o 3.2 FIFO
                      o 3.3 Seconda scelta (Algoritmo dell'orologio)
                      o 3.4 LRU
                      * 4 Bibliografia
                      * 5 Voci correlate

                      [modifica] Meccanismi di memoria virtuale

                      Esistono principalmente due modi di implementare un sistema di memoria virtuale: dividere la memoria in tante pagine identiche, gestite dall'hardware, oppure lasciare che sia il programmatore e/o il compilatore che usa a "segmentare" il proprio programma in più segmenti (sperabilmente) indipendenti.
                      Entrambi i metodi presentano vantaggi e svantaggi: in questi ultimi tempi tuttavia il sistema di gran lunga più usato è la memoria paginata, per via della maggiore omogeneità e indipendenza dal software.

                      [modifica] Memoria paginata

                      Con questo schema la memoria viene divisa in pagine tutte della stessa grandezza (4 o 8 kilobyte): i programmi non hanno bisogno di sapere nulla su come è organizzata la memoria e non devono avere nessuna struttura interna particolare; la esatta ubicazione e disposizione fisica della memoria che occupano non li riguarda e tutto il sistema di memoria virtuale è completamente gestito dalla MMU attraverso un complesso sistema di registri associativi. Proprio questo sistema di registri è il punto debole di questo tipo di meccanismo: se il numero delle pagine è molto grande (pagine di piccole dimensioni, oppure grandi quantità di memoria virtuale da emulare) il meccanismo associativo può diventare troppo complesso, rallentando sensibilmente l'accesso alla memoria (e quindi tutto il sistema).

                      Un possibile rimedio è quello di aumentare la dimensione della pagine di memoria, al prezzo di un maggior spreco di memoria stessa (frammentazione interna: più grandi sono le pagine, più aumenta il numero di pagine parzialmente vuote e più spazio viene sprecato).

                      Più dettagliatamente il meccanismo di gestione della memoria virtuale con paginazione è il seguente. L'immagine di un processo è suddivisa in pagine di dimensione fissa. La memoria principale è suddivisa anch'essa in "pezzi", della stessa dimensione delle pagine, detti frame. Ad ogni processo è associata una tabella, mantenuta in memoria principale o secondaria a seconda delle dimensioni, detta tabella delle pagine. Ogni entrata (riga) della tabella delle pagine contiene:

                      Il numero di pagina per quella riga, Il bit present , Il bit modified, Il numero di frame corrispondente

                      Gli indirizzi logici sono rappresentati dalla coppia (nr. di pagina, offset). La traduzione avviene in questo modo: si trova la riga corrispondente al numero di pagina dell'indirizzo logico, se il bit Present è 0, la pagina non è presente in memoria principale, si genera quindi un Page Fault e si attende che la pagina sia caricata in memoria, infine si genera l'indirizzo fisico (nr. frame, offset)

                      Il bit Modified indica invece se la pagina è stata modificata o meno. Infatti se una pagina non è stata modificata, al momento di effettuare lo swap nella memoria secondaria, non ha senso riscrivere la pagine su disco. Risparmiando così tempo, e migliorando in parte le prestazioni.

                      Un ultimo dettaglio tecnico. Supponiamo di avere indirizzi logici e fisici di lunghezza k bit. Di questi n saranno destinati al nr. di pagina e m all'offset. Si ha quindi k = n + m. Da questo di deduce che ogni pagina,ed ogni frame, ha dimensione 2^m bit. Supponiamo ora che volendo tradurre un indirizzo logico (nr. pagina, offset), si trovi che il frame corrispondete alla data pagina sia l'i-esimo. Questo però non corrisponde ancora al vero indirizzo fisico, ma solamente all'indice del frame. Per ottenere l'indirizzo fisico si deve ora moltiplicare i * 2^m. Il vantaggio di questa tecnica consiste nel fatto che, nel sistema binario, questa operazione può essere eseguita concatenando m zeri alla rappresentazione binaria di i. Un'operazione quindi molto veloce, che può essere eseguita direttamente in hardware.

                      [modifica] Memoria segmentata

                      In questo caso il meccanismo di memoria virtuale è in parte software: i programmi che girano su sistemi con memoria segmentata sono strutturati in segmenti funzionalmente omogenei: la MMU tiene traccia di quali e quanti segmenti sono presenti in memoria e dove. Il vantaggio principale di questo sistema è che sfrutta al massimo il già citato principio di località, riducendo al minimo il ricorso allo spazio di swap: una volta che un programma ha in memoria centrale i segmenti di cui necessita, solo raramente ne chiederà di nuovi. Il grosso svantaggio di questo sistema, invece, è il grande spreco di memoria dovuto alla frammentazione esterna: con l'andare del tempo e il susseguirsi dei processi in esecuzione, la memoria viene allocata e disallocata in blocchi di varie dimensioni che lasciano un sempre maggior numero di "buchi" vuoti, troppo piccoli per poter essere utilmente allocati: questo rende necessario eseguire una dispendiosa compattazione periodica della memoria fisica allocata, e/o l'uso di algoritmi di allocazione molto sofisticati.

                      [modifica] Thrashing

                      È indispensabile che la quantità di memoria fisica presente sia almeno sufficiente a mantenere la località del sistema, ovvero quella parte di dati ed informazioni che sono utilizzate nell'immediato da ogni processo. Se così non fosse, infatti, il sistema dovrebbe continuamente provvedere ad eseguire delle operazioni di swapping per far si che ogni processo abbia i dati di cui necessita.

                      Ad esempio supponiamo che in un dato momento la memoria fisica sia satura e contenga esattamente la località del sistema e che in questa situazione viene avviato un nuovo programma. Il processo che viene creato ha bisogno di allocare della memoria. Dato però che la memoria principale è piena il sistema operativo provvede a liberare parte dello spazio memorizzando parte delle informazioni nella memoria secondaria. Successivamente, quando il controllo torna al processo i cui dati sono stati appena spostati, viene nuovamente richiesta un'operazione di swapping per ricaricare in memoria principale gli stessi. Dato che tutte le informazioni contenute nella memoria principale sono indispensabili questo fenomeno avviene molto spesso. Essendo la memoria secondaria molto più lenta (centinaia o migliaia di volte) rispetto alla memoria principale, questo causa un considerevole rallentamento del sistema, che è impegnato quasi esclusivamente in operazioni di I/O, e diventa presto inutilizzabile e poco, o per nulla, responsivo ai comandi dell'utente. Tale fenomeno è chiamato thrashing.

                      Tecnicamente,quando la memoria fisica libera (e quindi il numero di frame liberi) è insufficiente a contenere il working set corrente di un processo, quest’ultimo comincerà presto a generare parecchi page fault, rallentando considerevolmente la propria velocità d’esecuzione. Quando parecchi processi cominciano ad andare in thrashing, ovvero a spendere più tempo per la paginazione che per l’esecuzione, il sistema operativo potrebbe erroneamente essere indotto a dedurre che sia necessario aumentare il grado di multiprogrammazione (dato che la CPU rimane per la maggior parte del tempo inattiva a causa dell’intensa attivita di I/O). In questo modo vengono avviati nuovi processi che però, a causa della mancanza di frame liberi, cominceranno a loro volta ad andare in thrashing: in breve le prestazioni del sistema collassano fino ad indurre l’operatore a dover terminare forzatamente alcuni processi. Un modo per limitare questo fenomeno consiste nel utilizzare una procedure di rimpiazzamento locale, ovvero dare la possibilità al gestore della memoria virtuale di sostituire le pagine associate al solo processo che ne fa richiesta. In questo modo si impedisce che l'intero sistema vada in Thrashing.

                      [modifica] Algoritmi di swapping

                      Esistono varie tecniche per decire quali sono le aree di memoria che è preferibile spostare dalla memoria primaria alla secondaria. Le seguenti sono le più diffuse:

                      [modifica] Strategia ottimale

                      Questa tecnica consiste nel rimpiazzare la pagina di memoria che verrà riutilizzata più in là nel tempo. Chiaramente, per poter essere realmente implementata, richiederebbe che il S.O. conoscesse in anticipo le pagine utilizzate nel futuro dai processi. Non è quindi utilizzabile come algoritmo di rimpiazzamento delle pagine in memoria principale, ma come metro di confronto delle altre strategie.
                      Ultima modifica di fran_74; 01-03-2007, 11:52.
                      **Fran74@RdORoma.com** ---RdO site---- The aBBBusive Power of Rome -
                      -The Virtual Club- V.P.
                      don't try this on the road
                      Orso Nero... fratello dell'Orso Bianco e compare dell'Orso Grigio
                      Member of Øя MǾΘ®$ρƠЯŤ Member of Hot RdO By Night-Vampiri della notte I sette nani dell'Obelisco ROTTOLO

                      Commenta

                      Sto operando...