Memoria virtuale e Sistema operativo. In riferimento all architettura x86 e al sistema operativo Linux

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Memoria virtuale e Sistema operativo. In riferimento all architettura x86 e al sistema operativo Linux"

Transcript

1 Memoria virtuale e Sistema operativo In riferimento all architettura x86 e al sistema operativo Linux 1

2 Premessa Questa NON è una lezione di un corso di Sistemi Operativi, né tantomeno di Linux Lo scopo della lezione è capire come le potenzialità dell architettura x86 vengono usate in pratica Ci riferiremo all architettura a 32 bit Certi dettagli del funzionamento di Linux verranno trascurati o semplificati allo scopo di cui sopra Chi leggesse la letteratura su Linux, dovrebbe confrontarsi con molto materiale aggiuntivo che qui non è stato preso in considerazione G. Bucci Memoria virtuale X32 e Linux 2

3 Architettura x86 e Linux G. Bucci Memoria virtuale X32 e Linux 3

4 Memoria virtuale x86 Segmentazione e paginazione La paginazione è opzionale, la segmentazione è ineliminabile La segmentazione mette in atto un sistema di protezione raffinato. Ma viene usata? G. Bucci Memoria virtuale X32 e Linux 4

5 Memoria virtuale x86 Segmentazione e paginazione La paginazione è opzionale, la segmentazione è ineliminabile La segmentazione x86 mette in atto un sistema di protezione raffinato. Ma viene usata? Sostanzialmente NO! Linux (derivato da Unix) usa un modello lineare piatto Così fan tutti (Windows, Solaris,..) G. Bucci Memoria virtuale X32 e Linux 5

6 Modello piatto Come si fa (versione a 32 bit) G. Bucci Memoria virtuale X32 e Linux 6

7 Paginazione (modello piatto) L indirizzo lineare prodotto dall unità di segmentazione viene interpretato come indirizzo virtuale Su macchine a 32 bit Lo spazio virtuale si riduce a 4 GB (in pratica l indirizzo è dato dal solo OFFSET) La memoria fisica può arrivare a 4 GB Dal PentiumPro la memoria fisica può arrivare fino a 64 GB (tramite il PAE physical address extension). Non considereremo questo caso G. Bucci Memoria virtuale X32 e Linux 7

8 Linux Due sole modalità di funzionamento: User mode (PL=3) o Kernel mode (PL=0) Tutti i processi vedono il medesimo spazio (virtuale) di 4GB, suddiviso in spazio kernel e spazio user. La memoria (virtuale) è suddivisa corrispondentemente Un processo di utente è normalmente in modo User. Se fa una chiamata al SO passa in modo Kernel G. Bucci Memoria virtuale X32 e Linux 8

9 Linux Due sole modalità di funzionamento: User mode o Kernel mode Tutti i processi vedono il medesimo spazio (virtuale) di 4GB, suddiviso in spazio kernel e spazio user. La memoria (virtuale) di ogni singolo processo è suddivisa corrispondentemente Un processo di utente è normalmente in modo User. Se fa una chiamata al SO passa in modo Kernel Mappato nella parte bassa della memoria G. Bucci Memoria virtuale X32 e Linux 9

10 Memoria Fisica Parte della memoria fisica è usata per scopi predefiniti Estensioni Legacy G. Bucci Memoria virtuale X32 e Linux 10

11 Memoria Fisica Parte della memoria fisica è usata per scopi predefiniti Estensioni Di norma il kernel (il codice del kernel) si mappa dalla posizione 0x100000, cioè dopo il primo megabyte di memoria fisica Legacy G. Bucci Memoria virtuale X32 e Linux 11

12 Incidentalmente: una Motherboard Northbridge dirige il traffico G. Bucci Memoria virtuale X32 e Linux 12

13 I 4 segmenti di Linux Un segmento di codice e uno dati per il modo User Un segmento di codice e uno dati per il modo Kernel Ci sono altri segmenti per un totale di 18 con funzioni accessorie Uno di questi è un TSS (uno solo!), vedremo avanti come è usato G. Bucci Memoria virtuale X32 e Linux 13

14 I 4 segmenti di Linux Un segmento di codice e uno dati per il modo User Un segmento di codice e uno dati per il modo Kernel Type 2: Data Read/write 10: Codice Execute/Read Attenzione ai livelli di privilegio DPL determina user/kernel G. Bucci Memoria virtuale X32 e Linux 14

15 I 4 segmenti di Linux Un segmento di codice e uno dati per il modo User Un segmento di codice e uno dati per il modo Kernel Granularita: Pagina (4K) Spazio complessivo 4G Indirizzi a 32 bit Normale segmento (codice o dati) Sempre presente G. Bucci Memoria virtuale X32 e Linux 15

16 E le vecchie, care GDT e LDT? Viene usata solo GDT. Essa contiene I descrittori dei 4 segmenti visti Pochi altri descrittori (in totale fino a 18) molti dei quali sono semplicemente vuoti. Tra questi c è il descrittore di una default_ldt che il kernel non usa ma che può essere usata da processi che richiedano una LDT Alcuni descrittori per i thread e per il PnP (BIOS) Un TSS Si ricorda che la IDT (Interrupt Descriptor Table) non è parte del sistema dei segmenti La IDT non è un segmento ; l accesso è in modo trasparente via il registro di CPU IDTR (non visibile al programmatore in modo protetto) G. Bucci Memoria virtuale X32 e Linux 16

17 Programmi, codice oggetto e memoria G. Bucci Memoria virtuale X32 e Linux 17

18 Programmi e memoria Un compilatore genera codice per uno spazio comunque virtuale C e C++ (Gnu) per Linux organizzano il programma in segmenti come nello schema Text: codice Data: dati inizializzati (statici) BSS: dati non inizializzati (statici) Heap: memoria dinamica (malloc()) Stack: variabili dinamiche G. Bucci Memoria virtuale X32 e Linux 18

19 Codice oggetto (ELF Executable and Linkable Format) ELF: Uno dei possibili formati Contiene la traduzione del programma sorgente e info per il linker e loader Gli header danno informazioni a linker e al loader su cosa c è entro il file Microsoft ha diversi formati PE (Portable Executable): EXE, DLL, OBJ, SYS File ELF versione linkable G. Bucci Memoria virtuale X32 e Linux 19

20 Linker BSS BSS BSS Data Data Data Text Text Text Comporta riallocazione/riassegnazione degli indirizzi G. Bucci Memoria virtuale X32 e Linux 20

