I SISTEMI OPERATIVI. 1. Introduzione ISTITUTO TECNICO E LICEO SCIENTIFICO TECNOLOGICO ANGIOY. informaticangioy.altervista.org. Prof. G.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "I SISTEMI OPERATIVI. 1. Introduzione ISTITUTO TECNICO E LICEO SCIENTIFICO TECNOLOGICO ANGIOY. informaticangioy.altervista.org. Prof. G."

Transcript

1 ISTITUTO TECNICO E LICEO SCIENTIFICO TECNOLOGICO ANGIOY informaticangioy.altervista.org 1. Introduzione I SISTEMI OPERATIVI Prof. G. Ciaschetti Un Sistema Operativo (abbreviato in SO o OS a seconda che si usi l italiano o l inglese Operating System) è un insieme di programmi che gestiscono e rendono disponibile ad altri programmi le risorse del computer. Esso quindi costituisce il software di base del computer, al quale si appoggiano gli altri software, detti applicazioni, per accedere alle risorse hardware. La situazione è descritta nella seguente figura: Le applicazioni chiedono al Sistema Operativo l uso delle risorse hardware, ed esso consente tale uso nei modi e nei tempi che ritiene più opportuni. Quando, ad esempio, scriviamo un istruzione in un programma in linguaggio C (cioè un applicazione) che richieda di accedere alla memoria RAM, o che debba leggere dati da un file, o ancora che richieda l uso di dispositivi di input/output, o in tante altre situazioni, sarà il Sistema Operativo a occuparsi di soddisfare tale richiesta. La richiesta al Sistema Operativo non avviene in modo esplicito da parte del programmatore, ma avviene per mezzo del compilatore (ricordate? Un compilatore è quel software che permette di tradurre i nostri programmi scritti in C++ in linguaggio binario, per far sì che siano eseguibili), il quale sa come specificare l istruzione per quel particolare Sistema Operativo che stiamo usando. Per questo motivo, ogni diverso Sistema Operativo ha il suo particolare compilatore (ad esempio, esiste un compilatore Dev-C++ per Windows, uno per il MAC-OS, uno per Linux, ecc.). Per fare un altro esempio, supponiamo che stiamo usando un programma di videoscrittura (come Word) e invochiamo la stampa del documento: l applicazione (Word) richiederà la stampa al Sistema Operativo, il quale apre la cartella delle stampanti permettendo di selezionarne una, oltre alle varie opzioni di stampa, quindi invia il file da stampare alla stampante (l hardware). Un altro modo possibile di vedere il Sistema Operativo è dal punto di vista degli utenti: esso rappresenta l interfaccia tra l utente e il computer: una volta acceso il computer, il Sistema Operativo mette a disposizione un ambiente nel quale è possibile eseguire tutta una serie di

2 operazioni (esecuzione di programmi, visualizzazione dei file e delle cartelle, ecc.), cioè quello che noi chiamiamo usare il computer. Un Sistema Operativo è organizzato in moduli stratificati tra loro. Ogni modulo comunica con i moduli immediatamente adiacenti mediante delle funzioni dette primitive. Il principio è un po quello dell incapsulamento nella programmazione orientata agli oggetti: un modulo conosce cosa sa fare un modulo adiacente (conosce, cioè, la definizione delle primitive e come vanno usate), ma non come lo fa (cioè, come esse sono implementate). Le primitive del modulo più esterno, quelle usate dalle applicazioni, sono chiamate API (Application Programming Interface). Lo schema della figura precedente, allora, possiamo vederlo più in dettaglio come segue: Prima di iniziare a vedere in dettaglio come funziona un sistema operativo, torniamo un secondo alla prima definizione che abbiamo dato, il SO come gestore delle risorse del computer: ma quali sono le risorse che il SO gestisce? Possiamo racchiuderle in quattro grandi categorie: memoria RAM tempo di utilizzo della CPU dispositivi periferici (stampanti, mouse, tastiera, video, CD-ROM, ecc.) files Vedremo come i diversi moduli del SO si occupano di gestire ognuna di queste quattro categorie di risorse. 2. Storia I sistemi batch I primi computer riuscivano a eseguire una sola sequenza di istruzioni (da qui batch, letteralmente lotto di istruzioni) per volta. Di conseguenza, i primi sistemi operativi servivano solo per permettere l immissione nel computer (tramite schede perforate) dei dati e del programma da svolgere.

