Struttura di timekeeping. Francesco Famulari

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Struttura di timekeeping. Francesco Famulari"

Transcript

1 Struttura di timekeeping Francesco Famulari

2 Argomenti Tutto il codice esaminato si riferisce al kernel vanilla Linux Gli argomenti presentati sono: Passaggio alla nuova architettura del time system Building blocks fondamentali dell'architettura del time system Architettura di time keeping Device che tengono traccia del passare del tempo Alcune strutture e funzioni dell'architettura di time keeping Preferenza di un device rispetto agli altri Modulo la13_module_time

3 Passaggio alla nuova architettura del time system Vecchio sistema del tempo

4 Passaggio alla nuova architettura del time system Infrastruttura base degli hrtimer incorporata nel kernel

5 Passaggio alla nuova architettura del time system John Stultz's GTOD (generic time of day) patch incorporata nel kernel

6 Passaggio alla nuova architettura del time system Clock event management

7 Passaggio alla nuova architettura del time system High resolution timer functionality

8 Building blocks fondamentali dell'architettura del time system hrtimer base infrastructure timeofday and clock source management clock event management high resolution timer functionality dynamic ticks

9 Architettura di time keeping L'architettura di timekeeping di Linux è l'insime delle strutture dati e funzioni del kernel relative al flusso del tempo. Attività periodiche del kernel: aggiornamento del tempo dall'avvio del sistema aggiornamento del tempo e della data determinare il tempo di esecuzione del processo corrente per ogni cpu e interromperlo se ha superato il tempo assegnatogli aggiornamento delle statistiche di uso delle risorse controllo se il tempo associato a ogni timer software è trascorso

10 Architettura di time keeping In Linux possiamo definire 2 concetti di tempo: Wall time (o time of day o real time): è un valore che rappresenta il tempo umano del giorno, proprio come quello osservabile su un orologio a muro o un orologio da polso. Tempo di sistema: è un valore monotonicamente crescente che rappresenta la quantità di tempo durante il quale il sistema sta funzionando.

11 Architettura di time keeping Un sistema Linux attualmente ha 2 clock che si riferiscono ai 2 tipi di tempo appena visti: uno è quello che riceve energia dalla batteria ed è chiamato "Real Time Clock" o "RTC" o "CMOS clock" o "Hardware clock" o "persistent clock"; esso tiene traccia del tempo quando il sistema è spento ma non viene usato quando il sistema è in funzione. L'altro è il "System clock", anche detto "Kernel clock" o "Software clock"; esso è un contatore software basato su timer interrupt. Esso non esiste quando il sistema non sta funzionando e così deve essere inizializzato dall'rtc quando il sistema viene avviato. Può anche essere inizializzato da qualche altra sorgente di tempo ad esempio tramite NTP.

12 Device che tengono traccia del passare del tempo 1) Real Time Clock (RTC) 2) Time Stamp Counter (TSC) 3) Programmable Interval Timer (PIT) 4) CPU Local Timer (local APIC) 5) High Precision Event Timer (HPET) 6) ACPI Power Management Timer (ACPI PMT)

13 Real Time Clock (RTC) Motorola chip Hz Acceduto dal kernel tramite le porte 0x70, 0x71 Programmabile grazie a /dev/rtc

14 Time Stamp Counter (TSC) La cpu aggiorna un suo registro detto TSC alla ricezione del segnale di clock tramite uno dei suoi pin da parte di un oscillatore esterno. Misure più accurate del PIT

15 PIT Il "vecchio" PIT è un chip da sempre presente sui PC IBM CMOS chip porte di I/O 0x40 0x Hz adjustable Emette un timer interrupt allo scadere di uno o più timer. Oggi non costituisce più un chip a sè stante incluso nel PC, ma la sua funzionalità è stata integrata nel southbridge chipset.

16 CPU Local Timer local APIC Ha un contatore a 32 bit versus 16 bit del PIT L'interrupt è mandato dal local APIC solo al suo processore Decrementa un contatore ogni 1, 2, 4, 8, 16, 32, 64, 128 segnali di clock del bus

17 High Precision Event Timer (HPET) Fornisce diversi (max 8) contatori monotoni crescenti a 64 bit (o a 32 bit). Fornisce diversi timer hardware sfruttabili dal kernel. Ogni contatore ha fino a 32 timer. timer := comparator + match register Il comparator compara il valore nel counter con quello nel match register. Programmabile attraverso registri mappati nello spazio di memoria. Ogni contatore ha un proprio segnale di clock di almeno 10 MHz