21 2 viste File linkable File executable L ordine degli header e delle altre parti non è predefinito. Questo è uno dei possibili ordini. Le info in ELF header permettono due viste (2 tipi di file) differenti: (a) file linkable ; (b) file eseguibile. Section header table: specifica la struttura delle sezioni (tabelle, nomi ecc.) Program header table: specifica (alla funzione exec() del sistema operativo) come creare il process image G. Bucci Memoria virtuale X32 e Linux 21

22 File eseguibile Esempio di possibile file eseguibile G. Bucci Memoria virtuale X32 e Linux 22

23 File eseguibile Offset del segmento rispetto all inizio del file Indirizzo virtuale del segmento Dimensione del segmento Un programma memorizzato su disco è una entità passiva G. Bucci Memoria virtuale X32 e Linux 23

24 File eseguibile p_offset p_vaddr p_filesz Queste informazioni stanno nel Program header G. Bucci Memoria virtuale X32 e Linux 24

25 Process Image Process image: dislocazione nello spazio virtuale I segmenti del processo immagine devono partire da multipli di 4KB (assumendo pagine di 4KB), ovvero a confini multipli di 0x1000. Eseguibile Immagine.text I due segmenti sono separati perché ciascuno deve partire da un confine di pagina. Le parti di sementi diversi che stanno nella stessa pagina vengono duplicate In questo modo i due segmenti possono avere diritti di accesso diversi (cosa non possibile se fine Text e inizio Data fossero stati nella stessa pagina) Confini di pagina.text.data.data G. Bucci Memoria virtuale X32 e Linux 25

26 Process image (corrispondente al precedente modulo eseguibile) Process Image G. Bucci Memoria virtuale X32 e Linux 26

27 Process image (corrispondente al precedente modulo eseguibile) Il processo immagine non viene costruito come nuovo file (vedi seguente) Il sistema operativo, in base al file eseguibile, determina dove sono allocati i segmenti nello spazio virtuale. Process Image G. Bucci Memoria virtuale X32 e Linux 27

28 Descrizione del process image G. Bucci Memoria virtuale X32 e Linux 28

29 Process Image Caricamento del programma: copiare logicamente un segmento del file su un segmento della memoria virtuale. Attenzione: il caricamento fisico può avvenire in un secondo tempo quando viene fatto il primo riferimento a un segmento G. Bucci Memoria virtuale X32 e Linux 29

30 La memoria (virtuale di Linux) Questo confine è fisso G. Bucci Memoria virtuale X32 e Linux 30

31 La Memoria Virtuale di Linux G. Bucci Memoria virtuale X32 e Linux 31

32 Modello di traduzione Linux Sarebbe a tre livelli Usato sulle macchine a 64 bit (cr3 è il registro dell architettura x86) G. Bucci Memoria virtuale X32 e Linux 32

33 Sulle macchine a 32 bit Usa la traduzione convenzionale (X86) Non c è la MPD Questa si chiama ancora Page Global Directory (PGD) G. Bucci Memoria virtuale X32 e Linux 33

34 Dove sta il kernel Nella configurazione standard al kernel è riservato l ultimo dei 4 GB dello spazio degli indirizzi (virtuali) In memoria fisica il kernel è stabilmente allocato nella parte bassa, a partire dalla posizione 0x (ovvero dopo il primo MB di memoria) Una tipica configurazione può richiedere meno di 2 MB Il primo MB di memoria fisica non viene usato perché una parte è ricoperta dal BIOS (ROM). Altre parti del primo MB servono a usi specifici. (I page frame corrispondenti non vengono usati) Memoria fisica Nota: C (l effettivo inizio del codice kernel è a c , che si mappa dopo il primo MB fisico) G. Bucci Memoria virtuale X32 e Linux 34

35 Avvio del kernel (1) Il BIOS esegue una serie di test e inizializza l hardware Legge il boot sector (primo settore del disco, detto anche Master Boot Record - MBR, Prima parte del GRUB), Lo copia in RAM a partire dall indirizzo 7c00 e gli passa il controllo, determinando a sua volta il caricamento della seconda parte del boot loader (presenta la schermata con cui si sceglie il sistema operativo da caricare) G. Bucci Memoria virtuale X32 e Linux 35

36 Avvio del kernel (2) Vengono preparate la GDT e la IDT (temporanee) Viene effettuato il passaggio al modo protetto, ma senza attivare la paginazione Viene caricato e decompresso il kernel, e viene effettuato il salto al punto di entrata (0x (in realtà 0x100100)) Viene effettuata l inizializzazione finale di GDT, IDT Vengono costruite le tabelle e la mappatura di memoria (pure temporanee) Viene attivata la paginazione (fino a questo punto gli indirizzi lineari generati corrispondevano agli indirizzi fisici) Viene portato EIP nello spazio virtuale (da questo momento gli indirizzi lineari generati sono virtuali) Viene creato il processo con PID = 1 G. Bucci Memoria virtuale X32 e Linux 36

37 Reale/virtuale????? Questa posizione si chiama PAGE_OFFSET (PAGE_OFFSET = 0xc ) Il kernel viene compilato a partire da PAGE_OFFSET Gli indirizzi (assoluti) di posizioni entro il kernel sono quindi superiori a 0xc Ma il kernel viene caricato nella parte bassa della memoria fisica Come fa allora a funzionare????? G. Bucci Memoria virtuale X32 e Linux 37

38 A regime Quando il kernel è ormai istallato e la paginazione è attiva non ci sono (ovviamente) problemi: provvede in modo automatico il meccanismo di traduzione degli indirizzi Memoria PMT Fisica 1MB G. Bucci Memoria virtuale X32 e Linux 38

39 A regime Quando il kernel è ormai istallato e la paginazione è attiva non ci sono (ovviamente) problemi: provvede in modo automatico il meccanismo di traduzione degli indirizzi Memoria PMT Fisica 1MB Ma durante la fase iniziale, quando ancora la MMU non è in funzione, come fa un programma compilato per stare oltre c a funzionare INVARIATO entro il primo GB?????? G. Bucci Memoria virtuale X32 e Linux 39

40 Un po di codice (parte iniziale del kernel) C PAGE_OFFSET EQU c h ORG PAGE_OFFSET ;Prima posizione ::: C V DW 2011 ;var inizializ ::: C JMP L1 ;un salto C L1: ::: ::: ; (relativo) ::: C JMP L2 ;un altro salto c L2: ::: ::: ; (assoluto) G. Bucci Memoria virtuale X32 e Linux 40

41 ..la sua codifica Alla variabile V viene assegnato (come indirizzo) il valore che corrisponde a PAGE_OFFSET+lo scostamento che le compete; lo stesso a L1 e L2 Cioè numeri superiori a 0xc Ma nell architettura x86: Il salto a L1 viene codificato come salto relativo (a EIP) un salto a non oltre 127 (128) posizioni in avanti (indietro) viene codificato come salto relativo Il salto a L2 viene codificato come assoluto G. Bucci Memoria virtuale X32 e Linux 41

