Swapping Trasferimento temporaneo in memoria secondaria di processi o parti di processo.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Swapping Trasferimento temporaneo in memoria secondaria di processi o parti di processo."

Transcript

1 SISTEMI OPERA TIVI T (A nna Ciampolini) Definizioni di teoria Sistema operativo Programma intermediario tra utente e hardware del computer, mappa le risorse hardware in risorse logiche accessibili attraverso interfacce. Storia dei sistemi operativi La prim a generazione di computer era basata su valvole, di tipo manuale e si utilizzava il linguaggio macchina. Poi arrivarono i sistemi batch semplici basati su transistor, che sfruttano linguaggi ad alto livello e realizzano un esecuzione sequenziale dei job. Dopo si ebbero i sistemi batch multiprogrammati in cui viene caricata su disco un pool di job: il sistema operativo seleziona un sottoinsieme da caricare in memoria, ne sceglie uno da assegnare alla CPU, attende che un job termini o vada in attesa, così da assegna la CPU ad un altro job. Spooling Il disco viene utilizzato come buffer per memorizzare e leggere i dati. Swapping Trasferimento temporaneo in memoria secondaria di processi o parti di processo. Sistemi time-sharing Il sistema operativo time-sharing deve garantire la multiutenza, dedicando ad ogni utente una macchina virtuale, e l interattività, interrompendo l esecuzione del job corrente dopo un quanto di tempo. Si noti che la multiutenza porta alla necessità di una maggiore protezione. Scheduling Lo Scheduling viene realizzato dallo Scheduler ha due nature differenti: lo scheduling dei job consiste nella selezione, dalla memoria secondaria, del job da inserire nella coda dei processi pronti, situata in memoria centrale (scheduling dei job o a lungo termine); lo scheduling della CPU consiste invece nella selezione, dalla coda dei processi pronti, del job da assegnare alla CPU (scheduling della CPU o a breve termine). Context switch Viene realizzato dal Dispatcher e consiste nel cambio del job controllato dalla CPU con il successivo, scelto dalla coda processi pronti. Interrupt HW e SW Interruzioni asincrone per un evento scatenante, possono essere di tipo hardware o software (com e le system call). Direct Memory Access - DMA Mem oria e dispositivi realizzano l I/O in maniera autonoma dalla CPU, che viene notificata della fine del trasferimento, tramite interrupt, da parte del DMA Controller. Bit Mode 0 m odo kernel; 1 m odo user. Programma vs processo Il programma è un entità passiva presente in memoria secondaria, mentre il processo è un entità attiva residente in memoria centrale. Compiti del sistema operativo Il sistema operativo si occupa della gestione dei processi: creazione, terminazione sospensione e sincronizzazione. Inoltre si occupa della gestione: dei deadlock, della memoria centrale/secondaria, dei dispositivi di I/O e del file system. 1/9

2 Strutture dei sistemi operativi Monolitica: unico modulo contenente un insieme di procedure, l interazione avviene mediante chiam ate a procedura, il sistema risulta complesso. Microkernel: il nucleo ha poche funzionalità di base, è affidabile, personalizzabile ma ha una scarsa efficienza (per le troppe chiamate a procedura necessarie per operare). Kernel Ibribo: come la struttura a microkernel ma con più funzionalità. UNIX Si tratta di un sistema operativo multiutente (quindi multiprogrammato), time-sharing, con kernel monolitico, permette lo sviluppo di programmi in C ed è portabile. E caratterizzato dalla presenza di più processi utente ognuno con un solo thread che non condivide memeoria con gli altri (modello processo pesante). Memoria gestita con segmentazione e paginazione, possibilità di memoria virtuale. Linux Si tratta di un kernel, a differenza di GNU/Linux che è un sistema operativo libero (cioè accessibile da tutti) e open-source (codice riutilizzabile). Possiede le stesse caratteristiche di Unix, essendo un suo derivato, ma diversamente da UNIX è basato sul m ultithreading (i thread sono gestiti a livello kernel dall unità di scheduling). Lo spazio di indirizzamento è di 4 GB (32 bit). Processo Programma in esecuzione rappresentato da codice, dati, pc, registri e stack. Può essere in vari stati: init, ready, running, waiting e terminated. Le informazioni del processo sono contenute nel Process Control Block (PCB). I processi I/O bound sono caratterizzati da brevi utilizzi della CPU, mentre quelli CPU bound da lunghi utilizzi. Un processo leggero (detto anche thread) è un flusso di esecuzione che condivide codice e dati con gli altri thread che fanno parte dello stesso processo pesante (detto anche task o semplicemente processo). Nei sistemi operativi tradizionali (come UNIX) un processo è formato da un solo thread, mentre il term ine m ultithreading indica la capacità di associare ad un processo più thread. Interazione Nel m odello ad ambiente globale avviene mediante variabili condivise (attraverso i thread). Nel m odello ad ambiente locale avviene mediante scambio di messaggi o segnali, perché lo spazio di indirizzamento dei dati è privato per ogni processo. Istruzioni indivisibili Un istruzione è indivisibile quando il suoi parametri di ingresso non sono accessibile da altri processori, finché l istruzione non è finita. Produttore/consumatore Processi cooperanti tramite un buffer condiviso, necessità di sincronizzazione. Variabili d ambiente del processo Le variabili d ambiente sono ad esempio: argc/argv, path, direttorio corrente, user, gruppo. Stack, heap e dati globali Heap: area di memoria che contiene tutte le variabili allocate tramite la funzione malloc. Stack: area di memoria che contiene un insieme di record di attivazione, ognuno dei quali contiene le variabili locali ad ogni funzione. Dati globali: variabili globali. 2/9

