CAPITOLO 18 LA PROGRAMMAZIONE CONCORRENTE
|
|
- Gianpiero Bianco
- 5 anni fa
- Visualizzazioni
Transcript
1 CAPITOLO 18 LA PROGRAMMAZIONE CONCORRENTE Origini della CONCORRENZA Competizione tra processi per ottenere (e condividere) le Risorse: CPU, memoria, canali di I/O, files, ecc... Necessità di comunicazione tra processi CONTESTI DELLA CONCORRENZA Applicazioni multiple: per condividere dinamicamente il tempo di calcolo tra applicazioni; Applicazioni strutturare: gestione della progettazione modulare progettazione strutturata Struttura del sistema operativo. PRINCIPI BASE DELLA CONCORRENZA MUTUA ESCLUSIONE PRODUTTORE CONSUMATORE MONITOR LETTORI - SCRITTORI Le origini della concorrenza vanno ricercate sicuramente nella competizione dei processi per ottenere le risorse e condividerle, quali ad esempio la CPU, la memoria, i canali di I/O, i files e tutte le altre risorse. Inoltre, l origine della concorrenza è legata alla necessità che hanno i processi di comunicare tra di loro. I contesti in cui sorge il problema della concorrenza sono: le applicazioni multiple per condividere dinamicamente il tempo di calcolo tra le diverse applicazioni e, quindi tra i diversi processi; le applicazioni strutturate per la gestione della progettazione modulare e quindi nella programmazione strutturata; infine, essendo il più complesso software quello del sistema operativo stesso, il problema della concorrenza nasce primariamente proprio nella strutturazione del sistema operativo. In questo corso vedremo i principi base della concorrenza guardando: la mutua esclusione, il problema del prodottore e consumatore, i monitors ed analizzeremo il problema classico in sistemi operativi e nella multiprogrammazione concorrente dei lettori-scrittori. Esempio di possibile perdita di coerenza nell'uso della procedura "echo" procedure echo; var out, in: character; begin input (in,tastiera); out:=in; output (out,schermo); end. Cosa succede se in multi-programmazione questa procedura viene condivisa? Si risparmia spazio in memoria ma se due processi concorrenti non completano la procedura correttamente un in si perde ed il successivo appare sullo schermo due volte. In questa slide viene presentato un esempio di perdita di coerenza nell uso in una procedura semplice, elementare di uso comune nei calcolatori: è la procedura echo cioè quella che permette di far vedere a monitor quello che viene digitato da tastiera. Dopo la presa visione del codice ci si chiede cosa succede se in multiprogrammazione questa procedura viene condivisa? Innanzitutto si risparmia spazio di memoria, perché viene memorizzata una sola volta e più processi la utilizzano. Proviamo a guardare i vari passi della procedura e ad immaginare che, dopo che la procedura, che chiamiamo P1 ha eseguito l input da tastiera e il contenuto della locazione in si è portata in out, questa procedura, essendo condivisa, viene sospesa. Il processo P2 che inizia ad utilizzare la procedura, trasferirà l input della tastiera in in, il contenuto di in in out (e quindi il contenuto precedente di out si perde) ed infine il contenuto di out sullo schermo. Quando la procedura P1 viene riavviata, accade che il contenuto ultimo di out torna sullo schermo e il risultato è che il secondo carattere viene visualizzato a monitor due volte e il primo viene perso. 1
2 PROBLEMI DI PROGETTAZIONE DOVUTI ALLA CONCORRENZA E SOLUZIONI Il S.O. deve tenere traccia dei cambiamenti di stato dei processi attivi che vengono registrati nei PCB o nelle Entry della tabelle dei processi e ovviamente sono accodati nelle varie code; Il S.O deve allocare e de-allocare le risorse: tempo di elaborazione; memoria; file; dispositivi di i/o; Il S.O. deve proteggere i dati (sistemi di protezione); Il risultato deve essere indipendente dalla velocità di esecuzione dei processi. Per assicurare ciò occorre studiare l interazione tra processi INTERAZIONE FRA PROCESSI come avviene Il problema di progettazione legato alla concorrenza in un sistema operativo è sostanzialmente quello di tenere traccia del cambiamento dello stato dei processi e questo viene fatto mediante registrazioni nelle strutture dati che, a seconda del sistema operativo, possono essere i Process Control Block (PCB) oppure le Entry della tabella dei processi. Il sistema operativo, ovviamente, deve allocare e deallocare le risorse per ciascun processo, dando un tempo di elaborazione, mettendo a disposizione una quantità di memoria sufficiente, i files che saranno utili al processo e i dispositivi di I/O di cui lo stesso processo dovrà far uso. Il sistema operativo, in questo caso, deve proteggere i dati e i risultati devono essere indipendenti dalla velocità di esecuzione di ciascuno dei processi. Per assicurare le soluzioni a questi problemi occorre studiare l interazione tra i processi. In questa slide è riportata una mappa generale del tipo di interazione tra i diversi processi. Vediamo che nella prima colonna sono riportati i diversi gradi di conoscenza che un processo può avere degli altri processi e notiamo che: i processi possono non vedersi tra di loro, è il caso del contenuto della prima cella; i processi possono vedere gli altri processi indirettamente, ad esempio attraverso oggetti condivisi, come ad esempio delle parti di memoria condivisa; i processi vedono gli altri processi direttamente usando delle primitive di comunicazione. Lungo l asse orizzontale sono riportate: le relazioni che sussistono tra i vari processi; l influenza che un processo ha su gli altri; i possibili problemi di controllo che si presentano. Per esempio: 2
3 Per i processi che non si vedono tra di loro, la relazione tra di essi non può che essere di competizione e le influenze che un processo ha sugli altri sono che i risultati di un processo dipendono dalle informazioni ottenute dagli altri e il tempo di esecuzione dei processi può cambiare. I problemi in questo caso sono di controllo per la mutua esclusione, si può verificare lo stallo e si può verificare lo stavation, nel senso che un processo può rimanere indefinitivamente in attesa. Per i processi che vedono gli altri processi indirettamente la relazione è una cooperazione tramite condivisione e le influenze che un processo ha sugli altri sono che i risultati di un processo possono dipendere dalle informazioni ottenute dagli altri processi e il tempo di esecuzione dei processi può cambiare. In questo caso i problemi che si possono presentare sono la gestione della mutua esclusione, lo stallo, la starvation e la perdita di coerenza dei dati. Da ultimo la relazione che esiste tra processi che vedono gli altri processi direttamente è di cooperazione tramite comunicazione. L influenza che un processo ha sugli altri è che i risultati di un processo possono dipendere dalle informazioni ottenute dagli altri e il tempo di esecuzione dei processi può cambiare. Anche questo terzo caso i problemi che si sono incontrati sono: il possibile stallo e la possibile starvation. COMPETIZIONE I processi che non si vedono tra di loro, in sostanza, sviluppano una competizione per poter usare una risorsa. Per assicurare il controllo dell uso della risorsa, questi processi devono garantire la mutua esclusione, ossia un processo alla volta deve accedere alla risorsa. Consideriamo il caso, ad esempio, di una stampante che deve essere utilizzata da più processi. Per evitare che linee diverse, appartenenti a processi diversi, vengono stampati alternativamente in un unico testo, è necessario che la stampante venga dichiarata come una risorsa critica e che l accesso alla risorsa critica venga effettuato dai processi attraverso una sezione critica, in modo che, una volta che uno di questi ha preso il controllo della risorsa critica, porta a termine il suo lavoro e cede la risorsa ad altri processi che sono in competizione per ottenerla. La mutua esclusione viene gestita con l uso delle sezioni critiche e attraverso apposite comandi che qui sono definiti come entracritica ed escicritica. I problemi che si presentano in questo caso sono: il deadlock, nel senso che qualcuno dei processi si può bloccare la starvation, nel senso che qualche altro processo può rimanere indefinitivamente in attesa. 3
4 Programma di rappresentazione astratta del meccanismo della mutua esclusione In questa slide è riportata la rappresentazione astratta del meccanismo con cui si può garantire la mutua esclusione. Il programma è così rappresentato: ci sono un certo numero di processi in concorrenza tra di loro per ottenere una risorsa critica R. Sono gli n processi chiamati P(1), P(2),, P(n) messi in competizione tra di loro tra i due costrutti parbegin e parend che sono in coda al programma che viene presentato. La i-esima procedura P(i) corrisponde alla parte di codice qui rappresentata, dopo il begin, tra il costrutto repeat- forever. Vediamo che il processo i-esimo P(i) entra nella sezione critica della risorsa R usa la risorsa critica, esce dalla regione critica, rilascia la risorsa critica e poi continua il resto del programma relativo alla procedura i- esima. COOPERAZIONE TRAMITE COMUNICAZIONE La cooperazione tra processi avviene mediante lo scambio di messaggi. Questa parte sarà approfondita nel dettaglio successivamente. Si può dire già da ora che possono presentarsi sia stallo che starvation, ma quando c è comunicazione attraverso l uso di messaggi, non è necessario garantire la mutua esclusione. MECCANISMI PER LA MUTUA ESCLUSIONE I meccanismi per la mutua esclusione devono soddisfare i seguenti requisiti: Un solo processo alla volta deve accedere alla sezione (o risorsa) critica; Ogni processo deve poter accedere dopo un tempo finito di attesa in coda (pertanto ogni processo deve restare nella sezione critica per un tempo finito) ; Nessun processo deve aspettare infinitamente (no stallo o starvation); Non ci devono essere limitazioni sulla velocità di esecuzione. (Dijkstra) E infine ovvio che una volta specificato un meccanismo di accesso, tutti i processi devono accedere alla risorsa tramite quel meccanismo I contenuti di questa slide sono dovuti a Dijkstra. I meccanismi della mutua esclusione devono soddisfare i seguenti requisiti: un solo processo alla volta deve accedere alla sezione o risorsa critica; ogni processo deve poter accedere dopo un tempo finito di attesa in coda, pertanto ogni processo deve restare nella sezione critica per un tempo finito; nessun processo deve aspettare per un tempo infinito; non ci devono essere limitazioni sulla velocità di esecuzione. E infine ovvio che una volta specificato un meccanismo di accesso, tutti i processi devono accedere alla risorsa tramite quel meccanismo. 4
5 MECCANISMI PER LA MUTUA ESCLUSIONE I meccanismi per garantire la mutua esclusione si possono realizzare: con approcci software: nei prossimi learning objects presenteremo gli algoritmi di Dekker e Peterson come esempi di approccio software per garantire la mutua esclusione; usando particolari istruzioni di macchina, ossia delle procedure atomiche che una volta avviate non possono più essere interrotte, implementate in software oppure implementate in firmware e tra queste ci sono le istruzioni test-andset e scambio da ultimo la mutua esclusione, come precedentemente detto, può essere ottenuta usando dei supporti del sistema operativo o dei linguaggi di programmazione, detti messaggi. 5
Modelli di interazione tra processi
Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema
DettagliSistemi Operativi. Lezione 7-bis Esercizi
Sistemi Operativi Lezione 7-bis Esercizi Esercizio Problema dei lettori e scrittori Un insieme di processi condivide un file dal quale alcuni possono solo leggere i dati, altri solo scriverli Più lettori
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 20 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 14 Maggio 2013 Programmazione concorrente:
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
DettagliMODELLO A MEMORIA COMUNE. Aspetti caratterizzanti
MODELLO A MEMORIA COMUNE Aspetti caratterizzanti 1 Ogni applicazione viene strutturata come un insieme di componenti, suddiviso in due sottoinsiemi disgiunti: processi (componenti attivi) e risorse (componenti
DettagliModelli di interazione tra processi
Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema
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?
DettagliCAPITOLO 19 MUTUA ESCLUSIONE SUPPORTO SOFTWARE
CAPITOLO 19 MUTUA ESCLUSIONE SUPPORTO SOFTWARE SUPPORTO SOFTWARE Le slides che seguono definiscono il software e quindi i programmi che possono essere utilizzati per garantire la mutua esclusione tra processi
DettagliCorso di Informatica
Corso di Informatica Modulo T5 C2 Produttore-consumatore 1 Prerequisiti Concetto di semaforo Risorsa permanente o consumabile Sincronizzazione Significato e uso di wait() e signal() 2 1 Introduzione Ci
DettagliModelli di interazione tra processi
Modelli di interazione tra processi Modelli di interazione Modello a memoria comune (ambiente globale) Modello a scambio di messaggi (ambiente locale, message passing) Modello a memoria comune Il sistema
DettagliI Processi. Il Concetto di Processo
I Processi 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 eseguite
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ù
DettagliIL SISTEMA OPERATIVO
IL SISTEMA OPERATIVO (seconda parte) PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE La gestione delle periferiche
DettagliCAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE
CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore Il primo approccio alla risoluzione del problema del produttore/consumatore considera un buffer infinito presentato
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:
DettagliIntroduzione al Linguaggio C Corso di Informatica Laurea in Fisica
Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2009-10 Dai flow-chart ai linguaggi... Abbiamo imparato ad usare uno strumento formale i flowchart per
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
DettagliLe risorse. Alcune definizioni
Le risorse Dicesi risorsa un qualunque oggetto, fisico o logico, di cui un processo necessita per portare a termine la sua evoluzione. Poiché un processo evolve eseguendo istruzioni (procedure), una risorsa
DettagliA.A sull insegnamento Architettura degli Elaboratori e Sistemi Operativi (B)
Principali informazioni A.A. 2017-2018 sull insegnamento Titolo insegnamento Architettura degli Elaboratori e Sistemi Operativi (B) Corso di studio Informatica Crediti formativi 9 (7 + 2) Denominazione
DettagliIl software. la parte contro cui si può solo imprecare
Il software la parte contro cui si può solo imprecare Il software L hardware da solo non è sufficiente per il funzionamento dell elaboratore ma è necessario introdurre il software ovvero un insieme di
DettagliIl software. la parte contro cui si può solo imprecare. Il software
la parte contro cui si può solo imprecare L hardware da solo non è sufficiente per il funzionamento dell elaboratore ma è necessario introdurre il software ovvero un insieme di programmi che permettono
DettagliSistemi Operativi. Lez. 6: Problemi classici della programmazione concorrente
Sistemi Operativi Lez. 6: Problemi classici della programmazione concorrente Produttore e consumatore Uno dei problemi classici della programmazione concorrente è il problema del produttore consumatore.
DettagliISA Input / Output (I/O) Data register Controller
ISA Input / Output (I/O) Numerose Periferiche di tanti tipi diversi, collegati alla CPU mediante BUS diversi. Solo Input (tastiera, mouse), producono dati che la CPU deve leggere. Solo Output (Schermo),
DettagliCenni di sistemi operativi
Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Cenni di sistemi operativi Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università
DettagliPROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un
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
DettagliIl Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
DettagliProf. G. Ascia. Sistema Operativo
Sistema Operativo In parte tratto dal capitoli 13 del libro Mandrioli, Ceri, Sbattella, Cremonesi, Cugola, "Informatica: arte e mestiere",3a ed., McGraw-Hill Fondamenti di Informatica 1 Il Sistema Operativo
DettagliCorso di Informatica
Corso di Informatica Modulo T2 1-Concetti fondamentali 1 Prerequisiti Hardware e software Uso pratico elementare di un sistema operativo Software di base e software applicativo 2 1 Introduzione Iniziamo
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
DettagliINFORMATICA. L informatica comprende:
Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione
DettagliLa programmazione nel linguaggio JavaScript. Il programma
Il programma Nei linguaggi di programmazione il programma è una funzione che ha come argomento i dati digitati in input e opportunamente convertiti. la descrizione della funzione (ovvero il programma)
DettagliCorso di Informatica Modulo T3 1-Nucleo e processi
Corso di Informatica Modulo T3 1-Nucleo e processi 1 Prerequisiti Concetto stack Programmazione elementare Struttura elementare del computer Concetto intuitivo di sottoprogramma 2 1 Introduzione Vediamo
DettagliLa memoria cache. Informatica generale
La memoria cache Nello schema di funzionamento di un calcolatore il processore continuamente preleva informazioni ed istruzioni dalla memoria centrale e scrive in essa informazioni La memoria centrale,
DettagliTEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati
TEORIA DEI SISTEMI OPERATIVI Sistemi monoprogrammatie multiprogrammati 1 STRUTTURA DEL SISTEMA OPERATIVO UTENTE La struttura di un sistema operativo è di tipo gerarchico: i programmi che lo compongono
DettagliPROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 Algoritmo, programma, processo Algoritmo Programma Processo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Descrizione
DettagliPROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE. Algoritmo, programma, processo
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 Processo sequenziale Sequenza di stati attraverso i quali passa l elaboratore durante l esecuzione di un programma (storia di un processo o traccia dell
DettagliIl concetto di algoritmo. Il concetto di algoritmo. Costruire un algoritmo. Il concetto di algoritmo (più tecnico) Dati di ingresso (input)
Il concetto di algoritmo Il concetto di algoritmo Dati di ingresso (input) Risultati in Uscita (output) 9 10 Il concetto di algoritmo (più tecnico)! Il problema della radice quadrata intera Y di un numero
DettagliIl Software programmabili programma algoritmo
Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia
DettagliCapitolo 6 Le infrastrutture SoftWare
Capitolo 6 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: garantire la correttezza e la precisione nell elaborazione
DettagliBootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:
Bootstrap Bootstrap All accensione di un calcolatore vengono attivati programmi di diagnostica scritti nella ROM (Read Only Memory) che verificano l assenza di guasti Poi viene attivato il programma di
DettagliPrinciples of Concurrent Programming
Principles of Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi
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:
DettagliEsercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune
Esercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune a) Uso di una risorsa condivisa Siano P 1, P 2, P 3,, P k i processi che condividono l uso di una risorsa comune
DettagliCorso di Linguaggi di Programmazione + Laboratorio
Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un
Dettagli2. Finalità generali previste dalle indicazioni nazionali
2. Finalità generali previste dalle indicazioni nazionali Le Linee Guida ministeriali per i curricola del Secondo biennio dell Istituto Tecnico Tecnologico, Indirizzo Informatica e Telecomunicazioni -
DettagliPremessa. Input /output e gestione dei file. I file e gli stream. Il puntatore al file. 21. I FILE NEL LINGUAGGIO C Versione 1.
Input /output e gestione dei file Premessa Iniziamo la lezione dicendo subito che per INPUT/OUTPUT si intende l insieme delle operazioni di ingresso ed uscita, ossia lo scambio di informazioni tra il programma
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
DettagliSistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi
Sistemi Operativi A.M. Fanelli Architettura dei Sistemi a. a. 2008-09 1 Livello di Sistema Operativo Livello di Linguaggi Applicativi Livello di Linguaggio Assembly Livello di Sistema Operativo Livello
Dettagli5 Thread. 5 Thread. 5 Thread. Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni:
1 Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni: codice del programma in esecuzione un area di memoria contenente le strutture dati dichiarate
DettagliSistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di
DettagliI Processi. Il Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
DettagliGestione dei Processi
Gestione dei Processi Informatica B Che cosa è un processo per il SO? Processo programma! Rappresenta un istanza di un programma composta da: codice eseguibile (il programma stesso) dati del programma
Dettagli1. Le componenti principali di un sistema operativo sono: interfaccia con l utente (interprete dei comandi e/o interfaccia
1. Quali sono le componenti principali dei sistemi operativi? 2. Si descriva il meccanismo attraverso cui i programmi in esecuzione richiamano i servizi dei sistemi operativi. 1. Le componenti principali
DettagliI SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.
I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non
DettagliIntroduzione all informatica
Introduzione all informatica INFORMATICA Varie definizioni Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta Scienza della rappresentazione e dell
DettagliArchitettura di un elaboratore
Informatica 1 Hardware e Software ing. Luigi Puzone 1 Architettura di un elaboratore Architettura organizzazione logica dei componenti interni della macchina modo in cui questi componenti cooperano per
DettagliL informatica comprende: INFORMATICA. Varie definizioni: Definizione proposta: ELABORATORE ELETTRONICO ( COMPUTER ) L ELABORATORE
INFORMATICA L informatica comprende: Varie definizioni: Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione informazione Definizione proposta: Scienza della rappresentazione
DettagliIl sistema operativo
Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali Indice Architettura Gestione dei processi Gestione della memoria centrale Driver Gestione dei file 2 1 Il sistema operativo E uno
DettagliModulo: Informatica. Chi sono. Obiettivi del corso. Preparazione all esame. Andrea Colitta
Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Chi sono Andrea Colitta E-mail: andrea.colitta@unite.it
Dettagliinteroperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.
Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,
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
DettagliArchitettura dei sistemi di elaborazione (Input/Output parte 1)
Architettura dei sistemi di elaborazione (Input/Output parte 1) Sottosistema di I/O Il sottosistema di I/O è la parte attraverso la quale si esplica la comunicazione tra il calcolatore e il mondo esterno.
DettagliIl supporto al sistema operativo
Politecnico di Milano Il supporto al sistema operativo Prof. Mariagiovanna Sami sami@elet.polimi.it 2007- Obiettivi e Funzioni Perché introdurre il sistema operativo? Convenienza Rende più facile usare
DettagliSistemi Operativi. IPC: Inter-Process Communication
Sistemi Operativi IPC: Inter-Process Communication A.A. 2018-2019 Competizione per le risorse (Race Condition) Regioni critiche 1. No two processes may be simultaneously inside their critical regions 2.
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 12 Alberto Ceselli ceselli@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 21 Aprile 2007 Concorrenza a livello di
DettagliLezione 1. Introduzione ai sistemi di basi di dati
Lezione 1 Introduzione ai sistemi di basi di dati Pag.1 Testi consigliati Sistemi di Basi di Dati, di Raghu Ramakrishnan e Johannes Gehrke, McGraw Hill, 2004 (http://www.ateneonline.it/rama) Database Management
DettagliCapitolo 6. Linguaggi di Programmazione. Mauro Giacomini Pearson Addison-Wesley. All rights reserved
Capitolo 6 Linguaggi di Programmazione Mauro Giacomini 2007 Pearson Addison-Wesley. All rights reserved Capitolo 6: Linguaggi di programmazione 6.1 Prospettiva storica 6.2 Concetti della programmazione
Dettagli2. Cenni di sistemi operativi
2. Cenni di sistemi operativi Andrea Marongiu (andrea.marongiu@unimore.it) Paolo Valente Contiene slides dal corso «Sistemi Operativi» dei prof. Gherardi/Scandurra dell Università degli studi di Bergamo
DettagliSoftware di base e software applicativo
Software di base e software applicativo Il computer è praticamente inutilizzabile se non è presente un apposito software che ne gestisca tutti i componenti HardWare. Esistono due tipologie fondamentali
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 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale
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
DettagliProcessi non sequenziali e tipi di interazione
Processi non sequenziali e tipi di interazione Algoritmo, programma, processo Algoritmo: Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma: Descrizione di un
DettagliProcessi non sequenziali e tipi di interazione
Processi non sequenziali e tipi di interazione 1 Algoritmo, programma, processo Algoritmo: Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma: Descrizione di
DettagliRappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,
DettagliChe cos è l Informatica?
Che cos è l Informatica? Che cos è l Informatica? Non è facile da definire! Alcune affermazioni vere: L informatica è parente stretta della matematica Ha a che fare con il modo in cui risolviamo i problemi
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
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
DettagliLe aree dell informatica
Fondamenti di Informatica per la Sicurezza a.a. 2006/07 Le aree dell informatica Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università
DettagliElaborazione parallela
La gestione dei processi laborazione parallela Il concetto di elaborazione parallela si riferisce specificamente: ai dati; alle istruzioni; ai programmi. Il parallelismo a livello di dati e di istruzioni
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
DettagliSISTEMI OPERATIVI. Sincronizzazione in Java (Java object lock e segnali wait-notify-notifyall)
SISTEMI OPERATIVI (MODULO DI INFORMATICA II) LABORATORIO Sincronizzazione in Java (Java object lock e segnali wait-notify-notifyall) Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università
Dettaglicorrettezza e precisione; anywhere, anytime; affidabilità, disponibilità e sicurezza dei sistemi; riservatezza dei dati; interoperabilità fra
Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precisione; anywhere, anytime; affidabilità,
DettagliIntroduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
DettagliCorso di Informatica Modulo T3 2 Ambiente locale e globale
Corso di Informatica Modulo T3 2 Ambiente locale e globale 1 Prerequisiti Struttura elementare della memoria Area dati e area programma Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità
DettagliArchitettura di Von Neumann
Architettura di Von Neumann L architettura è ancora quella classica sviluppata da Von Neumann nel 1947. L architettura di Von Neumann riflette le funzionalità richieste da un elaboratore: memorizzare i
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 16 ottobre 2007 1 Rappresentazioni di caratteri in C In C un carattere è una costante intera il cui valore è dato dal codice ASCII
DettagliSistema Operativo. (hardware e software) della della macchina
Sistema Operativo Senza Sistema Operativo (SO) un computer è solo un macchinario inutile... Il SO rende possibile la gestione, elaborazione e immagazinamento dell informazione. Il Il SO SO è il il software
DettagliLivelli del sottosistema di I/O
Input/Output 1 Livelli del sottosistema di I/O Software di I/O di livello utente Software di sistema indipendente dal dispositivo Driver dei dispositivi Gestori delle interruzioni Hardware Modo utente
DettagliSommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript
Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript 1 Il Problema computazionale È computazionale
DettagliMacchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016
Macchine Astratte Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione 010194 29 feb, 2016 Sommario 1 Introduzione Macchina astratta Interprete Implementazione
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 11 Giovedì 17-11-2016 1 Gestione della memoria La memoria principale
DettagliIntroduzione alla programmazione e Macchina a Stati Finiti. Renato Mainetti
Introduzione alla programmazione e Macchina a Stati Finiti Renato Mainetti Cos è la programmazione La programmazione, in informatica, è l'insieme delle attività e tecniche che una o più persone specializzate,
Dettagli