42 Carichiamo il programma da 0x Contenuto di memoria ::: (V) 2011 ::: JMPR 20 ::: (L1) ::: ::: JMPA c ::: c (L2) Nota: JMPR e JMPA stanno per salto relativo e assoluto rispettivamente G. Bucci Memoria virtuale X32 e Linux 42

43 Carichiamo il programma da 0x Contenuto di memoria E supponiamo che EIP punti alla posizione che contiene il salto (relativo) a L ::: (V) 2011 ::: JMPR 20 ::: L1: ::: ::: JMPA c ::: c L2: EIP G. Bucci Memoria virtuale X32 e Linux 43

44 Carichiamo il programma da 0x Contenuto di memoria E supponiamo che EIP punti alla posizione che contiene il salto (relativo) a L ::: (V) 2011 ::: JMPR 20 ::: L1: ::: ::: JMPA c ::: c L2: EIP Il salto si compie: EIP viene aggiornato a Il programma esegue correttamente anche se si trova a un indirizzo diverso da quello per cui è stato compilato G. Bucci Memoria virtuale X32 e Linux 44

45 Portiamoci in Contenuto di memoria ::: (V) 2011 ::: JMPR 20 ::: L1: ::: ::: JMPA c ::: c L2: EIP G. Bucci Memoria virtuale X32 e Linux 45

46 Portiamoci in Contenuto di memoria ::: (V) 2011 ::: JMPR 20 ::: L1: ::: ::: JMPA c ::: c L2: Il salto (assoluto) aggiorna EIP con il valore codificato nell istruzione Ovvero salta nello spazio virtuale del kernel EIP G. Bucci Memoria virtuale X32 e Linux 46

47 Portiamoci in Contenuto di memoria ::: (V) 2011 ::: JMPR 20 ::: L1: ::: ::: JMPA c ::: c L2: Il salto (assoluto) aggiorna EIP con il valore codificato nell istruzione Ovvero salta nello spazio virtuale del kernel EIP Dopo l attivazione della paginazione basta un salto come questo a passare allo spazio virtuale G. Bucci Memoria virtuale X32 e Linux 47

48 Vediamolo sul serio (GAS) /* * Enable paging */ 3: 1: 1: swapper_pg_dir è il nome della posizione a cui si trova la tabella PGD mov $swapper_pg_dir - PAGE_OFFSET,%eax mov %eax,%cr3 /* set the page table pointer. */ mov %cr0,%eax or $0x ,%eax mov %eax,%cr0 /*..and set paging (PG) bit */ jmp 1f /* flush the prefetch-queue */ mov $1f,%eax jmp *%eax /* make sure eip is relocated */ NB: all inizio di questo codice la CPU è già in modo protetto (eax, ecc..), ma con mappatura disabilitata G. Bucci Memoria virtuale X32 e Linux 48

49 Vediamolo sul serio (GAS) /* * Enable paging */ 3: mov $swapper_pg_dir - PAGE_OFFSET,%eax 1: 1: Siccome il kernel viene mappato a partire da 0, la differenza è l indirizzo assoluto (a partire da 0) a cui si trova PGD mov %eax,%cr3 /* set the page table pointer. */ mov %cr0,%eax or $0x ,%eax mov %eax,%cr0 /*..and set paging (PG) bit */ jmp 1f /* flush the prefetch-queue */ mov $1f,%eax jmp *%eax /* make sure eip is relocated */ NB: all inizio di questo codice la CPU è già in modo protetto (eax, ecc..), ma con mappatura disabilitata G. Bucci Memoria virtuale X32 e Linux 49

50 Vediamolo sul serio (GAS) /* * Enable paging Abilita la paginazione */ 3: mov $swapper_pg_dir - PAGE_OFFSET,%eax mov %eax,%cr3 /* set the page table pointer. */ mov %cr0,%eax or $0x ,%eax mov %eax,%cr0 /*..and set paging (PG) bit */ jmp 1f /* flush the prefetch-queue */ 1: 1: mov $1f,%eax jmp *%eax /* make sure eip is relocated */ G. Bucci Memoria virtuale X32 e Linux 50

51 Quei due salti (preliminare) /* * Enable paging Questo è un salto */ relativo 3: mov $swapper_pg_dir - PAGE_OFFSET,%eax mov %eax,%cr3 /* set the page table pointer. */ mov %cr0,%eax or $0x ,%eax mov %eax,%cr0 /*..and set paging (PG) bit */ jmp 1f /* flush the prefetch-queue */ 1: mov $1f,%eax jmp *%eax /* make sure eip is relocated */ 1: G. Bucci Memoria virtuale X32 e Linux 51

52 Quei due salti (preliminare) /* Questa carica in eax $1f (un indirizzo * Enable paging assoluto) ovvero il corrispondente */ indirizzo nello spazio virtuale del 3: compilatore mov $swapper_pg_dir - PAGE_OFFSET,%eax mov %eax,%cr3 /* set the page table pointer. */ mov %cr0,%eax or $0x ,%eax mov %eax,%cr0 /*..and set paging (PG) bit */ jmp 1f /* flush the prefetch-queue */ 1: mov $1f,%eax jmp *%eax /* make sure eip is relocated */ 1: Salta all indirizzo contenuto in eax (salto indiretto) G. Bucci Memoria virtuale X32 e Linux 52

53 ma la PMT?? Il passaggio allo spazio virtuale presuppone che ci sia la PMT (ovvero la PGD e le PT). Dove sono?? Come ci sono state messe?? Anzitutto si assume che il kernel vada a occupare i primi 8 MB di memoria fisica (anche se è scritto in modo che effettivamente il codice parta dopo il primo MB) Per indirizzare 8 MB ci vogliono 2 PT In compilazione viene costruita una PGD vuota eccetto che per i due elementi che punteranno alle due PT swapper_pg_dir corrisponde a PGD (che necessariamente viene presa negli 8 MB fisici in cui è il kernel e quindi negli 8 MB virtuali corrispondenti ) Le variabili pg0 e pg1 tengono i puntatori a PT0 e PT1 (esse pure prese necessariamente nei medesimi 8 MB) Le due PT vengono riempite dal kernel stesso all avvio (cioè non a tempo di compilazione), prima di passare al modo virtuale G. Bucci Memoria virtuale X32 e Linux 53

54 segue Il kernel deve mappare c su 0 (cioè la prima pagina virtuale del kernel sulla prima pagina fisica usata) c bit 10 bit 12 bit Posizione 300 in PGD Posizione 0 in PT G. Bucci Memoria virtuale X32 e Linux 54