3 Processo UNIX Il processo in UNIX è l unità di computazione, i processi sono pesanti e con codice rientrante (cioè condivisibile), i dati non sono condivisibili, codice e dati sono separati (modello a codice puro), modello ad ambiente locale. Il PCB è costituito da: 1) User Structure, che contiene le informazioni necessarie al SO quando il p rocesso è residente (es. copia registri CPU, info risorse allocate, info segnali, variabili d ambiente), può essere soggetta a swap-out ; 2) Process Structure, che contiene le informazioni necessarie al sistema operativo quando il processo è residente o swappato (es. riferimento a User Structure, pid, pid del padre, info scheduling: priorità, riferimento a: stack, Text Structure). Per ogni processo del intero sistema viene aggiunta una Process Structure all interno della Process Table. Il sistema gestisce, inoltre, una struttura dati globale (essendo il codice rientrante) detta Text Table, dove ogni elemento, detto Text Structure, contiene un puntatore all area di memoria in cui è allocato il codice. Immagine di un processo UNIX L im magine di un processo UNIX è l insieme delle aree di memoria e strutture dati associate al processo. Essa è costituita da: Process Structure, User Structure (che formano il PCB), dati globali, stack, heap e stack del kernel. Una parte dell immagine, inoltre, è riservata al kernel (US, PS, stack del kernel) e non tutta è swappable (PS e Text Structure). System call per la gestione dei processi La fork() genera un figlio con lo stesso codice del padre (vedono entrambi lo stesso codice) e una copia dei dati del padre (non essendo i dati condivisibili). Essa ritorna 0 al processo figlio e il pid del figlio al processo padre. La exit(status) termina il processo chiamante, chiude le sue risorse, i suoi (eventuali) figli vengono adottati da INIT e se ha un padre, entra nello stato zombie. La variabile status contiene lo stato di terminazione del processo. La wait(&status) rileva lo stato di terminazione dei figli, all interno della variabile status, e ritorna il pid del figlio terminato. La execl() sostituisce codice e argomenti del processo chiamante con quelli passati come parametro. Infine, tutte le system call ritornano un valore negativo se falliscono. Coda dei processi pronti Contiene i descrittori (PCB) dei processi pronti (in stato di ready) per essere assegnati alla CPU. Algoritmi di scheduling Gli algoritmi di scheduling hanno lo scopo di gestire la coda dei processi pronti. Vi sono 4 tipi di algoritmi di scheduling, ognuno può prevedere o meno la possibilità di sottrarre la CPU dal processo running per assegnarla ad un altro presente nella coda dei processi pronti. 1) First Come First Serverd: senza prelazione, coda gestita in modo FIFO. 2) Shortest Job First: senza prelazione, si stima il CPU-brust dei processi presenti in coda e si schedula quello con valore di CPU-brust più basso. 3) Scheduling con priorità: con prelazione, si schedula il processo con priorità maggiore o FCFS per quelli di uguale priorità. 4) Round Robin: con prelazione periodica e ciclica per un intervallo di tempo costante. 5) MLFQ: con prelazione, si schedula in base alle priorità suddivise per livelli, ognuno dei quali è gestito con Round Robin (usato in UNIX). 3/9