18 ACPI Power Management Timer (ACPI PMT) L'ACPI PMT ha un segnale di clock di circa 3.58 MHz. Accessibile tramite I/O port E' indipendente dalla regolazione dinamica del voltaggio e della frequenza da parte del BIOS o del sistema operativo e per questo è preferibile in tali situazioni al TSC che comunque ha una maggiore frequenza

19 Alcune strutture e funzioni dell'architettura di time keeping Nel file: include/linux/timekeeper_internal.h troviamo la definizione della struttura: struct timekeeper alcuni dei cui campi sono: struct clocksource *clock; u64 xtime_sec; u64 xtime_nsec; seqlock_t lock;

20 Alcune strutture e funzioni dell'architettura di time keeping Nel file: include/linux/clocksource.h troviamo: struct clocksource alcuni campi della quale sono: const char *name; struct list_head list; int rating; cycle_t (*read)(struct clocksource *cs); void (*suspend)(struct clocksource *cs); void (*resume)(struct clocksource *cs); cycle_t cycle_last; cycle_t mask; La struct clocksource è usata per il tempo di sistema, ad es.: static inline s64 clocksource_cyc2ns(cycle_t cycles, u32 mult, u32 shift)

21 Alcune strutture e funzioni dell'architettura di time keeping Nel file: /usr/src/linux x.y.z/kernel/time/clocksource.c troviamo: static struct clocksource *curr_clocksource; static LIST_HEAD(clocksource_list); static DEFINE_MUTEX(clocksource_mutex); static char override_name[32]; e troviamo inoltre funzioni varie per lavorare con i timecounter e i clocksource.

22 Chiamate di sistema relative al tempo Le chiamate di sistema relative al tempo sono: time stime gettimeofday settimeofday adjtimex

23 sys_gettimeofday La sys_gettimeofday in kernel/time.c rimanda alla getnstimeofday in kernel/time/timekeeping.c; questa restituisce il time of day in una timespec passata come parametro. struct timespec { kernel_time_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ }; kernel_time_t è kernel_long_t che attualmente è un long Nelle prossime slide vengono riportati i pezzi di codice che si ottengono seguendo tramite i tags la sys_gettimeofday fino alla getnstimeofday.

24 sys_gettimeofday SYSCALL_DEFINE2(gettimeofday, struct timeval user *, tv, struct timezone user *, tz) { if (likely(tv!= NULL)) { struct timeval ktv; do_gettimeofday(&ktv); if (copy_to_user(tv, &ktv, sizeof(ktv))) return EFAULT; } if (unlikely(tz!= NULL)) { if (copy_to_user(tz, &sys_tz, sizeof(sys_tz))) return EFAULT; } return 0; }

25 sys_gettimeofday void do_gettimeofday(struct timeval *tv) { struct timespec now; getnstimeofday(&now); tv >tv_sec = now.tv_sec; tv >tv_usec = now.tv_nsec/1000; } EXPORT_SYMBOL(do_gettimeofday); dove si ha che la struct timeval è: struct timeval { kernel_time_t tv_sec; /* seconds */ kernel_suseconds_t tv_usec; /* microseconds */ };

26 sys_gettimeofday void getnstimeofday(struct timespec *ts) { WARN_ON( getnstimeofday(ts)); } EXPORT_SYMBOL(getnstimeofday); int getnstimeofday(struct timespec *ts) { struct timekeeper *tk = &timekeeper; unsigned long seq; s64 nsecs = 0;

27 sys_gettimeofday do { seq = read_seqbegin(&tk >lock); ts >tv_sec = tk >xtime_sec; nsecs = timekeeping_get_ns(tk); } while (read_seqretry(&tk >lock, seq)); ts >tv_nsec = 0; timespec_add_ns(ts, nsecs);

28 sys_gettimeofday /* * Do not bail out early, in case there were callers still using * the value, even in the face of the WARN_ON. */ if (unlikely(timekeeping_suspended)) return EAGAIN; return 0; } EXPORT_SYMBOL( getnstimeofday); EAGAIN è un errore che può capitare quando si fanno operazioni di I/O non bloccanti e significa che ora non ci sono dati disponibili e quindi bisogna riprovare in seguito.