3 Nessuna interazione tra l uomo e la macchina era permessa durante l elaborazione. Inoltre, era possibile avere dei report sul risultato dell elaborazione e sullo stato della macchina. I sistemi multiprogrammati A partire dagli anni 60, si è cominciato a usare il computer in modo più massiccio, con conseguente aumento delle richieste di calcolo. Nasceva l esigenza di eseguire, con lo stesso computer, più programmi contemporaneamente. E in questo momento che è nato UNIX, il primo vero sistema operativo, capace di gestire la multiprogrammazione e tutte le problematiche ad essa connessa, effettuando lo scheduling di lungo termine (che prendono il nome di lavori, da cui il termine job scheduling), ossia la scelta di quali lavori caricare in memoria dal disco, e lo scheduling della CPU (cpu scheduling), o di breve termine ossia la scelta di come ripartire la CPU tra i vari lavori presenti in memoria. La logica di questi sistemi è sostanzialmente quella dei sistemi batch, con la sola differenza che stavolta possono essere mantenuti in memoria ed eseguiti più programmi per volta, ed è il SO che organizza la memoria RAM e il lavoro della CPU tra i diversi programmi. I sistemi multitasking Agli inizi degli anni 70, l uso del computer era ormai diventato molto diffuso, e iniziavano a nascere i primi computer dipartimentali collegati a più terminali, ognuno dei quali usato da un diverso operatore. Si tratta dei sistemi di tipo client-server (il terminale è il client, il computer centrale o mainframe è il server), in cui occorre gestire oltre che più programmi, anche più utenti contemporaneamente. Si tratta di una successiva evoluzione del sistema UNIX, in cui ogni lavoro di ogni utente è chiamato compito (o task in inglese, da cui il termine multitasking). Questo tipo di SO doveva provvedere a gestire un elevato e frequente numero di accessi alla memoria, introducendo anche dei meccanismi di protezione dei dati tra i diversi utenti. Inoltre, ogni utente doveva avere l impressione di avere a disposizione per sé le risorse di elaborazione, senza dover aspettare il completamento degli altri compiti degli altri utenti. Nasce così il concetto di time-sharing, cioè della divisione del tempo di CPU in slot temporali di durata piccolissima: viene assegnato a ogni slot un diverso compito dei vari utenti, i quali così non fanno in tempo a rendersi conto di aspettare tra uno slot e l altro. I sistemi user-friendly Nel 1977 nasce il primo personal computer: l Apple II. Esso segna l inizio di una nuova era per l informatica, poiché si passa dall uso lavorativo all uso domestico del computer, abbracciando una moltitudine di nuovi utilizzatori. Nasce così l esigenza di rendere agevole la macchina calcolatrice anche ai non esperti: i sistemi operativi che nascono in questo periodo si concentrano soprattutto nello sviluppo dell interfaccia uomo-macchina, utilizzando sistemi di comando per il SO più agevoli della semplice tastiera. E nel 1984 che, con l Apple McIntosh, Steve Jobs e Steve Wozniak inventano il primo sistema operativo con interfaccia WIMP (Windows, Icons, Mouse and Pointer). Successivamente, tale interfaccia sarà ripresa anche da altri sistemi operativi, come lo stesso UNIX, Windows, e la versione gratuita e open source di Unix, Linux). I sistemi distribuiti e multiprocessore Con la nascita negli anni 80 delle reti di computer di tipo peer-to-peer, in cui più computer di uguali caratteristiche sono collegati tra loro per condividere alcune risorse, quali stampanti e file, nasce la possibilità di utilizzare più processori contemporaneamente per eseguire uno stesso insieme di elaborazioni: uno stesso programma viene eseguito su più computer paralleli per sfruttare

4 maggiori risorse di calcolo, e quindi terminare prima (si pensi a programmi che richiedono giorni o mesi di elaborazione, come quelli per la cifratura di codici o per la soluzione di problemi complessi). I sistemi operativi si specializzano allora nella gestione di più processori contemporaneamente, inizialmente dislocati su diversi computer in rete, attualmente comunemente montati su uno stesso computer (si pensi al processore Intel Core Duo, ad esempio, due processori in uno). I sistemi mobili A partire dagli anni 90, con l avvento dei telefoni cellulari, sempre più ricchi di utility e di applicazioni per lo svago, e dei computer palmari (PDA, Personal Digital Assistant), nasce l esigenza per i SO di avere buone prestazioni a costi contenuti, e soprattutto di risparmiare energia. Nascono così sistemi operativi più leggeri che ottimizzano l uso delle risorse da un punto di vista energetico, come Windows Mobile, Symbian o Palm OS. 3. Il nucleo Il modulo più importante di un SO è quello che si occupa della gestione dei processi: il nucleo o kernel. Ricordiamo che un processo è un programma in esecuzione (un programma è un entità statica, mentre un processo è un entità dinamica). Per ogni processo in esecuzione, il nucleo del SO mantiene un insieme di informazioni relative al processo in un PCB (Process Control Block), che memorizza: il numero del processo (ogni processo viene contraddistinto da un numero progressivo dal SO) lo stato del processo il program counter (a che punto si trova la sua esecuzione, cioè qual è la prossima istruzione da eseguire) lo stato dei registri della CPU le informazioni relative allo scheduling del processo (priorità, ecc.) le informazioni relative alla memoria dedicata al processo (indirizzi, ecc.) la lista dei file aperti usati dal processo (in scrittura e in lettura). I processi possono essere single thread o multi thread, cioè avere un solo canale di esecuzione o più canali di esecuzione (un esempio di processo single thread è il Paint di Windows: è possibile fare un solo disegno per volta; un esempio di processo multi thread è Word, che permette di avere più documenti aperti nello stesso programma). Anche nel caso di processi multi thread, comunque, si ha un solo PCB e non uno per ogni thread. I processi tra loro possono essere concorrenti (che si contendono le risorse), cooperanti (che hanno un obiettivo comune, dunque non importa se le risorse vengono assegnate a uno oppure a un altro, va bene comunque), oppure indipendenti (assenza di conflitto di risorse). In ognuno di questi casi, il SO gestisce la ripartizione delle risorse tra i diversi processi. In particolare, nel caso di processi cooperanti, il SO mette a disposizione un meccanismo semaforico per la loro sincronizzazione e le primitive send e receive per lo scambio di messaggi. Inoltre, mediante la