4 Sincronizzazione in UNIX Perm ette di imporre dei vincoli sulle operazioni interagenti, gestibile tramite segnali da: term inale, da parte di processi o dal kernel (eccezioni HW). Il processo ricevente può ignorare il segnale, eseguire un operazione di default o gestirlo tramite funzione apposita (handler). La system call kill(pid, sig) serve per inviare un segnale sig ad un processo il cui pid è indicato come parametro. E inoltre necessario includere la libreria signal.h. La system call signal(sig, handler) server per associare una particolare funzione, handler, ad un segnale, sig, dato come parametro. Il valore di handler può essere una funzione definita dal programmatore oppure si possono usare le costanti: SIG_IGN, SIG_DFL, SIGKILL e SIGSTOP (che danno l ordine di terminare l esecuzione). La funzione handler deve prevedere sem pre un parametro intero che indica il segnale ricevuto. Altre system call sleep(n) restituisce N meno il numero di secondi passati prima di ricevere un segnale, 0 se non riceve nessun segnale. alarm(n) dopo N secondi invia SIGALARM al processo che la esegue. pause() è come la sleep, ma a tempo infinito. In generale le system call non sono interrompibili a meno che non siano delle slow system call. File system E una parte del sistema operativo che fornisce i meccanismi di accesso e memorizzazione di dati nelle memorie di massa, realizza i concetti astratti di file, direttorio, partizione. File Sono un insieme di record logici di dimensione variabile contenuti all interno di blocchi di dim ensione fissa, la cui corrispondenza è stabilita dal SO. Accesso a file Vi sono 3 tipi di accesso: sequenziale, diretto ad uno specifico record logico o ad indice. Direttorio Un direttorio è una struttura dati adatta a contenere più file e può essere organizzata in varie strutture logiche: a 1 o 2 livelli, ad albero o a grafo ciclico (UNIX). Allocazione blocchi 1) Contigua (blocchi contigui => frammentazione esterna) 2) A lista concatenata (FAT) 3) Ad indice (blocco indice che contiene i puntatori ai vari blocchi - UNIX) File system in UNIX Vi sono 3 tipologie di file system in UNIX: file ordinari, direttori e dispositive fisici. Ogni file è descritto da un i-node ed identificato da un i-number. L i-node contiene attributi come: 1) Tipo di file 2) Data di creazione 3) Proprietario 4) Bit di protezione I blocchi sono allocati ad indice e l intero file system è partizionato in: 5) i-list 6) data block 7) boot block (bootstrap) 8) super block (puntatore ad i-node liberi) Bit di protezione UNIX La protezione in UNIX avviene tramite il controllo dell accesso ad un generico file tramite 12 bit di protezione (i-node), strutturati come segue: suid, sgid, sticky (immagine swappata), (r-w-x) per User, (r-w-x) per Group, (r-w-x) per Others. Gli ultimi 9 bit servono per gestire l accesso in lettura (r), scrittura (w) o esecuzione, 0 per negarlo e 1 per permetterlo. La m odifica dei diritti sui file si realizza tramite4 la system call chmod(). 4/9

5 File descriptor (fd) E un intero che identifica un determinato file aperto. La stdio.h del C definisce di defalut alcuni descrittori di file tra i quali: stdin (0), stdout (1) e stderr (2). System call per accesso a file La open(nomefile, flag, mod_prot) apre un file nella modalità flag (che può essere O_RDONLY, O_WRONLY, O_APPEND), abbinabili tramite il simbolo. Stessa cosa viene realizzata dalla create(nomefile, mod_prot) in cui però il file viene sempre creato ed aperto in scrittura. La close(fd) chiude il file. La read(fd, buff, N) permette di leggere dal file, identificato da fd, N byte all interno del buffer buff, fornito come parametro; la read restituisce il numero di byte effettivamente letti. La write(fd, buff, N) permette di scrivere sul file, identificato da fd, N byte dal buffer buff, fornito come parametro. La lseek(fd, offset, origine) permette di s postare l I/O pointer di offset byte rispetto all origine che può valere SEEK_SET (=0), SEEK_CUR (=1), SEEK_END (=2). Comunicazione processi UNIX Avviene mediate PIPE o FIFO essendo UNIX ad ambiente locale. La PIPE è un canale di com unicazione unidirezionale (o bidirezionale ma va gestito), a capacità limitata, la com unicazione avviene in m odo indiretto tra processi appartenenti alla stessa gerarchia, la sincronizzazione è automatica. La system call pipe(fd) crea un pipe il cui descrittore deve essere un vettore di 2 interi; modalità: int fd[2], dove fd[0] è usato per la lettura e fd[1] per la scrittura. Tramite la close(fd[n]), dove n è 0 o 1, è possibile chiudere un lato della PIPE. La FIFO, invece, ha visibilità globale, è persistente ed unidirezionale. La system call m kfifo(nomefifo, mod_prot) permette di creare una FIFO; per l accesso in lettura o scrittura ci si com porta come un file generico tranne che per l eliminazione che viene fatta nella m odalità: unlink( NomeFifo ). Apertura di un file in UNIX In UNIX esistono essenzialmente 3 strutture dati globali: 1) Tabella dei file attivi 2) Tabella dei file aperti di sistema 3) Tabella dei file aperti di processo Nel m omento in cui si apre un file da un processo il sistema realizza le seguenti azioni: 1. Crea un nuovo elemento nella tabella dei file aperti di processo e di sistema 2. Copia i-node del file che si sta aprendo nella tabella dei file attivi Binding Il binding è l associazione tra indirizzo logico e indirizzo fisico di una risorsa, è compito del sistema operativo e può essere realizzato in modo statico o dinamico. Frammentazione esterna Realizzando la segmentazione della memoria, con l'andare del tempo e il susseguirsi dei processi in esecuzione, la memoria viene allocata e deallocata in blocchi di varie dimensioni che lasciano un sempre maggior numero di "buchi" vuoti, troppo piccoli per poter essere utilm ente allocati. Questo provoca una frammentazione, detta esterna, della memoria. Allocazione della memoria centrale La m emoria centrale può essere allocata in maniera: 1) Contigua con partizione singola (no multiprogrammazione) con partizione multipla (sì multiprogrammazione, quindi: protezione spazio di indirizzamento; partizioni variabili o fisse per ogni processo) 2) Non contigua con paginazione (se la dimensione della pagina è troppo grane di ha una fram mentazione interna) con segmentazione (struttura indirizzo: segmento + offset, porta ad un fram mentazione esterna) con segmentazione paginata (spazio logico suddiviso in segmenti che, a loro volta, sono suddivisi in pagine; adottato in Linux) 5/9