29 Scelta del miglior device In arch/x86/kernel/hpet.c si trova: static struct clocksource clocksource_hpet = {.name = "hpet",.rating = 250,.read = read_hpet,.mask = HPET_MASK,.flags = CLOCK_SOURCE_IS_CONTINUOUS,.resume = hpet_resume_counter, #ifdef CONFIG_X86_64.archdata = {.vclock_mode = VCLOCK_HPET }, #endif }; In questo esempio vediamo come un rating di 250 è "hardwired" per l'hpet.

30 Scelta del miglior device Seguiamo i vari passi dalla registrazione di un nuovo device alla scelta del miglior device per il sistema. In arch/x86/kernel/time/clocksource.c si trova la funzione: int clocksource_register(struct clocksource *cs) Serve a registrare un clocksource, cosa indispensabile prima che il clock source possa essere usato. Le ultime 3 istruzioni della funzione invocano in sequenza: clocksource_enqueue(cs); clocksource_enqueue_watchdog(cs); clocksource_select(); Esaminiamo la clocksource_enqueue() e poi vediamo la clocksource_select:

31 Scelta del miglior device static void clocksource_enqueue(struct clocksource *cs) { struct list_head *entry = &clocksource_list; struct clocksource *tmp; } list_for_each_entry(tmp, &clocksource_list, list) /* Keep track of the place, where to insert */ if (tmp >rating >= cs >rating) entry = &tmp >list; list_add(&cs >list, entry);

32 Scelta del miglior device In arch/x86/kernel/time/clocksource.c si trova: static void clocksource_select(void) Tale funzione deve essere invocata possedendo il clocksource_mutex. Come ultima istruzione tale funzione invoca la funzione (che si trova in timekeeping.c): void timekeeping_notify(struct clocksource *clock) che a sua volta invocherà stop_machine(change_clocksource, clock, NULL); a cui passa il puntatore alla funzione static int change_clocksource(void *data)

33 Scelta del miglior device La change clock_clocksource infine, dopo aver eseguito write_seqlock_irqsave(&tk >lock, flags); invocherà le 2 funzioni tk_setup_internals(tk, new); timekeeping_update(tk, true);

34 Clocksource nel sysfs E' possibile avere informazioni sui clocksource del sistema leggendo i seguenti file in /sys/ cat /sys/devices/system/clocksource/clocksource0/current_clock source cat /sys/devices/system/clocksource/clocksource0/available_clo cksource

35 Modulo per reperire alcune informazioni di timekeeping Il modulo la13_module_time stampa alcune informazioni di timekeeping. Per reperire le informazioni necessarie sui clocksource si è pensato inizialmente di usare la funzione clocksource_get_next() ma si è scoperto che è stata rimossa; tuttavia nel kernel ne rimane una sola traccia, nello specifico una dichiarazione extern nel file: include/linux/clocksource.h extern struct clocksource* clocksource_get_next(void); Allora si è aggiunta una riga al codice del kernel per esportare la variabile "timekeeper"; il file per effettuare la modifica e la modifica stessa sono: kernel/time/timekeeping.c EXPORT_SYMBOL_GPL(timekeeper); In questa maniera si ha accesso alla variabile del kernel: struct timekeeper timekeeper;

IL TEMPO

IL TEMPO IL TEMPO LORENZO.BRACCIALE@UNIROMA2.IT DOVE STUDIARE Gapil http://users.lilik.it/~mirko/gapil/gapilse26.html#gapilsu125.html Linux http://www.linuxsa.org.au/tips/time.html IL FUSO ORARIO In Italia: GMT

Dettagli

Funzioni, puntatori, strutture. Lab. Calc. AA 2006/07

Funzioni, puntatori, strutture. Lab. Calc. AA 2006/07 Funzioni, puntatori, strutture sommario In questa lezione integriamo le informazioni fornite su puntatori e funzioni approfondendo i seguenti punti Puntatori a puntatori Puntatori e array come parametri

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Dettagli

Gestione periferiche I/O

Gestione periferiche I/O Gestione periferiche I/O Compiti del sottosistema IO Nascondere al programmatore i dettagli delle interfacce hw e dei dispositivi (utilizzo di controllori) Omogeneizzare la gestione di dispositivi diversi

Dettagli

Schedulazione in RTAI

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

Dettagli

Processi. Franco Maria Nardini

Processi. Franco Maria Nardini Processi Franco Maria Nardini La funzione main il kernel gestisce l avvio del vostro codice C (attraverso una funzione exec) routine speciale di start-up che prepara l ambiente di esecuzione per il main

Dettagli

Il linguaggio C. Puntatori e dintorni

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;

Dettagli

Il linguaggio C. Istruzioni, funzioni, dati strutturati

Il linguaggio C. Istruzioni, funzioni, dati strutturati Il linguaggio C Istruzioni, funzioni, dati strutturati Istruzioni Servono a dirigere il flusso di esecuzione di un programma controllano l ordine di esecuzione delle espressioni, quindi dei loro side effects

Dettagli

MISURA DEL TEMPO. Si possono distinguere due tipi principali di misura del tempo effettuate dal kernel:

MISURA DEL TEMPO. Si possono distinguere due tipi principali di misura del tempo effettuate dal kernel: MISURA DEL TEMPO Moltissime attività del computer, spesso in background, sono regolate dalla misura del tempo. Ad esempio, se il monitor si spegne automaticamente dopo aver terminato le attività alla console,

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Lezione R12. Sistemi operativi real-time I. Sistemi embedded e real-time

Lezione R12. Sistemi operativi real-time I. Sistemi embedded e real-time Lezione R12 I Sistemi embedded e 8 gennaio 2013 Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata SERT 13 R12.1 Di cosa parliamo in questa lezione? In

Dettagli

Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata

Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata Lezione R12 I Sistemi embedded e 8 gennaio 2013 Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata SERT 13 R12.1 Di cosa parliamo in questa lezione? In

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 0 (proposta) Lettura e Scrittura File in Java e C Luca Foschini Michele Solimando, Giuseppe Martuscelli

Dettagli

Spinlock, read-write spinlock, seqlock

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

Dettagli

Variabili e Funzioni. Informatica 1 / 19

Variabili e Funzioni. Informatica 1 / 19 Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 19 luglio 2013 (turno 1) Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare

Dettagli

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

Dettagli

Davide Gennaretti, Matteo Nicolini

Davide Gennaretti, Matteo Nicolini Seminario sui Microcontrollori Davide Gennaretti, Matteo Nicolini AA 2003-04 II Facoltà di Ingegneria Elettronica Cesena Cosa sono i microcontrollori? Piccoli computer concentrati in un chip Un Datapath

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

La sintassi del C APPENDICE H

La sintassi del C APPENDICE H APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

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

Dettagli

Sistemi operativi Modulo II I semafori 2 Select

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

Dettagli

CALCOLATORI ELETTRONICI II

CALCOLATORI ELETTRONICI II CALCOLATORI ELETTRONICI II L INTERFACCIA PARALLELA Argomenti della lezione Le interfacce parallele Il dispositivo Intel 855 Architettura Funzionamento Le interfacce parallele Esempio Le interfacce parallele

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi 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

Dettagli

Il registratore digitale

Il registratore digitale Il registratore digitale Nella pratica di laboratorio capita spesso di dover registrare segnali lentamente variabili per intervalli di tempo lunghi. Lo scopo della seconda esperienza è quello di realizzare

Dettagli

Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1

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

Dettagli

Corso di programmazione Arduino DI MALVEZZI DAVIDE

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

Dettagli

memoria virtuale protezione

memoria virtuale protezione Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente.

Dettagli

Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità

Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni: la dichiarazione

Dettagli

Istruzioni e linguaggio macchina

Istruzioni e linguaggio macchina Istruzioni e linguaggio macchina I linguaggi macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito processori diversi hanno linguaggi macchina simili scopo: massimizzare

Dettagli

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche Device driver - gestori delle periferiche Struttura interna del sistema operativo Linux Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici Interagiscono con

Dettagli

La memoria cache. Informatica generale

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

Dettagli

Assembly. Modello x86

Assembly. Modello x86 Assembly Modello x86 1 Il microprocessore Un MICROPROCESSORE è un circuito integrato dotato di una struttura circuitale in grado di attuare un prefissato SET di ISTRUZIONI 2 Caratteristiche del microprocessore

Dettagli

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H Architettura dei calcolatori e sistemi operativi Architettura MIPS e set istruzioni Capitolo 2 P&H Instruction Set Architecture ISA Linguaggio assemblatore e linguaggio macchina ISA processore MIPS Modello

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 9 luglio 2012 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare tutti

Dettagli

ERRORI GENERATI DAL BIOS IN FASE DI AVVIO. Di Abe Wayer

ERRORI GENERATI DAL BIOS IN FASE DI AVVIO. Di Abe Wayer ERRORI GENERATI DAL BIOS IN FASE DI AVVIO Di Abe Wayer XX Generalmente associati alla scheda madre 101 Main system board interrupt failure Scheda madre con circuiti alterati. Probabilmente la scheda è

Dettagli

RIKAYA Operating System

RIKAYA Operating System RIKAYA Operating System Specifiche di Progetto FASE 2 v.0.1 Anno Accademico 2018-2019 (da un documento di Marco di Felice) RIKAYA OS Sistema Operativo in 6 livelli di astrazione. Livello 6: Shell interattiva

Dettagli

Il linguaggio C. Il preprocessore...

Il linguaggio C. Il preprocessore... Il linguaggio C Il preprocessore... 1 Il preprocessore Viene invocato prima della compilazione vera e propria Esegue delle manipolazioni testuali sul file sostituisce nomi con testo elimina e inserisce

Dettagli

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22 Lezione 21 e 22 - Allocazione dinamica delle matrici - Generazione di numeri pseudocasuali - Funzioni per misurare il tempo - Parametri del main - Classificazione delle variabili Valentina Ciriani (2005-2008)

Dettagli

Sincronizzazione Soluzioni hardware

Sincronizzazione Soluzioni hardware Sincronizzazione Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Soluzioni hardware Le soluzionihardware al problemadellasc possono essere classificate

Dettagli

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Dettagli

Programmazione a oggetti in C nel kernel di Linux. Luca Ceresoli

Programmazione a oggetti in C nel kernel di Linux. Luca Ceresoli Programmazione a oggetti in C nel kernel di Linux Luca Ceresoli Introduzione Programmazione non orientata agli oggetti Il software è un insieme di procedure che manipolano dati Le procedure accedono ai

Dettagli

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire efficientemente l'elaboratore e le sue periferiche,

Dettagli

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Cosa vedremo: Esecuzione di un programma Concetto di processo Interruzioni Sistemi monotasking e multitasking Time-sharing Tabella dei

Dettagli

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3) Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di

