RUN TIME ENVIRONMENT

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "RUN TIME ENVIRONMENT"

Transcript

1 RUN TIME ENVIRONMENT MEMORY ORGANIZATION Compiler must do the storage allocation and provide access to variables and data Memory management Stack allocation Heap management Garbage collection 1

2 MEMORY ORGANIZATION hypothesis Run time memory is based on contigued bytes The smaller addressed space is a byte (4 bytes = word) The number of bytes for a date depend on its type The memory structure depend on the target machine The space (in bytes) required for the code is calculated at compile time. Code Static Steak Free memory Heap 3 STATIC VS. DYNAMIC ALLOCATION Static: Compile time, Dynamic: Runtime allocation Many compilers use some combination of following Stack storage: for local variables, parameters and so on Heap storage: Data that may outlive the call to the procedure that created it Stack allocation is a valid allocation for procedures since procedure calls are nested 2

3 STATIC VS. DYNAMIC ALLOCATION Static Compile time Code based Dynamic Run time Code + Data based Strategies Stack allocation Heap allocation 5 STORIA DELL ALLOCAZIONE DELLA MEMORIA Allocazione statica (Static allocation) Una caratteristica del Fortran (fino al Fortran77) Implca che le dimenzioni degli arrays sia conosciuta a compile time no funzioni o sottoprogrammi ricorsivi Nessuna allocazione dinamica di strutture dati Grande Efficienza: l accesso ai dati è di norma diretto Sicurezza Nessuna possibilita di out of memory a runtime 3

4 STORIA DELL ALLOCAZIONE DELLA MEMORIA Stack Allocation Introdotta con Algol58 Il tempo di vita (lifetime) è collegato con l attivazione delle procedure Implementato attraverso l utilizzo dei record di attivazione (stack frame): Differenti invocazioni istanziano differenti versioni delle variabili locali; il valore delle variabili locali non persiste fra successive invocazioni del sottoprogramma La dimenzione delle strutture dati locali può dipendere da un parametro È supportata le ricorsione La dimenzione del valore ritornato da una funzione deve essere nota a compile time Gli oggetti possono essere allocati dinamicamente nello stack ma sono comunque deallocati quando termina la procedure STACK ALLOCATION 4

5 SKETCH OF A QUICKSORT PROGRAM ALLOCAZIONE DELLA MEMORIA STACK Alla chiamata di un sottoprogramma una certa quantità di memoria (per variabili locali etc) viene impilata nello stack Quando il sottoprogramma termina tale memoria viene rimossa dallo stack Cio permette di compilare i sottoprogrammi in modo che l indirizzo relativo delle sue variabili locali sia sempre lo stesso indipendentemente dalla chiamata 10 5

6 ACTIVATION FOR QUICKSORT ALBERO DI ATTIVAZIONE Dato che le chiamate di procedura sono annidate nel tempo possiamo utilizzare una rappresentazione di tale chiamate utilizzando un albero detto albero di attivazione Le attivazioni sono riportate sull albero seguendo da sx a dx l ordine in cui sono state chiamate Un figlio deve terminare prima che possa iniziare l attiviazione alla sua destra La sequenza delle chiamate corrisponde ad una visita in preordine dell albero di attivazione La sequenza dei ritorni corrisponde ad una visita in postordine dell albero delle attivazioni 12 6

7 ACTIVATION TREE REPRESENTING CALLS DURING AN EXECUTION OF QUICKSORT ACTIVATION RECORDS Procedure calls and returns are usaully managed by a run-time stack called the control stack. Each live activation has an activation record (sometimes called a frame) The root of activation tree is at the bottom of the stack The current execution path specifies the content of the stack with the last activation has record in the top of the stack. 7

8 A GENERAL ACTIVATION RECORD Temporary values Local data A saved machine status An access link A control link Space for the return value of the called function The actual parameters used by the calling procedure DOWNWARD-GROWING STACK OF ACTIVATION RECORDS 8

9 DESIGNING CALLING SEQUENCES Values communicated between caller and callee are generally placed at the beginning of callee s activation record Fixed-length items: are generally placed at the middle Items whose size may not be known early enough: are placed at the end of activation record We must locate the top-of-stack pointer judiciously: a common approach is to have it point to the end of fixed length fields. DESIGNING CALLING SEQUENCES The caller evaluates the actual parameters The caller stores a return address and the old value of top-sp into the callee's activation record. The callee saves the register values and other status information. The callee initializes its local data and begins execution. Parameter and return value Control link Stauts Temporaries an local data Parameter and return value Control link Stato salvato Dati temporanei e locali chiamante chiamato 18 9

10 DIMENSION VARIABLE Two pointers are required top_sp e top top_sp top Parametri attuali e valore di ritorrno Control link Stato salvato Puntatore ad a Puntatore ad b Array a Array b Parametri attuali e valore di ritorrno Control link Stato salvato Dati temporanei e locali 19 CORRESPONDING RETURN SEQUENCE The callee places the return value next to the parameters Using information in the machine-status field, the callee restores top-sp and other registers, and then branches to the return address that the caller placed in the status field. Although top-sp has been decremented, the caller knows where the return value is, relative to the current value of top-sp; the caller therefore may use that value. 10

11 ACCESS TO DYNAMICALLY ALLOCATED ARRAYS SEQUENZA DI RITORNO Il chiamato Posiziona il valore di ritorno subito dopo i parametri Ripristina il registro top.sp e gli altri registri quindi passa il controllo all indirizzo di controllo salvato fra informazioni di stato. Recupera il valore dello stack pointer 22 11

12 ACCESSO ALLE VARIABILI NON LOCALI IN ASSENZA DI PROCEDURE ANNIDATE Lo scope in tal caso è costituito dalle variabili locali e dalle variabili globlali Le variabili globali vengono allocate nella parte di memoria riservata ai dati statici Le variabili locali nel record di attivazione del sottoprogramma dove sono definite 23 ACCESSO ALLE VARIABILI NON LOCALI IN PRESENZA DI PROCEDURE ANNIDATE: USO DELL ACCESS LINK La procedura q con livello di annidamento n q richiama la procedura p con livello di annidamento n p n p > n q, in tal caso p deve essere definita all interno di q in tal caso è semplice ad access link di p viene copiato il valore del record di attivazione di q La chiamata è ricorsiva (p=q), in questo caso l access link della nuova attivazione è identico alla precedente n p < n q la procedura q deve essere annidata in r e la definizione di p deve essere immediatamente annidata in r. Il recordi di attivazione più recente di r puo essere localizzato seguento la catena si access link per n p n q + 1 passi

13 ACCESSO ALLO SCOPE TRAMITE DISPLAY È un array di puntatori di dimensione pari al livello di annidamento Ciascun puntatore punta al record di attivazione più in alto nello stack con quel livello di annidamento 25 ALLOCAZIONE DELLA MEMORIA Heap Allocation Lisp (~1960) Gli oggetti sono allocati e deallocati dinamicamente, in qualsiasi ordine, e il lifetimes degli oggetti non sono correlati con la invocazione delle funzioni Permette strutture dati ricorsive (eg alberi) La dimenzione delle strutture dati può variare dinamicamente Oggetti dimenzionati dinamicamente possono esser ritornati come risultato di una funzione Permette ai linguaggi di programmazione di supportare first-class functions (che sono implementate per mezzo di closures) Molti moderni linguaggo forniscono sia stack che heap allocation 26 13

14 MEMORY MANAGER Two basic functions: Allocation Deallocation Properties of memory managers: Space efficiency Program efficiency Low overhead TYPICAL MEMORY HIERARCHY CONFIGURATIONS 14