6 Memoria virtuale La m emoria virtuale consente uno spazio virtuale illimitato e si realizza mediante paginazione su richiesta, cioè in base al bisogno. In realtà è possibile utilizzare anche al tecnica della segmentazione (con il difetto della frammentazione esterna), ma la paginazione è il metodo più adottato. Il meccanismo è il seguente. Quando il bit di validità di una pagina va a 0 (pagina invalida) viene lanciato un interrupt software page fault per il quale la pagina viene caricata sul primo frame libero della memoria centrale, così il processo può riprendere l esecuzione come se niente fosse. Se non si trova un frame libero, si usa il metodo di sovrallocazione. Metodo di sovrallocazione Consiste nel scegliere una vittima (pagina) dalla memoria centrale e salvarla sul disco per far posto alla nuova. La scelta della vittima avviene tramite 3 algoritmi: FIFO, Last Frequency Used (meno frequenti), Last Recently Used (meno recenti). Mutua esclusione La m utua esclusione impone che le operazioni con le quali i processi accedono a variabili com uni non si sovrappongano nel tempo. La sezione critica è l insieme delle istru zioni di accesso e modifica di tali variabili comuni. Più sezioni critiche formano una classe di sezioni critiche. Soluzioni alla mutua esclusione 1) Disabilitazione delle interruzioni durante le sezioni critiche (non corretta) 2) Utilizzo di una variabile booleana libero (non corretta) Prologo: libero = 0 (prima della sezione critica) Epilogo: libero = 1 (dopo la sezione critica) 3) Utilizzo di una variabile intera turno che può assumere i valori 1 o 2 (non corretta) Ogni processo attende il proprio turno (esaminando la variabile turno) prima di accedere alla sezione critica 4) Due variabili busy inizializzate a 0 che diventano a 1 durante la sezione critica (non corretta) 5) Algoritmo di Dekker (corretta) Utilizza 2 variabili busy e una variabile turno Starvation-free, in quanto al sezione critica è accessibile solo per un tempo finito 6) Algoritmo di Peterson (corretta) 7) Utilizzo di lock(x) e unlock(x): lock(x) = salva il valore di x, assegna un nuovo valore ad x (maggiore di 0), controlla che il valore salvato sia uguale 0, altrimenti ricomincia unlock(x) = pone x a 0 struttura: lock(x); <sezione critica> unlock(x); Istruzioni indivisibili 8) Utilizzo dei semafori, monitor o clausola synchronized Definizione di Semaforo Il semaforo è uno strumento di sincronizzazione tra thread. Si tratta di una struttura dati accessibile solo tramite le operazioni (primitive) p e v. L istruzione p serve a verificare lo stato del semaforo: se il suo valore è positivo, questo viene decrementato di un unità e il processo prosegue l esecuzione; se il valore è nullo, il processo viene sospeso e il suo PCB viene inserito nella coda del semaforo. L istruzione v serve a risvegliare eventuale processi sospesi: se non esistono processi nella coda, il valore del semaforo viene aumentato di 1; altrimenti, estrae il primo processo in coda e lo riattiva. La v è sospensiva se si risveglia un processo con priorità maggiore rispetto ad uno già attivo. 6/9

7 Realizzazione del Semaforo typedef struct int value; queue Qs; int lock; // Inizializzato ad 1 semaphore; void p (semaphore *s) lock(s->lock); if(s->value == 0) unlock(s->lock); <aggiunta del processo in s->qs> lock(s->lock); else s->value--; unlock(s->value); void v (semaphore *s) lock(s->lock); if(<s->qs non è vuota>) <Il primo processo in s->qs viene risvegliato e tolto dalla coda> else s->value++; unlock(s->lock); Semaforo mutex Il semaforo mutex, o binario o di mutua esclusione, può assumere solo i valori 0 o 1 e serve ad assicurare la mutua esclusione su una risorsa R. Utilizzo: p(&mutex); <sezione critica> v(&mutex); Thread in Java Ogni programma in Java ha almeno un thread, il main. Sono realizzabili in due modi: estendendo la classe Thread o, se la classe è già estesa, implementando l interfaccia Runnable. I threads appartenente allo stesso processo condividono le stesso spazio di indirizzamento, quindi hanno le stesse variabili globali ma diverse variabili locali. Possibile schema: public class SimpleThread extends Thread public SimpleThread() super(); public void run () <corpo programma eseguito da ogni thread di questa classe> public class 2Threads public static void main(string[] args) Sim plethread t1 = new Sim plethread(); t1.start(); // invoca il metodo run JVM La JVM è l interprete del linguaggio intermedio (bytecode), si tratta di una macchina virtuale m ultiprogrammata e che supporta il multithreading (NB: non tutti i sistemi multiprogrammati forniscono il supporto ai threads). Inoltre la JVM implementa i thread a livello utente o kernel in base alle caratteristiche del sistema operativo, rendendo i programmi indipendenti. 7/9