5 primitiva RPC (Remote Procedure Call) un processo può richiedere al SO l esecuzione di un altro processo. Ciclo di vita di un processo Abbiamo visto che essendo le risorse di un computer scarse, cioè limitate, esse devono essere opportunamente ripartite tra i diversi processi in esecuzione. Di conseguenza, un processo può trovarsi in diversi stati, a seconda che esso sia stato o meno caricato in memoria RAM, che abbia o no disponibilità della CPU per l elaborazione, o che sia in attesa di qualche operazione di input/output. Nella seguente figura sono mostrati i possibili stati in cui un processo può trovarsi, e le transizioni da uno stato all altro. Nel momento in cui si fa doppio click su un file eseguibile (un programma), il processo è creato. Solo quando verrà caricato nella memoria dal Long Term Scheduler, (un software del nucleo che realizza lo scheduling di lungo termine), esso passa dallo stato creato allo stato pronto. Deve, però, competere con gli altri processi per la risorsa CPU, per poter essere eseguito. Questo conflitto è risolto dallo Short Term Scheduler (un altro software del nucleo), il quale ripartisce il tempo di CPU tra i diversi processi secondo determinate strategie di scheduling. Se selezionato, il processo passa dallo stato pronto allo stato in esecuzione, viene caricato il suo PCB, e quando invece deselezionato ritorna allo stato pronto. Il cambiamento del PCB del processo attualmente in esecuzione viene chiamato context-switch. Mentre il processo è in esecuzione, può accadere che esso richieda un operazione di input/output, che interessi cioè un dispositivo periferico (come abbiamo già accennato, è il SO a occuparsi anche di questo, ma con un altro modulo, non il nucleo), la quale richiede molto tempo rispetto alla velocità del processore, circa 1 milione di volte più lenta. Mentre aspetta che si compia l operazione, esso viene posto nello stato in attesa per poi essere nuovamente posto nello stato pronto quando il dispositivo periferico comunica al SO di aver terminato l operazione mandando un segnale di interrupt (interruzione: hey, io ho finito, fermati un attimo, prestami attenzione! ).

6 Il processo è posto nello stato in attesa anche in caso di chiamate al sistema (come l istruzione system( pause ), per intenderci) che generano una trap, ossia l esecuzione di speciali routine di priorità assoluta. Non appena terminata trap, il processo torna ad essere pronto per essere di nuovo schedulato. Gestione degli eventi (interrupt/trap) Allo scopo sapere da quale dispositivo periferico (mouse, tastiera, disco, video, ecc.) arriva la richiesta di interruzione, o IRQ (Interrupt ReQuest), o se si tratta di una chiamata di sistema, il nucleo del SO mantiene un vettore degli interrupt, un vettore di bit (1 = interruzione, 0 = nessuna interruzione) in cui ogni posizione corrisponde a un diverso dispositivo periferico. Alcune posizioni sono quindi riservate al sistema. Il vettore viene continuamente monitorato dal SO, che fa partire immediatamente la routine di gestione dell interruzione o la trap, avviando un context-switch. CPU scheduling Ogni diversa scelta dello scheduler dà luogo a diverse prestazioni del sistema. E opportuno allora che l algoritmo faccia le migliori scelte possibili. Ogni possibile soluzione può essere rappresentata su un diagramma di Gantt, in cui si riporta una linea per ogni processore, che rappresenta l asse dei tempi, e un rettangolo di altezza fissa e lunghezza pari alla durata del processo, ossia il tempo di CPU che esso richiede per la sua esecuzione, come nella figura che segue: Diversi indicatori di prestazione dell algoritmo di scheduling di breve termine possono essere usati: - percentuale di utilizzo della CPU: si schedulano i processi per massimizzare il tempo in cui la CPU o le CPU, se più di una, lavorano. Equivale a minimizzare il numero di context-switch. - troughput: si massimizza il numero di processi terminati nell unità di tempo. - C max : indicando con C i l istante di completamento dell i-esimo processo, e con C max il massimo di questi tempi, si minimizza quest ultimo, il che equivale a minimizzare l istante in cui si terminano tutti i processi. E anche un indicatore di bilanciamento dei lavori nei sistemi multiprocessore: infatti, minore è il tempo per completare tutti i lavori, più equa è la ripartizione di essi. - media dei tempi di completamento i C i /N: si miminizza il tempo medio di completamento dei diversi processi: questo indicatore è molto usato nei diversi benchmark dei processori.

