Gliederung Hardware fuer die Zeitmessung Zeitmanagement auf Uniprozessorsystemen. Timing Measurements. Timo Schneider. 4.



Ähnliche Dokumente
Interrupt-Programmierung

Mikrocontrollertechnik

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Programmieren für Ingenieure Sommer Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

CU-R-CONTROL. Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32. Autor: Christian Ulrich

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Protokollbeschreibung Modbus TCP für EMU TCP/IP Modul

3.14 Die Programmieroberfläche Programmierung

Einführung in die Programmierung

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Bekannte Effekte bei Soft- und Hardware der ESTEC Datenlogger sowie der PC Auswertesoftware

Bedienungs- & Installationsanleitung COMMPACT / COMMPACT Audio V2.0

AN025. Application Note 025 zu MODULAR-4 (ML3 und ML5) Messen der CPU-Auslastung im Echtzeitbetrieb

Stepperfocuser 2.0 mit Bootloader

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

1 Belastung. 1.1 Standortbestimmung 1.2 Belastungsvorhersage 1.3 Favoriten

Professionelle Seminare im Bereich MS-Office

DE/AT Bedienungsanleitung. devireg 550

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Dokumentenverwaltung

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

EchoLink und Windows XP SP2

Anleitung Smargo mit DreamBox und CCcam.

Versuch 3: Sequenzielle Logik

Pass-Thru an einen Ford-Fahrzeug

"Memory Stick" zur Programmierung der comfort 8+ Lichtsteuranlage mit PC Software "scenes editor"

Internet online Update (Mozilla Firefox)

Hilfe bei Problemen mit der Datenübertragung

b) Gegeben sei folgende Enumeration: enum SPRACHE {Deutsch, Englisch, Russisch};

easyident Türöffner easyident Türöffner Art. Nr. FS-0007 FS Fertigungsservice

Der Anrufbeantworter. Service-Telefon: Eine Verbindung mit Zukunft. MDCC / Stand 10/10

WGPV Leistungsverrechnung

s aus -Programm sichern Wählen Sie auf der "Startseite" die Option " s archivieren" und dann die entsprechende Anwendung aus.

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

DE... Guldmann Service and Information Console SW v Bedienungsanleitung - Version 6

RO-Serie CAN-Übertragungsprotokoll

Wireless Clickkit Kurzanleitung

Benutzerhandbuch - Elterliche Kontrolle

Kosten-Leistungsrechnung Rechenweg Optimales Produktionsprogramm

Bedienungsanleitung C300 Sprachinfoserver der PH Freiburg

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2)

FAQ Verwendung. 1. Wie kann ich eine Verbindung zu meinem virtuellen SeeZam-Tresor herstellen?

Synchronisations- Assistent

Einführung in die Programmierung

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Der SD-Kartenslot befindet sich an der rechten Gehäuseseite unterhalb der rechteckigen hellgrauen Gummiabdeckung.

Zählen von Objekten einer bestimmten Klasse

Problem crazytrickler unter Windows 8:

Staatlich geprüfter EDV-Führerschein

INSTALLATIONSANLEITUNG TV-SOFTWARE UPDATE

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

1. So beginnen Sie eine Kalkulation

Installation externer Sensor LWS 001

PDF-Dateien erstellen mit edocprinter PDF Pro

Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt.

Installationsanleitung

MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand:

Regiometer. Bedienungsanleitung

Auslesen der Fahrtdaten wiederholen Schritt für Schritt erklärt (Funktion Abfrage zur Datensicherung erstellen )

Anleitung zur Software Aktualisierung für die gemeinsamen Komponenten an der Maschine (Stand August 2005)

GSM Scanner Bedienungsanleitung

1 Aufgaben zu Wie funktioniert ein Computer?

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

How to do? Projekte - Zeiterfassung

Dokumentation zum Spielserver der Software Challenge

Anleitung zur Nutzung des SharePort Utility

s empfangen und versenden mit Apple Mail 3.x

Wegleitung Internetbestellungen

Fidbox App. Version 3.1. für ios und Android. Anforderungen für Android: Bluetooth 4 und Android Version 4.1 oder neuer

A Lösungen zu Einführungsaufgaben zu QueueTraffic

Deklarationen in C. Prof. Dr. Margarita Esponda

Bundesverband Flachglas Großhandel Isolierglasherstellung Veredlung e.v. U g -Werte-Tabellen nach DIN EN 673. Flachglasbranche.

Tel.: Fax: Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen.

Installationsanleitung DIALOGMANAGER

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

BENUTZERHANDBUCH für. Inhaltsverzeichnis. 1. Anmeldung. 2. Rangliste ansehen. 3. Platzreservierung. 4. Forderungen anzeigen