8 Variabili condizione Si tratta di uno strumento di sincronizzazione che permette ai threads di sospendere la propria esecuzione in attesa che sia soddisfatta una condizione logica. Ogni variabili condizione rappresenta una coda, senza stato, di thread sospesi volontariamente tramite la prim itiva wait e risvegliati con la signal. Tale meccanismo viene anche utilizzato in Java. Gestione I/O a controllo di programma Il processo applicativo per gestione dell input/output realizza le seguenti operazioni: 1) Prepara un comando 2) Inivia il comando 3) Attende la fine del comando, tramite un do; while (flag==0); detto ciclo di attesa attiva. 4) Controlla se tutti i dati sono stati inviati, altrimenti torna al punto (1) Come si vede dal punto (3), è il programma applicativo che si occupa di verificare lo stato dell operazione tramite i registri del controllore e, per questo motivo, viene chiamato a controllo di programma. Questo tipo di gestione non è adatta per un sistema m ultiprogrammato dove, per evitare le attese attive, un processo che per proseguire attende un particolare evento viene sospeso (tramite una context switch) e riattivato al termine di tale operazione. Gestione I/O basata su interruzioni Per evitare che il processo applicativo rimanga in attesa sul flag in maniera attiva, è possibile associare ad ogni dispositivo un semaforo inizializzato a 0 e sostituire al ciclo di attesa una wait su tale semaforo. In questo modo il processo si sospende quindi, quando sarà presente il dato nei registri del controllore, sarà lui stesso a notificare il processo applicativo e a risvegliarlo. Essendo il controllore un processo esterno in realtà non in esecuzione, è necessario affidare alla funzione di gestione delle interruzioni del dispositivo il compito di eseguire la signal sul semaforo e risvegliare il processo applicativo appena si verifica la transizione del flag da 0 a 1, tramite interrupt hardware. Per fare ciò è necessario abilitare il dispositivo alle interruzioni. Blocco critico Quando un processo A richiede una risorsa trattenuta da un processo B che è a sua volta in attesa di una risorsa del processo A (attesa circolare). I metodi del trattamente del blocco critico consistono nel prevenire, in maniera statica o dinamica il blocco, o individuare il blocco e successivamente ripristinare il corretto funzionamento. La prevenzione statica avviene m ediante 3 meccanismi: 1) Ogni processo dichiara all inizio le risorse che necessita e prosegue solo se sono tutte disponibili; 2) Nel m omento in cui un processo attende una risorsa, rilascia le proprie; 3) Sfruttare una gerarchia a livelli. La prevenzione dinamica si basa su algoritmi in grado di capire se si sta per verificare un blocco critico (es. algoritmo del banchiere) Synchronized in Java Quando si opera su un oggetto condiviso in mutua esclusione (sincronizzazione indiretta), è necessario usare la clausola synchronized. Si basa sul fatto che ad ogni oggetto la JVM associa un lock ed una entry set (insieme di threads in attesa del lock). La clausola si usa: Su un blocco: synchronized (obj) Su un m etodo di una classe: public synchronized nomefunzione () Concetto chiave: due metodi entrambi synchronized non possono essere eseguiti contemporaneamente sullo stesso oggetto. I due modi di utilizzo non sono indipendenti: un m etodo dichiarato synchronized in realtà è un metodo standard il cui intero corpo viene m esso all interno di un blocco synchronized(this), controllato dall oggetto su cui il m etodo viene eseguito. Un metodo synchronized può richiamare un altro metodo synchronized sullo stesso oggetto senza bloccarsi, per evitare il blocco critico. 8/9

9 Wait e Notify in Java All'interno di un blocco/metodo synchronized è possibile realizzare una sincronizzazione diretta tramite i m etodi: 1) wait(), che rilascia il lock sull oggetto, sospende il thread e lo inserisce nella wait set dell oggetto, che la JVM associa ad ogni oggetto (deve essere usato all interno di un try-catch (InterruptException e) ) 2) notify(), che sposta il thread dalla wait set alla entry set, in modo che possia riacquisire il lock ed eseguire; se la wait set dell oggetto è vuota: nessuna azione. 3) notifyall(), che porta nella entry set tutti i threads della wait set dell oggetto Il lock viene rilasciato solo al termine del blocco/metodo synchronized e la wait set trattiene i threads per un tempo massimo di time-out, dopo il quale essi vengono comunque risvegliati. Infine si noti che con la notifyall() è necessario inserire la wait all interno di un ciclo per valutare la condizione, visto che un semplice if non basterebbe. 9/9

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

Java Virtual Machine

Java Virtual Machine Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina

Dettagli

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007 2007 SISTEMI OPERATIVI Sincronizzazione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 30/05/2007 Sincronizzazione dei processi 1. Si descrivano i tipi di interazione tra processi?

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

CAP. 6: Nucleo del sistema operativo (La gestione dei processi)

CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Struttura interna del sistema operativo Linux CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Architettura del sistema operativo shell Programmi utente Modo utente Interfaccia delle chiamate

Dettagli

Processi. Laboratorio Software 2008-2009 C. Brandolese

Processi. Laboratorio Software 2008-2009 C. Brandolese Processi Laboratorio Software 2008-2009 Introduzione I calcolatori svolgono operazioni simultaneamente Esempio Compilazione di un programma Invio di un file ad una stampante Visualizzazione di una pagina