7 Per raggiungere questi obiettivi, l algoritmo di scheduling può funzionare in modo FCFS (First Come First Served): i processi sono gestiti in coda, quindi in modo FIFO. SPT (Shortest Processing Time first): viene schedulato prima il processo che dura meno. Questo algoritmo minimizza il tempo medio di completamento dei processi. Priorità: può essere statica o dinamica. Nel primo caso, riguarda l importanza del processo, nel secondo può crescere all aumentare del tempo d attesa del processo. Round Robin: si assegna a rotazione la CPU ai diversi processi, suddividendo il tempo in slot temporali. 4. La gestione della memoria Un altro importante modulo del SO si occupa di gestire la memoria del computer. Soprattutto, parliamo di gestione della memoria di lavoro, la RAM, dove devono risiedere i programmi per essere eseguiti. Ricordiamo che è il Long Term Scheduler che assegna la memoria ai diversi processi. Questo può non essere un problema, (al giorno d oggi un normale PC ha una memoria RAM da 2 a 4 GigaByte, spesso sufficienti per i pochi programmi per volta che eseguiamo quotidianamente), ma diventa di fondamentale importanza quando il numero di processi simultanei tende a crescere. L operazione di caricamento/scaricamento dalla RAM di un processo, da parte dello scheduler di lungo termine, è chiamata swapping (scambio: un processo torna sul disco mentre uno viene caricato in memoria). Quando scriviamo un programma, in linguaggio C o in un altro linguaggio di programmazione, molte istruzioni fanno riferimento alla memoria: ad esempio, l istruzione N = N + 1; richiede di prelevare in memoria, all indirizzo della variabile N, il valore di tale variabile, quindi sommare 1, e successivamente di memorizzare nello stesso indirizzo il risultato. Il fatto è che al momento della scrittura del programma non è noto l indirizzo di N. E non sarà noto finché il programma non diventerà un processo, cioè creato (quando si fa doppio click) e posto in memoria (stato di pronto). Quello che accade in realtà è che al momento della compilazione di un programma, viene generato dal compilatore un codice rilocabile, fatto di indirizzi logici (a partire dall inizio del programma, ecc., ), che diventeranno indirizzi fisici veri e propri solo quando esso sarà effettivamente caricato in ram per la sua esecuzione. La traduzione degli indirizzi da logici a fisici viene fatta mediante un dispositivo hardware chiamato MMU (Memory Management Unit), sulla base di una tabella di corrispondenza mantenuta dal modulo di gestione della memoria del SO. Un meccanismo molto importante gestito da questo modulo è quello della memoria virtuale: quando la memoria RAM a disposizione non basta per caricare tutti i processi, viene usata una parte del disco rigido come fosse la RAM, pur sapendo che l operazione di trasferimento da/verso il disco è mille volte più lenta di quella della RAM (che è circa volte più lenta del processore). Questo evita di far si che si verifichino errori per riferimento a istruzioni non presenti in memoria. Il modulo di gestione della memoria del SO si occupa, oltre che dell allocazione della RAM per lo scheduling di lungo termine, anche della gestione della memoria Cache, che viene indirizzata allo stesso modo della memoria RAM.

8 Strategie di allocazione della RAM Gli obiettivi del Long Term Scheduler sono quelli dell ottimizzazione della memoria, cioè farci stare il maggior numero possibile di processi, e la protezione dei dati: è di fondamentale importanza fare in modo che un processo non possa modificare, magari accidentalmente, dati di un altro processo. Diverse strategie di allocazione sono state proposte: Partizionamento: in questo schema di allocazione la memoria risulta partizionata in più parti (che impropriamente in informatica vengono chiamate partizioni), e viene assegnata una diversa parte a ogni diverso processo. I processi che non trovano spazio restano sul disco (memoria virtuale). Il SO mantiene una tabella delle partizioni in cui è specificato, per ogni processo, l indirizzo iniziale della partizione, e la sua dimensione in byte. processo1 partizione1 dimensione1 processo2 partizione2 dimensione 2 Con il partizionamento della memoria, le possibili strategie di allocazione della RAM sono first fit (scegli la prima partizione libera sufficientemente grande), best fit (scegli la partizione più adatta per dimensioni), e worst fit (scegli la partizione meno adatta). Nel primo caso si produce il fenomeno della frammentazione della memoria: lo spazio di una partizione che avanza, non necessaria al processo corrispondente, non è ulteriormente utilizzabile. Nel secondo caso, il problema della frammentazione viene parzialmente risolto. Il terzo caso, sebbene sembri poco vantaggioso, ha una sua utilità quando insieme ai programmi occorre includere nella partizione anche i dati che essi utilizzano: lasciare parecchio spazio nella partizione può avere senso per evitare di accedere ai dati su disco ogni volta, o di dover suddividere opportunamente lo spazio dei dati (qualora essi siano memorizzati separatamente dai programi). Paginazione: in questo schema lo spazio degli indirizzi logici è suddiviso in aree della stessa dimensione chiamate pagine di circa 4Kbyte. Corrispondentemente, lo spazio degli indirizzi fisici risulta suddiviso in settori. A ogni processo vengono assegnate più pagine, non necessariamente contigue, e dunque più settori della RAM. In questo modo, si crea meno frammentazione della memoria. Gli indirizzi logici sono formati da un indirizzo base più un offset: il primo rappresenta il numero di pagina, il secondo il numero di byte all interno della pagina. Mediante una tabella di paginazione, il SO mantiene la corrispondenza tra pagine e settori, e mediante una tabella dei settori identifica l indirizzo fisico di ogni settore.