Dettagli

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento b) dereferenziazione e

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione : Elementi lessicali del C Vittorio Scarano Corso di Laurea in Informatica Elementi lessicali e token Costanti Identificatori Operatori operatori di incremento/decremento

Dettagli

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

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

Directory. Le directory unix sono file.

Directory. Le directory unix sono file. Le directory unix sono file. Directory Molte system call per i file ordinari possono essere utilizzate per le directory. E.g. open, read, fstat, close. Tuttavia le directory non possono essere create con

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

Di seguito per ciascun tipo di BIOS sono riportate le combinazioni di beep. In particolare sono analizzati i seguenti BIOS:

Di seguito per ciascun tipo di BIOS sono riportate le combinazioni di beep. In particolare sono analizzati i seguenti BIOS: Di seguito per ciascun tipo di BIOS sono riportate le combinazioni di beep. In particolare sono analizzati i seguenti BIOS: 1. BIOS AMI 2. BIOS AWARD 3. BIOS AST 4. BIOS COMPAQ 5. BIOS IBM (desktop) 6.

Dettagli

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

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

Dettagli

Ing. Emiliano Capuzzo Remote Contro NEC 11/11/2003. Remote Control NEC

Ing. Emiliano Capuzzo Remote Contro NEC 11/11/2003. Remote Control NEC Remote Control NEC Questo progetto risponde all esigenza di decodificare ed utilizzare i codici prodotti da telecomandi IR che adottano la codifica NEC Trasmissione Format. Questo tipo di codifica è attualmente

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017