55 dunque Nell elemento 300 di PGD deve andarci l indirizzo di PT0 (contenuto nella variabile pg0 del kernel) In PT0 ci vanno 1024 elementi che indirizzati attraverso il secondo campo che portano a 1024 tabelle (coprendo i primi 4MB dello spazio fisico) All elemento 301 di PGD deve andarci l indirizzo di PT1 (contenuto nella variabile pg1 del kernel) In PT1 ci vanno 1024 elementi che indirizzati attraverso il secondo campo che portano a 1024 tabelle (coprendo i secondi 4MB fisico) G. Bucci Memoria virtuale X32 e Linux 55

56 Riguardiamolo meglio /* * Enable paging */ 3: mov $swapper_pg_dir - PAGE_OFFSET,%eax mov %eax,%cr3 /* set the page table pointer. */ mov %cr0,%eax or $0x ,%eax mov %eax,%cr0 /*..and set paging (PG) bit */ jmp 1f /* flush the prefetch-queue */ 1: mov $1f,%eax jmp *%eax /* make sure eip is relocated */ 1: G. Bucci Memoria virtuale X32 e Linux 56

57 mov $swapper_pg_dir-page_offset,%eax swapper_pg_dir è la variabile nello spazio virtuale del kernel che corrisponde alla prima posizione di PGD La differenza è lo scostamento di swapper_pg_dir rispetto alla base dello spazio kernel, ma anche rispetto a 0 (memoria reale) Dunque l effetto del mov èportare in eax l indirizzo di memoria fisica su cui è mappata swapper_pg_dir (cioè PGD) Quando EIP viene portato nello spazio kernel tutto è predisposto per la mappatura dei primi 8 MB di memoria fisica kernel sui primi 8 MB di memoria fisica Successivamente le tabelle vengono riempite in modo definitivo G. Bucci Memoria virtuale X32 e Linux 57

58 Lo stato delle cose all avvio della traduzione Spazio virtuale kernel Puntatore alla pagina fisica 1023 c cr PGD Puntatore alla pagina fisica 0 PT0 1K 0 G. Bucci Memoria virtuale X32 e Linux 58

59 Lo stato delle cose all avvio della traduzione Spazio virtuale kernel PT0 realizza la marcatura dei primi 4 MB c cr3 300 PGD 301 PT0 G. Bucci Memoria virtuale X32 e Linux 59

60 Lo stato delle cose all avvio della traduzione Spazio virtuale kernel PT1 realizza la marcatura dei secondi 4 MB c cr PGD PT1 G. Bucci Memoria virtuale X32 e Linux 60

61 Ma c è ancora un dettaglio importante!!! Se non si prendono provvedimenti questa sequenza non funziona mov %eax,%cr0 jmp 1f ;salto relativo 1: mov $1f,%eax jmp *%eax ;salto indiretto al kern 1: Perché non funziona? Che provvedimenti prendere? G. Bucci Memoria virtuale X32 e Linux 61

62 .Ma c è ancora un dettaglio importante Dopo l istruzione mov %eax,%cr0 la MMU è abilitata, ma l indirizzo in EIP è rimasto nel campo degli 8 MB bassi (perché il kernel qui si trova) Fino ad ora era un indirizzo lineare che veniva preso come indirizzo fisico Ora il medesimo indirizzo lineare è diventato virtuale e quindi subisce la traduzione Dunque occorre anche la mappatura dagli 8 MB bassi dello spazio degli indirizzi agli 8 MB bassi della memoria fisica Ciò viene ottenuto con altre due tabelle (PTB0 e PTB1) i cui descrittori stanno in PGD(0) e PGD(1) Conclusione: in questa fase vengono create 4 PT (che potranno essere modificate in seguito) G. Bucci Memoria virtuale X32 e Linux 62

63 .Ma c è ancora un dettaglio importante Dopo l istruzione mov %eax,%cr0 la MMU è abilitata, ma l indirizzo in EIP è rimasto nel campo degli 8 MB bassi (perché il kernel qui si trova) Prima era un indirizzo lineare che veniva preso come indirizzo fisico Ora il medesimo indirizzo lineare è diventato virtuale e quindi subisce la traduzione Dunque occorre mappare gli (equivalenti) 8 MB bassi dello spazio degli indirizzi virtuali sugli 8 MB bassi della memoria fisica Ciò viene ottenuto con altre due tabelle (PTB0 e PTB1) i cui descrittori stanno in PGD(0) e PGD(1) Conclusione: in questa fase occorrono 4 PT (che potranno essere modificate in seguito) G. Bucci Memoria virtuale X32 e Linux 63

64 Non è finita. Va bene per i salti, ma per i dati??? La variabile V va in Ma l istruzione mov V,%eax, è assemblata come mov 0xc ,%eax Dunque l istruzione non darebbe risultato corretto (se eseguita prima dell abilitazione della paginazione) Per dare risultato corretto V deve essere indirizzata in modo relativo rispetto alla base del blocco in cui si trova; ciò richiede: Che in un registro venga caricato il valore della posizione in cui cade PAGE_OFFSET (nel caso specifico ) Che a questo venga aggiunta la differenza V-PAGE_OFFSET Che l indirizzamento di V avvenga in modo indiretto attraverso questo registro G. Bucci Memoria virtuale X32 e Linux 64

65 Va bene per i salti, ma per i dati??? La variabile V va in Ma l istruzione mov eax,v è assemblata come mov eax, c Dunque l istruzione non darebbe risultato corretto Per dare risultato corretto V deve essere indirizzata in modo relativo rispetto alla base del blocco in cui si trova; ciò richiede: Che in un registro venga caricato il valore della posizione in cui cade PAGE_OFFSET (nel caso specifico 0x100000) Che a questo venga aggiunta la differenza V-PAGE_OFFSET Che l indirizzamento di V avvenga in modo indiretto attraverso questo registro G. Bucci Memoria virtuale X32 e Linux 65

66 ad esempio C PAGE_OFFSET EQU c h org PAGE_OFFSET ;Prima posizione mov $,%ebx ::: C V dw 2011 ;var inizializ ::: mov [%ebx + (V-PAGE_OFFSET)], %eax Carica in EBX il contenuto del program counter (ovvero EIP). Se questa istruzione è alla posizione XXXXXH carica XXXXXH G. Bucci Memoria virtuale X32 e Linux 66

67 ad esempio C PAGE_OFFSET EQU c h org PAGE_OFFSET ;Prima posizione mov $,%ebx ::: C V dw 2011 ;var inizializ ::: mov [%ebx + (V-PAGE_OFFSET)], %eax Apparentemente carica in EAX il contenuto della posizione 0xC Ma siccome è attiva la traduzione degli indirizzi l indirizzo viene mappato sullo spazio in cui è stato caricato il kernel, ovvero carica in EAX il contenuto di V G. Bucci Memoria virtuale X32 e Linux 67