9 Il meccanismo della paginazione agevola, inoltre, il meccanismo della memoria virtuale: alcune pagine di un processo possono essere effettivamente caricate in RAM, mentre altre risiedere ancora sul disco. Se il processo richiede una pagina non presente in tabella (cioè, si trova sul disco), si ha un page fault e viene avviata una routine sistema di gestione del fault, che carica in tabella (e in RAM) la pagina necessaria a scapito di qualche altra pagina (swapping). Il problema principale della paginazione è legato alla gestione di processi cooperanti mediante buffer condiviso: un buffer suddiviso in più pagine risulta molto più difficile da gestire a livello di programmazione. Inoltre, resta il problema della frammentazione interna alle pagine, sebbene minore rispetto alla frammentazione causata dal partizionamento. Segmentazione: in questo schema, la memoria RAM risulta suddivisa in segmenti di lunghezza variabile, ognuno dei quali contiene un elemento ben definito del programma (ad esempio, una funzione, una variabile, una stringa, ecc.). Per ogni segmento, il SO mantiene in una tabella di segmentazione l indirizzo base e la dimensione del segmento. segmento 1 base1 dimensione1 segmento 2 base2 dimensione2 Di nuovo, la traduzione degli indirizzi da logici a fisici è fatta sommando l indirizzo base più l offset dell istruzione, come nel caso della paginazione. Il vantaggio principale di questo schema è quello di eliminare completamente il fenomeno della frammentazione. Attualmente, i moderni SO utilizzano una tecnica mista di allocazione della memoria fatta di pagine e segmenti. 5. Il File System Il terzo modulo del SO di cui ci occupiamo è quello relativo alla gestione dei file. Ricordiamo che un file è un insieme di informazioni binarie (quindi, bit) memorizzate in modo persistente. A ogni file il SO associa un insieme di attributi, che ne indicano: - il numero progressivo (nella lista dei file aperti); - il nome del file e l estensione (es. pippo.txt, prova.cpp, mioprogramma.exe). L estensione si usa solo nei sistemi Windows, mentre per i sistemi Unix-like (Linux, MAC OS) non è prevista: il SO riconosce il tipo di file in base a un codice (una stringa) posto all inizio del file; - la sua collocazione (il percorso nella struttura logica dei file); - la sua dimensione; - i privilegi (protezione): quale utente può fare quale operazione sul file (ad esempio, creazione, apertura, lettura/scrittura, eliminazione, esecuzione, ecc.); - la data di creazione e di ultima modifica (solo ultima modifica in Windows).

10 Il File System del SO mantiene in una tabella la lista di file aperti, in cui sono indicati il numero progressivo del file, un handler (puntatore) che ne specifica la posizione sul disco, l utente che ha aperto il file e l applicazione che ha eseguito l apertura. Se un nuovo utente apre un altro file, qualora autorizzato, viene creato un nuovo handler e inserito in tabella. id1 id2 handler1 user1 application1 handler2 user2 application2 Struttura del file system I percorsi logici dei file sono organizzati dal file system in una struttura ad albero. Un albero è un grafo connesso aciclico, in cui un nodo rappresenta la radice dell albero, e i nodi che non hanno successori sono chiamati foglie (si pensi a un albero genealogico). La radice dell albero corrisponde a un unità logica di un dispositivo di memorizzazione di massa, i nodi intermedi corrispondo alle directory (o cartelle), e le foglie corrispondono ai file. In Windows è possibile avere tante unità logiche (ad esempio, si può partizionare l hard disk in più unità C, D, ecc., e poi avere altre unità logiche come E per il CD-ROM, F per la pendrive, ecc.), a ognuna delle quali corrisponde un diverso albero. Il file di questo documento, ad esempio, si trova nel percorso d:\documents and settings\tchasqui\didattica\opsis.doc (a partire dalla radice, unità logica D, scendi nella cartella documents and settings, poi nella cartella tchasqui, poi ancora nella cartella didattica e lì si trova il file opsis.doc). Si noti come il simbolo \ rappresenta la discesa di un livello nella struttura. Nei sistemi Unix-like esiste invece un unica radice, cioè una sola struttura ad albero per tutti i dispositivi. Allorché si debba utilizzare un altro dispositivo di memorizzazione, come il floppy disk o la pendrive, occorre montare (mounting) nell unico albero la struttura del file system del dispositivo, come in figura seguente:

11 Mentre nei sistemi Windows le unità logiche si chiamano C:, D:, E: ecc., in Unix la sola unità logica alla radice è indicata con il simbolo /, che è anche il simbolo che si usa per scendere di livello. Ad esempio, il percorso del file prova.cpp che si trova nella directory bin è indicato con /bin/prova.cpp. In entrambi i tipi di sistemi, sia Windows che Unix, l operatore.. può essere usato per risalire la struttura di un livello nei percorsi relativi (a partire da un nodo intermedio). Ad ogni nodo dell albero (o degli alberi, in Windows), sia che si tratti di un nodo intermedio (directory) sia che si tratti di una foglia (file), il SO associa un Access Control List (ACL) che definisce i privilegi degli utenti per quel nodo. In Unix, l ACL è composto di una lettera per specificare se si tratta di un file o una directory, e poi da tre gruppi di tre lettere che indicano i privilegi di lettura/scrittura/esecuzione a livello utente, gruppo o generale. Ad esempio, d r w _ r r directory con privilegi di lettura e scrittura per l utente, solo lettura per il gruppo e per tutti gli altri _ r w x r w file con privilegi di lettura, scrittura ed esecuzione a livello utente, lettura e scrittura a livello gruppo, e nessuna operazione per tutti gli altri In Windows esistono due tipi di file system: FAT (File Allocation Table) e NTFS (New Technology File System). Il primo è il più vecchio dei due (usato solo fino a Win95), e non prevede informazioni ACL (infatti, tutti i SO di casa Microsoft fino a Win95 non prevedono la multiutenza). Questo è il motivo per cui se abbiamo nel nostro computer due sistemi operativi come Windows e Linux, riusciamo a vedere in Linux i file di Windows solo se abbiamo usato il sistema NTFS. Allocazione fisica dei file Finora abbiamo parlato di percorsi logici dei file: sono quelli che vedono gli utenti e i programmi che a questi file devono accedere. In realtà, la situazione a livello fisico è molto diversa: il disco rigido è formato da tanti dischi magnetici montati su un unico perno centrale, ognuno dei quali risulta suddiviso in tracce e settori. L intersezione tra una traccia e un settore si chiama blocco e ha di solito la dimensione di 64Kbyte; più blocchi allineati sui vari dischi danno luogo a un cilindro.

12 Ogni file è memorizzato su uno o più blocchi, ed è il SO che mantiene la corrispondenza tra i percorsi logici dei file, più agevoli per gli utenti, e i percorsi fisici veri e propri (quale disco, quale cilindro, quale blocco). Ma in che modo il SO assegna i blocchi ai diversi file? Esistono diverse strategie di allocazione del disco: 1) allocazione contigua: vengono assegnati al file blocchi adiacenti tra loro. Questa strategia minimizza i tempi di trasferimento dei file, in quanto rende minimo il movimento meccanico necessario per posizionarsi sui byte di interesse. I blocchi adiacenti possono trovarsi sullo stesso cilindro (nessun movimento), oppure sulla stessa traccia (movimento di rotazione del disco) oppure sullo stesso settore (spostamento delle testine). 2) allocazione collegata: i blocchi vengono collegati tra loro memorizzando su ogni blocco l indirizzo del blocco successivo, creando così una lista lineare del tipo in questo tipo di allocazione, qualunque blocco può essere utilizzato per ogni file, e non si verifica così il problema della frammentazione del disco che, invece, si ha nell allocazione contigua. Tuttavia, richiede parecchi movimenti (rotazione del disco e spostamento delle testine) per passare da un blocco a un altro, con conseguente perdita di velocità di trasferimento dei dati. 3) allocazione indicizzata: il primo blocco viene utilizzato come indice per memorizzare gli indirizzi fisici dei blocchi che costituiscono il file. E più facile da gestire rispetto all allocazione collegata, ma presenta gli stessi problemi di velocità di trasferimento.

