Sincronizzazione Soluzioni hardware
|
|
- Luciano Lazzari
- 5 anni fa
- Visualizzazioni
Transcript
1 Sincronizzazione Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
2 2 Soluzioni hardware Le soluzionihardware al problemadellasc possono essere classificate come segue Soluzioniper sistemiche nonpermettonoildiritto di prelazione Soluzioniper sistemichepermettonoildirittodi prelazione Soluzionibasatesullagestionedelle interruzioni Soluzionibasatesuuna estensione dellesoluzioni software, ovvero basate su Questo aspetto è complicato dalla presenza di sistemi multiprocessore o multi-core Un qualchetipodi lock Un qualche tipo di istruzione atomica
3 3 Sistemi senza diritto di prelazione Un sistema senzadirittodi prelazioneè tale per cui I P (o T) in esecuzionenelkernel nonpossono essere interrotti Il controllodel kernel verràrilasciatosolo quandoil P (o T) lo lascerà volontariamente La CPU nonpuò essere sottratta a un P (o T) in esecuzione
4 4 Sistemi senza diritto di prelazione Neisistemi mono-processoree senzadirittodi prelazione Non esisteilproblemadellasc in quantosolo un P (o T) impegnal unicacpu in un certomomento Questa situazioneperòsipresentararamentein quanto Spessoisistemisonooggimulti-processoreo multi-core e anche senza prelazione la concorrenza è effettiva utilizzando processori o core distinti I kernel senzadirittodi prelazionehannotempi di risposta eccessivi e non sono adatti alla programmazione real-time
5 5 Sistemi con diritto di prelazione In un sistemacon dirittodi prelazione Un processoin esecuzionein modalitàdi sistema può essere interrotto Di fattol arrivodi un interruptspostailcontrollo del flusso su un altro processo Il processooriginarioverràterminatoin seguito La CPU puòessere sottratta a un P (o T) in esecuzione
6 6 Sistemi con diritto di prelazione Nelsistemi mono-processore condirittodi prelazione È possibilerisolvereilproblemadellasc mediante controllo dell interrupt Disabilitareinterrupt nellasezionedi ingresso Abilitareinterrupt nellasezionedi uscita while (TRUE) { disabilita interrupt SC abilita l interrupt sezione non critica Si osservi che l interrupt deve poter essere abilitato/disabilitato dal processo stesso
7 7 Sistemi con diritto di prelazione In generale, disabilitaregliinterrupt ha però diversi svantaggi La proceduraè intrinsecamenteinsicura Checosasuccedese a un processoutentesi fornisceildirittodi disabilitarel interrupte tale processo funziona in modo scorretto? Occorrerebbequindiforniretale opportunitàaisoli processi kernel (super-user) Neisistemimulti-processore(multi-core) occorre disabilitare l interrupt su tutti i processori Occorretrasmetterela richiestadi disattivazione Occorronotempi lunghidi processamento La gestionedel sistemadiventa nonreal-time
8 8 Meccanismi di lock - unlock Una strategiaalternativa è mimarele soluzioni software, utilizzando Lucchettidi protezione, i.e., lock Si potrebbeutilizzareun lock per ciascunasc Il valoredel lock permettel accessooppurelo vieta, proteggendo così la risorsa da accessi multipli Istruzioniindivisibili, i.e., atomiche Un istruzioneatomicavieneeseguitain un unico memory cycle Non puòessereinterrotta Permetteverificae modificacontestualedi una variabile globale
9 9 Meccanismi di lock - unlock Esistonodue principaliistruzioniatomichedi lock Test-And-Set Settae restituisceunavariabiledi lock globale Agiscein maniera atomica, ovveroin un solo ciclo indivisibile Swap Scambia(swap) due variabili, di cui unadi lock globale Agiscein maniera atomica, ovveroin un solo ciclo indivisibile
10 10 Test-And-Set: Implementazione Riceve per riferimento la variabile di lock globale (attuale). Il lock è di tipo char o int (basta 1 bit/byte) inizializzato a FALSE char TestAndSet (char *lock) { char val; val = *lock; *lock = TRUE; return val; In ogni caso, assegna TRUE al (nuovo) lock (effettua il lock della risorsa) In ogni caso, restituisce il valore della variabile ricevuta (il vecchio lock)
11 11 Test-And-Set: Utilizzo char lock = FALSE; Variabile di lock globale char TestAndSet (char *lock) { char val; val = *lock; *lock = TRUE; // Set new lock return val; // Return old lock Prologo: Test and Set Se alla chiamata lock==true la SC è occupata e si attende while (TRUE) { while (TestAndSet (&lock)); // lock SC lock = FALSE; // unlock sezione non critica Se alla chiamata lock==false si pone lock=true e si occupa la SC
12 12 Test-And-Set: Svantaggi char lock = FALSE; La procedura TestAndSetnon deve essere interrompibile char TestAndSet (char *lock) { char val; val = *lock; *lock = TRUE; // Set new lock return val; // Return old lock Busy-waiting su spin-lock: consuma cicli mentre attente while (TRUE) { while (TestAndSet (&lock)); SC lock = FALSE; sezione non critica // lock // unlock
13 13 Swap: Implementazione Riceve per riferimento la variabile di lock globale e un lock locale Il lock è di tipo char o int (basta 1 bit/byte) inizializzato a FALSE void swap (char *v1, char *v2) { char tmp; tmp = *v1; *v1 = *v2; *v2 = tmp; return; Effettua uno scambio
14 14 Swap: Utilizzo void swap (char *v1, char *v2) { char tmp; char lock = FALSE; tmp = *v1; *v1 = *v2; *v2 = tmp; return; Variabile di lock globale Mettendo key=true prenoto la SC Se lock==false la SC è libera, setto keya FALSE e lock a TRUE e accedo Se lock==true attendo while (TRUE) { key = TRUE; while (key==true) swap (&lock, &key); // Lock SC lock = FALSE; // Unlock sezione non critica
15 15 Swap: Svantaggi void swap (char *v1, char *v2) { char tmp; char lock = FALSE; tmp = *v1; *v1 = *v2; *v2 = tmp; return; La procedura swap non deve essere interrompibile Busy-waiting su spinlock: consuma cicli mentre attente while (TRUE) { key = TRUE; while (key==true) swap (&lock, &key); // Lock SC lock = FALSE; // Unlock sezione non critica
16 16 Le tecnicheprecedenti Mutua esclusione senza starvation Assicuranola mutuaesclusione Assicuranoilprogresso, evitandoildeadlock Nonassicuranol attesadefinitadi un processo, ovvero non garantiscono la non starvation Sonosimmetriche Per soddisfaretuttie quattroicriterioccorre estendere le soluzioni precedenti La soluzionesuccessivautilizzatestandsete deriva da quella originale È dovutaa Burns [1978] I P/T lenti non entrano mai nella SC perchèi veloci la occupano ripetutamente
17 17 while (TRUE) { waiting[i] = TRUE; while (waiting[i] && TestAndSet (&lock)); waiting[i] = FALSE; SC j = (i+1) % N; while ((j!=i) and (waiting[j]==false)) j = (j+1) % N; Mutua esclusione senza starvation if (j==i) lock = FALSE; else waiting[j] = FALSE; sezione non critica Un vettore di attesa, i.e., prenotazione, con un elemento per ogni P i /T i inizializzato a FALSE P i Lock globale, unico, inizializzato a FALSE
18 18 while (TRUE) { waiting[i] = TRUE; while (waiting[i] && TestAndSet (&lock)); waiting[i] = FALSE; SC j = (i+1) % N; while ((j!=i) and (waiting[j]==false)) j = (j+1) % N; if (j==i) Mutua esclusione senza starvation lock = FALSE; else waiting[j] = FALSE; sezione non critica Entra in SC se desidera entrare (è in waiting) AND la SC è libera (lock=false returntrue) P i In uscita dalla SC se nessuno è in waitingsi mette il locka FALSE Altrimenti si "libera" il primo P i /T i in attesa (set waiting a FALSE)
19 19 Conclusioni Vantaggi delle soluzioni hardware Utilizzabili in ambienti multi-processore Facilmente estendibili a N processi Relativamente semplici da utilizzare dal punto di vista software, cioè dal punto di vista utente Simmetriche
20 20 Svantaggi delle soluzioni hardware Non facili da implementare a livello hardware Conclusioni Operazioni atomiche su variabili globali (qualsiasi) Busy Waiting su spin-lock Spreco di risorse ovvero di cicli di CPU nell attesa Priority inversion Starvation Argomento corso di architettura dei calcolatori Un processo con alta priorità ma in busywaiting potrebbe prevenire un processo con bassa priorità dal terminare la sua SC tenendo la CPU occupata La selezione dei processi in busy-waiting per la SC è arbitraria e gestita dai processi stessi non dal SO
Sincronizzazione. Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Sincronizzazione Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Soluzioni hardware Le soluzioni hardware al problema della SC possono essere classificate
DettagliSincronizzazione. Soluzioni software Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Sincronizzazione Soluzioni software Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Specifiche Le soluzioni software al problema della si basano sull utilizzo di variabili
DettagliMutua Esclusione A" B"
Mutua Esclusione Il problema della mutua esclusione nasce quando più di un processo alla volta può aver accesso a variabili comuni. La regola di mutua esclusione impone che le operazioni con le quali i
DettagliMutua Esclusione A B. Esempi di mutua esclusione
Mutua Esclusione Il problema della mutua esclusione nasce quando più di un processo alla volta può aver accesso a variabili comuni. La regola di mutua esclusione impone che le operazioni con le quali i
DettagliMutua Esclusione. Esempi di mutua esclusione
Mutua Esclusione Esempi di mutua esclusione Il problema della mutua esclusione nasce quando più di un processo alla volta può aver accesso a variabili comuni. La regola di mutua esclusione impone che le
DettagliMutua Esclusione Il problema della mutua esclusione non si sovrappongano nel tempo Nessun vincolo è imposto sull ordine
Mutua Esclusione Il problema della mutua esclusione nasce quando più di un processo alla volta può aver accesso a variabili comuni. La regola di mutua esclusione impone che le operazioni con le quali i
DettagliSincronizzazione Le sezioni scritiche
Sincronizzazione Le sezioni scritiche Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Ambiente di sviluppo Concorrenza e sincronizzazione Programmazione concorrente (tramite
DettagliSISTEMI OPERATIVI. Semafori. Semafori
SISTEMI OPERATIVI 04.a Semafori Semafori Approfondimento sulla mutua escluone Manipolazione di risorse mutex Strategie di soluzione Lock e Un Primitive semaforiche 1 Approfondimento sulla mutua escluone
DettagliSistemi operativi. Lez. 9: primitive per la concorrenza i semafori
Sistemi operativi Lez. 9: primitive per la concorrenza i semafori Disabilitazione interrupt Due processi possono trovarsi in sezione critica simultaneamente solo perché chi vi è entrato per primo è stato
DettagliProcessi e Thread. Meccanismi di IPC (1)
Processi e Thread Meccanismi di IPC (1) 1 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per comunicare e sincronizzarsi : scambiare dati utilizzare
DettagliMUTUA ESCLUSIONE. Esempi di mutua esclusione
MUTUA ESCLUSIONE Il problema della mutua esclusione nasce quando più di un processo alla volta può aver accesso a variabili comuni. La regola di mutua esclusione impone che le operazioni con le quali i
DettagliIndice. Modelli di comunicazione tra processi (IPC) Strumenti di programmazione per IPC
Indice Modelli di comunicazione tra processi (IPC) Strumenti di programmazione per IPC Interazione tra processi Interferenza e Mutua Esclusione Problemi di IPC: Produttore-Consumatore Modelli di IPC Processo:
DettagliScheduling della CPU. Lo scheduling Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Scheduling della CPU Lo scheduling Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Concetti fondamentali Uno degli obbiettivi della multiprogrammazione è quello di massimizzare
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 8 Martedì 8-11-2016 1 Algoritmi di scheduling basati sulle priorità Assegnano
DettagliSoluzioni ai problemi di Mutua Esclusione Primitive di sincronizzazione. Soluzioni ai problemi di Mutua EsclusionePrimitive di sincronizzazione
Soluzioni ai problemi di Mutua Esclusione Primitive di sincronizzazione Soluzioni basate su primitive di sincronizzazione Le primitive di sincronizzazione piú comuni sono: Lock (mutex) - realizzati in
DettagliSincronizzazione dei processi. Capitolo 5 -- Silberschatz
Sincronizzazione dei processi Capitolo 5 -- Silberschatz Processi cooperanti Nei moderni SO, i processi vengono eseguiti concorrentemente Possono essere interrotti in qualunque momento nel corso della
DettagliStallo di processi. Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Stallo di processi Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Stallo (deadlock) Condizione di stallo (deadlock) Un P/T richiede
Dettaglii. Diagramma di GANTT relativo all esecuzione dei quattro processi:
1. (a) Si descriva il meccanismo attraverso cui i programmi richiamano i servizi del Sistema Operativo. Si faccia qualche esempio. (b) Si descriva il funzionanmento di un server web basato su thread multipli.
DettagliSistemi Operativi e Laboratorio, Prova del 10/4/2018 compito A
Nome: Cognome: Matricola: corso: fila: posto: sercizio 1 (5 punti) Uno spool di stampa di un sistema multithread che gestisce due stampanti fisiche, è organizzato con un thread gestore che gestisce le
DettagliSEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)
SEMAFORI 1 SEMAFORI Variabile intera non negativa con valore iniziale >= 0 Al semaforo è associata una lista di attesa Qs nella quale sono posti i descrittori dei processi che attono l autorizzazione a
DettagliSistemi Operativi e Laboratorio, Prova del 10/4/2018 compito B
Nome: Cognome: Matricola: corso: fila: posto: sercizio 1 (5 punti) Un sistema con 5 processi (A,, C,, ) e risorse dei tipi R1, R2, R3, R4, rispettivamente di molteplicità [7, 7, 3, 6], utilizza l algoritmo
DettagliSistemi operativi. Lez. 6: primitive per la concorrenza e semafori
Sistemi operativi Lez. 6: primitive per la concorrenza e semafori Supporto alla concorrenza L algoritmo di Peterson consente una soluzione del problema della concorrenza che non richiede alcun presupposto
Dettagli6. Sincronizzazione dei Processi. Esempio: Produttore- Consumatore con n elementi. Esempio: Produttore- Consumatore con n elementi
1 6. Sincronizzazione dei Processi Importante: l accesso concorrente a dati condivisi può produrre dati inconsistenti processi cooperanti attraverso la condivisione di dati devono agire in modo ordinato,
DettagliElenco sezioni libro di testo Ed. 5 Tra parentesi le corrispondenze per l'ed. 7.
Elenco sezioni libro di testo Ed. 5 Tra parentesi le corrispondenze per l'ed. 7. Modulo 1 - Architettura del calcolatore Unità 1 - Architettura e funzionamento dei sistemi di elaborazione Lezione 1 - Macchina
DettagliSincronizzazione. Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Sincronizzazione Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Produttore-Consumatore Produttore e consumatore con memoria limitata Utilizza
DettagliSistemi operativi - Concetti ed esempi -Settima edizione
Capitolo 6: Sincronizzazione dei processi Capitolo 6: Sincronizzazione dei processi Introduzione Problema della sezione critica Soluzione di Peterson Hardware per la sincronizzazione Semafori Problemi
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA9 B3.1 Mutua esclusione 1 Prerequisiti Programmazione concorrente Sezione critica Mutua esclusione lock() e unlock() 2 1 Introduzione Si considerino le seguenti situazioni
DettagliJava Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java
programmi sorgente: files.java compilatore Indipendenza di java dalla macchina ospite Programmi java Programmi java Programmi java files.class bytecode linker/loader bytecode bytecode Java API files.class
DettagliSistemi 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
DettagliSistemi Operativi per LT Informatica A.A Sincronizzazione tra i processi
Sistemi Operativi per LT Informatica A.A. 2017-2018 Sincronizzazione tra i processi Docente: Salvatore Sorce Copyright 2002-2009 Renzo Davoli, Alberto Montresor, Claudio Sacerdoti-Coen Permission is granted
DettagliProblemi con la concorrenza. Sincronizzazione di processi e thread (1) Problemi con la concorrenza. Il problema della concorrenza
Sincronizzazione di processi e thread (1) Problemi con la concorrenza #define NITER 1000000 int count = 0; void *ThreadAdd(void *); /*thread s function prototype */ int main(int argc, char * argv[]) pthread_t
DettagliSpinlock, read-write spinlock, seqlock
Spinlock, read-write spinlock, seqlock Università di Roma Tor Vergata Corso di Linux Avanzato Giugno 2013 Studente Innarella Rosy Professore Cesati Marco 1 tecnica descrizione Variabili specifiche per
DettagliSistemi operativi. Lez. 6/7: primitive per la concorrenza e semafori
Sistemi operativi Lez. 6/7: primitive per la concorrenza e semafori Supporto alla concorrenza L algoritmo di Peterson consente una soluzione del problema della concorrenza che non richiede alcun presupposto
Dettagli6. Sincronizzazione dei Processi. 6.1 introduzione. 6.1 Esempio: Produttore - Consumatore con n elementi
1 6. Sincronizzazione dei Processi Introduzione Il Problema della Sezione Critica Sincronizzazione via hardware Semafori Problemi Classici di Sincronizzazione 6.1 introduzione 2 Più processi possono cooperare
DettagliElementi di Architettura e Sistemi Operativi. problema punti massimi i tuoi punti problema 1 10 problema 2 5 problema 3 5 problema 4 10 totale 30
Elementi di Architettura e Sistemi Operativi Bioinformatica - Tiziano Villa 20 Ottobre 2017 Nome e Cognome: Matricola: Posta elettronica: problema punti massimi i tuoi punti problema 1 10 problema 2 5
DettagliSistemi Operativi. 6 LEZIONE SINCRONIZZAZIONE DEI PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08
Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 6 LEZIONE SINCRONIZZAZIONE DEI PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione
DettagliSincronizzazione. Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Sincronizzazione Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Produttore-Consumatore Produttoree consumatorecon memorialimitata Utilizzaun
DettagliCorso di Programmazione
Corso di Programmazione III Accertamento del 19 Giugno 2002 / A cognome e nome Risolvi i seguenti esercizi e riporta le soluzioni in modo chiaro su questo foglio, giustificando sinteticamente le risposte.
DettagliPag. 1. Il Nucleo del sistema operativo (la gestione dei processi)
shell Programmi utente Modo utente Il Nucleo del sistema operativo (la gestione dei processi) Interfaccia delle chiamate di sistema File system Gestione processi Device driver Gestione memoria HARDWARE
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 10 Martedì 7-11-2017 Thread a livello kernel Modello da uno a uno La
DettagliStruttura dei Sistemi di Calcolo
Struttura dei Sistemi di Calcolo Operazioni dei sistemi di calcolo Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione hardware Invocazione del Sistema Operativo 1 Architettura
DettagliSistemi operativi Sincronizzazione fra processi
Sistemi operativi 2003-2004 Sincronizzazione fra processi Introduzione I processi devono poter comunicare tra loro in modo strutturato e preciso Per passarsi informazioni Per non interferire con gli altri
DettagliModello a memoria comune
Modello a memoria comune 1 Interazione nel modello a Memoria Comune Se la macchina concorrente e` organizzata secondo il modello a memoria comune: PROCESSO=THREAD Comunicazione attraverso dati/risorse
DettagliCompitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A
Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 13 Alberto Ceselli ceselli@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 7 Maggio 2007 Outline Java e C# 1 Java
DettagliSistemi in tempo reale: applicazioni alla robotica. Sistemi in tempo reale: applicazioni alla robotica p.1/15
Sistemi in tempo reale: applicazioni alla robotica Sistemi in tempo reale: applicazioni alla robotica p.1/15 Sistemi operativi Hardware Firmware Kernel Driver Applicazioni Interfacce Sistemi in tempo reale:
DettagliSistemi Operativi e Laboratorio, Prova del 6/4/2017 versione A
Nome: Cognome: Matricola: corso: fila: posto: Esercizio 1 (5 punti) Si consideri un processore che dispone dei registri speciali PC (program counter) e PS (program status), dello stack pointer SP e dei
Dettagli1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione
1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione su un sistema con una sola CPU? 2. Qual è la differenza tra un interruzione e una trap? Si faccia qualche esempio. 1.
DettagliCorso di Informatica
Corso di Informatica Modulo T3 2-Stati di un processo 1 Prerequisiti Concetto intuitivo di coda Cooperazione e competizione Prerilascio di una risorsa Concetto intuitivo di interruzione 2 1 Introduzione
DettagliSISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.
SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Cos'è un Sistema Operativo?
DettagliLA GESTIONE DELLA I/O
LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono
Dettaglicoda arrivo burst P 1 A 0 20ms P 2 C 10 25ms P 3 B 15 20ms P 4 A 25 20ms
1. (a) Si descriva il meccanismo attraverso cui i programmi richiamano i servizi del Sistema Operativo. Si faccia qualche esempio. (b) Si descriva l algoritmo di scheduling nel sistema Windows Vista (e
DettagliPile e code. Sommario. Algoritmi e Programmazione Avanzata. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino
Pile e code Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Sommario ADT Pile Code. A.A. 2002/2003 APA - Pile e code 2 Politecnico di Torino Pagina 1 di 23 Sommario
DettagliAlgoritmi e Programmazione Avanzata. Pile e code. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino
Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Sommario ADT Pile Code. A.A. 2001/2002 APA - 2 1 Sommario ADT Pile Code. A.A. 2001/2002 APA - 3 ADT Le regole che
DettagliIntroduzione al Multithreading
Introduzione al Multithreading Claudia Calidonna Istituto di di Cibernetica C.N.R. Argomenti principali Parleremo di : Processi & Threads Operazioni sui threads ed eventuali confronti tra operazioni sui
DettagliUNIVERSITÀ DEGLI STUDI DI BERGAMO
UNIVERSITÀ DEGLI STUDI DI BERGAMO DIPARTIMENTO DI INGEGNERIA DELL INFORMAZIONE E METODI MATEMATICI 1 Corso di Laurea in Ingegneria Informatica Sistemi Operativi App. 5 Settembre 2012 1. Che cosa si intende
DettagliComponenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni
Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Una funzione per i numeri di Fibonacci
DettagliLa mutua esclusione (dai sistemi concorrenti ai sistemi distribuiti) mutua esclusione
La (dai sistemi concorrenti ai sistemi distribuiti) Mutua esclusione e sistemi concorrenti La nasce nei sistemi concorrenti abbiamo n processi che vogliono accedere ad una risorsa condivisa ogni processo
DettagliArray. Definizione e utilizzo di vettori
Array Definizione e utilizzo di vettori Array (1/2) Un array o vettore rappresenta un insieme di elementi dello stesso tipo. Sintassi per la creazione di un array: tipo_elementi[] nome; nome = new tipo_elementi[numero_elementi];
DettagliEsercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore
DettagliCorso Professionale di Arduino Avanzato
Corso Professionale di Arduino Avanzato Gennaio marzo 2019, Spazio Chirale alla Garbatella Stefano Capezzone www.chirale.it/download-arduino-avanzato SSID: spazio chirale best Pass: persico32 https://github.com/spaziochirale/corsoarduinoavanzato
Dettagliimport java.io.*; char sceltautente = '_'; boolean condizionesn = true; boolean condizionedowhile = true; boolean condizioneprogramma = true;
Un imposta sul reddito viene applicata in base alle seguenti fasce: fino a 35.000 euro 23% e oltre 35.000 euro 33%. Progettare un software, basato su un applicazione console, che, dato un certo reddito,
DettagliChe risultato si ottiene al termine dell esecuzione del seguente frammento di codice?
Università degli Studi di Udine Corsi di laurea in Ing. Elettronica Gestionale Fondamenti di programmazione 13 novembre 2015 - Prova intermedia Matricola Nome Cognome Aula Fila (dalla cattedra) Posto (dalla
DettagliLezione 6: Array e puntatori
Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Una funzione per i numeri di Fibonacci
DettagliArchitettura dei sistemi di elaborazione (Input/Output parte 2)
Architettura dei sistemi di elaborazione (Input/Output parte 2) Gestione dell I/O Il processore può comunicare con uno o più dispositivi esterni secondo schemi temporali imprevedibili che dipendono dalle
Dettagli6 Il Sistema Operativo Indice (segue) 6.4 La gestione dei processi Sincronizzazione tra processi - 1
6 Il Sistema Operativo Indice (segue) Sincronizzazione e comunicazione tra processi (Inter-Process Communication) Situazioni catastrofiche (deadlock) Il Sistema Operativo Architettura degli elaboratori
DettagliLab 4: Locks, Condition Variables in Java
Dept. of Computer Science Lab 4: Locks, Condition Variables in Java Matteo Camilli matteo.camilli@unimi.it Laboratorio di Sistemi Operativi a.a. 2015/16 Università degli Studi di Bergamo 1 Esercizi Lab3
DettagliIstituto Tecnico Industriale A. Righi
Istituto Tecnico Industriale A. Righi Viale J.F.Kennedy, 112-80125 Napoli Sistemi Automatici (III anno) ELETTRONICA ED ELETTROTECNICA Sistemi di numerazione : Sistemi di numerazione per calcolatori; Sistema
DettagliSEMAFORI. Semaforo. s--; Il valore di un semaforo s è legato al numero delle operazioni wait e signal eseguite su di esso dalla relazione:
Semaforo SEMAFORI Una variabile di tipo semaforico viene definita come una variabile intera non negativa, cui è possibile accedere solo tramite le due operazioni wait e signal definite nel seguente modo:
DettagliComponenti principali
Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria
DettagliEsercitazione [1] Processi e Thread
Esercitazione [1] Processi e Thread Leonardo Aniello - aniello@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo Corso di Laurea in Ingegneria Informatica
DettagliLABORATORIO di Reti di Calcolatori
LABORATORIO di Reti di Calcolatori Architetture client-server 1 of 12 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione client-server, Pearson Ed.,
DettagliIl linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)
DettagliInformatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1 1) In un diagramma di flusso, la rappresentazione di un ciclo WHILE include sicuramente almeno:
DettagliIl linguaggio Java Istruzioni di Controllo
Il linguaggio Java Istruzioni di Controllo Istruzioni per il controllo di flusso Istruzioni di selezione if switch Istruzioni di iterazione while do-while for Istruzioni di salto break continue return
DettagliLe Interruzioni. Ciclo del processore
Le Interruzioni Ciclo del processore L esecuzione di una istruzione avviene attraverso alcune fasi: Fetch L istruzione da eseguire viene prelevata dalla memoria e trasferita all interno della CPU Decode
Dettaglipublic static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
DettagliUniversità degli Studi di Padova - Corso di Laurea in Informatica
Università degli Studi di Padova - Corso di Laurea in Informatica Regole dell'esame Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 40 min dalla sua presentazione.
DettagliEsercizio Sincronizzazione Thread
Esercitazione di oratorio 17/10/2007 Esercizio Il laboratorio di Informatica del Polo Marzotto e utilizzato da tre tipi di utenti, studenti, tesisti e professori ed ogni utente deve fare una richiesta
DettagliProgrammazione concorrente nel Modello ad Ambiente Globale. Sistemi Operativi T AA
Programmazione concorrente nel Modello ad Ambiente Globale Sistemi Operativi T AA 2009-2010 1 Interazione nel modello ad Ambiente Globale (Memoria Comune) Se la macchina concorrente e` organizzata secondo
DettagliEsercitazioni del Corso di Fondamenti di Informatica ARRAY. Prof. Giuseppe Manco. A cura di Ing. Andrea Tagarelli
Esercitazioni del Corso di Fondamenti di Informatica ARRAY Prof. Giuseppe Manco A cura di Ing. Andrea Tagarelli ESERCIZIO 1 public static int[] elaboravettore (int[] v) che verifica che gli elementi di
DettagliElementi di Architettura e Sistemi Operativi. problema punti massimi i tuoi punti problema 1 8 problema 2 5 problema 3 7 problema 4 10 totale 30
Elementi di Architettura e Sistemi Operativi Bioinformatica - Tiziano Villa 20 Settembre 2013 Nome e Cognome: Matricola: Posta elettronica: problema punti massimi i tuoi punti problema 1 8 problema 2 5
Dettagliistruzioni eseguite in ordine predeterminabile in base al codice del programma e dei valori dei dati in ingresso
Programmazione Concorrente sequenze critiche e mutua esclusione istruzioni atomiche deadlock sincronizzazione e semafori settembre 2009 programmazione concorrente 1 modello di esecuzione sequenziale istruzioni
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Lezione 9 Martedì 6-11-2018 I thread nello standard POSIX: la libreria pthreads
DettagliUniversità degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002. Sistemi Operativi Corsi A e B.
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Sistemi Operativi Corsi A e B Esercitazione 15 Il problema dello Sleeping Barber E dato un salone di barbiere,
DettagliLABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 19
LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 19 Prof. Rosario Cerbone rosario.cerbone@libero.it http://digilander.libero.it/rosario.cerbone a.a. 2005-2006 Interrupt Se il ciclo del processore
DettagliInterrupt. LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 19. Prof. Rosario Cerbone
LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 19 Prof. Rosario Cerbone rosario.cerbone@libero.it http://digilander.libero.it/rosario.cerbone a.a. 2006-2007 Se il ciclo del processore fosse effettivamente
DettagliProgrammazione concorrente nel Modello ad Ambiente Globale
Programmazione concorrente nel Modello ad Ambiente Globale 1 Interazione nel modello ad Ambiente Globale (Memoria Comune) Se la macchina concorrente e` organizzata secondo il modello ad ambiente globale
DettagliEsercitazione 15. Il problema dello Sleeping Barber
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Sistemi Operativi Corsi A e B Esercitazione 15 Il problema dello Sleeping Barber E dato un salone di barbiere,
DettagliDecima Esercitazione. Accesso a risorse condivise tramite Monitor Java
Decima Esercitazione Accesso a risorse condivise tramite Monitor Java 1 Agenda Esempio 1 La banca: gestione di una risorsa condivisa da più thread, con politica prioritaria Esercizio 2 da svolgere Accesso
DettagliComponenti e connessioni. Capitolo 3
Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura
DettagliCLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)
CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico) - Dedicati Quelli dei primi sistemi operativi. La macchina viene utilizzata da un utente per volta che può eseguire un solo programma per volta.
DettagliESERCIZIO TIPO SULLE FUNZIONALITÀ DELLO HARDWARE
ESERCIZIO TIPO SULLE FUNZIONALITÀ DELLO HARDWARE Si consideri un calcolatore dotato dei meccanismi descritti nel testo, in particolare: ogni istruzione è contenuta esattamente in una cella di memoria;
DettagliSistemi Operativi 20 giugno 2013 Compito B
Si risponda ai seguenti quesiti, giustificando le risposte. Gli esercizi e le domande marcate con l asterisco (*) devono essere svolti soltanto da chi ha in piano di studi l esame di da 9 o 12 CFU. 1.
DettagliAnno Scolastico 2018/2019 SETTE ANTONIO LOSITO ANTONIO TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TEL.
Anno Scolastico 2018/2019 PROGRAMMA DIDATTICO CONSUNTIVO CLASSE 4EI Docenti SETTE ANTONIO LOSITO ANTONIO Disciplina TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TEL. Unità di lavoro 1: Moduli
DettagliCondivisione. Sistemi Operativi Giuseppe Prencipe. Es.: produttore -- consumatore. Es.: produttore -- consumatore. Es.: produttore -- consumatore
Sistemi Operativi Giuseppe Prencipe Sincronizzazione dei Processi Condivisione I processi di un SO possono cooperare Tipicamente condividono dati e file Si rendono necessari meccanismi che garantiscano
DettagliCAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1
CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1 PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore è uno dei problemi più comuni di concorrenza tra processi. Il problema presenta uno o più
Dettagli