La gestione del clock in Minix

Documenti analoghi
Sistemi Operativi. Bruschi Martignoni Monga. La gestione del clock in MINIX Il clock Gestione clock MINIX Clock task IRQ Handler Message handler

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Gestione periferiche I/O

Periferiche CPU. Misure e Sistemi Microelettronici Sistemi 6-1 SREG. Data Bus Address Bus Control Bus

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

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

Corso di programmazione Arduino DI MALVEZZI DAVIDE

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

Input/output. Sistemi Operativi Lez. 32. Corso: Sistemi Operativi Danilo Bruschi A.A. 2009/2010

La gestione dei processi in Minix. Sistemi Operativi Lez. 12

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA. Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA. Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA. Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA. Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O

CONTATORE/TIMER PROGRAMMABILE CTC Z80 1. Piedinatura 2. Struttura interna 4. Modo timer 5. Modo Counter 8. Programmazione del CTC 13

Input/output. Sistemi Operativi Lez. 32. Corso: Sistemi Operativi Danilo Bruschi A.A. 2011/2012

Davide Gennaretti, Matteo Nicolini

Il sistema delle interruzioni nel processore MC68000 (cenni)

Sistemi Operativi. Bruschi Martignoni Monga. La gestione. Concetti generali Comandi Interrupt Pila sw Deadlock Gestione dei deadlock

Architettura del calcolatore (Seconda parte)

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

Componenti principali

Input/output. Sistemi Operativi Lez. 11. Corso: Sistemi Operativi Danilo Bruschi A.A. 2013/2014

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

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo. Classificazione. I microcontrollori

Architettura dei sistemi di elaborazione (Input/Output parte 2)

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

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

Componenti e connessioni. Capitolo 3

Chiamata di procedura remota

L architettura del calcolatore (Seconda parte)

Sistemi Operativi. Bruschi Martignoni Monga. La gestione. MINIX Architettura I device driver Block device. Memory driver Implementazione

Chiamata di procedura remota

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo

Struttura dei Sistemi di Calcolo

La gestione dei processi in Minix

Sistemi a microprocessore

Sistemi Operativi 1. Lezione III: Concetti fondamentali. Mattia Monga. 7 marzo 2008

Sistemi Operativi 1. Mattia Monga. 7 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Trasparenze del Corso di Sistemi Operativi

Interruzioni parte prima. Inquadramento del problema

Arduino Ciclo while, do while, for

Il Theremin con il microcontrollore

Gestione software Il meccanismo delle interruzioni - 3

il Nucleo e la gestione dei processi

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni

Interruzioni. Inquadramento del problema

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI. Compiti del sottosistema di I/O

Il problema dello I/O e gli Interrupt. Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano

Input/output. Sistemi Operativi Lez.14. Corso: Sistemi Operativi Danilo Bruschi A.A. 2006/2007

Input/Output. Input/Output

Pag. 1. Il Nucleo del sistema operativo (la gestione dei processi)

Calcolatori Elettronici T Ingegneria Informatica 04 Interruzioni

Signalling (IPC) Signalling (segnalazione)

Lezione XII: La gestione delle eccezioni in MINIX

MAC1 Simulatore di Microprocessore

Comunicazione con sincronizzazione estesa

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Struttura dei Sistemi di Calcolo

Esercizio sulla gestione di file in Unix. Sistemi Operativi T AA

LABORATORIO DI SISTEMI OPERATIVI

Corso di Calcolatori Elettronici I. Interruzioni. Prof. Roberto Canonico

Esercizio 1. Progettare la PO a partire dal microprogramma eseguibile e successivamente:

Introduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

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

Esercizio 1. Scrivere un programma C in cui: Il master thread:

LA GESTIONE DELLA I/O

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

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

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

C UDP in Windows p53 - variante 1

Processi Aspetti avanzati. Terminazione Segnali

Principali periferiche

Sistemi Operativi. Lezione 3 Processi e Thread

Sistemi di Elaborazione: esercizio con il D12

Sistemi operativi. Lez. 9: primitive per la concorrenza i semafori

Struttura di timekeeping. Francesco Famulari

Il registratore digitale

Informatica A (per gestionali) A.A. 2004/2005. Esercizi C e diagrammi a blocchi. Preparazione prima prova intermedia

Vogliamo far lampeggiare i led collegati come in figura ai bit della porta D del PIC 18F8722 presente sulla demo board in dotazione al laboratorio.

Corso di Calcolatori Elettronici I Interruzioni ing. Alessandro Cilardo

Sistemi Operativi (M. Cesati)

Sincronizzazione. Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Architettura del Calcolatore

Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011. Gruppo. Cognome Riontino Nome Raffaele. Cognome Nome

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi

PARTE 1 CONCETTI INTRODUTTIVI 2

Variabili e Funzioni. Informatica 1 / 19

Fondamenti di Informatica

Segnali. Tecnica di comunicazione asincrona tra processi. Si può solo inviare uno tra un insieme fissato di segnali

Sistemi Operativi (M. Cesati)

Misure di intervalli temporali

Lezione XXVII: La gestione dell I/O in MINIX

Sistemi Operativi 1. Mattia Monga. 20 maggio Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi. La gestione delle risorse

IL SISTEMA DELLE INTERRUZIONI