13 I comandi per il file system Anche se i nostri moderni sistemi operativi, essendo user-friendly, ci mettono a disposizione l interfaccia WIMP per la gestione dei file (gestione risorse, doppio click su una cartella per vedere il suo contenuto, ecc.), esiste una serie di comandi che è possibile dare al SO per lavorare con il file system. In Windows, occorre aprire una finestra DOS per dare questi comandi (menu avvio esegui cmd oppure menu avvio programmi accessori prompt di MS DOS), mentre in Linux o MAC bisogna aprire una shell (finestra di comando: la più usata è bash). Riportiamo, a titolo di esempio, alcuni dei comandi di principali, per la sintassi e le modalità di utilizzo dei quali rimandiamo a manuali specifici. WINDOWS UNIX CD CD Change directory DIR LS Directory listing COPY CP File copy MOVE MV Move file/directory DEL/RMDIR RM Remove file/directory MKDIR MD Make directory HELP HELP Help commands TREE LS View subtree ATTRIB CHMOD View/change file attributes

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

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

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

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

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

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

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

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

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

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

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza

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

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

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

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 SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

Dettagli

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia

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

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

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

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 Kernel

Sistemi Operativi Kernel Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni

Dettagli

PARTE 4 La Macchina Software

PARTE 4 La Macchina Software PARTE 4 La Macchina Software 94 Macchina Hardware e Macchina Software applicativi sistema operativo macchina hardware Agli albori dell'informatica, si programmava in binario, cioe` in linguaggio macchina,

Dettagli

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche Sommario Definizione di S. O. Attività del S. O. Struttura del S. O. Il gestore dei processi: lo scheduler Sistemi Mono-Tasking e

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

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU Il sistema operativo Sistema operativo Gestione della CPU Primi elaboratori: Monoprogrammati: un solo programma in memoria centrale Privi di sistema operativo Gestione dell hardware da parte degli utenti

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 SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO IL SOFTWARE L HARDWARE da solo non è sufficiente a far funzionare un computer Servono dei PROGRAMMI (SOFTWARE) per: o Far interagire, mettere in comunicazione, le varie componenti hardware tra loro o Sfruttare

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

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

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

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base) Sistema Operativo (Software di base) Il Sistema Operativo Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei dati attraverso

Dettagli

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi Software relazione Hardware Software di base Software applicativo Bios Sistema operativo Programmi applicativi Software di base Sistema operativo Bios Utility di sistema software Software applicativo Programmi

Dettagli

Informatica. Il software (S.O.) e ancora sulle basi numeriche

Informatica. Il software (S.O.) e ancora sulle basi numeriche (S.O.) e ancora sulle basi numeriche http://159.149.98.238/lanzavecchia/docum enti/sscta.htm 1 Il sistema operativo Un insieme di programmi che gestiscono le risorse (cpu, memoria, dischi, periferiche)

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

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

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica SOFTWARE Francesco Tura francesco.tura@unibo.it 1 Le componenti del calcolatore: HARDWARE E SOFTWARE HARDWARE parti che compongono fisicamente il calcolatore componente multifunzionale

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

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

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 : Un Sistema Operativo è un insieme complesso di programmi che, interagendo tra loro, devono svolgere una serie di funzioni per gestire il comportamento del computer e per agire come intermediario consentendo

Dettagli

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera CPU Memoria principale Il Sistema Operativo Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura A.A. 2009/2010 ALU Unità di controllo Registri A indirizzi

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

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

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

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Il software. la parte contro cui si può solo imprecare. Il software

Il software. la parte contro cui si può solo imprecare. Il software Il software la parte contro cui si può solo imprecare Il software L hardware da solo non è sufficiente per il funzionamento dell elaboratore ma è necessario introdurre il software ovvero un insieme di

Dettagli

ARCHITETTURA DELL ELABORATORE

ARCHITETTURA DELL ELABORATORE 1 ISTITUTO DI ISTRUZIONE SUPERIORE ANGIOY ARCHITETTURA DELL ELABORATORE Prof. G. Ciaschetti 1. Tipi di computer Nella vita di tutti giorni, abbiamo a che fare con tanti tipi di computer, da piccoli o piccolissimi

Dettagli

Software di base. Corso di Fondamenti di Informatica

Software di base. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Software di base Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

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

Informatica: il sistema operativo

Informatica: il sistema operativo pierpaolo.vittorini@cc.univaq.it Università degli Studi dell Aquila Facoltà di Medicina e Chirurgia 6 ottobre 2006 Il software Il software è l insieme dei programmi che operano sul calcolatore Software

Dettagli

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi Parte V & Reti Sistema operativo: insieme di programmi che gestiscono l hardware Hardware: CPU Memoria RAM Memoria di massa (Hard Disk) Dispositivi di I/O Il sistema operativo rende disponibile anche il

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

Informatica e Bioinformatica: Sistemi Operativi