Dettagli

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007 2007 SISTEMI OPERATIVI Gestione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 13/05/2007 Gestione dei processi 1. Qual è la differenza tra un programma e un processo? Un programma

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

Cos e` un Sistema Operativo? Cos è un sistema operativo?

Cos e` un Sistema Operativo? Cos è un sistema operativo? Cos e` un Sistema Operativo? È un programma (o un insieme di programmi) che agisce come intermediario tra l utente e l hardware del computer: fornisce un ambiente di sviluppo e di esecuzione per i programmi

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

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX Processi UNIX I Processi nel SO UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice

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

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

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

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

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Rappresentazione e gestione delle attività e della computazione:

Dettagli

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario Processi e thread Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di processo Stati di un processo Operazioni e relazioni tra processi Concetto di thread Gestione dei processi

Dettagli

IL SISTEMA OPERATIVO

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO... è l insieme dei programmi che rende agevole l uso dell hardware, mascherando le caratteristiche delle risorse fisiche (interfaccia) gestisce le risorse fisiche ottimizzandone l

Dettagli

Tecniche Automatiche di Acquisizione Dati

Tecniche Automatiche di Acquisizione Dati Tecniche Automatiche di Acquisizione Dati Sistemi operativi Fabio Garufi - TAADF 2005-2006 1 Cosa sono i sistemi operativi I sistemi operativi sono dei programmi software che svolgono le funzioni di interfaccia

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

Meccanismi di sincronizzazione: Semafori e Monitor

Meccanismi di sincronizzazione: Semafori e Monitor Meccanismi di sincronizzazione: Semafori e Monitor 1 Introduzione Nelle prossime lezioni vedremo alcuni meccanismi dei sistemi operativi e dei linguaggi di programmazione sviluppati per facilitare la scrittura

Dettagli

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi Scheduling della CPU Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU Scheduling della CPU: commuta l uso della CPU tra i vari processi Scheduler della CPU (a

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

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

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario L hardware di I/O Struttura Interazione tra computer e controllori

Dettagli

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione SISTEMI OPERATIVI (parte prima - gestione dei processi) Tra i compiti di un sistema operativo sicuramente troviamo i seguenti: Gestione dei processi Gestione della memoria Gestione del file-system Ci occuperemo

Dettagli

Processo - generalità

Processo - generalità I processi Processo - generalità Astrazione di un attività; Entità attiva che ha un suo percorso evolutivo; Attività = azione dedicata al raggiungimento di uno scopo Il processo esegue istruzioni per svolgere

Dettagli

I SISTEMI OPERATIVI (1)

I SISTEMI OPERATIVI (1) I SISTEMI OPERATIVI (1) 1 un computer può essere pensato come una stratificazione di macchine virtuali, ciascuna delle quali mette a disposizione alcuni servizi, che sono utilizzabili mediante chiamate

Dettagli

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

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

Dettagli

I THREAD O PROCESSI LEGGERI Generalità

I THREAD O PROCESSI LEGGERI Generalità I THREAD O PROCESSI LEGGERI Generalità Thread: segmento di codice (funzione) Ogni processo ha un proprio SPAZIO DI INDIRIZZAMENTO (area di memoria) Tutti i thread genereti dallo stesso processo condividono

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

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1 + Programmazione concorrente in Java 1 + Introduzione al multithreading 2 La scomposizione in oggetti consente di separare un programma in sottosezioni indipendenti. Oggetto = metodi + attributi finalizzati

Dettagli

Introduzione. Meccanismi di sincronizzazione: Semafori e Monitor. Semafori - Definizione. Semafori - Descrizione informale

Introduzione. Meccanismi di sincronizzazione: Semafori e Monitor. Semafori - Definizione. Semafori - Descrizione informale Introduzione Meccanismi di sincronizzazione: Nelle prossime lezioni vedremo alcuni meccanismi dei sistemi operativi e dei linguaggi di programmazione sviluppati per facilitare la scrittura di programmi

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

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

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

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 22 Martedì 7-1-2014 1 System Call per l'uso dei segnali Un processo che

Dettagli

Scheduling della CPU Simulazione in linguaggio Java

Scheduling della CPU Simulazione in linguaggio Java Scheduling della CPU Simulazione in linguaggio Java Realizzato da: Amelio Francesco 556/001699 Di Matteo Antonio 556/000067 Viola Antonio 556/000387 Progetto di Sistemi Operativi Docente Giancarlo Nota

Dettagli

T 1. Per un processo con più thread di controllo, lo stato di avanzamento della computazione di ogni thread è dato da:

T 1. Per un processo con più thread di controllo, lo stato di avanzamento della computazione di ogni thread è dato da: Un thread (o processo leggero) è una attività, descritta da una sequenza di istruzioni, che esegue all'interno del contesto di esecuzione di un programma. Un thread procede nella sua esecuzione per portare

Dettagli

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO Componenti di so 1 Componenti di Sistemi Operativi System Call Programmi di sistema Componenti di un SO Servizi di SO 2 System Call Le system call forniscono l'interfaccia tra running program e SO Generalmente

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

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

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 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 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

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

Sistemi Operativi. ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Sistemi Operativi. ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione Concetto di processo

Dettagli

Il supporto al Sistema Operativo

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

Dettagli

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

SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR

SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR SISTEMI OPERATIVI 14 settembre 2015 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR Cognome: Nome: Matricola: 1. Ricordate che non potete usare calcolatrici o materiale

Dettagli

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) #include void main (int argc, char *argv[]) { pid = fork(); /* genera nuovo processo */ if (pid < 0) { /* errore */ fprintf(stderr,

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

SISTEMI OPERATIVI 3 febbraio 2014 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR

SISTEMI OPERATIVI 3 febbraio 2014 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR SISTEMI OPERATIVI 3 febbraio 2014 corso A nuovo ordinamento e parte di teoria del vecchio ordinamento indirizzo SR Cognome: Nome: Matricola: 1. Ricordate che non potete usare calcolatrici o materiale didattico,

Dettagli

Sistemi Operativi. Lezione 7 Comunicazione tra processi

Sistemi Operativi. Lezione 7 Comunicazione tra processi Lezione 7 Comunicazione tra processi Introduzione La soluzione sw al problema della mutua esclusione è abbastanza complessa Algoritmo di Peterson La soluzione hw mediante disabilitazione degli interrupt

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

Multithreading in Java. Fondamenti di Sistemi Informativi 2014-2015

Multithreading in Java. Fondamenti di Sistemi Informativi 2014-2015 Multithreading in Java Fondamenti di Sistemi Informativi 2014-2015 Multithreading La programmazione concorrente consente di eseguire più processi o thread nello stesso momento. Nel secondo caso si parla

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

CREAZIONE PROCESSI IN UNIX 20

CREAZIONE PROCESSI IN UNIX 20 CREAZIONE PROCESSI IN UNIX 20 STRUTTURE DATI PER PROCESSI Un processo puo' essere in escuzione in 2 modi: kernel e utente. Un processo ha almeno 3 regioni: codice, dati e stack Lo stack è allocato dinamicamente.

Dettagli

Supporto al Sistema Operativo

Supporto al Sistema Operativo Supporto al Sistema Operativo Middleware di supporto al sistema operativo in sistemi distribuiti Funzione del nucleo Modelli architetturali di SO Decomposizione delle funzionalità Processi, thread, processi

Dettagli

Il costrutto monitor [Hoare 74]

Il costrutto monitor [Hoare 74] Il monitor 1 Il costrutto monitor [Hoare 74] Definizione: Costrutto sintattico che associa un insieme di operazioni (entry o public) ad una struttura dati comune a più processi, tale che: Le operazioni

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

Capitolo 7: Sincronizzazione

Capitolo 7: Sincronizzazione Capitolo 7: Sincronizzazione Il problema della sincronizzazione. Il problema della sezione critica. Hardware per la sincronizzazione. Semafori. Problemi classici di sincronizzazione. Monitor (cenni). 7.1

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

Cosa è un Sistema Operativo (S.O.)

Cosa è un Sistema Operativo (S.O.) Cosa è un Sistema Operativo (S.O.) Modulo software costituito da un insieme di programmi per: permettere all utente l uso dell elaboratore senza la conoscenza approfondita dell hardware S.O. supporto all

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi a.a. 2010/2011 Francesco Fontanella Il Sistema Operativo Sistema Operativo 2 Il Sistema Operativo Il Sistema Operativo è uno strato

Dettagli

40. Le transizioni fra stati Lo schema di transizione fra stati può essere rappresentato graficamente nel modo seguente :

40. Le transizioni fra stati Lo schema di transizione fra stati può essere rappresentato graficamente nel modo seguente : 32. Il Sistema Operativo : definizione e struttura Il SO è un insieme di programmi le cui funzioni principali sono costituire un interfaccia tra la macchina e l utente e gestire in modo ottimale le risorse

Dettagli

Capitolo 3 -- Silberschatz

Capitolo 3 -- Silberschatz Processi Capitolo 3 -- Silberschatz Concetto di processo Un SO esegue una varietà di attività: Sistemi batch job Sistemi time-sharing programmi utenti o task Nel libro i termini job e processo sono usati

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/

Dettagli

Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività:

Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività: Impossibile visualizzare l'immagine. Processi Concetto di processo Un SO esegue una varietà di attività: Sistemi batch job Sistemi time-sharing programmi utenti o task Nel libro i termini job e processo

Dettagli

Sistemi Operativi. Il Sistema Operativo. Gestione Risorse (3) Gestione Risorse (2) Cos'è un sistema operativo? Utenti di un SO.

Sistemi Operativi. Il Sistema Operativo. Gestione Risorse (3) Gestione Risorse (2) Cos'è un sistema operativo? Utenti di un SO. Sistemi Operativi Il Sistema Operativo Corso di Informatica Generale (Roberto BASILI) Cos'è un sistema operativo? Un sistema operativo e': La astrazione logica del livello macchina hardware e microprogrammata

Dettagli

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

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

CREAZIONE DI UN FILE

CREAZIONE DI UN FILE #include #include CREAZIONE DI UN FILE fd = creat(filename, mode); int fd, mode; char *filename; La primitiva creat crea un file, se non ne esiste uno col nome specificato, oppure

Dettagli

Introduzione all Informatica

Introduzione all Informatica Lezione 3 Davide Di Ruscio Alfonso Pierantonio Dipartimento di Informatica Università degli Studi dell Aquila Università degli Studi dell Aquila alfonso@di.univaq.it diruscio@di.univaq.it. Sommario 2 2»

Dettagli

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)

Dettagli

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi. Problemi di riepilogo sulla prima parte del corso

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi. Problemi di riepilogo sulla prima parte del corso Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi Problemi di riepilogo sulla prima parte del corso Prof. Augusto Celentano, anno accademico 2009-2010 Questa raccolta è

Dettagli

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,

Dettagli

1. I dispositivi periferici

1. I dispositivi periferici La gestione dell I/O 1. I dispositivi periferici Un ulteriore aspetto fondamentale del SO è la gestione dei dispositivi periferici (periferiche) Dal punto di vista del sistema operativo per periferiche

Dettagli

Sistemi Operativi (modulo di Informatica II) Concetti base e architettura

Sistemi Operativi (modulo di Informatica II) Concetti base e architettura Sistemi Operativi (modulo di Informatica II) Concetti base e architettura Patrizia Scandurra Università degli Studi di Bergamo a.a. 2011-12 Sommario Funzionamento di un calcolatore (cenni) Obiettivi e

Dettagli

SISTEMI OPERATIVI. E il S.O. in funzione sul computer che consente all utente di poter avviare i programmi applicativi desiderati.

SISTEMI OPERATIVI. E il S.O. in funzione sul computer che consente all utente di poter avviare i programmi applicativi desiderati. SISTEMI OPERATIVI SOFTWARE DI BASE Il software di base comprende tutti quei programmi indispensabili ai fini del funzionamento dell elaboratore, per questo viene detto di base. I S.O. rientrano nella categoria

Dettagli

Gli stati di un processo

Gli stati di un processo Roberta Gerboni 1 Gli stati di un processo Gli stati possibili nei quali si può trovare un processo sono: Hold (parcheggio): il programma (chiamato job) è stato proposto al sistema e attende di essere

Dettagli

Scheduling della CPU

Scheduling della CPU Scheduling della CPU Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: attivita` di allocazione della risorsa CPU ai processi. Scheduler

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