15 LOCALITY IN PROGRAMS The conventional wisdom is that programs spend 90% of their time executing 10% of the code: Programs often contain many instructions that are never executed. Only a small fraction of the code that could be invoked is actually executed in a typical run of the program. The typical program spends most of its time executing innermost loops and tight recursive cycles in a program. ALLOCAZIONE ESPLICITA SU HEAP Esempi sono C, C++, Pascal dove il programma alloca e dealloca memoria heap per gli oggetti Garbage = dispersione della mamoria Se non ci sono altri puntatori che puntano al primo alemento della lista quando termina la funzione gli oggetti diventano irragiungibili quindi garbage 30 15

16 Allocazione esplicita su Heap Dangling references free( P->next ); 31 Allocazione esplicita su Heap Dangling references which has caused P->next to become a dangling pointer (and a potential delayed effect run-time error) as well as creating some garbage 32 16

17 PERCHÈ GARBAGE COLLECT? Quando eseguiamo list = list->next; // cancella il primo elementoelement Il programma dovrebbe deallocare gli oggetti condivisi? (questo è complesso ma corretto) 33 ALLOCAZIONE/DEALLOCAZIONE ESPLICITA. PROBLEMI? Quale funzione è responsabile della deallocazione di un oggetto quando non è più necessario? Gli oggetti condivisi fra diverse strutture dati rendono complesso conoscere quando viene rimossa l ultimo riferimento Una soluzione comune è aggiungere un reference counts agli oggetti (ma questa soluzione ha alcuni problemi) Un alternativa e duplicare (Cloning) gli oggetti in modo da eliminare il problema della condivisione degli oggetti. Questa soluzione non è efficiente. Memory allocation errors are a major source of problems in C/C++ code (random crashes, memory leaks) Esistono numerosi tool per la localizzazione di errori di memory allocation (Purify, ObjectCenter, Insure++) 34 17

18 GARBAGE COLLECTION 35 THE ESSENCE Programming is easier if the run-time system garbage-collects --- makes space belonging to unusable data available for reuse. Java does it; C does not. But stack allocation in C gets some of the advantage

19 DESIDERATA 1. Speed --- low overhead for garbage collector. 2. Little program interruption. Many collectors shut down the program to hunt for garbage. 3. Locality --- data that is used together is placed together on pages, cache-lines. 37 THE MODEL --- (1) There is a root set of data that is a-priori reachable. Example: In Java, root set = static class variables plus variables on run-time stack. Reachable data : root set plus anything referenced by something reachable

20 THE MODEL --- (2) Things requiring space are objects. Available space is in a heap --- large area managed by the run-time system. Allocator finds space for new objects. Space for an object is a chunk. Garbage collector finds unusable objects, returns their space to the heap, and maybe moves objects around in the heap. 39 GARBAGE COLLECTION Garbage collection (GC) - Il processo di recuperare tali record e renderli disponibili per l'allocazione di nuovi record, non viene eseguito dal compilatore, ma a runtime, dai programmi di supporto collegati al codice compilato (in quanto, ovviamente, i record presenti in memoria dipendono dai dati che sono stati inseriti dall'utente). Per individuare il garbage, l'approccio ideale sarebbe usare la definizione dinamica della liveness. Tuttavia, non essendo questa computabile, ci dobbiamo basare sull'approssimazione conservativa della raggiungibilità del record. Il compilatore dovrà garantire che ogni variabile viva è raggiungibile e, al tempo stesso, minimizzare il numero di variabili raggiungibili che non sono vive

21 ESEMPIO DI GARBAGE class node { int value; node next; } node p, q; p = new node(); q = new node(); q = p; delete p; 41 IL GARBAGE COLLECTOR PERFETTO Nessun impatto visibile sull esecuzione del programma Opera con qualsiasi programma e sulle sue strutture dati: Ad esempio gestisce le strutture dati ciclliche Recupera tutte le celle garbage (e solo quelle garbage) rapidamente Incrementale, può soddisfare requisiti real-time Ha un eccellente gestione della localita spaziale dei riferimenti No eccessivo paging, nessun effetto negativo sulla cache Gestisce l heap efficentemente Soddisfa sempre le richieste di allocazione e non provoca frammentazione della memoria heap

22 COSTO DEL GC I primi sistemi Lisp furono noti per i lunghi stop nel mezzo di sessioni interattive a causa dell esecuzione del gc. Algoritmi migliori e processori più veloci hanno reso il gc un problema molto minore. GC è ancora da evitare per molte applicazioni real-time (dove il tempo di risposta richiesto e inferiore ai millisecondi), Per la maggior parte delle applicazioni. Il problema è: Which is more important:software which is free of memory leaks and memory allocation errors,... or software which is a little faster but less reliable and takes twice as long1 to debug? 43 A HEAP Free List Object 1 Object 2 Object 3 22

23 TAXONOMY Garbage Collectors 45 Reference- Counters Trace- Based REFERENCE COUNTING The simplest (but imperfect) method is to give each object a reference count = number of references to this object. OK if objects have no internal references. Initially, object has one reference. If reference count becomes 0, object is garbage and its space becomes available

24 REFERENCE COUNTING Una tecnica semplice utilizzata in molti sistemi, eg, Unix usa tenere traccia di quando un file può essere cancellato C++ smart pointer (e.g., auto_ptr) usa il e reference counter Il costo del gc è distribuito sull intero programma esecuzione Richiede spazio e tempo per memoriazzare e incrementare (decrementare) il conatore ogni qualvolta un riferimento ad una cella e aggiunto (eliminato) 47 EXAMPLES Integer i = new Integer(10); Integer object is created with RC = 1. j = k; (j, k are Integer references.) Object referenced by j has RC--. Object referenced by k has RC

25 TRANSITIVE EFFECTS If an object reaches RC=0 and is collected, the references within that object disappear. Follow these references and decrement RC in the objects reached. That may result in more objects with RC=0, leading to recursive collection. 49 REFERENCE COUNTING Assieme ad ogni record p, viene memorizzato un numero (reference count) che indica quanti puntatori x.fi a quel record sono presenti. Il compilatore emette istruzioni per far sì che ogni volta che un nuovo x.fi punta a p, il reference count di p viene incrementato, mentre viene decrementato quello di r a cui puntava in precedenza. Se decrementando il reference count di r questo assume il valore zero, r viene inserito nella freelist. Se esistono dei record a cui r puntava, il loro refcount deve essere a sua volta diminuito di uno. Ciò viene fatto non subito, ma al momento (successivo) in cui r verrà rimosso dalla freelist, per i seguenti motivi: 1. viene diviso in più parti il decremento ricorsivo, rendendo più uida l'esecuzione del programma 2. si risparmia spazio: il codice per il decremento ricorsivo è unico (nell'allocatore). Il codice per vericare se refcount ha raggiunto zero, tuttavia, deve comunque essere ripetuto per ogni decremento

26 PSEUDO-CODICE PER REFERENCE COUNTING // chiamatta dal programma per creare // una nuova istanza di un oggetto function New(): if freelist == null then report an error; newcell = allocate(); newcell.rc = 1; return newcell; // chiamata dal programma per // overwrite una variabile // puntatore R with con un // altro valore S procedure Update(var R, S): if S!= null then S.rc += 1; delete(*r); *R = S; // chiamata da New function allocate(): newcell = freelist; freelist = freelist.next; return newcell; // chiamata da Update procedure delete(t): T.rc -= 1; if T.rc == 0 then foreach pointer U held inside object T do delete(*u); free(t); // chiamata da delete procedure free(n): N.next = freelist; freelist = N; 51 rc è il campo reference count dell oggetto REFERENCE COUNTING: EXAMPLE Heap space root set

27 BENEFICI DEL REFERENCE COUNTING overhead incrementale GC overhead è distribuito lungo tutta la computazione ==> tempo di risposta omogeneo nelle situazioni interattive. (Contrasto con stop and collect approach.) Applicazioni real-time Riuso immediato delle celle libere se RC == 0, la cella è aggiunta alla put free list 53 BENEFICI DEL REFERENCE COUNTING Semplicità dell implementazione Può coesistere con la gestione manuale della memoria heap Buona gestione della località spaziale il programma accede alle locazioni di memoria che probabilmente sono sul punto di di essere utilizzare. (In contrasto con una marking phase durante la quale viene scorsa tutta la memoria) la maggioranza degli oggetti hanno una vita breve; il reference counting recupererà e riutilizzera tali oggetti rapidamente. (In contrasto con con uno schema dove gli oggetti morti rimangono inutilizzati per un lungo periodo vino a quando il prossimo gc a rilevato un out of memory.) 54 27