Dettagli

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA COMPITI DEL SOTTOSISTEMA DI I/O ARGOMENTI

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA COMPITI DEL SOTTOSISTEMA DI I/O ARGOMENTI GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un di I/O 1. Nascondere al programmatore i dettagli delle interfacce

Dettagli

Capitolo 5 - Funzioni

Capitolo 5 - Funzioni Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente

Dettagli

Macchina di Riferimento: argomenti

Macchina di Riferimento: argomenti Macchina di Riferimento: argomenti L'architettura di una macchina MIPS Organizzazione della memoria I registri della CPU L'esecuzione dei programmi Il ciclo fetch-execute Il simulatore SPIM 1 Architettura

Dettagli

Secondo biennio Articolazione Informatica Sistemi e Reti Prova Terza

Secondo biennio Articolazione Informatica Sistemi e Reti Prova Terza Il clock della CPU A. fornisce la data corrente ai programmi macchina B. temporizza le operazioni elementari C. ha la stessa frequenza del clock del bus di sistema D. si misura in bit per secondo (bps)

Dettagli

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

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

Dettagli

VERIFICA DI SISTEMI. 5 Domanda [1 punto] Calcolare la velocità di trasferimento dei seguenti hard disk:

VERIFICA DI SISTEMI. 5 Domanda [1 punto] Calcolare la velocità di trasferimento dei seguenti hard disk: VERIFICA DI SISTEMI 1 Domanda [2 punti] Illustra la funzione della CPU e degli eventuali elementi che la costituiscono, specificando quali sono i parametri che ne caratterizzano il funzionamento. Spiega