68 It s magic! Il kernel viene compilato per risiedere nell ultimo dei 4 GB dello spazio virtuale, ma viene allocato nella parte bassa della memoria fisica All atto del caricamento in memoria del kernel la macchina è il modo reale (è un 8086) Il kernel passa inizialmente al modo protetto (da questo momento non è più un 8086), ma senza attivare la paginazione Fino all abilitazione della paginazione tutti gli indirizzi (lineari) generati dal kernel ricadono nel campo di indirizzi ricoperto in memoria fisica Subito dopo l attivazione della paginazione un istruzione rialloca EIP Ma prima c è un momento in cui EIP non è ancora riallocato è come se fosse in uno spazio virtuale nei primi 8 MB Dopo la riallocazione gli indirizzi generati dal kernel sono nel suo spazio virtuale Tabelle e strutture dati, manipolate nello spazio reale fino alla riallocazione, è come se venissero trasferite nello spazio virtuale G. Bucci Memoria virtuale X32 e Linux 68

69 Vediamo un po Usiamo il comando cat /proc/<pid>/maps cat comando unix che legge file specificati come parametri proc è un file virtuale che contiene informazioni sui processi pid indentifica il processo maps chiede la mappa dell occupazione in memoria (virtuale) Come terzo elemento si sono altre possibilità (status, meminfo, cpuinfo,..) Nel seguito facciamo vedere cosa viene mostrato dopo aver dato due comandi bash (command processor) e cat stesso e dopo aver avviato tre task gnometrics, solitario e sudoko G. Bucci Memoria virtuale X32 e Linux 69

70 bash e cat (sono comandi di shell) bash Pid di bash cat G. Bucci Memoria virtuale X32 e Linux 70

71 bash, cat (sono comandi di shell) bash cat I txt partono dallo stesso indirizzo G. Bucci Memoria virtuale X32 e Linux 71

72 gnometrics, solitario Caricati di seguito e mantenuti attivi G. Bucci Memoria virtuale X32 e Linux 72

73 sudoko Come si vede nello spazio virtuale il segmento txt parte sempre da G. Bucci Memoria virtuale X32 e Linux 73

74 TASK Come vengono realizzati (questa parte è facoltativa) G. Bucci Memoria virtuale X32 e Linux 74

75 Un task (processo) E descritto nel kernel attraverso un process descriptor, denominato task_struct (circa 1,7 KB su macchine 32 bit). Esso contiene una gran quantità di info, tra cui: PID (process ID) Stato del processo Priorità Puntatore al task che lo precede e al task che lo segue nella process list (che contiene tutti i task) Puntatori ad altre strutture che descrivono file, e altro. Tra questi c è mm il puntatore alla struttura mm_struct che, a sua volta, contiene puntatori a descrittori di aree di memoria Puntatori, che individuano altre strutture, per esempio le mappe di memoria, i file associati, ecc. Non vengono usati i meccanismi di gestione automatica del TSS (salvataggio ripristino task) di cui è dotata la logica delle CPU x86 G. Bucci Memoria virtuale X32 e Linux 75

76 Task list G. Bucci Memoria virtuale X32 e Linux 76

77 Schema di descrizione della memoria G. Bucci Memoria virtuale X32 e Linux 77

78 ..più precisamente G. Bucci Memoria virtuale X32 e Linux 78

79 Mappa della memoria G. Bucci Memoria virtuale X32 e Linux 79

80 Mappa della memoria (virtuale di un task) Occhio a questo: è il puntatore alla tabella di primo livello della PMT che in precedenza è stato indicato come swapper_pg_dir G. Bucci Memoria virtuale X32 e Linux 80

81 Avvio di un processo Quando viene avviato un nuovo processo gli viene assegnato uno spazio virtuale Tale assegnazione è da intendersi come la copiatura logica dei segmenti da file (ELF) a segmenti nella memoria virtuale, cioè le tabelle viste in precedenza Non implica che venga immediatamente copiata una pagina fisica. Ipoteticamente il sistema potrebbe non caricare nemmeno una pagina di codice Quel che si richiede è che venga costruita la PMT, congruente con l allocazione nello spazio virtuale, in modo che: Quando il kernel passa il controllo al processo (saltando alla prima istruzione nello spazio virtuale del processo) viene generato un indirizzo che viene tradotto attraverso la PMT Se la pagina non c è, ne consegue un page fault al quale fa seguito il caricamento della pagina, ecc.. (Ovviamente conviene caricare un po di pagine prima di dare il via) G. Bucci Memoria virtuale X32 e Linux 81

82 Traduzione indirizzi Se lavora a 3 livelli G. Bucci Memoria virtuale X32 e Linux 82

83 Altri aspetti della gestione della memoria G. Bucci Memoria virtuale X32 e Linux 83

84 Facciamo il punto Lo spazio virtuale del kernel (a parte il kernel stesso e le strutture dati statiche) è sostanzialmente impiegato per la mappatura della memoria Di norma il kernel (effettivo) sta a partire dalla posizione 0x (secondo MB di RAM) Le pagine di memoria fisica occupate dal codice del kernel e dalle strutture dati statiche del kernel (definite al tempo di compilazione) sono riservate (non possono essere allocate dinamicamente né possono essere swapped) su disco. Approssimativamente si tratta dei primi 2 MB fisici Parte del primo MB fisico è riservata al BIOS (ROM+RAM) Le restanti parti del primo MB possono essere usate dinamicamente Le altre aree di RAM sono utilizzate dinamicamente dal meccanismo di paginazione (Ovviamente ci stiamo sempre riferendo a Linux su x86) G. Bucci Memoria virtuale X32 e Linux 84

85 Alcune complicazioni Il kernel ha uno spazio di indirizzi di 1GB Gli ultimi 128 KB sono riservati per mappature di I/O, restano 896 MB di indirizzamento mappabile in RAM Se la RAM è minore di 896 MB, essa può essere mappata tutta sul kernel (meglio: lo spazio virtuale del kernel è non minore dello spazio fisico) Per anni lo spazio massimo di memoria fisica che poteva essere manipolato dal kernel era quello che derivava da una tale mappatura dello spazio virtuale Se la RAM è tra 896 MB e 4 GB, o addirittura superiore a 4GB (PAE), lo spazio virtuale è minore dello spazio fisico; nello spazio virtuale del kernel non c è posto per la mappatura di tutte le pagine fisiche Il kernel non può direttamente manipolare nel suo spazio virtuale gli oggetti che si trovino nello spazio fisico (oltre 896 MB) G. Bucci Memoria virtuale X32 e Linux 85