Informatica e Bioinformatica: Sistemi Operativi Informatica e Bioinformatica: Sistemi Operativi 11 marzo 2013 Macchina Hardware/Software Sistema Operativo Macchina Hardware La macchina hardware corrisponde alle componenti fisiche del calcolatore (quelle

Dettagli

Organizzazione Monolitica

Organizzazione Monolitica Principali componenti di un sistema Applicazioni utente Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del processore / Scheduler(s) Gestore della memoria Gestore delle periferiche/

Dettagli

MODULO 02. Iniziamo a usare il computer

MODULO 02. Iniziamo a usare il computer MODULO 02 Iniziamo a usare il computer MODULO 02 Unità didattica 01 Conosciamo il sistema operativo In questa lezione impareremo: a conoscere le caratteristiche del sistema operativo a cosa servono i sistemi

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

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

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

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

Scheduling della CPU:

Scheduling della CPU: Coda dei processi pronti (ready( queue): Scheduling della CPU primo ultimo PCB i PCB j PCB k contiene i descrittori ( process control block, PCB) dei processi pronti. la strategia di gestione della ready

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

Le Infrastrutture Software ed il Sistema Operativo

Le Infrastrutture Software ed il Sistema Operativo Le Infrastrutture Software ed il Sistema Operativo Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Il Sistema Operativo (S0) (Inf.) E' l'insieme dei programmi che consentono

Dettagli

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di

Dettagli

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE CORSO INTRODUTTIVO DI INFORMATICA NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE Dott. Paolo Righetto 1 CORSO INTRODUTTIVO DI INFORMATICA Percorso dell incontro: 1) Alcuni elementi della configurazione hardware

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

Dettagli

HARDWARE. Relazione di Informatica

HARDWARE. Relazione di Informatica Michele Venditti 2 D 05/12/11 Relazione di Informatica HARDWARE Con Hardware s intende l insieme delle parti solide o ( materiali ) del computer, per esempio : monitor, tastiera, mouse, scheda madre. -

Dettagli

GLI ARCHIVI DI DATI. File Un File è una sequenza di informazioni che costituisce una unità logica. Un file è un un contenitore di di informazioni

GLI ARCHIVI DI DATI. File Un File è una sequenza di informazioni che costituisce una unità logica. Un file è un un contenitore di di informazioni GLI ARCHIVI DI DATI File Un File è una sequenza di informazioni che costituisce una unità logica. Un file è un un contenitore di di informazioni» Un file può contenere un testo» Un file può contenere la

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

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

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore

Dettagli

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo Il Sistema Operativo Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo ... ma Cos'è un S.O.? un PROGRAMMA!... ma Cos'è un programma? PROGRAMMA: 1. algoritmo sequenza

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 3-Schedulazione 1 Prerequisiti Concetto di media Concetto di varianza 2 1 Introduzione Come sappiamo, l assegnazione della CPU ai processi viene gestita dal nucleo, attraverso

Dettagli

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

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

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base Scheduling Sistemi Operativi e Distribuiti A.A. 2-25 Bellettini - Maggiorini Concetti di base Il massimo utilizzo della CPU si ottiene mediante la multiprogrammazione Ogni processo si alterna su due fasi

Dettagli

Il sistema operativo: interazione con l utente

Il sistema operativo: interazione con l utente interazione con l utente S.O fornisce un meccanismo per specificare le attività da eseguire (es. copiare un file) L interazione avviene mediante un linguaggio testuale (DOS) o grafico (Windows) linguaggio

Dettagli

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file. ESERCIZIO 1 Si consideri un hard disk formattato la cui memoria è suddivisa in 16 blocchi (numerati da 0 a 15). Si supponga che sull hard disk sia memorizzato un unico file, contenuto, nell ordine, nei

Dettagli

01/05/2014. Dalla precedente lezione. Ruolo dei sistemi operativi. Esecuzione dei programmi

01/05/2014. Dalla precedente lezione. Ruolo dei sistemi operativi. Esecuzione dei programmi Marco Lapegna Laboratorio di Programmazione Dalla precedente lezione 6. I sistemi operativi LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica I Sistemi Operativi Il linguaggi di programmazione

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

Sistemi operativi e reti A.A. 2013-14. Lezione 2

Sistemi operativi e reti A.A. 2013-14. Lezione 2 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 2 Giovedì 10-10-2013 1 Sistemi a partizione di tempo (time-sharing) I

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

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

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

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

Processi e Thread. Scheduling (Schedulazione)

Processi e Thread. Scheduling (Schedulazione) Processi e Thread Scheduling (Schedulazione) 1 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L

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

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore. I processi Cos è un processo? Un processo è una attività, controllata da un programma, che si svolge su un processore. Il programma è una entità statica che descrive la sequenza di istruzioni che devono

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

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione Introduzione Fondamenti di Informatica: Sistemi Operativi 1 Elaboratori necessitano di SOFTWARE SOFTWARE DI SISTEMA (SISTEMI OPERATIVI): fanno funzionare le varie componenti del computer e permettono all

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 4-Panoramica delle generazioni 1 Prerequisiti Monoprogrammazione e multiprogrammazione Multielaborazione Linguaggio macchina Linguaggi di programmazione e compilatori Struttura

Dettagli