Definizione di processo 1

Definizione di processo 1 I Processi I processi Definizione di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi Comunicazioni in sistemi client server 3.2 Definizione di processo

Dettagli

Sistemi Operativi. Des crizione e controllo dei proces s i

Sistemi Operativi. Des crizione e controllo dei proces s i Sistemi Operativi Des crizione e controllo dei proces s i Servizi di un Sistema Operativo Permettere ad un utente di creare processi (lanciare programmi) Interallacciare l esecuzione di diversi processi,

Dettagli

Corso di Laurea in Ingegneria Informatica e Biomedica. Sistemi Operativi A.A. (2002-2003)

Corso di Laurea in Ingegneria Informatica e Biomedica. Sistemi Operativi A.A. (2002-2003) Università degli Studi Magna Græcia di Catanzaro Corso di Laurea in Ingegneria Informatica e Biomedica Sistemi Operativi A.A. (2002-2003) Docente: Prof. Mario Cannataro cannataro@unicz.it www.icar.cnr.it

Dettagli

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi 1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti

Dettagli

Definizione e storia dei sistemi operativi

Definizione e storia dei sistemi operativi Definizione e storia dei sistemi operativi Dipartimento di Informatica Università di Verona, Italy Che cos è un Sistema Operativo? E un insieme di programmi agisce come intermediario tra HW e uomo per