86 High/low memory Il sistema distingue tra low (sotto 896) and high (sopra 896) memory. Low memory è quella per la quale esistono corrispondenti indirizzi logici nello spazio del kernel High memory è quella per la quale non esistono indirizzi logici nello spazio del kernel Le strutture dati del kernel vengono tendenzialmente tenute in pagine di low memory; mentre high memory tende a essere utilizzata per mapparci gli spazi logici dei processi utente (3 GB, gestiti con normale traduzione) Come viene gestita la high memory? G. Bucci Memoria virtuale X32 e Linux 86

87 Zone La memoria fisica viene vista come suddivisa in zone : ZONE_DMA: è un area di 16 MB nella parte bassa (è quella su cui opera il DMA); le pagine in questa zona vengono usate per il ZONE_NORMAL: tra 16 MB e A memory zone is composed of page frames or physical pages, which means that a page frame is allocated from a particular memory zone. Three memory zones exist in Linux: ZONE_DMA (used for DMA page frames), ZONE_NORMAL (non-dma pages with virtual mapping), and ZONE_HIGHMEM (pages whose addresses are not contained in the virtual address space). G. Bucci Memoria virtuale X32 e Linux 87

88 Descrittore di pagina Il kernel tiene un descrittore di pagina (struct page) per ogni page frame. Un descrittore contiene: Un insieme di flag Un contatore count Puntatori per l impiego in varie liste (tra cui una lista circolare contenente tutti i descrittori di pagina, la lista LRU, ) I descrittori sono tenuti in un vettore globale mem_map Un descrittore occupa meno di 64 byte 1 MB (256 pagine da 4 KB) richiede circa 256*64 = 4 * 4 KB, ovvero circa 4 page frame per il suo mem_map 1 GB richiede 4 K page frame (ovvero 16 MB) (grande spreco di memoria!!) G. Bucci Memoria virtuale X32 e Linux 88