28 REFERENCE COUNTING: PROBLEMI Space overhead 1 word per il contatore Time overhead Ogni volta che un puntatore è aggiornato: aggiornare due reference counters (decrementare il vecchio target, incrementare il sorgente). L accesso in memoria è costoso. Il codice è fragile (se prodotto by hand) È molto facile dimenticare di incrementare o decrementare un reference counter (eg quando si passa un oggetto ad un sottoprogramma) Dimenticare un incremento ==> strange bugs, Dimenticare un decremento ==> memory leaks. 55 REFERENCE COUNTING: CYCLES root set Heap space 1 Memory leak

29 PROBLEMI Non si può rimuovere memoria garbage con riferimenti ciclici: se due record non sono raggiungibili, ma puntano l'uno all'altro vicendevolmente, il loro reference count rimarrà a uno e non potranno essere rimossi. Soluzioni Richiedere esplicitamente che il programmatore elimini tutti i cicli quando ha finito di usare una struttura Combinare Reference Count con qualche Mark&Sweep, per rimuovere i cicli La gestione dei reference count è computazionalmente pesante! Ogni operazione di aggiornamento di un puntatore implica l'incremento di un reference count, il decremento di quello della variabile puntata precedentemente e le operazioni per la verica del raggiungimento di refcount=0. È possibile attuare qualche ottimizzazione tramite analisi dataflow, ma il peso è comunque elevato. 57 REFERENCE COUNTING Strutture dati cicliche La soluzione ovvia e combinare reference counting con gli altri schemi di gc Eseguire gli altri schemi di gc quando La memoria e esaurita Ad intervalli regolari Questo permette di utilizzare meno memoria per i reference counts Per esempio si possono utilizzare campi di 8 bit per il counter. Quando il counter supera il valore massimo, 255, rimane bloccato Quando viene eseguito il gc, recupera gli oggetti cil cui contatore dovrebbe essere zero e resetta i contatori degli altri oggetti

30 TAXONOMY Garbage Collectors 59 Reference- Counters Trace- Based Stop-the-World Short-Pause Mark-and- Sweep Mark-and- Compact Basic MODELLO ASTRATTO Gli algoritmi basati sulla traccia calcolano l insieme degli oggetti raggiungibili e poi prendono il complemento di tali oggetti Processo di riciclo della memoria Il programma mutatore viene eseguito ed effettua richesta di allocazione Il GC determina la raggiungibilità degli oggetti mediante algoritmi basati su traccia Il GC rilascia la memoria degli oggetti non raggiungibili 60 30

31 FOUR STATES OF MEMORY CHUNKS 1. Free = not holding an object; available for allocation. 2. Unreached = Holds an object, but has not yet been reached from the root set. 3. Unscanned = Reached from the root set, but its references not yet followed. 4. Scanned = Reached and references followed. 61 MARKING 1. Assume all objects in Unreached state. 2. Start with the root set. Put them in state Unscanned. 3. while Unscanned objects remain do examine one of these objects; make its state be Scanned; add all referenced objects to Unscanned if they have not been there; end; 62 31

32 SWEEPING Place all objects still in the Unreached state into the Free state. Place all objects in Scanned state into the Unreached state. To prepare for the next mark-and-sweep. 63 MARK-SWEEP GARBAGE COLLECTION Ogni cella ha un bit di mark Le locazioni di memoria garbage rimane non raggiungibile e inutilizzata fino a quando l heap non è piena: quando agisce il GC il programma in esecuzione viene sospeso Fase di Marking Partendo dai roots, aggiorna il mark bit di tutte le celle live Fase di Sweep Inserisce tutte le celle non marcate nella free list Reset il mark bit di tutte le celle marcate 64 32

33 MARK-SWEEP (AKA MARK-SCAN) ALGORITHM Il primo utilizzo sembra essere in Lisp La memorizzazione per i nuovi oggetti è ottenuto da un free-pool Nessuna azione extra è eseguita quando il programma copia o sovrascrive i puntatori Quando il pool di libero è esaurito, il New () invoca il mark-sweep gc per reinserire la memoria occupata da oggetti inaccessibili al free-pool e quindi ricomincia MARK-SWEEP EXAMPLE (1) Heap space 66 root set 33

34 MARK-SWEEP EXAMPLE (2) Heap space 67 root set MARK-SWEEP EXAMPLE (3) Heap space 68 root set 34

35 MARK-SWEEP EXAMPLE (4) root set Heap space Free unmarked cells 69 Viene resettato Il mark bit Delle celle marcate ALGORITMO DI MARK_SWEEP Fase di marcatura Poni il reached bit a 1 e aggiungi alla lista Unscanned ogni oggetto avente un riferimento nel root-set while (Unscanned!= 0){ rimuovi un oggetto o da Unscanned for (ogni oggetto o avente un riferimento in o){ } if (il reached-bit di o ==0) { } poni il reached-bit di o ad 1; aggiungi o alla lista Unscanned } 70 35