Transcript:

La gestione del clock in Minix Sistemi Operativi Lez. 29 1

La periferica Il cristallo di quarzo sottoposto a tensione genera un segnale con frequenza che varia da 5 a 200 MHz Ad ogni ciclo il contatore viene decrementato quando raggiunge il valore zero: La periferica invia un Interrupt HW (IRQ 8) Il contatore viene re-inizializzato L intervallo di tempo che intercorre tra un interrupt ed il successivo è denominato clock tick 2

Esempio Un clock chip che contiene un contatore a 16 bit ed un cristallo che genera segnali a 5 MHz, genererà clock tick della durata compresa tra 0,2 microsecondi e 13,1 millisecondi E se il clock è a 100 Mhz? Solitamente all interno di un PC esistono più chip di clock programmabili I chip di clock usati per la sincronizzazione di CPU e BUS di sistema usano circuiti diversi da quelli usati per la gestione degli eventi 3

Funzionalità svolte Time of the day: solitamente ottenuto memorizzando il numero di secondi (in termini di tick) trascorsi a partire dal 1/01/1970 4

Funzionalità svolte Segnalare la terminazione dei quanti di tempo: i quanti di tempo sono definiti in termini di tick ad ogni interrupt di clock si decrementa il quanto di 1 Accounting per l uso della CPU 5

Funzionalità svolte Gestire segnali a tempo per conto dei processi eseguiti dal sistema: alcuni processi basano le loro azioni sull avverarsi o meno di certi eventi, entro intervalli di tempo predeterminati (es. ack di TCP) 6

Funzionalità svolte Watchdog timers: simili ai precedenti, con la differenza che allo scadere del tempo prefissato invece di inviare segnali richiamano opportune procedure di gestione Profiling: raccogliere i tempi di esecuzione di diverse componenti del sistema o dei processi utente 7

Implementazione Le componenti del sistema operativo coinvolte nella gestione del clock sono: Interrupt handler Clock driver (clock task) Che si appoggia su do_clocktick per svolgere le operazioni richieste Routine di servizio: leggere il clock, leggere l ora del sistema, leggere dei registri all interno del chip 8

Driver È la prima componente che si occupa del clock ad essere eseguita sul sistema e quindi deve provvedere alla inizializzazione del dispositivo Viene avviata in fase di boot Costituita da un loop infinito che riceve solo un tipo di messaggi provenienti da HARD_INT e generati dall interrupt handler 9

Clock driver 10

init_clock() clock_hook.proc_nr_e = CLOCK; Terminata l esecuzione di init_clock(), dopo 16,67 millisecondi arriverà il primo clock interrupt 11

irq_handlers [nr_irq_hook] irq_hook_t irq_hook_t irq_hook_t irq_hook_t 12

Strutture dati: irq_hook_t STRUTTURA DATI DI RIFERIMENTO PER LA GESTIONE DEGLI INTERRUPT, ESISTE ALMENO UN ELEMENTO irq_hook_t PER OGNI TIPO DI INTERRUPT *HANDLER n.ro IRQ hook_id pid driver policy next Generic handler 13

Strutture dati Minix typedef unsigned long irq_policy_t; typedef unsigned long irq_id_t; typedef struct irq_hook { struct irq_hook *next; /* next hook in chain */ int (*handler)(struct irq_hook *); /* interrupt handler */ int irq; /* IRQ vector number */ int id; /* id of this hook */ int proc_nr_e; /* (endpoint) NONE if not in use */ irq_id_t notify_id; /* id to return on interrupt */ irq_policy_t policy; /* bit mask for policy */ } irq_hook_t; typedef int (*irq_handler_t)(struct irq_hook *); 14

00089 /*===========================================================================* 00090 * put_irq_handler * 00091 *===========================================================================*/ 00092 PUBLIC void put_irq_handler(hook, irq, handler) 00093 irq_hook_t *hook; 00094 int irq; 00095 irq_handler_t handler; 00096 { 00097 /* Register an interrupt handler. */ 00098 int id; 00099 irq_hook_t **line; 00100 00101 if (irq < 0 irq >= NR_IRQ_VECTORS) 00102 panic("invalid call to put_irq_handler", irq); 00103 00104 line = &irq_handlers[irq]; 00105 id = 1; 00106 while (*line!= NULL) { 00107 if (hook == *line) return; /* extra initialization */ 00108 line = &(*line)->next; 00109 id <<= 1; 00110 } 00111 if (id == 0) panic("too many handlers for irq", irq); 00112 00113 hook->next = NULL; 00114 hook->handler = handler; 00115 hook->irq = irq; 00116 hook->id = id; 00117 *line = hook; 00118 00119 irq_use = 1 << irq; 00120 } 15

interrupt_handler() Per prima cosa aggiorna realtime (n.ro di ticks trascorsi dal boot) prevedendo eventuali lost_ticks, variabile globale aggiornata da driver e interrupt handler 16

interrupt_handler Aggiorna il PCB del processo nel caso di processo di sistema (quindi non billable) addebita i tick al processo billable di riferimento 17

interrupt_handler Nel caso di quanto terminato, o di watchdog timers scaduto viene richiamato il clock driver 18

do_clocktick 19

do_clocktick 20

Clock Service 21