Slide dal Dipartimento di Scienze Matematiche, Informatiche e Fisiche su Sistemi Operativi e Laboratorio. Il Pdf, destinato a studenti universitari di Informatica, offre un programma dettagliato, testi di riferimento e concetti fondamentali, inclusi bash Unix e programmazione C, per facilitare l'apprendimento.
Mostra di più18 pagine
Visualizza gratis il Pdf completo
Registrati per accedere all’intero documento e trasformarlo con l’AI.
Sistemi Operativi e Laboratorio A. Formisano Dipartimento di Scienze Matematiche, Informatiche e Fisiche Anno Accademico 2024-25
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 2Informazioni
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 3
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 4Cosa è un Sistema Operativo
Cosa è un Sistema Operativo Un sistema operativo è un insieme di programmi che operano sull'hardware di un sistema di calcolo. Gli obiettivi principali di un S.O. sono: · semplificare all'utente l'uso e lo sviluppo di programmi · rendere efficiente l'utilizzo delle risorse hardware
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 6
Un sistema di calcolo è composto di user 1 user 2 user 3 ... user n · dispositivi fisici · sistema operativo compiler assembler text editor ... database system system and application programs · programmi (applic. e di sistema) · utenti operating system computer hardware più in dettaglio ...
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 7Cosa è un Sistema Operativo
.. . più in dettaglio: Dispositivi fisici: CPU, memorie, periferiche, ... Sistema operativo: gestisce e controlla l'utilizzo dell'hardware da parte dei programmi Programmi di sistema: forniscono una interfaccia verso le risorse gestite dal S.O., semplificando lo sviluppo e l'esecuzione di programmi applicativi (gestione file, configurazione del sistema, editor, compilatori, ... ) Programmi applicativi: applicazioni che risolvono problemi specifici (es. DBMS, Word processor, Web browser, ... ) Utenti: qualsiasi agente che usi il sistema di calcolo per risolvere un problema (può essere un utente umano, un altro sistema operativo, ... )
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 8
Cosa è un Sistema Operativo Punti di Vista sul Sistema Operativo Utente: Il S.O. è un interfaccia verso l'hardware che renda facile, efficace ed efficiente risolvere un problema Sistema di calcolo: Il S.O. è "il programma" più strettamente correlato ai dispositivi fisici. Tale programma funge al contempo da assegnatore di risorse e controllore del loro utilizzo
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 9Cosa è un Sistema Operativo
Obiettivi primari di un S.O. Un sistema operativo può essere definito come quel programma che permette di · realizzare un sistema di calcolo che supporti l'esecuzione dei programmi utente in modo utile, efficace, efficiente, conveniente, equo, controllato · realizzare le funzionalità necessarie a gestire ed assegnare le risorse allo/agli utilizzatori, supervisionandone le attività Solitamente si definisce il sistema operativo come quel programma sempre in esecuzione nel sistema di calcolo. Si usa il termine Kernel. Tutto "il resto" è costituito da programmi di sistema o applicativi.
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 10
Schema di un Sistema di Calcolo mouse keyboard printer monitor disks on-line CPU disk controller USB controller graphics adapter memory CPU(s) e controller dei dispositivi (device controller) possono concorrere per l'uso del bus e per l'accesso alla memoria tramite il bus.
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 12Organizzazione di un Sistema di Calcolo
Dispositivi di I/O: Un Semplice Schema di Funzionamento · CPU e device operano concorrentemente · un controller gestisce uno specifico device e utilizza un buffer locale per interagire con la CPU · il controller legge/scrive i dati nel suo buffer locale · la CPU legge/scrive nel buffer locale del controller · la sincronizzazione tra controller e CPU avviene tramite il meccanismo delle interruzioni
Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 13
Gestione delle Interruzioni Gestione delle Interruzioni (1) · Il segnale d'interruzione viene inviato dal controller · Il processore intercetta il segnale e determina di quale interruzione si tratti · Il processore invoca l'esecuzione di una appropriata procedura di servizio per gestire l'interruzione · Lo stato della CPU viene salvato e ripristinato al termine della gestione · La tecnica più frequentemente impiegata sfrutta un vettore delle interruzioni
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 14Organizzazione di un Sistema di Calcolo
Gestione delle Interruzioni Gestione delle Interruzioni (2) CPU user process executing I/O interrupt processing I/O device idle transferring I/O request transfer done I/O request transfer done
Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 15
Organizzazione di un Sistema di Calcolo La Memoria La Memoria Una distinzione fondamentale: · Memoria principale (RAM, random access memory) È l'unica memoria (di grandi dimensioni) accessibile direttamente dalla CPU È volatile · Memoria secondaria (dischi, nastri, flash memory, ... ) Sopperisce alle limitazioni della memoria principale È permanente I supporti ad oggi più diffusi sono i dischi magnetici (HD) e i dispositivi di memoria non-volatile (flash, SSD, ... ). Sono dotati di un controller che ne gestisce l'interazione con il resto del sistema.
Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 16Organizzazione di un Sistema di Calcolo
La Memoria Gerarchia di Memoria registers cache main memory electronic disk magnetic disk optical disk magnetic tapes
Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 17
Organizzazione di un Sistema di Calcolo La Memoria Accesso Diretto alla Memoria (DMA) È una tecnica alternativa all'I/O guidato dalle interruzioni con la quale: · l'operazione viene iniziata dal processore che ne invia richiesta al controller · il controller di dispositivo può "in prima persona" trasferire i dati tra il suo buffer locale e la memoria principale (o viceversa) · il termine dell'operazione viene notificata dal controller al processore · la tecnica determina un aumento delle prestazioni perché il processore può eseguire in contemporanea all'operazione di I/O
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 18Organizzazione di un Sistema di Calcolo
La Memoria Accesso Diretto alla Memoria (DMA) RAM 2 Processor Memory controller 2 1 - I/O controller Disk 2 3 1 A processor sends an I/O request to the I/O controller, which sends the request to the disk. The processor continues executing instructions. 2 The disk sends data to the I/O controller; the data is placed at the memory address specified by the DMA command. 3 The disk sends an interrupt to the processor to indicate that the I/O is done.
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 19
Sistemi Mono/Multi-programmati Sistema monoprogrammato sistema operativo programma applicativo · Oltre al S.O., in memoria risiede al più un applicativo · Il sistema esegue un lavoro (job) alla volta · Sistemi batch: Il S.O. è rudimentale: si limita a trasferire il controllo da un job al successivo
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 21Sistemi Mono/Multi-programmati
Sistema multiprogrammato La caratteristica fondamentale di un moderno sistema operativo è la multiprogrammazione ovvero la possibilità di gestire più programmi residenti contemporaneamente nella memoria principale In memoria risiedono (parti de)i lavori da eseguire. Il S.O. ne seleziona uno e lo esegue fino a che termina o inizia un'attesa di un evento "esterno" (es. I/O). In tale situazione il S.O. passa ad eseguire un altro lavoro (tra quelli in memoria, non ancora completati) operating system job 1 job 2 job 3 job 4
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 22
Sistemi Mono/Multi-programmati Time Sharing Un raffinamento della multiprogrammazione impiega la tecnica del time sharing (o multitasking) · In questa tecnica i context switch (cambi di contesto) tra i lavori avvengono ad intervalli di tempo determinati da S.O. stesso (non necessariamente in corrispondenza di operazioni di I/O) · la risorsa "tempo di CPU" è suddivisa/condivisa tra più job/utenti · i context switch occorrono ad una frequenza tale che ogni utente abbia la percezione di utilizzare un sistema di calcolo a lui dedicato · consente un rapporto tra utente e S.O. più interattivo Due concetti fontamentali in questo ambito sono: processo e CPU scheduling
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 23Sistemi Mono/Multi-programmati
Esecuzione Sequenziale vs Time Sharing Consideriamo tre lavori, P1, P2 e P3, che usano sia CPU che I/O: P. P3 * 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 . Esecuzione sequenziale. - -- i -> * P1 P2 P3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Esecuzione in multi-tasking.
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 24
Sistemi Mono/Multi-programmati Nozione di Processo Processo Un programma caricato in memoria e predisposto per l'esecuzione è detto processo · Per ogni utente possono esistere uno o più processi contemporaneamente in memoria centrale · Tuttavia la memoria centrale potrebbe non essere sufficientemente ampia da contenere tutti i processi. Quindi alcuni di essi possono risiedere in memoria di massa in una zona detta job pool. · Il S.O. sceglie quali processi caricare in memoria principale (job scheduling) · Il S.O. sceglie quale processo eseguire tra quelli in memoria principale (CPU scheduling · Il S.O. può anche decidere di spostare dei processi dalla memoria principale alla memoria di massa (swap-out)
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 25