36 ALGORITMO DI MARK_SWEEP Fase di pulizia Free = 0; For (ogni blocco di memoria o nell heap){ if (il reached-bit di o ==0) aggiungi o alla lista Free else poni il reached-bit di o ad 0; } La lista Free contiene oggetti disponibili La lista Unscanned contiene oggetti che sappiamo essere raggiungibili che non sono stati analizzati per verificare se fanno riferimento ad altri oggetti 71 COSTO Il tempo di esecuzione dell'algoritmo DFS è proporzionale al numero R di nodi segnati (cioè dei record raggiungibili) ed è proporzionale alla dimensione dello heap H. L'esecuzione di una garbage collection è quindi c1r + c2h. Il costo per unità di spazio libero sullo heap, o costo ammortizzato di raccolta, è dato dal costo di esecuzione diviso per il numero H R di parole di memoria libere, cioè (c1r+c2h)/(h R). Se la memoria è quasi piena (R~ H) il costo è molto elevato. Se la memoria è quasi vuota (H >> R), il costo è molto ridotto. Se al termine del processo di collection R/H è maggiore di 0.5 (o un'altro valore, secondo qualche criterio) il collector dovrebbe chiedere al sistema operativo di fornire maggiore spazio per lo heap del programma

37 TAXONOMY Garbage Collectors 73 Reference- Counters Trace- Based Stop-the-World Short-Pause Mark-and- Sweep Mark-and- Compact Basic Baker s BAKER S ALGORITHM --- (1) Problem: The basic algorithm takes time proportional to the heap size. Because you must visit all objects to see if they are Unreached. Baker s algorithm keeps a list of all allocated chucks of memory, as well as the Free list

38 BAKER S ALGORITHM --- (2) Key change: In the sweep, look only at the list of allocated chunks. Those that are not marked as Scanned are garbage and are moved to the Free list. Those in the Scanned state are put in the Unreached state. For the next collection. 75 STATI Free: zona di memoria disponibile per essere allocata Unreached: blocchi non raggiungibili, tutti i blocchi inizialmente sono considerati non raggiungibili e vengono riposti nello stato unreached dopo il completamento del gc I blocchi raggiungibili possono essere Scanned UnScanned 76 38

39 ALGORITMO DI BAKER Fase di marcatura Scanned = 0 UnScanned = insieme degli oggetti raggiungibile dall insieme radice while (Unscanned!= 0){ } sposta un oggetto o da Unscanned a Scanned for (ogni oggetto o avente un riferimento in o){ if (o appartiend a lista UnReached) sposta o da UnReached a Unscanned 77 ALGORITMO DI MARK_SWEEP Fase di pulizia Free = Free UnReached; UnReached = UnScanned 78 39

40 OTTIMIZZAZIONI: STACK ESPLICITO Se si usa un algoritmo DFS standard (ricorsivo), si potrebbe arrivare ad avere H ricorsioni, e quindi H frame sulla pila dei record di attivazione, ossia il garbage collector occuperebbe più memoria dello HEAP stesso. Ciò è decisamente da evitare, perciò si preferisce utilizzare un algoritmo iterativo in cui si gestisce esplicitamente una struttura a pila su cui salvare i record marcati. In tal modo, si otterrà ugualmente una pila di H elementi, ma saranno singole word invece che record di attivazione. 79 OTTIMIZZAZIONI: INVERSIONE DEI PUNTATORI (POINTER REVERSAL) Per ridurre ulteriormente lo spazio occupato, si può osservare che, dopo che il contenuto di un campo x.fi di un record x è stato salvato sullo stack, è possibile riutilizzare lo spazio x.fi. In particolare, è possibile utilizzarlo per salvare il puntatore al record a partire dal quale x era stato raggiunto. Secondo questo ragionamento, è quindi possibile utilizzare lo stesso grafo dei puntatori per salvare anche lo stack, facendo sì che, mentre si stanno esaminando i campi di un record (e i campi dei record a cui questi, a loro volta, puntano), ogni record che si sta esaminando punti al proprio predecessore (cioè al record da cui è puntato) invece che al proprio successore (il record a cui punta normalmente). Ogni volta che tutti i campi di un record sono stati esaminati, i suoi puntatori vengono ripristinati, ricostruendo il grafo originale

41 function DFS(x) if (x è un puntatore e il record a cui punta non è marcato) imposta root come predecessore (t) marca x while true if (c'è ancora un campo x.fi (contenente il valore y) da esaminare nel record x) if (y è un puntatore e il record puntato da y non è marcato) x.f i t //fai puntare il campo al suo predecessore (pointer reversal) t x //x è il predecessore del record che stiamo esaminando x y //il record corrente è quello puntato da y marca il record corrente x else y x //salva in y l'indirizzo del record che stavamo esaminando x t //torna ad esaminare il predecessore if (x=root) tutto il grafo è stato visitato. Fine. t x.fi //il nuovo predecessore è quello il cui valore era stato salvato dall'inversione x.fi y //ripristino del puntatore originale (fine del pointer reversal) 81 OTTIMIZZAZIONE: ARRAY DI FREELIST Per ridurre la frammentazione della memoria libera si può utilizzare, invece di un'unica freelist, un array di freelist, ognuna delle quali corrisponde ad una certa dimensione dei record ivi contenuti. In tal modo, sarà possibile utilizzare il blocco di memoria più piccolo di dimensioni sufficienti a contenere la variabile da allocare. Se non ci sono blocchi suffientemente piccoli, è possibile usare il più piccolo disponibile e sprecare una parte dello spazio (se si vuole mantenere la dimensione dei blocchi), oppure suddividerlo e reimmettere nell'opportuna freelist la parte di spazio non utilizzata. La creazione delle diverse freelist è demandata alla fase sweep dell'algoritmo. L'uso di array di freelist rende anche più veloce anche l'allocazione di nuove variabili nello heap, perchè l'allocatore non dovrà cercare sequenzialmente in tutta la freelist un blocco di dimensioni sucienti, ma potrà direttamente andarlo a richiedere alle freelist di dimensioni opportune. 1. Frammentazione esterna: sono presenti tanti piccoli record liberi di dimensione insufficiente per l'allocazione che si vuole eseguire. Frammentazione interna: non è possibile trovare spazio libero a sucienza perchè questo è presente, inutilizzato, all'interno di record troppo grandi già allocati

42 MARK-SWEEP COSTS AND BENEFITS Vantaggi Gestisce le strutture cicliche Nessun space overhead 1 bit utilizzato per marcarre le celle Svantaggi L esecuzione del programma viene sospesa Può influenza la gestione della memoria virtuale Può causare un paging eccessivo se la dimenzione del working-set size è piccola e l heap non è tutta nella memoria fisica L heap può essere frammentata 83 TAXONOMY Garbage Collectors 84 Reference- Counters Trace- Based Stop-the-World Short-Pause Mark-and- Sweep Mark-and- Compact Basic Baker s Basic 42

43 ISSUE: WHY COMPACT? Compact = move reachable objects to contiguous memory. Locality --- fewer pages or cache-lines needed to hold the active data. Fragmentation --- available space must be managed so there is space to store large objects. 85 MARK-AND-COMPACT 1. Mark reachable objects as before. 2. Maintain a table (hash?) from reached chunks to new locations for the objects in those chunks. Scan chunks from low end of heap. Maintain pointer free that counts how much space is used by reached objects so far

44 MARK-AND-COMPACT --- (2) 3. Move all reached objects to their new locations, and also retarget all references in those objects to the new locations. Use the table of new locations. 4. Retarget root references. 87 EXAMPLE: MARK-AND-COMPACT 88 free 44

45 EXAMPLE: MARK-AND-COMPACT 89 free EXAMPLE: MARK-AND-COMPACT 90 free 45

46 EXAMPLE: MARK-AND-COMPACT 91 free EXAMPLE: MARK-AND-COMPACT 92 free 46

47 EXAMPLE: MARK-AND-COMPACT 93 free EXAMPLE: MARK-AND-COMPACT 94 free 47

48 EXAMPLE: MARK-AND-COMPACT 95 free EXAMPLE: MARK-AND-COMPACT 96 free 48

49 MARK AND COMPACT Una volta effettuata la marcatura invece di procedere alla rimozione è conveniente ricopiare tutti gli oggetti raggiungibili verso uno dei due estremi dell heap 97 ALGORITMO DI MARK_COMPACT Fase di marcatura UnScanned insieme degli oggetti raggiungibili dall insieme radice while (Unscanned!= 0){ rimuovi un oggetto o da Unscanned for (ogni oggetto o avente un riferimento in o){ } if (o non è stato ragiunto) { } marca o come ragiunto aggiungi o alla lista Unscanned } 98 49

50 ALGORITMO DI MARK_COMPACT Calcolo delle nuove locazioni For (ogni blocco di memoria o nell heap a partire dal basso){ if (o è ragiunto) { for (ofni riferimento o.r in o new Location(0) = free; free = free + sizeof(o) } 99 ALGORITMO DI MARK_COMPACT Fase di aggiornamento dei riferimenti For (ogni blocco di memoria o nell heap a partire dal basso){ } if (o è ragiuunto) { for (ogni ogni riferimento 0.r in o) } o.r = new Location(o,r) = free; for (ogni riferimento r nell insieme radice) r = new Location (r);

Le virtual machine e la memoria virtuale

Le virtual machine e la memoria virtuale Le virtual machine e la memoria virtuale Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento Patterson 5: 5.6, 5.7. 1/29

Dettagli

Le operazioni di allocazione e deallocazione sono a carico del sistema.

Le operazioni di allocazione e deallocazione sono a carico del sistema. Allocazione della memoria In C++ è possibile creare (allocare) variabili in maniera statica o dinamica. Nell allocazione statica una variabile esiste ed è utilizzabile dal momento della sua dichiarazione

Dettagli

sdforexcontest2009 Tool

sdforexcontest2009 Tool sdforexcontest2009 Tool Guida all istallazione e rimozione. Per scaricare il tool del campionato occorre visitare il sito dell organizzatore http://www.sdstudiodainesi.com e selezionare il link ForexContest

Dettagli

Blocchi funzione: FbModbusAsciiMs

Blocchi funzione: FbModbusAsciiMs Pagina 1 di 6 ELSIST Srl, www.elsist.it Blocchi funzione MNL041Q000 FbModbusAsciiMs Questo blocco funzione permette lo scambio di dati tra due sistemi, uno master ed uno slave, utilizzando una connessione

Dettagli

Indici basati su alberi

Indici basati su alberi Query\update Query plan Execution Engine richieste di indici, record e file Index/file/record Manager comandi su pagine Lettura/scrittura pagine Architettura di un DBMS Utente/Applicazione Query Compiler

Dettagli

Ingegneria del Software Testing. Corso di Ingegneria del Software Anno Accademico 2012/2013

Ingegneria del Software Testing. Corso di Ingegneria del Software Anno Accademico 2012/2013 Ingegneria del Software Testing Corso di Ingegneria del Software Anno Accademico 2012/2013 1 Definizione IEEE Software testing is the process of analyzing a software item to detect the differences between

Dettagli

U Corso di italiano, Lezione Quindici

U Corso di italiano, Lezione Quindici 1 U Corso di italiano, Lezione Quindici U Buongiorno, anche in questa lezione iniziamo con qualche dialogo formale M Good morning, in this lesson as well, let s start with some formal dialogues U Buongiorno,

Dettagli

Esercizi Programming Contest

Esercizi Programming Contest Esercizi Programming Contest Alberto Montresor 22 maggio 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

Posta elettronica per gli studenti Email for the students

Posta elettronica per gli studenti Email for the students http://www.uninettunouniverstiy.net Posta elettronica per gli studenti Email for the students Ver. 1.0 Ultimo aggiornamento (last update): 10/09/2008 13.47 Informazioni sul Documento / Information on the

Dettagli

strutturare dati e codice

strutturare dati e codice Puntatori e passaggio parametri strutturare dati e codice Tipo di dati int * Pi ; Op. dereferenziazione j = *Pi ; Op. indirizzo Pi = &i ; By value int f(int i) ; a = f(b) ; By address int f(int * Pi) ;

Dettagli

La gestione dei processi in Minix

La gestione dei processi in Minix La gestione dei processi in Minix Sistemi Operativi Lez. 28 Scheduling Round robin su 16 code di priorità Quando un processo viene bloccato senza aver esaurito il suo quanto di tempo, una volta risvegliato,

Dettagli

Data Alignment and (Geo)Referencing (sometimes Registration process)

Data Alignment and (Geo)Referencing (sometimes Registration process) Data Alignment and (Geo)Referencing (sometimes Registration process) All data aquired from a scan position are refered to an intrinsic reference system (even if more than one scan has been performed) Data

Dettagli

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) Realizzazione del file system Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Realizzazione

Dettagli

WELCOME. Go to the link of the official University of Palermo web site www.unipa.it; Click on the box on the right side Login unico

WELCOME. Go to the link of the official University of Palermo web site www.unipa.it; Click on the box on the right side Login unico WELCOME This is a Step by Step Guide that will help you to register as an Exchange for study student to the University of Palermo. Please, read carefully this guide and prepare all required data and documents.

Dettagli

Architettura Connettore Alfresco Share

Architettura Connettore Alfresco Share Direzione Sistemi Informativi Portale e Orientamento Allegato n. 2 al Capitolato Tecnico Indice Architettura Connettore Alfresco Share 1. Architettura del Connettore... 3 1.1 Componente ESB... 4 1.2 COMPONENTE

Dettagli

Newborn Upfront Payment & Newborn Supplement

Newborn Upfront Payment & Newborn Supplement ITALIAN Newborn Upfront Payment & Newborn Supplement Female 1: Ormai manca poco al parto e devo pensare alla mia situazione economica. Ho sentito dire che il governo non sovvenziona più il Baby Bonus.

Dettagli

CONFIGURATION MANUAL

CONFIGURATION MANUAL RELAY PROTOCOL CONFIGURATION TYPE CONFIGURATION MANUAL Copyright 2010 Data 18.06.2013 Rev. 1 Pag. 1 of 15 1. ENG General connection information for the IEC 61850 board 3 2. ENG Steps to retrieve and connect

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

CAMBIO DATI PERSONALI - Italy

CAMBIO DATI PERSONALI - Italy CAMBIO DATI PERSONALI - Italy Istruzioni Per La Compilazione Del Modulo / Instructions: : Questo modulo è utilizzato per modificare i dati personali. ATTENZIONE! Si prega di compilare esclusivamente la

Dettagli

AIM OF THE LESSON: for the students to familiarise themselves with the language of cooking

AIM OF THE LESSON: for the students to familiarise themselves with the language of cooking Lesson 1 Gli Gnocchi Date N of students AIM OF THE LESSON: for the students to familiarise themselves with the language of cooking The following activities are based on "Communicative method" which encourages

Dettagli

Learning session: costruiamo insieme un modello per una campagna di marketing

Learning session: costruiamo insieme un modello per una campagna di marketing Learning session: costruiamo insieme un modello per una campagna di marketing Roberto Butinar Cristiano Dal Farra Danilo Selva 1 Agenda Panoramica sulla metodologia CRISP-DM (CRoss-Industry Standard Process

Dettagli

AXO. Operativi. Architettura dei Calcolatori e Sistemi. memoria virtuale

AXO. Operativi. Architettura dei Calcolatori e Sistemi. memoria virtuale AXO Architettura dei Calcolatori e Sistemi Operativi memoria virtuale concetto di memoria virtuale Separare il concetto di: spazio di indirizzamento di un programma eseguibile e dimensione effettiva della

Dettagli

Per il progetto MESA 2015 andremo ad utilizzare Unity3D per la creazione di alcuni exergame da utilizzar ein ambito riabilitativo.

Per il progetto MESA 2015 andremo ad utilizzare Unity3D per la creazione di alcuni exergame da utilizzar ein ambito riabilitativo. STATE MACHINE Per il progetto MESA 2015 andremo ad utilizzare Unity3D per la creazione di alcuni exergame da utilizzar ein ambito riabilitativo. Per poter gestire in modo efficiente lo sviluppo di vari

Dettagli

10. Interfaccia del File System

10. Interfaccia del File System 10. Interfaccia del File System 10.1 Il concetto di File 10.2 Metodi di accesso 10.3 Struttura delle Directory 10.4 Protezione (Leggere) 10.5 Semantica della Consistenza (Leggere) Un File System consiste

Dettagli

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007 2007 SISTEMI OPERATIVI Gestione della memoria Domande di verifica Luca Orrù Centro Multimediale Montiferru 18/06/2007 Gestione della memoria 1. Si descriva il concetto di memoria virtuale (esame del 19-06-2006)

Dettagli

You can visualize the free space percentage in Compact Flash memory from the MENU/INFO C.F. UTILITY-FREE SPACE page.

You can visualize the free space percentage in Compact Flash memory from the MENU/INFO C.F. UTILITY-FREE SPACE page. This release introduces some new features: -TUNE PITCH -FREE SPACE -TUNER -DRUMKIT EDITOR From the PARAM MIDI page, it is possible to modify the "TUNE PITCH" parameter, which allows you to tune up the

Dettagli

Indice. settembre 2008 Il File System 2

Indice. settembre 2008 Il File System 2 Il File System Indice 4. Il File System 5. Vantaggi del FS 6. Protezione 7. Condivisione 8. I file - 1 9. I file - 2 10. Attributi dei file 11. Directory 12. Livelli di astrazione - 1 13. Livelli di astrazione

Dettagli

Prelevare byte spesso è più costoso che prelevare una word, perchè a questa operazione aggiunge il tempo di shift

Prelevare byte spesso è più costoso che prelevare una word, perchè a questa operazione aggiunge il tempo di shift Parte I La gerarchia di memoria Avere una grande quantità di memoria ad alta velocità, oltre ad essere tecnicamente complesso, porterebbe ad avere costi proibitivi. Si ottengono comunque ottimi risultati

Dettagli

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati Activation In generale i Sistemi ad oggetti distribuiti sono progettati per lavorare con oggetti persistenti. Dato che questi sistemi saranno composti da migliaia (forse milioni) di tali oggetti, sarebbe

Dettagli

Copyright 2012 Binary System srl 29122 Piacenza ITALIA Via Coppalati, 6 P.IVA 01614510335 - info@binarysystem.eu http://www.binarysystem.

Copyright 2012 Binary System srl 29122 Piacenza ITALIA Via Coppalati, 6 P.IVA 01614510335 - info@binarysystem.eu http://www.binarysystem. CRWM CRWM (Web Content Relationship Management) has the main features for managing customer relationships from the first contact to after sales. The main functions of the application include: managing

Dettagli

Lezione 14. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata

Lezione 14. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata Lezione 14 Sistemi operativi 9 giugno 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 14.1 Di cosa parliamo in questa lezione? Ottimizzazione degli accessi alla

Dettagli

drag & drop visual programming appinventor storia appinventor un esempio di drag & drop programming: Scratch

drag & drop visual programming appinventor storia appinventor un esempio di drag & drop programming: Scratch drag & drop visual programming appinventor realizzazione app per Google Android OS appinventor è un applicazione drag & drop visual programming Contrariamente ai linguaggi tradizionali (text-based programming

Dettagli

TNCguide OEM Informativa sull introduzione di documentazione aggiuntiva nella TNCguide

TNCguide OEM Informativa sull introduzione di documentazione aggiuntiva nella TNCguide Newsletter Application 4/2007 OEM Informativa sull introduzione di documentazione aggiuntiva nella APPLICABILITÀ: CONTROLLO NUMERICO itnc 530 DA VERSIONE SOFTWARE 340 49x-03 REQUISITI HARDWARE: MC 420

Dettagli

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici Uniamo VM e CACHE Physically addressed Ci sono varie alternative architetturali physically addressed virtually addressed virtually indexed Sono quelle piu semplici un dato puo essere in cache solo se e

Dettagli

INFORMAZIONE AGLI UTENTI DI APPARECCHIATURE DOMESTICHE O PROFESSIONALI

INFORMAZIONE AGLI UTENTI DI APPARECCHIATURE DOMESTICHE O PROFESSIONALI INFORMAZIONE AGLI UTENTI DI APPARECCHIATURE DOMESTICHE O PROFESSIONALI Ai sensi dell art. 13 del Decreto Legislativo 25 luglio 2005, n. 151 "Attuazione delle Direttive 2002/95/CE, 2002/96/CE e 2003/108/CE,

Dettagli

Le cellule staminali dell embrione: cosa possono fare Embryonic stem cells are exciting because they can make all the different types of cell in the

Le cellule staminali dell embrione: cosa possono fare Embryonic stem cells are exciting because they can make all the different types of cell in the 1 2 3 Le cellule staminali dell embrione: cosa possono fare Embryonic stem cells are exciting because they can make all the different types of cell in the body scientists say these cells are pluripotent.

Dettagli

13-03-2013. Introduzione al Semantic Web Linguaggi per la rappresentazione di ontologie. L idea del Semantic Web.

13-03-2013. Introduzione al Semantic Web Linguaggi per la rappresentazione di ontologie. L idea del Semantic Web. Corso di Ontologie e Semantic Web Linguaggi per la rappresentazione di ontologie Prof. Alfio Ferrara, Prof. Stefano Montanelli Definizioni di Semantic Web Rilievi critici Un esempio Tecnologie e linguaggi

Dettagli

Modello della memoria in Unix. Unix: Gestione della Memoria. Gestione della memoria in UNIX - fondamenti. Gestione della memoria in UNIX - storia

Modello della memoria in Unix. Unix: Gestione della Memoria. Gestione della memoria in UNIX - fondamenti. Gestione della memoria in UNIX - storia Modello della memoria in Unix I processi Unix lavorano su uno spazio di indirizzamento virtuale Es. 0,..., 2 32 1 su indirizzi a 32bit Ogni processo ha uno spazio indirizzi separato per i segmenti text,

Dettagli

Memory Management. Local Storage. Global Storage. Delete esplicite

Memory Management. Local Storage. Global Storage. Delete esplicite Memory Management Costruzione di Interfacce Lezione 13 Dal Java al C++ cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.it/~cignoni Due grandi categorie di storage: Local, memoria valida solo all interno di

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

DICHIARAZIONE DI RESPONSABILITÀ

DICHIARAZIONE DI RESPONSABILITÀ - 0MNSWK0082LUA - - ITALIANO - DICHIARAZIONE DI RESPONSABILITÀ Il produttore non accetta responsabilità per la perdita di dati, produttività, dispositivi o qualunque altro danno o costo associato (diretto

Dettagli

Memory management 49

Memory management 49 Memory management 49 Gestione della memoria I processi Unix lavorano su uno spazio di indirizzamento virtuale (Es. 0,..., 2 32 1 su indirizzi i i a 32 bit); Ogni processo ha uno spazio indirizzi separato

Dettagli

Ricorsione. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona.

Ricorsione. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Implementazione di Utilizzo ricorsione per processare dati in java vs. multipla

Dettagli

Guida utente User Manual made in Italy Rev0

Guida utente User Manual made in Italy Rev0 Guida utente User Manual Rev0 made in Italy Indice/Index Informazioni generali General Info... 3 Guida Rapida per messa in funzione Start Up procedure... 3 Login Login... 3 Significato dei tasti Botton

Dettagli

Memorizzazione dei dati: Dischi e File

Memorizzazione dei dati: Dischi e File Memorizzazione dei dati: Dischi e File Query\update Query plan Execution Engine richieste di indici, record e file Index/file/record Manager comandi su pagine Query Compiler Buffer Manager Lettura/scrittura

Dettagli

La gestione della memoria

La gestione della memoria La gestione della memoria Nella gestione della memoria il sistema operativo deve perseguire l'obiettivo di allocare il maggior numero di processi in memoria centrale per aumentare la probabilità che ci

Dettagli

Prova finale di Ingegneria del software

Prova finale di Ingegneria del software Prova finale di Ingegneria del software Scaglione: Prof. San Pietro Andrea Romanoni: Francesco Visin: andrea.romanoni@polimi.it francesco.visin@polimi.it Italiano 2 Scaglioni di voto Scaglioni di voto

Dettagli

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini La memoria Architetture Avanzate dei Calcolatori Valeria Cardellini Nelle lezioni precedenti { Memoria La gerarchia di memorie Registri Istruzioni, operandi L Cache Blocchi L2 Cache Blocchi Memoria Pagine

Dettagli

RenderCAD S.r.l. Formazione

RenderCAD S.r.l. Formazione Descrizione In questo corso viene descritto PL/SQL e vengono illustrati i vantaggi derivanti dall'uso di questo potente linguaggio di programmazione. Viene spiegato come creare blocchi di codice PL/SQL

Dettagli

LabMecFit. versione beta. by S.Frasca Dipartimento di Fisica Università Sapienza Roma

LabMecFit. versione beta. by S.Frasca Dipartimento di Fisica Università Sapienza Roma LabMecFit versione beta by S.Frasca Dipartimento di Fisica Università Sapienza Roma LabMecFit è un programma che permette di elaborare i dati prodotti da DataStudio. I dati devono essere salvati da DataStudio

Dettagli

Java. Traditional portability (ideal)

Java. Traditional portability (ideal) 1 Java JAVA: una introduzione 2 Traditional portability (ideal) C-code (Linux) (Pentium) Executable (Linux) Executable (Win32) Linux Windows 32 (Mac) Executable (Mac) Mac 1 1 3 Portability of Java programs

Dettagli

HEX Bin HEX Bin HEX Bin HEX Bin 0 0000 4 0100 8 1000 C 1100 1 0001 5 0101 9 1001 D 1101 2 0010 6 0110 A 1010 E 1110 3 0011 7 0111 B 1011 F 1111

HEX Bin HEX Bin HEX Bin HEX Bin 0 0000 4 0100 8 1000 C 1100 1 0001 5 0101 9 1001 D 1101 2 0010 6 0110 A 1010 E 1110 3 0011 7 0111 B 1011 F 1111 Struttura interna del Sistema Operativo CAP. 7. La gestione della memoria virtuale Il concetto di memoria virtuale Il concetto di memoria virtuale nasce dalla necessità di separare il concetto di spazio

Dettagli

Il supporto al Sistema Operativo

Il supporto al Sistema Operativo Il supporto al Sistema Operativo Obiettivi e funzioni del S.O. Il Sistema Operativo è il software che controlla l esecuzione dei programmi e amministra le risorse del sistema. Ha due obiettivi principali:

Dettagli

Babaoglu 2006 Sicurezza 2

Babaoglu 2006 Sicurezza 2 Key Escrow Key Escrow Ozalp Babaoglu! In many situations, a secret (key) is known to only a single individual " Private key in asymmetric cryptography " The key in symmetric cryptography or MAC where the

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

U/D (SELEZIONE UP/DOWN) U/D (UP/DOWN SELECTION )

U/D (SELEZIONE UP/DOWN) U/D (UP/DOWN SELECTION ) U/D (SELEZIONE UP/DOWN) U/D (UP/DOWN SELECTION ) Caratteristiche di funzionamento up/down - segnale di input ROTAZIONE DELL ALBERO IN SENSO ORARIO (CW) (Fig 21) Il segnale Alto ("HIGH") applicato al pin

Dettagli

UNIVERSITÀ DEGLI STUDI DI TORINO. Instructions to apply for exams ONLINE Version 01 updated on 17/11/2014

UNIVERSITÀ DEGLI STUDI DI TORINO. Instructions to apply for exams ONLINE Version 01 updated on 17/11/2014 Instructions to apply for exams ONLINE Version 01 updated on 17/11/2014 Didactic offer Incoming students 2014/2015 can take exams of courses scheduled in the a.y. 2014/2015 and offered by the Department

Dettagli

U Corso di italiano, Lezione Ventinove

U Corso di italiano, Lezione Ventinove 1 U Corso di italiano, Lezione Ventinove U Oggi, facciamo un altro esercizio M Today we do another exercise U Oggi, facciamo un altro esercizio D Noi diciamo una frase in inglese e tu cerca di pensare

Dettagli

Scritto da DEApress Lunedì 14 Aprile 2014 12:03 - Ultimo aggiornamento Martedì 26 Maggio 2015 09:34

Scritto da DEApress Lunedì 14 Aprile 2014 12:03 - Ultimo aggiornamento Martedì 26 Maggio 2015 09:34 This week I have been walking round San Marco and surrounding areas to find things that catch my eye to take pictures of. These pictures were of various things but majority included people. The reason

Dettagli

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente:

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il.NET Framework By Dario Maggiari L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il cuore del.net Framework è costituito dal CLR (Common Language Runtime) che, secondo

Dettagli

SISTEMI OPERATIVI. I processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. I processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) I processi Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Il concetto di processo

Dettagli

up date basic medium plus UPDATE

up date basic medium plus UPDATE up date basic medium plus UPDATE Se si potesse racchiudere il senso del XXI secolo in una parola, questa sarebbe AGGIORNAMENTO, continuo, costante, veloce. Con UpDate abbiamo connesso questa parola all

Dettagli

La fase di progetto. UniRoma2 - Ingegneria del Software 1 1

La fase di progetto. UniRoma2 - Ingegneria del Software 1 1 La fase di progetto Fase in cui si decidono le modalità di passaggio da "che cosa" deve essere realizzato nel sistema software a "come" la realizzazione deve aver luogo La fase di progetto prende in input

Dettagli

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Sistemi Operativi. Organizzazione logica ed implementazione di un File System Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Organizzazione logica ed implementazione di un File

Dettagli

By E.M. note sull'uso di GAMBAS

By E.M. note sull'uso di GAMBAS By E.M. note sull'uso di GAMBAS GAMBAS viene installato sotto Xubuntu nella directory: /usr/share/gambas2 link problema su uso dell'esempio SerialPort http://gambasrad.org/zforum/view_topic?topic_id=1057

Dettagli

Memoria virtuale e ottimizzazione

Memoria virtuale e ottimizzazione SISTEMI OPERATIVI 08.b Memoria virtuale e ottimizzazione Memoria virtuale e ottimizzazione Supporto fornito dall hardware MV con Paginazione (page table) MV con Segmentazione MV con Segmentazione e Paginazione

Dettagli

Sommario. Esempio di Modellazione mediante DASM: Grid OGSA. Grid secondo OGSA. Definizione Grid per OGSA. Stati di un Job e Requisiti DASM

Sommario. Esempio di Modellazione mediante DASM: Grid OGSA. Grid secondo OGSA. Definizione Grid per OGSA. Stati di un Job e Requisiti DASM Sommario Esempio di Modellazione mediante DASM: Grid Definizione Grid per OGSA Funzionalità JEMS Stati di un Job e Requisiti DASM DASM per Grid 1 DASM per Grid 2 OGSA Grid secondo OGSA OGSA = Open Grid

Dettagli

Replacement of hose carrier chain

Replacement of hose carrier chain 3 1. Bring the boom in horizontal position and make the extension completely retract. 2. Remove the rear panel. 3. Remove the front guard on the boom hood. 4. In case of machine with basket pre-arrangement,

Dettagli

Struttura del File-System! Implementazione del File System! Filesystem!

Struttura del File-System! Implementazione del File System! Filesystem! Struttura del File-System Implementazione del File System Struttura dei File Unità logica di memorizzazione Collezione di informazioni correlate File control block (inode) struttura dati per le informazioni

Dettagli

Combinazioni serie IL-MIL + MOT

Combinazioni serie IL-MIL + MOT Combinazioni tra riduttori serie IL-MIL e MOT Combined series IL-MIL + MOT reduction units Combinazioni serie IL-MIL + MOT Sono disponibili varie combinazioni tra riduttori a vite senza fine con limitatore

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 19 Ricorsione A. Miola Marzo 2012 http://www.dia.uniroma3.it/~java/fondinf/ Ricorsione 1 Contenuti q Funzioni e domini definiti

Dettagli

e-spare Parts User Manual Peg Perego Service Site Peg Perego [Dicembre 2011]

e-spare Parts User Manual Peg Perego Service Site Peg Perego [Dicembre 2011] Peg Perego Service Site Peg Perego [Dicembre 2011] 2 Esegui il login: ecco la nuova Home page per il portale servizi. Log in: welcome to the new Peg Perego Service site. Scegli il servizio selezionando

Dettagli

10. Gestione degli Account Utente e delle Passwords in Knoppix

10. Gestione degli Account Utente e delle Passwords in Knoppix 10. Gestione degli Account Utente e delle Passwords in Knoppix Tempo stimato: 45 minuti Finalità In questa esperienza imparerai dove e come vengono memorizzate le password e le informazioni personali dei

Dettagli

Memoria virtuale. Strutture hardware e di controllo

Memoria virtuale. Strutture hardware e di controllo Memoria virtuale Strutture hardware e di controllo Le caratteristiche chiave delle tecniche di segmentazione e paginazione sono: Tutti i riferimenti di memoria all'interno di un processo sono indirizzi

Dettagli

www.aylook.com -Fig.1-

www.aylook.com -Fig.1- 1. RAGGIUNGIBILITA DI AYLOOK DA REMOTO La raggiungibilità da remoto di Aylook è gestibile in modo efficace attraverso una normale connessione ADSL. Si presentano, però, almeno due casi: 1.1 Aylook che

Dettagli

SOA!= OO. Andrea Saltarello Software Architect @ Managed Designs S.r.l. andrea.saltarello@manageddesigns.it http://blogs.ugidotnet.

SOA!= OO. Andrea Saltarello Software Architect @ Managed Designs S.r.l. andrea.saltarello@manageddesigns.it http://blogs.ugidotnet. SOA!= OO Andrea Saltarello Software Architect @ Managed Designs S.r.l. andrea.saltarello@manageddesigns.it http://blogs.ugidotnet.org/pape http://creativecommons.org/licenses/by-nc-nd/2.5/ Chi sono Solution

Dettagli

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica www.dis.uniroma1.it/~midlab Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Prof. Roberto Baldoni Complementi: Deadlock Tecniche di gestione del deadlock: 1. Caratterizzazione del deadlock

Dettagli

ECVUSBO MANUALE DEL PRODOTTO DEVICE MANUAL

ECVUSBO MANUALE DEL PRODOTTO DEVICE MANUAL ECVUSBO MANUALE DEL PRODOTTO DEVICE MANUAL INDICE TABLE OF CONTENTS 1. Introduzione... pag. 3 1. Introduction... pag. 3 2. Requisiti di sistema... pag. 3 1. System requirements... pag. 3 3. Installazione...

Dettagli

Name on a passport, HANGTAG

Name on a passport, HANGTAG recagroup design architecture art cinema travel music food Name on a passport, HANGTAG A quick look at printing techniques for hangtags RECA GROUP The hangtag of a garment is its ID card, its passport,

Dettagli

Il memory manager. Gestione della memoria centrale

Il memory manager. Gestione della memoria centrale Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda

Dettagli

Corsi di Laurea Magistrale/ Master Degree Programs

Corsi di Laurea Magistrale/ Master Degree Programs Corsi di Laurea Magistrale/ Master Degree Programs Studenti iscritti al I anno (immatricolati nell a.a. 2014-2015 / Students enrolled A. Y. 2014-2015) Piano di studi 17-27 Novembre 2014 (tramite web self-service)

Dettagli

Sponsorship opportunities

Sponsorship opportunities The success of the previous two European Workshops on Focused Ultrasound Therapy, has led us to organize a third conference which will take place in London, October 15-16, 2015. The congress will take

Dettagli

Naming nei Sistemi Distribuiti

Naming nei Sistemi Distribuiti Naming nei Sistemi Distribuiti Naming (1) La risoluzione dei nomi permette ad un processo di accedere ad una entità in un sistema distribuito. Un sistema di naming è necessario per avere un modello comune

Dettagli

Naming nei Sistemi Distribuiti

Naming nei Sistemi Distribuiti Naming nei Sistemi Distribuiti Naming (1) La risoluzione dei nomi permette ad un processo di accedere ad una entità in un sistema distribuito. Un sistema di naming è necessario per avere un modello comune

Dettagli

Corso di Grafica Computazionale

Corso di Grafica Computazionale Corso di Grafica Computazionale Note di C++ Docente: Massimiliano Corsini Laurea Specialistica in Ing. Informatica Università degli Studi di Siena Note Iniziali Il C++ non ha il concetto dei packages In

Dettagli

API e socket per lo sviluppo di applicazioni Web Based

API e socket per lo sviluppo di applicazioni Web Based API e socket per lo sviluppo di applicazioni Web Based Cosa sono le API? Consideriamo il problema di un programmatore che voglia sviluppare un applicativo che faccia uso dei servizi messi a disposizione

Dettagli

Aggiornamento dispositivo di firma digitale

Aggiornamento dispositivo di firma digitale Aggiornamento dispositivo di firma digitale Updating digital signature device Questo documento ha il compito di descrivere, passo per passo, il processo di aggiornamento manuale del dispositivo di firma

Dettagli

Guida all installazione del prodotto 4600 in configurazione plip

Guida all installazione del prodotto 4600 in configurazione plip Guida all installazione del prodotto 4600 in configurazione plip Premessa Questo prodotto è stato pensato e progettato, per poter essere installato, sia sulle vetture provviste di piattaforma CAN che su

Dettagli

Concetto di File! Metodi di Accesso! Struttura delle Directory! Montaggio di File-System! Condivisione di File! Protezione!

Concetto di File! Metodi di Accesso! Struttura delle Directory! Montaggio di File-System! Condivisione di File! Protezione! Concetto di File! Metodi di Accesso! Struttura delle Directory! Montaggio di File-System! Condivisione di File! Protezione! 10.2! Silberschatz, Galvin and Gagne 2005! Spazio di indirizzamento logico contiguo!

Dettagli

Zeroshell come client OpenVPN

Zeroshell come client OpenVPN Zeroshell come client OpenVPN (di un server OpenVpn Linux) Le funzionalità di stabilire connessioni VPN di Zeroshell vede come scenario solito Zeroshell sia come client sia come server e per scelta architetturale,

Dettagli

Capitolo 5: Algol 60, Pascal e C

Capitolo 5: Algol 60, Pascal e C Capitolo 5: Algol 60, Pascal e C Algol 60 (58-63) -Backus, McCarthy -fino al Pascal (70) è stato lo standard accademico punti positivi -BNF!! -block structure (begin-end), recursion, higher order functions,

Dettagli

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi. 5 Gestione della memoria Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria

Dettagli

4 6 7 7 8 8 9 10 11 14 15 17 21 25 Riassunto Realizzazione di un Sistema Informativo Territoriale per la sorveglianza sanitaria della fauna nel Parco Nazionale della Majella tramite software Open Source

Dettagli

THIS DOCUMENT WILL GUIDE YOU STEP BY STEP THROUGH THE DONATION PROCESS RELATED TO THE CROWDFUNDING CAMPAIGN MADE BY STANZE AL GENIO S HOUSE MUSEUM.

THIS DOCUMENT WILL GUIDE YOU STEP BY STEP THROUGH THE DONATION PROCESS RELATED TO THE CROWDFUNDING CAMPAIGN MADE BY STANZE AL GENIO S HOUSE MUSEUM. QUESTO DOCUMENTO TI GUIDA PASSO PASSO NELLA PROCEDURA DI DONAZIONE NELL AMBITO DELLA CAMPAGNA DI RACCOLTA FONDI PROMOSSA DALLA CASA MUSEO STANZE AL GENIO. THIS DOCUMENT WILL GUIDE YOU STEP BY STEP THROUGH

Dettagli

quali sono scambi di assicurazione sanitaria

quali sono scambi di assicurazione sanitaria quali sono scambi di assicurazione sanitaria Most of the time, quali sono scambi di assicurazione sanitaria is definitely instructions concerning how to upload it. quali sono scambi di assicurazione sanitaria

Dettagli

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica www.dis.uniroma1.it/~midlab Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Prof. Roberto Baldoni Gestione della memoria Gestione della memoria: 1. Binding degli indirizzi 2. Partizionamento

Dettagli

Cryptographic Techniques for Authentication

Cryptographic Techniques for Authentication Identificazione con Funzioni Hash one-way Cryptographic Techniques for Authentication Ozalp Babaoglu! Accesso di un utente alla propria casella di posta elettronica o ai file personali memorizzati su un

Dettagli

Radio Frequency Identification Systems

Radio Frequency Identification Systems Work--Tag passiivii Miinii--Conttrrollllerr USB CPR..PR50 & CPR..MR50 Manualle iinsttallllaziione Come tutti i dispositivi della Famiglia Work-Tag i controller operano con transponders di frequenza operativa

Dettagli

How to use the WPA2 encrypted connection

How to use the WPA2 encrypted connection How to use the WPA2 encrypted connection At every Alohawifi hotspot you can use the WPA2 Enterprise encrypted connection (the highest security standard for wireless networks nowadays available) simply

Dettagli

quali sono scambi di assicurazione sanitaria

quali sono scambi di assicurazione sanitaria quali sono scambi di assicurazione sanitaria These guides have a lot information especially advanced tips such as the optimum settings configuration for quali sono scambi di assicurazione sanitaria. QUALI

Dettagli