RTAI IPC. Andrea Sambi
|
|
|
- Ambra Costa
- 9 anni fa
- Visualizzazioni
Transcript
1 RTAI IPC Andrea Sambi
2 Inter-Process Communication Inter-Process Communication (IPC) indica la possibilità di scambiare informazioni tra processi attivi Per rendere lo sviluppo delle applicazioni il più flessibile possibile è necessario fornire diversi sistemi di comunicazione tra processi I meccanismi forniti da Linux per la comunicazione tra processi non sono disponibili in spazio kernel Le system calls di Linux per la comunicazione tra processi non considerano le problematiche dei sistemi real-time: assicurare determinismo nell esecuzione evitando bloccaggi inutili, rispettare i vincoli imposti dalle priorità dei processi
3 RTAI IPC RTAI realizza propri meccanismi di interazione tra processi FIFO Shared Memory Message Passing e RPC Mailbox Permettono la comunicazione sia tra processi realtime sia tra processi Linux standard I meccanismi di comunicazione sono realizzati come moduli kernel indipendenti: devono essere caricati in memoria solo al momento in cui vi sono processi che ne fanno uso La disponibilità del codice sorgente consente la personalizzazione dei meccanismi
4 RTAI FIFO È il primo meccanismo di comunicazione di cui RTAI fornisce una versione specializzata per i processi real-time È un buffer di lettura/scrittura unidirezionale non bloccante che permette il trasferimento asincrono di dati I dati sono letti in maniera sequenziale dalla ipotetica coda in cui sono inseriti al momento della scrittura: nessun dato può essere sovrascritto Corrisponde ad un file del tipo /dev/rtfn e deve essere acceduto dai processi real-time tramite le API di RTAI. I processi standard vi accedono con le primitive previste da Linux per l accesso ai file La FIFO non ha conoscenza del significato e della lunghezza dei dati che sta trasferendo: la semantica del trasferimento è a carico dei processi utilizzatori
5 RTAI FIFO int rtf_create(unsigned int fifo, int size); int rtf_open_sized(const char *device, int permission, int size); Creano una RTAI FIFO di dimensione <size> rispettivamente da processi real-time e da processi standard. Restituiscono l identificatore della FIFO int rtf_destroy(unsigned int fifo); int rtf_put(unsigned int fifo, void *buf, int count); Scrive un blocco di byte di dimensione <count> presenti nel buffer puntato da <buf> sulla FIFO <fifo> Nei processi standard si usa la primitiva write di Linux int rtf_get (unsigned int fifo, void *buf, int count); Legge dalla FIFO <fifo> un blocco di byte di dimensione <count> che inserisce nel buffer puntato da <buf> Nei processi standard si usa la primitiva read di Linux
6 RTAI FIFO int rtf_create_handler(unsigned int fifo, int (*handler)(unsigned int fifo)); Definisce una funzione che gestisce qualsiasi cambiamento avviene sulla FIFO. Permette di evitare interrogazioni a polling sulla FIFO e di reagire automaticamente alle operazioni effettuate da altri processi su di essa. Alla funzione <handler> è passato l identificativo della FIFO che l ha scatenata Un utilizzo tipico delle FIFO consiste nel passare ad un processo Linux dati acquisiti da un processo RTAI
7 Esempio: RTAI FIFO Un processo real-time attiva lo speaker ad una frequenza fissa. Da processo utente è possibile inviare comandi al processo RTAI per accendere/spegnere l audio o modificarne la frequenza. int init_module(void) { rtf_create(rtf_command, RTF_SIZE); rtf_reset(rtf_command); rtf_create(rtf_status, RTF_SIZE); rtf_reset(rtf_status); rtf_create_handler(rtf_command, fifo_handler); rt_task_init(&rt_task, task_code, 0,1024,RT_LOWEST_PRIORITY, 0,0); task_period = nano2count(1e7); /* start at 100 Hz */ rt_task_make_periodic(&rt_task, rt_get_time(), task_period); void cleanup_module(void) { rt_task_delete(&rt_task); rtf_destroy(rtf_command); FIFO di ricezione dei comandi. FIFO di invio dello stato: fa l eco dei comandi ricevuti.
8 Esempio: RTAI FIFO static void task_code(int arg){ while(1) { /* emette un suono sullo speaker */ rt_task_wait_period(); static int fifo_handler(unsigned int fifo) { rtf_get(rtf_command, &command, sizeof(command)); if (command.command == SOUND_ON) { enable_sound = 1; else if (command.command == SOUND_OFF) { enable_sound = 0; else if (command.command == SOUND_FREQ) { freq = command.freq > 0? command.freq : 1; task_period = nano2count(1e9 / freq); rt_task_make_periodic(&rt_task, rt_get_time(), task_period); Cambia la frequenza con la quale gira il processo che emette il suono.
9 Esempio: RTAI FIFO Processo utente Linux int main() { command_fd = open(rtf_command_usr, O_WRONLY); status_fd = open(rtf_status_usr, O_RDONLY); while() { fgets(buffer, BUFFERLEN, stdin); if (!strncmp(buffer, "on", 2)) { command.command = SOUND_ON; else if (! strncmp(buffer, "off", 3)) { command.command = SOUND_OFF; else if (1 == sscanf(buffer, "%d", &freq)) { command.command = SOUND_FREQ; command.freq = freq; write(command_fd, &command, sizeof(command)); Attende l inserimento dei comandi e li invia al processo realtime.
10 RTAI Shared Memory Si definisce un blocco di memoria che può essere letto e scritto da qualsiasi processo attivo nel sistema Prevede comunicazione asincrona tra processi Rispetto al meccanismo FIFO permette di trasmettere grandi quantità di dati in un unico passaggio Si accede alla memoria direttamente tramite un puntatore al primo indirizzo allocato I dati non sono accodati ma sovrascritti: occorre garantire accesso in mutua esclusione per mantenere l integrità dei dati Il meccanismo di memoria condivisa viene realizzato tramite un file (/dev/rtai_shm)
11 RTAI Shared Memory void *rtai_malloc_adr(void *adr, unsigned long name, int size); void *rtai_malloc(unsigned long name, int size); void *rtai_kmalloc(unsigned long name, int size); Allocano un blocco di memoria per essere condiviso tra processi real-time e process standard rtai_kmalloc è utilizzabile da moduli kernel, mentre rtai_malloc da processi Linux Le funzioni restituiscono il puntatore all indirizzo iniziale della memoria allocata. L allocazione di un blocco di memoria viene effettuata solo una volta dal primo processo che lo richiede
12 RTAI Shared Memory void rtai_free(unsigned long name, void *adr); void rtai_kfree(void *adr); Libera un area di memoria condivisa allocata in precedenza rtai_free è utilizzabile dai processi Linux standard, mentre rtai_kfree è la corrispondente funzione per i moduli kernel La memoria viene effettivamente liberata solo quando tutti i processi che la condividevano ne hanno chiesto la deallocazione
13 RTAI Message e RPC È un semplice meccanismo di scambio messaggi punto-a-punto: mittente e destinatario devono conoscersi Nella sua versione base la dimensione dei messaggi è limitata a 4 byte Le code in cui sono depositati i messaggi in attesa di essere consumati sono ordinate secondo la priorità del messaggio (del mittente) L invio di messaggi blocca per il mittente fino a quando il messaggio viene ricevuto. Nel caso di RPC il mittente attende fino al ricevimento della risposta del destinatario
14 RTAI Message e RPC RT_TASK* rt_send(rt_task* task, unsigned int msg); Invia il messaggio msg al processo task RT_TASK* rt_receive(rt_task* task, unsigned int *msg); Riceve il primo messaggio disponibile inviatogli dal processo task. In caso non ve ne siano il processo chiamante si blocca in attesa. Se task vale 0 il processo chiamante accetta il messaggio più prioritario inviatogli da qualsiasi processo
15 RTAI Message e RPC RT_TASK *rt_rpc(rt_task *task, unsigned int msg, unsigned int *reply); Fa una richiesta di procedura remota: invia il messaggio msg al processo task, attende una risposta da depositare all indirizzo reply Attende fino al ricevimento della risposta RT_TASK *rt_return(rt_task *task, unsigned int result); Invia result in risposta alla richiesta RPC effettuata dal processo task
16 Esempio: RTAI Shared Memory e Message Un processo modifica un area dati condivisa, invia un messaggio ad un processo prioritario in attesa che, svegliatosi, sovrascrive la memoria. #define SHM_KEY 101 #define N_CHAR 20 RT_TASK taskh, taskl; static char * shm_ptr = 0; /* pointer to shared memory */ Allocazione ed inizializzazione dell area di memoria condivisa. int init_module(void) { shm_ptr = rtai_kmalloc(shm_key, N_CHAR * sizeof(char)); for (i = 0; i < N_CHAR; i++) { shm_ptr[i] = '0'; rt_task_init(&taskh, high_prio_code, 0, 10000, HIGH_PRIO, 0, 0); rt_task_init(&taskl, low_prio_code, 0, 10000, LOW_PRIO, 0, 0);
17 Esempio: RTAI Shared Memory e Message void cleanup_module(void) { rt_task_delete(&taskh); rt_task_delete(&taskl); rtai_kfree(shm_key); stop_rt_timer(); static void high_prio_code(int arg) { int i, taskl_alert; rt_receive(&taskl, &taskl_alert); rtai_print_to_screen("task H BEGIN\n"); rtai_print_to_screen("task H ACCESSO RAM: write H over L\n"); for (i = 0; i < N_CHAR; i++) { if (shm_ptr[i] == 'L') shm_ptr[i] = 'H'; rtai_print_to_screen("task H READ\n"); for (i = 0; i < N_CHAR; i++) { rtai_print_to_screen("%c", shm_ptr[i]); rtai_print_to_screen("task H END\n"); Attesa bloccante ( taskh si sospende) di un messaggio dal processo taskl. Accesso diretto alla RAM. Non vi è alcuna protezione dell area di memoria condivisa.
18 Esempio: RTAI Shared Memory e Message static void low_prio_code(int arg) { int i, taskh_alert = 1; rtai_print_to_screen("task L BEGIN\n"); rtai_print_to_screen("task L READ\n"); for (i = 0; i < N_CHAR; i++) { rtai_print_to_screen("%c", shm_ptr[i]); rtai_print_to_screen("task L ACCESSO RAM: write L\n"); for (i = 0; i < N_CHAR; i++) { shm_ptr[i] = 'L'; rtai_print_to_screen("task L READ\n"); for (i = 0; i < N_CHAR; i++) { rtai_print_to_screen("%c", shm_ptr[i]); rt_send(&taskh, taskh_alert); rtai_print_to_screen("task L END\n"); Inizio: Fine accesso alla memoria taskl : Fine accesso alla memoria taskh : Accesso diretto alla RAM. Invio di un dato al processo taskh LLLLL LLLLL LLLLL LLLLL HHHHH HHHHH HHHHH HHHHH
19 RTAI Mailbox È il meccanismo IPC più flessibile che RTAI mette a disposizione Permette ai processi di inviare messaggi che sono automaticamente memorizzati ordinati per priorità e letti al momento del bisogno I messaggi possono avere dimensione qualsiasi: messaggi troppo lunghi per una mailbox possono essere spediti anche parzialmente Più produttori e più consumatori di messaggi possono essere connessi ad una mailbox Rispetto al meccanismo FIFO permette una comunicazione simmetrica tra processi
20 RTAI Mailbox int rt_typed_mbx_init(mbx *mbx, int size, int qtype); Inizializza una mailbox puntata da mbx di dimensione size qtype specifica l ordinamento della coda: per priorità o Fifo int rt_mbx_init(mbx* mbx, int size); Inizializza una mailbox con la coda dei messaggi ordinata per priorità int rt_mbx_delete(mbx* mbx); int rt_mbx_send(mbx* mbx, void* msg, int msg_size); Invia un messaggio msg alla mailbox mbx. Il processo mittente è bloccato fino alla completa trasmissione del messaggio int rt_mbx_receive(mbx* mbx, void* msg, int msg_size); Riceve un messaggio di dimensione msg_size dalla mailbox. Il processo ricevente è bloccato fino al termine della ricezione Esistono primitive di send e receive con semantica diversa: con timeout oppure non bloccanti
21 RTAI IPC I meccanismi IPC non sono caratteristiche speciali che appartengono solo ai sistemi real-time Ogni sistema operativo fornisce meccanismi di comunicazione tra processi: i meccanismi IPC sono fondamentali per lo sviluppo di software in maniera veloce e sicura I processi real-time non possono utilizzare i meccanismi IPC forniti da Linux In spazio kernel la maggior parte delle primitive Linux per la comunicazione non sono disponibili Processi RT necessitano di primitive veloci (devono introdurre poco overhead) Sono preferibili primitive di comunicazione non bloccanti per evitare di introdurre indeterminismo nell esecuzione dei processi Può essere necessario mantenere code di messaggi ordinate per priorità
22 RTAI IPC: usi tipici RTAI FIFO Trasferimento di dati acquisiti in tempo reale. Elaborazione a carico di processi standard. Stream di dati ordinati. Informazioni di log. Non adatto a trasferire blocchi di grandi dimensioni. Richieste di servizio e sincronizzazione sui risultati. Comunicazione di informazioni necessarie ai processi per una corretta esecuzione. Messaggi di errore. Trasferimento informazioni di configurazione.
23 RTAI IPC: usi tipici RTAI Shared Memory Trasferimento di dati acquisiti in tempo reale. Elaborazione a carico di processi standard. Grandi strutture dati condivise da due o più processi RT. Pochi cambiamenti nei dati delle strutture. Richieste di servizio e sincronizzazione sui risultati. Comunicazione di informazioni necessarie ai processi per una corretta esecuzione. Nessuna necessità di mantenere traccia delle modifiche. I dati sono sovrascritti.
24 RTAI IPC: usi tipici RTAI Message e RPC Trasferimento di dati acquisiti in tempo reale. Elaborazione a carico di processi standard. Richieste di servizio e sincronizzazione sui risultati. Comunicazione di informazioni necessarie ai processi per una corretta esecuzione. Semantica RPC: necessità dei risultati forniti da un altro processo. Ne forza l esecuzione anche se è a priorità minore.
25 RTAI IPC: usi tipici Trasferimento di dati acquisiti in tempo reale. Elaborazione a carico di processi standard. Richieste di servizio e sincronizzazione sui risultati. RTAI Mailbox Trasferimento dati di maggiori dimensioni rispetto al meccanismo FIFO, possibilità di avere comunicazione bidirezionale e di avere messaggi con priorità (concetto di urgenza di un messaggio). Comunicazione di informazioni necessarie ai processi per una corretta esecuzione. Persistenza dei messaggi (no sovrascritture) ed importanza nel loro ordine di arrivo.
26 Documentazione DIAPM RTAI Programming Guide 1.0 DIAPM RTAI. A hard real-time support for Linux Real-Time and Embedded Guide, H. Bruyninckx The Real-Time Application Interface, K. Yaghmour
RTAI e scheduling. Andrea Sambi
RTAI e scheduling Andrea Sambi Scheduling Linux Due politiche di scheduling priority-driven possibili. FIFO priorità uguali Processo 1 iniziato Processo 1: iterazione 1 Processo 1: iterazione 2 Processo
Interazione tra Processi. Sistemi Operativi T AA
Interazione tra Processi Sistemi Operativi T AA 2009-2010 1 Classificazione: Processi interagenti processi interagenti/indipendenti: due processi sono interagenti se l esecuzione di un processo è in alcun
Il Modello a scambio di messaggi
Il Modello a scambio di messaggi 1 Interazione nel modello a scambio di messaggi Se la macchina concorrente e` organizzata secondo il modello a scambio di messaggi: PROCESSO=PROCESSO PESANTE non vi è memoria
Modello a scambio di messaggi
Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O Gestione e organizzazione dei dischi COMPITI
Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1
SISTEMI DI INPUT/OUTPUT 10.1 Sistemi I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Stream Prestazioni 10.2 I/O Hardware
Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi
Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Processi cooperanti La comunicazione tra processi Necessità
La Comunicazione tra Processi in Unix
La Comunicazione tra Processi in Unix La è un canale di comunicazione tra processi: unidirezionale: accessibile ad un estremo in lettura ed all'altro in scrittura molti-a-molti: più processi possono spedire
Comunicazione tra processi: pipe Le pipe sono un meccanismo UNIX di Inter Process Communication (IPC)
Comunicazione tra processi: pipe Le pipe sono un meccanismo UNIX di Inter Process Communication (IPC) Le pipe sono canali di comunicazione unidirezionali Limitazione pipe: permettono la comunicazione solo
RTAI: un po di storia
RTAI Andrea Sambi RTAI: un po di storia Real-Time Application Interface Sviluppato presso il Politecnico di Milano Nato per rispondere alla richiesta di un sistema operativo a basso costo da utilizzarsi
Il Modello a scambio di messaggi
Il Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto typedef struct{ origine; destinazione; contenuto;
Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel
SISTEMI DI INPUT/OUTPUT 10.1 Sistemi I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Stream Prestazioni 10.2 I/O Hardware
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O COMPITI DEL SOTTOSISTEMA DI I/O 1. Nascondere
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
Estensioni Linux per il Real-Time
Estensioni Linux per il Real-Time Il Sistema Operativo Linux Numerazione versioni di linux: a.b.c (es. 2.4.16) dove a no. versione, b kernel stabile (se pari), in sviluppo (se dispari) c no. di rilascio
Università 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 20 Giovedì 22-12-2016 Comunicazione: pipe In Unix, processi possono comunicare
Schedulazione in RTAI
Schedulazione in RTAI RTAI: modulo kernel rt_hello_km.c #include #include Thread real-time... Ciclo infinito RT_TASK task; Periodico... void task_routine() { while(1) { /* Codice
Lo strato di applicazione in Internet
Lo strato di applicazione in Internet Prof. Ing. Carla Raffaelli a.a. 2004/2005 Protocolli applicativi Sono i protocolli utilizzati dalle applicazioni per scambiarsi informazioni Esempi: HTTP per il web,
INTERPROCESS COMMUNICATION 27
INTERPROCESS COMMUNICATION 27 - Le comunicazioni tra processi (IPC, Intreprocess Communication) sono realizzate mediante strutture dati rese disponibili dal kernel. Sono disponibili 3 tipologie di comunicazioni
PROCESSI 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
Panoramica Introduttiva su Inter-Process Communication (IPC)
Panoramica Introduttiva su Inter-Process Communication (IPC) Inter-Process Communication: panoramica (1) Dei processi si dicono cooperanti se si influenzano l'un con l'altro. Per potersi influenzare dei
Esempi di Programmazione RTAI
Esempi di Programmazione RTAI Programmazione in RTAI Approccio RTAI: Uno schedulatore Real Time rimpiazza lo schedulatore di Linux Intercetta gli interrupt (time e dispositivi) Esegue il codice di servizio
Modello a scambio di messaggi
Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto type messaggio = record origine:. ; destinazione:. ;
Sistemi 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
INIT: for i = 0 to M-1 set(p[i], 0); for i = 0 to M-1 set(a[i], 0);
Esercizio Descrivere la tecnica di gestione della memoria basata su paginazione (non e richiesta la descrizione della tecnica si memoria virtuale). Inoltre, data un architettura a 64 bit di indirizzamento
File e puntatori a file
File e puntatori a file Vitoantonio Bevilacqua [email protected] La libreria stdio.h mette a disposizione delle funzioni che hanno la peculiarità di trattare con questa nuova tipologia di
Sistemi Operativi (modulo di Informatica II)
Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità
Input/Output. Livelli 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 Di Driver dei didispositivi itii Gestori delle interruzioni Hardware utente kernel
Gestione dinamica della memoria
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - [email protected] A pessimistic programmer sees the array as half empty.
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
Livelli 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
SISTEMI OPERATIVI. Struttura dei. Sistemi Operativi. Giorgio Giacinto 2015
SISTEMI OPERATIVI Struttura dei Sistemi Operativi 2 Panoramica dei servizi del sistema operativo 3 4 Cos è una chiamata al sistema?» Il SO mette a disposizione i suoi servizi ai programmi utente attraverso
Architettura dei calcolatori e sistemi operativi. M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente
Architettura dei calcolatori e sistemi operativi M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente 18.01.2015 Architettura Intel x64 Lo spazio di indirizzamento virtuale
Inter-Process Communication
Inter-Process Communication (IPC) IPCS 1 1. Code di messaggi 2. Semafori 3. Memoria condivisa send receive 2? 3 p1 p3 p2 CODE DI MESSAGGI Modello di Comunicazione Code di Messaggi Il processo ricevente
I/O su Socket TCP: read()
I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una
Processi e thread. Concetto di processo
Processi e thread Concetto di processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione l di un processo è sequenziale (le istruzioni vengono
Il linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
Soluzioni 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
Università 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
Linguaggio C: i file
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: i file La presente dispensa e da utilizzarsi ai soli fini didattici previa
Sistemi Operativi: Concetti Introduttivi
Sistemi Operativi: Concetti Introduttivi 1.1 Principali funzioni di un Sistema Operativo 1.2 Cenni Storici 1.3 Classificazione dei Sistemi Operativi 1.4 Struttura dei Sistemi Operativi 1.5 Processi e gestione
Reti (già Reti di Calcolatori )
Reti (già Reti di Calcolatori ) Cenni di Socket Programming Renato Lo Cigno http://disi.unitn.it/locigno/index.php/teaching-duties/computer-networks Socket API Programmazione dei socket Obiettivo:imparare
Interprocess Communications - II. Franco Maria Nardini
Interprocess Communications - II Franco Maria Nardini XSI IPC Tre tipi di IPC introdotti da System V: semafori shared memory code di messaggi Comunicazioni tra processi su stesso host Tutte consentono
La gestione della memoria dinamica Heap
Laboratorio di Algoritmi e Strutture Dati La gestione della memoria dinamica Heap Prof. Luigi Lamberti 2005 Cenni sui Processi Un Programma è un insieme di Istruzioni memorizzato in un file con le costanti
Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi
Sistemi Operativi Lez. 13: primitive per la concorrenza monitor e messaggi Osservazioni I semafori sono strumenti particolarmente potenti poiché consentono di risolvere ogni problema di sincronizzazione
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
Corso di Laboratorio di Sistemi Operativi
Corso di Laboratorio di Sistemi Operativi Lezione 7 Alessandro Dal Palù email: [email protected] web: www.unipr.it/~dalpalu Threads Un thread è l unità di base per l utilizzo della CPU. Composto
Organizzazione Monolitica
Principali componenti di un sistema Applicazioni utente Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del processore / Scheduler(s) Gestore della memoria Gestore delle periferiche/
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
MODELLI ISO/OSI e TCP/IP
PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP 2.1 Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti
Architettura degli elaboratori Docente:
Politecnico di Milano Il File System Architettura degli elaboratori Docente: Ouejdane Mejri [email protected] Sommario File Attributi Operazioni Struttura Organizzazione Directory Protezione Il File
Allocazione dinamica della memoria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Tipi di memoria dati Nella macchina astratta C esistono tre tipi di memoria per allocare
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
Corso di programmazione Arduino DI MALVEZZI DAVIDE
Corso di programmazione Arduino DI MALVEZZI DAVIDE Argomenti Pin digitali e pin analogici Gestione di timer e bottoni Utilizzo della porta seriale Oggetto String Controllo di schermi LCD Utilizzo dell
I files in C. A cura del prof. Ghezzi
I files in C A cura del prof. Ghezzi 1 Perchè i files? Realizzano la persistenza dei dati dati che sopravvivono all esecuzione del programma Sono delle strutture di dati sequenziali 2 Files e S.O. I files
la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK.
1. Considerare il problema della stima del Round Trip Time. Supporre che inizialmente RTT valga 200 ms. Il mittente invia un segmento e riceve l ACK relativo dopo 100 ms, quindi invia un altro segmento,
CAPITOLO 27 SCAMBIO DI MESSAGGI
CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali:
Struttura interna del sistema operativo Linux
Struttura interna del sistema operativo Linux 5. I device driver A cura di: Anna Antola Giuseppe Pozzi DEI, Politecnico di Milano anna.antola/[email protected] -versione del 30 marzo 2004-1-04.-04
Componenti 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
Java 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
Sistemi operativi Modulo II I semafori 2 Select
Il sistema operativo LINUX Semafori 2 Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica La system call read è bloccante Non
Esercizio sulla gestione di file in Unix
Esercizio sulla gestione di file in Unix 1 Esercizio Si vuole realizzare un programma C che, utilizzando le system call di Unix, realizzi uno schema di comunicazione tra due processi (padre e figlio) mediante