Dettagli

Gestione dinamica della memoria

Gestione dinamica della memoria Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.

Dettagli

Le Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia

Le Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Le Funzioni in C Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2010/2011 docente: prof. Michele Salvemini 1/24 Sommario Le funzioni Il

Dettagli

Architettura del calcolatore (Seconda parte)

Architettura del calcolatore (Seconda parte) Architettura del calcolatore (Seconda parte) Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin LINGUAGGIO E ORGANIZZAZIONE DEL CALCOLATORE Linguaggio assembly

Dettagli

Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO) Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO) 1^ parte Cosa è Arduino? Arduino è una piattaforma di sviluppo open-source basata su una semplice scheda

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori T Esercitazione 4 (proposta) Focalizzazione conoscenze acquisite Antonio Corradi, Luca Foschini Michele Solimando, Giuseppe

Dettagli

Variabili e Costanti

Variabili e Costanti Struttura di un Programma C++ Un programma descrive una sequenza di azioni ogni azione è descritta da una espressione un insieme di espressioni seguite da ; è un istruzione espressione = più piccola unità

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 19 febbraio 2013 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare

Dettagli

Memorie a semiconduttore

Memorie a semiconduttore Memoria centrale a semiconduttore (Cap. 5 Stallings) Architettura degli elaboratori -1 Pagina 209 Memorie a semiconduttore RAM Accesso casuale Read/Write Volatile Memorizzazione temporanea Statica o dinamica

Dettagli

Architettura del Calcolatore

Architettura del Calcolatore Giuseppe Manco Lezione 3 17 Ottobre 2003 Architettura del calcolatore Il calcolatore è uno strumento programmabile per la rappresentazione, la memorizzazione e l elaborazione delle informazioni un calcolatore

Dettagli

Laboratorio di Algoritmi e Strutture Dati Ingegneria e Scienze Informatiche - Cesena A.A

Laboratorio di Algoritmi e Strutture Dati Ingegneria e Scienze Informatiche - Cesena A.A Ingegneria e Scienze Informatiche - Cesena A.A. 2014-2015 pietro.dilena@unibo.it MergeSort MergeSort MergeSort: esempio MergeSort: pseudocodice Algoritmo di ordinamento ricorsivo basato sulla tecnica Divide

Dettagli

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Dettagli

Strutture Dati per Inserimento Ordinato. Luca Abeni

Strutture Dati per Inserimento Ordinato. Luca Abeni Strutture Dati per Inserimento Ordinato Luca Abeni Esempio: Ordinamento di Numeri A cosa servono i tipi di dato strutturati? Non bastano i tipi scalari? Capiamolo con un esempio... Problema: dato un insieme

Dettagli

Esercizi. La funzione swapint() primo tentativo

Esercizi. La funzione swapint() primo tentativo Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include

Dettagli

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti 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

Dettagli

Architetture dei Dispositivi Programmabili Avanzati Altera

Architetture dei Dispositivi Programmabili Avanzati Altera Architetture dei Dispositivi Programmabili Avanzati Altera Elettronica dei Sistemi Digitali LA Cesena, 4 Febbraio 2005 Aldo Romani aromani@deis.unibo.it tel. 051 209 3811 Lab. Star-Arces, V.le Pepoli,

Dettagli

Corso di Fondamenti di Programmazione canale E-O. Strutture. Strutture. Definizione di strutture (2) Definizione di strutture (1)