89 flag Indicatori individuali dello stato della pagina contenuti in un parola (32 bit). Tra di essi: PG_locked: pagina è bloccata (coinvolta in una operazione di I/O PG_dirty: pagina modificata PG_lru: pagina nella lista delle pagine attive o inattive PG_active: la pagina è nella lista delle pagine attive PG_reserved: page frame riservato al kernel o non usabile (p.e. ROM); non può subire azioni di swapping. G. Bucci Memoria virtuale X32 e Linux 89

90 count E il contatore di uso della pagina. Dà la stagionatura (aging) della pagina Se vale 0 il page frame corrispondente è libero e può essere usato per qualunque processo o per lo stesso kernel. Se il suo valore è maggiore di 0 il frame è assegnato a un processo o contiene (qualche struttura) dati del kernel Quando una pagina viene allocata gli viene dato il valore 3 Ogni volta che viene toccata(*) il contatore è incrementato di 3 fino a un massimo di 20 Ogni volta che gira il kernel swap daemon (kswapd) decrementa di 1 Se il contatore giunge a zero la pagina diventa swappable (a meno che non appartenga al novero delle pagine riservate. (i numeri precedenti sono quelli di default, possono essere variati) (*) Ovvero quando viene osservata come toccata tra un page fault e il successivo G. Bucci Memoria virtuale X32 e Linux 90

91 liste, puntatori Tutti i descrittori di pagina stanno in una doppia lista circolare Il campo virtual dà l indirizzo virtuale su cui si mappa la pagina nello spazio kernel. Per le pagine in low memory (sempre mappate): l indirizzo virtuale della corrispondente pagina nello spazio del kernel Per le pagine in high memory (possono non essere mappate): 0 se la pagina non è mappata, l indirizzo virtuale nel kernel se è mappata Per indirizzare oltre i primi 4GB fisici deve essere attivo PAE La mappatura high memory viene effettuata attraverso una PT speciale (il cui indirizzo è nella variabile pkmap_page_table) G. Bucci Memoria virtuale X32 e Linux 91

92 Swapping Dove viene copiato il contenuto di una pagina dirty che viene rimossa per fare posto? Non nella sua posizione originale su disco (modificherebbe il process image che non sarebbe più quello)!! Deve essere salvata da qualche altra parte, in modo che all occorrenza venga ricaricata in memoria C è un area di swap (un file) sul quale viene copiata la pagina sporca per essere eventualmente riportata in memoria se serve ancora Il corrispondente elemento di PMT tiene traccia che la pagina è nell area di swap (in che punto entro il file), per poterla riprendere all occorrenza La gestione è affidata al kernel swap daemon G. Bucci Memoria virtuale X32 e Linux 92

93 Altre questioni G. Bucci Memoria virtuale X32 e Linux 93

94 Interruzioni (Linux) Risposta attraverso gate in IDT (Interrupt Descriptor Table) con passaggio all associato Interrupt Handler Nell architettura x86 ci sono tre tipi di gate che possono stare nella IDT: Task, Interrupt e Trap, con funzionalità simili ma diverse Task Gate: contiene il selettore del TSS che deve rimpiazzare quello corrente (task switch). Linux NON adopra i TSS (usa task_struct come TCB) e quindi i task gate NON vengono usati In modo x64 i Task gate non vengono più supportati dalla logica di CPU!! Né è supportato il task switching!!! G. Bucci Memoria virtuale X32 e Linux 94

95 Interrupt e trap gate (architettura x86) Interrupt Gate: contiene il selettore del segmento e l offset a cui saltare (cioè l indirizzo dell handler). Se l handler è a un livello più privilegiato del programma interrotto si ha uno stack switch: SS e ESP vengono salvati sullo stack del livello privilegiato (è il caso di un processo user interrotto con chiamata all handler in kernel) Vengono salvati EFLAGS, CS e EIP Viene azzerato IF (disabilitazione sistema interruzione) Se l handler è allo stesso livello del programma interrotto: Vengono salvati EFLAGS, CS e EIP (sullo stack dell interrotto) Viene azzerato IF (disabilitazione sistema interruzione) Trap Gate: simile a all interrupt gate, eccetto che non azzera IF G. Bucci Memoria virtuale X32 e Linux 95

96 Uso gate (Linux) Terminologia leggermente differente Interrupt Gate: esattamente lo stesso significato architetturale Sempre a livello 0 (DPL=0): inaccessibile ai task utente. Tutti gli interrupt handler sono raggiunti attraverso queste porte Trap Gate: Significato di Trap architetturale A livello 0 (DPL=0): inaccessibile ai task utente. La maggior parte degli handler delle eccezioni usano queste System Gate: Significato di Trap architetturale, ma A livello User (DPL=3): le relative eccezioni possono essere attivate da processi utente. Esse corrispondono alle eccezioni 3, 4, 5 e 128 (INT 3 è per il breakpoint), G. Bucci Memoria virtuale X32 e Linux 96

97 Risposta alle interruzioni Una interruzione fa saltare all interrupt handler appropriato attraverso la porta di interruzione (in IDT) Il passaggio attraverso la porta di interruzione determina automaticamente il salvataggio di EFLAG, CS, EIP, SS e ESP NB non coinvolge il Task secondo la logica x86 In pratica non viene usato il TSS In passato su usava il meccanismo di switching hardware dell architettura x86, dalla versione Linux 2.4 il salvataggio/ripristino è fatto a furia di PUSH/POP Vengono salvati sullo stack tutti i registri che la logica di CPU non salva automaticamente (EAX, EBX,, ESI, EBP,..) G. Bucci Memoria virtuale X32 e Linux 97

98 ...tuttavia Un TSS è necessario per 2 motivi Quando c è un passaggio da user a kernel mode l indirizzo dello stack del kernel viene preso dal TSS Nel TSS ci sono SS e ESP dei livelli 0, 1 e 2 Quando uno task utente tenta di effettuare operazioni di I/O, la logica di CPU fa un test di protezione basato sull I/O Privilege Level (IOPL, contenuto in EFLAGS) e sull I/O permission bit map (contenuta nel TSS) In sistemi multiprocessore (fisici o logici) c è un TSS per processore G. Bucci Memoria virtuale X32 e Linux 98

99 GDT e LDT Il Kernel non usa LDT, ma solo GDT Viene definita una LDT di default Di norma usata da tutti i processi utenti Per poter far girare sw che usa le LDT (Wine) c è la system call modify_ldt( ) con la quale un processo utente può crearsi una sua LDT che va a rimpiazzare quella di default in GDT A che scopo?? G. Bucci Memoria virtuale X32 e Linux 99

100 Conclusioni L architettura x86 ha un raffinato sistema di protezione a livelli Linux rinuncia alla protezione a livelli e si limita ai soli spazio supervisore e spazio utente Non usa i meccanismi di salvataggio/attivazione dei task della logica x86 Su macchine a 32 bit la segmentazione consentirebbe uno spazio virtuale di 64 TB Linux usa un modello piatto, limitando lo spazio virtuale a soli 4 GB, con complicazioni notevoli quando lo spazio fisico è di 64GB Le cose si semplificano con l architettura a 64 bit G. Bucci Memoria virtuale X32 e Linux 100

101 Page struct page { unsigned long flags; atomic_t _count; atomic_t _mapcount; unsigned long private; struct address_space *mapping; pgoff_t index; struct list_head lru; void *virtual; }; G. Bucci Memoria virtuale X32 e Linux 101

Hardware di un Computer

Hardware di un Computer Hardware di un Computer Monitor Mouse Tastiera Printer Disk CPU Graphics Adapter USB Controller Parallel Port Disk Controller BUS Memoria RAM Memoria ROM (BIOS) DMA CPU esegue istruzioni, effettua calcoli,

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

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

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni Sistemi operativi real time basati su Linux: gestione delle risorse e dei processi. Tesina per l esame di Sistemi Operativi a cura di. Prof. Aldo Franco Dragoni Corso di laurea in Ingegneria Informatica

Dettagli

Capitolo 11 -- Silberschatz

Capitolo 11 -- Silberschatz Implementazione del File System Capitolo 11 -- Silberschatz Implementazione del File System File system: Definizione dell aspetto del sistema agli occhi dell utente Algoritmi e strutture dati che permettono

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Sistemi Operativi Il Sistema Operativo Windows (parte 3) Sistemi Operativi Il Sistema Operativo Windows (parte 3) Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Architettura di NTFS 1 NTFS file system adottato

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

memoria virtuale protezione

memoria virtuale protezione Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente.

Dettagli

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio AXO Architettura dei Calcolatori e Sistema Operativo processo di assemblaggio linguaggio assembly è il linguaggio simbolico che consente di programmare un calcolatore utilizzando le istruzioni del linguaggio

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

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

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Architettura dei calcolatori e sistemi operativi Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Sommario Il processo di assemblaggio Il collegatore (linker) 2 Assemblatore: traduzione

Dettagli

MULTIPROGRAMMAZIONE E PROTEZIONE. G. Frosini Multiprogrammazione e Protezione Slide 1

MULTIPROGRAMMAZIONE E PROTEZIONE. G. Frosini Multiprogrammazione e Protezione Slide 1 MULTIPROGRAMMAZIONE E PROTEZIONE G. Frosini Multiprogrammazione e Protezione Slide 1 SISTEMI MULTIPROGRAMMATI Sistema di elaborazione con un solo processore: può eseguire un solo programma alla volta;

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1 GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale Funzioni principali del sistema operativo Il software la parte contro cui si può solo imprecare Avvio dell elaboratore Gestione del processore e dei processi in Gestione della memoria principale Gestione

Dettagli

Memoria Virtuale. Lezione 29 Sistemi Operativi

Memoria Virtuale. Lezione 29 Sistemi Operativi Memoria Virtuale Lezione 29 Sistemi Operativi I Principi Abbiamo sinora assunto che durante l esecuzione di un programma, lo stesso debba risiedere completamente in MC Intorno alla metà degli anni 70 viene

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

FoLUG Forlì Linux User Group. Partizionamento

FoLUG Forlì Linux User Group. Partizionamento FoLUG Forlì Linux User Group con la partecipazione della Circoscrizione n 3 di Forlì Partizionamento Quello che occorre sapere sul disco fisso per installare UBUNTU 10.10 o altri sistemi operativi. FoLUG

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale 1 (es. 1) Consideriamo un processo con m frame inizialmente vuoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine diverse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

I processi Unix. Entry della tabella dei processi

I processi Unix. Entry della tabella dei processi I processi Unix Ciascun processo Unix può evolvere in stato utente o in stato kernel. Il passaggio dall uno all altro stato avviene mediante SVC. Poiché il processo può andare in attesa di un evento nell

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Idealmente la memoria dovrebbe essere grande veloce non volatile Gerarchia di memorie Disco: capiente, lento, non volatile ed economico Memoria principale: volatile, mediamente grande,

Dettagli

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

File system II. Sistemi Operativi Lez. 20

File system II. Sistemi Operativi Lez. 20 File system II Sistemi Operativi Lez. 20 Gestione spazi su disco Esiste un trade-off,tra spreco dello spazio e velocità di trasferimento in base alla dimensione del blocco fisico Gestione spazio su disco

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti 20120300 INDICE 1. Introduzione... 3 2. Consultazione... 4 2.1 Consultazione Server Fidati... 4 2.2 Consultazione Servizi Client... 5 2.3 Consultazione Stato richieste... 5 3. Amministrazione... 6 3.1

Dettagli

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica prof. ing. Corrado Santoro Schema a blocchi di una CPU Arithmetic Logic Unit Control Unit Register File BUS Control

Dettagli

GESTIONE DELLA MEMORIA CENTRALE

GESTIONE DELLA MEMORIA CENTRALE GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:

Dettagli

12. Implementazione di un File System. 12.1.1 Struttura a livelli. 12.2.1 Allocazione contigua

12. Implementazione di un File System. 12.1.1 Struttura a livelli. 12.2.1 Allocazione contigua 12. Implementazione di un File System 1 Struttura del file system Metodi di allocazione Gestione dello spazio libero Implementazione delle directory Prestazioni ed efficienza 2 Utente 12.1.1 Struttura

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

Dettagli

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione Gestione della memoria Paginazione Segmentazione Segmentazione con paginazione Modello di paginazione Il numero di pagina serve come indice per la tabella delle pagine. Questa contiene l indirizzo di base

Dettagli

= 0, 098 ms. Da cui si ricava t 2 medio

= 0, 098 ms. Da cui si ricava t 2 medio 1. Una macchina ha uno spazio degli indirizzi a 32 bit e una pagina di 8 KB. La tabella delle pagine è completamente nell hardware, con una parola a 32 bit per voce. Quando parte un processo, la tabella

Dettagli

Memoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E

Memoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E Spazio di indirizzamento virtuale Riprendiamo lo spazio di indirizzamento virtuale del programma di inversione stringa LO SPAZIO DI INDIRIZZAMENTO VIRTUALE DI UN PROCESSO É Spazio di indirizzamento virtuale

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

Organizzazione della memoria

Organizzazione della memoria Memorizzazione dati La fase di codifica permette di esprimere qualsiasi informazione (numeri, testo, immagini, ecc) come stringhe di bit: Es: di immagine 00001001100110010010001100110010011001010010100010

Dettagli

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job.

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job. Di cosa parliamo in questa lezione? Lezione 4 Cosa è un processo e come viene gestito dal SO 1 e job 2 Il blocco di controllo Sistemi operativi 3 Struttura di un file eseguibile 4 La schedulazione dei

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

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

Protezione. Protezione. Protezione. Obiettivi della protezione

Protezione. Protezione. Protezione. Obiettivi della protezione Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in

Dettagli

Sistemi operativi. Esempi di sistemi operativi

Sistemi operativi. Esempi di sistemi operativi Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1

Dettagli

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli

Dettagli

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2 Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa Il File System 1 Il file system E quella componente del SO che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa Realizza i concetti astratti

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Struttura del Micro Filesystem (µfs)

Struttura del Micro Filesystem (µfs) Struttura del Micro Filesystem (µfs) Il Micro Filesystem deve essere organizzato all'interno di un unico file regolare Linux (dev_ufs) ed può basato sul filesystem FAT-32 con la gestione dei permessi in

Dettagli

Laboratorio di reti Relazione N 5 Gruppo 9. Vettorato Mattia Mesin Alberto

Laboratorio di reti Relazione N 5 Gruppo 9. Vettorato Mattia Mesin Alberto Laboratorio di reti Relazione N 5 Gruppo 9 Vettorato Mattia Mesin Alberto Virtual LAN Che cosa è una VLAN? Il termine Virtual LAN indica una serie di tecniche atte a separare un dominio di broadcast, di

Dettagli

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale) Memoria Virtuale Anche la memoria principale ha una dimensione limitata. Possiamo pensare di superare questo limite utilizzando memorie secondarie (essenzialmente dischi) e vedendo la memoria principale

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

Modello dei processi. Riedizione delle slide della Prof. Di Stefano Modello dei processi Riedizione delle slide della Prof. Di Stefano 1 Processi Modello di Processi asincroni comunicanti Process Scheduling Operazioni sui Processi Cooperazione tra Processi Interprocess

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Il File System. Il file system

Il File System. Il file system Il File System Il file system Parte di SO che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa Realizza i concetti astratti di file:

Dettagli

MANUALE PARCELLA FACILE PLUS INDICE

MANUALE PARCELLA FACILE PLUS INDICE MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella

Dettagli

Esercitazione finale per il corso di Sistemi Operativi (A.A. 2004/2005)

Esercitazione finale per il corso di Sistemi Operativi (A.A. 2004/2005) Esercitazione finale per il corso di Sistemi Operativi (A.A. 2004/2005) Descrizione dell esercitazione L esercitazione consiste nell implementare un semplice gestore di aste attraverso il quale gli utenti

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

Allocazione dinamica della memoria - riepilogo

Allocazione dinamica della memoria - riepilogo Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

Esercitazione E1 Scheduling, deadlock, monitor

Esercitazione E1 Scheduling, deadlock, monitor Esercitazione E1 Scheduling, deadlock, monitor Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 E1-1 Scheduling I cinque processi A,B,C,D,E richieste di CPU si presentano nell ordine. Le loro richieste

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO DI SISTEMI ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 1 LABORATORIO DI SISTEMI OGGETTO: Progettare e collaudare un circuito digitale capace di copiare le informazioni di una memoria PROM in

Dettagli

GUIDA ALLE SOLUZIONI

GUIDA ALLE SOLUZIONI Con l installazione automatica dei driver ormai questa procedura non dovrebbe più servire, in quanto fa riferimento alla disinstallazione dei driver dopo aver effettuato questi in modalità manuale. Comunque

Dettagli

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari A.A. 2012 2013 1 Introduzione Questo documento raccoglie i requisiti preliminari per il software di controllo

Dettagli

Soluzione dell esercizio del 12 Febbraio 2004

Soluzione dell esercizio del 12 Febbraio 2004 Soluzione dell esercizio del 12/2/2004 1 Soluzione dell esercizio del 12 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. 2. Modello concettuale

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

Il Sistema Operativo: il File System

Il Sistema Operativo: il File System Il Sistema Operativo: il File System Il File System è quella parte del S.O. che si occupa di gestire e strutturare le informazioni memorizzate su supporti permanenti (memoria secondaria) I file vengono

Dettagli

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Secondo biennio Articolazione Informatica TPSIT Prova Quarta Sistema operativo: gestione memoria centrale La Memoria Virtuale consente di superare i limiti della Memoria Centrale : A. no B. a volte C. si, ma non sempre e' adeguata D. si, attraverso tecniche di gestione

Dettagli