Dettagli

I processi. Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi

I processi. Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi I processi Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi Il modello a processi Consideriamo un informatico appassionato di cucina che

Dettagli

La genealogia di Windows. Windows NT e Windows 95/98. Dimensioni del codice. Parte IX. Windows

La genealogia di Windows. Windows NT e Windows 95/98. Dimensioni del codice. Parte IX. Windows La genealogia di Windows Parte IX Windows Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 DOS: sistema operativo monoutente Windows 3.1 interfaccia a finestre che gira su DOS Windows 95/98

Dettagli

Parte IX. Windows. Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1

Parte IX. Windows. Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 Parte IX Windows Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 La genealogia di Windows DOS: sistema operativo monoutente Windows 3.1 interfaccia a finestre che gira su DOS Windows 95/98

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

Con il sistema operativo intediamo un gruppo di programmi che gestiscono il funzionamento del pc agendo come intermediario tra utente e il pc.

Con il sistema operativo intediamo un gruppo di programmi che gestiscono il funzionamento del pc agendo come intermediario tra utente e il pc. Stumpo Raffaele 4Ci Il sistema operativo Con il sistema operativo intediamo un gruppo di programmi che gestiscono il funzionamento del pc agendo come intermediario tra utente e il pc. Il SO svolge due

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

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. Organizzazione logica ed implementazione di un File System

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

Dettagli