Corso di Fondamenti di Programmazione canale E-O. Strutture. Strutture. Definizione di strutture (2) Definizione di strutture (1) Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Strutture e Unioni DD Cap. 10, pp. 379-391, 405-406 KP Cap. 9, pp. 361-379 Strutture Strutture Collezioni di variabili correlate (aggregati)

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 4 Focalizzazione conoscenze acquisite Luca Foschini Michele Solimando Anno accademico 2016/2017 Esercitazione

Dettagli

Lezione E12. Sistemi operativi open-source, embedded e real-time

Lezione E12. Sistemi operativi open-source, embedded e real-time Lezione E12 Sistemi operativi open-source, embedded e real-time 17 dicembre 2013 Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata SOSERT 13 E12.1 Di

Dettagli

Laboratorio reti AA 2007/2008. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione

Laboratorio reti AA 2007/2008. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione Laboratorio reti AA 2007/2008 Dott. Matteo Roffilli roffilli@csr.unibo.it Ricevimento in ufficio dopo la lezione 1 Laboratorio reti AA 2007/2008 Per esercitarvi fate SSH su: alfa.csr.unibo.it si-tux00.csr.unibo.it.

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Esercizio 1. (3 punti) Fondamenti di Informatica PROVA SCRITTA 25 gennaio 2016 Data l istruzione assembler MIPS add $1,$2,$3, memorizzata all interno della memoria istruzioni della CPU, descrive la sua

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

Lezione 8: Stringhe ed array multidimensionali

Lezione 8: Stringhe ed array multidimensionali Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si

Dettagli

5 Thread. 5 Thread. 5 Thread. Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni:

5 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

Dettagli

Il processore Intel 8086

Il processore Intel 8086 Il processore Intel 8086 Il processore Intel 8086, introdotto sul mercato nel giugno 1978 è stato il primo microprocessore a 16 bit; esso fu utilizzato nel 1981 per il Personal Computer IBM XT. È il progenitore

Dettagli

21/09/2015 SISTEMI E RETI. Router Cisco. Parte 1 - Introduzione. A cura dell Ing. Claudio Traini

21/09/2015 SISTEMI E RETI. Router Cisco. Parte 1 - Introduzione. A cura dell Ing. Claudio Traini SISTEMI E RETI Router Cisco Parte 1 - Introduzione A cura dell Ing. Claudio Traini 1 router sottoreti terminali Funzioni svolte dai Router I Router consentono l interconnessione tra sottoreti diverse I

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 5 30/10/2018

Esercitazioni di Fondamenti di Informatica - Lez. 5 30/10/2018 Esercitazioni di Fondamenti di Informatica - Lez. 30/10/018 Esercizi sulle funzioni in C I codici e le soluzioni degli esercizi sono nella cartella parte1 1. Scrivere i prototipi delle seguenti funzioni.

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 13 febbraio 2017 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare

Dettagli

Ingegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo

Ingegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo Ingegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo In C++ è possibile distinguere due aree distinte di memoria: memoria stack e memoria heap E

Dettagli

Device drivers. Una brevissima descrizione dell'astrazione dell'accesso a periferiche tramite device files. Device driver e kernel modules

Device drivers. Una brevissima descrizione dell'astrazione dell'accesso a periferiche tramite device files. Device driver e kernel modules Device drivers Una brevissima descrizione dell'astrazione dell'accesso a periferiche tramite device files Marco Prandini Device driver e kernel modules Alcuni sono cablati nel kernel, la maggior parte

Dettagli

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61 Capitolo 5 Array e collezioni c 2005 Pearson Education Italia Capitolo 5-1 / 61 Sommario: Array e collezioni 1 Array Array di oggetti Lunghezza di un array Accesso agli elementi di un array Array e cicli

Dettagli

I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE. Classe: 5Ci

I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE. Classe: 5Ci I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE Disciplina: Tecnologie e Progettazione di Sistemi Informatici e di Telecomunicazione Cognome e Nome:

Dettagli

8 Microcontrollori PIC

8 Microcontrollori PIC 8 Microcontrollori PIC 8.1 Descrizione generale Un microcontrollore è un dispositivo elettronico che opportunamente programmato è in grado di svolgere diverse funzioni in modo autonomo. Essenzialmente

Dettagli

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare

Dettagli

Struttura di un programma C++

Struttura di un programma C++ Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout

Dettagli