Bedienungsanleitung Programmiersoftware Save `n carry PLUS. Inhaltsangabe

P(k, λ) = λ k /k!*exp(-λ) angegeben werden kann.

GSD-Radionik iradionics Android-App

Anbindung des eibport an das Internet

Direkter Zugriff auf I/O-Ports bzw. CPU-Register

Die Rückgabe kann über folgende, von uns getestete Programme / Apps vorgenommen werden: Adobe Digital Editions Sony Reader for PC Bluefire Reader

K L A U S U R D E C K B L A T T

Konfiguration des eigenen TUphone-Profils über TISS

Fehlermonitor. Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker

Navigation. Drucken Klicken Sie auf ein Symbol, um nähere Informationen zu erhalten. Papierhandhabung Anzeigen der Online-Informationen

Windows 10 activation errors & their fixes.

So gehts Schritt-für-Schritt-Anleitung

Quickreferenz V1.1. Frank Naumann

Transkript:

4. Juni 2005

1 2 Timer Interrupts Software Timer System Calls

Die Real Time Clock befindet sich zusammen mit CMOS-RAM (Bios) auf einem Chip, zb Motorola 1416818. Wenn der PC ausgeschaltet wird, wird die Spannungsversorgung mittels einer Batterie aufrechterhalten. Linux nutzt die RTC lediglich um das aktuelle Datum und die aktuelle Uhrzeit auszulesen.

Alle 80x86 Prozessoren haben einen CLK-Eingang, der mit einem externen Oszillator beschaltet ist. Die meisten Prozessoren haben ein 64-Bit Register welches von jedem CLK-Signal inkrementiert wird. Die Oszillatorfrequenz wird jedoch nicht in den Kernel einkompiliert, beim Bootprozess muss also die Taktrate festgestellt werden. Diese Funktion uebernimmt calibrate tsc(): Das TSC-Register wird gelesen, dann wird ca. 50 Millisekunden gewartet und nochmal das TSC-Register ausgelesen. Die Differenz der beiden TSC-Werte gibt die Anzahl der in 50 Millisekunden verstrichenen Takte an, hieraus wird die Dauer eines Taktes und in Mikrosekunden errechnet.

TSC auslesen - Codebeispiel Das TSC-Register soll mittels des Assemblerbefehls rdtsc zweimal ausgelesen werden, wobei die Messzeitpunkte gespeichert werden. Aus der Differenz der TSC Werte in Verbindung mit δt kann dann der CPU-Takt bestimmt werden.

Neben RTC und TSC gibt es auf x86-architekturen einen weiteren Chip zur Zeitmessung, den PIT. Den PIT kann man sich als Eieruhr mit Endlosschleife vorstellen: Anstatt einem Alarmton loest der PIT einen Timer-Interrupt aus. Fuer den PIT wird meist ein 8254 CMOS Chip verwendet, der mit den I/O Ports 0x40-0x43 angesprochen wird.

Programmierung des PIT Konstanten HZ = Anzahl Timer Interrupts pro Sekunde (= 100) CLOCK TICK RATE = Freq. des Oszillators. (=1.193.180) LATCH =, um den PIT zu programmieren. CLOCK TICK RATE HZ Initialisierung des PIT outb p(0x34, 0x43); outb p(latch & 0xff, 0x40); /* LSB */ outb(latch >> 8, 0x40); /* MSB */

Behandlung von Timer-Interrupts Timer Interrupts Software Timer System Calls Auf einem Uniprozessorsystem werden alle zeitabhaengigen Aktivitaeten von einem vom PIT ausgeloesten Timer-Interrupt angestossen. Die Funktion timer interrupt() behandelt diese Interrupts: Wenn ein TSC-Register vorhanden ist: last tsc low 32 niederwertigen Bits des TSC-Registers. delay at last interrupt Zeitspanne (in µs) zwischen auftreten des Interrupts und Ausfuehren der ISR. do timer interrupt() ausfuehren: do timer() ausfuehren. (aktiviert bottom half) x86 do profile() ausfuehren, wenn Interrupt im Kernelmode auftrat eventuell set rtc mmss() ausfuehren um die RTC nachzustellen

TIMER BH bottom half Timer Interrupts Software Timer System Calls Ruft lediglich zwei Funktionen auf: update times() und run timer list(). Erstere sorgt dafuer, dass xtime die richtige Zeit enthaelt. Letztere verwaltet die Software-Timer.

Dynamische Timer Timer Interrupts Software Timer System Calls struct timer list { struct list head list; unsingned long expires; unsingned long data; void (*function)(unsigned long); }; Funktionen die auf Timern arbeiten void init timer(struct timer list * timer) void add timer(struct timer list * timer) int mod timer(struct timer list*timer,unsigned long expire) int del timer(struct timer list * timer) int del timer sync(struct timer list *timer)

Wichtige Systemcalls Timer Interrupts Software Timer System Calls int gettimeofday(struct timeval *tv, struct timezone *tz) int adjtimex(struct timex *buf); int setitimer(int which, const struct itimerval *value, struct itimer- val *ovalue); unsigned int alarm(unsigned int seconds);