Vorlesung 5: Interrupts

Ähnliche Dokumente
Vorl. 6: Single- und Multitasking

Systeme 1. Kapitel 9.2. Interaktion von Hardware und Betriebssystem Linux-Kernel und x86 Systeme

L3. Datenmanipulation

Staatlich geprüfter EDV-Führerschein

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Betriebssysteme BS-V SS Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform.

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Teil VIII Von Neumann Rechner 1

Ein und Ausgabe. von Neumann Konzept enthält folgende Komponenten: Rechenwerk Steuerwerk Speicher Eingabewerk Ausgabewerk (siehe 1.

Die Mikroprogrammebene eines Rechners

Aufgabe 2 - Erweiterung um PIC und Interrupts

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

Angewandte Informatik

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Ein kleines Computer-Lexikon

Microcontroller Kurs Programmieren Microcontroller Kurs/Johannes Fuchs 1

Softwarelösungen: Versuch 4

Teil I: Wat isse ne Mikrokontroller?

Einführung in die Systemprogrammierung

Computer-Architektur Ein Überblick

Computer: PC. Informationstechnik für Luft-und Raumfahrt Aerospace Information Technology

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

Betriebssysteme Kap B: Hardwaremechanismen

Aufbau und Funktionsweise eines Computers

3. Rechnerarchitektur

Rechnernutzung in der Physik. Betriebssysteme

Operating System Kernels

Rechner Architektur. Martin Gülck

Tag 2 Eingabe und Interrupts

Echtzeitbetriebssysteme (am Beispiel QNX) Dr. Stefan Enderle HS Esslingen

Aufgabe 2 - Erweiterung um PIC und Interrupts

Rechnerarchitektur Atmega Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Embedded Software Engeneering mit dem Raspberry Pi

Realisierung: virtueller Prozessor: der reale Prozessor wird periodisch dem Programm zugewiesen Im Prozessor: durch Task-Status Segment (TSS)

Rechnerarchitekturen und Betriebssysteme (CS201): Intro Betriebssysteme, SW Interrupts, Supervisory Call

Inhaltsverzeichnis. Definition Motivation Idee Problem auf x86. QEMU KVM Quickstart Speichermedien Beispiele Monitor Ausblick.

Inhaltsverzeichnis. 1.1 Der Begriff des Betriebssystems 1.2 Zur Geschichte der Betriebssysteme 1.3 Aufbau eines Rechners

Anleitung zur Schnellinstallation TU3-SA 1.01

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Embedded-Linux-Seminare. Linux als Betriebssystem

x86 Open Source Virtualisierungstechniken Thomas Glanzmann

Ein Laufzeitsystem für hochgradig parallele Simulationen

1. Übung - Einführung/Rechnerarchitektur

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Sicheres C Programmieren in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester

Projekt für Systemprogrammierung WS 06/07

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Steuern des GSR-Interface mit QBasic

Prozessor HC680 fiktiv

Der MS-DOS Standardmonitor und Debugger DEBUG

Ein Computer zum Selbstbauen

GCM 100 GRAF-SYTECO H019A00. SYsteme TEchnischer COmmunication anzeigen, bedienen, melden, steuern, visualisieren und zählen

Übersicht. Virtueller Speicher CPU-Modi Virtuelle Maschinen. ISM SS Teil 4/ProtectionI

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

Installationsanleitung PowerSDR-IQ v SV1EIA für den Betrieb mit LIMA-SDR

Instruktionssatz-Architektur

Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort

oscan ein präemptives Echtzeit-Multitasking-Betriebssystem

Neues vom STRIP Forth-Prozessor

Atmel AVR für Dummies

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Grundlagen der Rechnerarchitektur

Embedded OS für ARM Cortex Microcontroller

Die Anforderungen an die Praxisausstattung bestehen aus folgender Basisausstattung der Arztpraxis:

Systemanforderungen Verlage & Akzidenzdruck

Die Komponenten in Ihrem Computer

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht

Grundlagen der Rechnerarchitektur. Einführung

Hardware-basierte Virtualisierung

OSEK / OSEKtime - ein Vergleich

EX-1361 / EX-1361IS EX-1362 / EX-1362IS. 1S PCMCIA Karte Standard und Surge Protection & Optical Isolation

Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe.

Lösungsvorschlag zur 4. Übung

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Fachhochschule Kaiserslautern Fachbereich Angewandte Ingenieurwissenschaften WS2010/11. Zeitpunkt der Prüfung: Beginn: 10.

Embedded Linux- Robocup

Dämon-Prozesse ( deamon )

Computerorientierte Physik

Die Hardwareausstattung unserer Schule

Der I²C-Bus. Vorstellung des Inter-Integrated Circuit -Bus. Aufbau und Funktionsweise. Beispiel PortExpander am Arduino

Linux Paging, Caching und Swapping

Vorlesungsziele. Mit gängigen Begriffen etwas anfangen können. In der Lage sein, die Architektur von Mikroprozessoren zu verstehen

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Vorlesung Rechnerarchitektur. Einführung

Technische Informatik II

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Installationsanleitung für das Touch Display: S170E1-01 LCD A170E1-T3 ChiMei - egalaxy

Autonome Mobile Systeme. Dr. Stefan Enderle

Mikrocontroller Grundlagen. Markus Koch April 2011

Transkript:

Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Vorlesung 5: Interrupts Peter B. Ladkin

Kommunikation über den Bus CPU läuft zu einer Taktfrequenz I/O Geräte laufen zu anderen Frequenzen Die Propagation der Signale über den Bus ist allgemein langsamer als die CPU Taktfrequenz Ausnahme: die ersten Pentiums liefen mit der gleichen Frequenz wie der Bus (60MHz bzw. 66MHz) 1 Hz = 1 Taktschlag pro Sekunde 2

Kommunikation über den Bus Die Pentiums laufen immer zu einem Multiplikator der Busfrequenz PCI läuft zu 33MHz PCIX läuft zu 66MHz Prozessoren laufen bis zu 1.8GHz (= 1.800MHz) 3

Wie kommt I/O ein/aus? Auf der CPU läuft ein Programm Das Programm enthält einen Tastatur- Eingabebefehl z.b., "getc" (1 Byte); "input", "Textfield" (quasi- String, d.h., ein Array von Bytes) 4

I/O per Tastatur Die CPU liest die Tastatur-Eingaberegister und leert danach die Register Der Charakter wird zwischengespeichert Und nochmal, bis alle Charakter gelesen worden sind Das "Wort" (Array von Character) wird von der CPU als Datenstruktur im Speicher gehandelt 5

I/O per Tastatur 6 Wie weiss die CPU, wenn ein Charakter zum Lesen gibt? Polling: sie liest ständig die Tastatur- Eingaberegister: z.b. i=10; while (i > 0) do read(teg-r); if char(teg-r)then Store; decrement(i) weitermachen

I/O per Tastatur Aber dies ist sehr ineffizient CPU-Taktfrequenz ist, sagen wir, 100MHz Fingerfrequenz ist, sagen wir 5Hz (schnell!) Loop wird 2 Sekunden laufen D.h., 200M Schleife-Ausführung Fur nur 10 Bytes! 7

Eingabe allgemein 8 Es ist nicht anders wie bei der Tastatur Festplatteneingabe ist schneller Sowie Diskettenlaufwerkeingabe Alle sind sehr langsam in Vergleich mit der CPU Taktfrequenz Die Schleife heisst Busy Waiting Busy Waiting: die CPU tut was, obwohl es nichts zu tun gibt

Das Vermeiden von Busy Waiting Wird "Textfield (10)" als Befehl gegeben Der Programzustand wird gespeichert Ein anderes Programm wird eingeholt (Alles macht der Scheduler, wie wir später sehen werden) Dieses andere Programm wird ausgeführt, bis es eine Tastatureingabe gibt 9

Das Vermeiden von Busy Waiting Tastatureingabe in TEG-R wird "bekanntgegeben" Der Zustand vom zweiten Programm wird gespeichert Das erste Programm(-zustand) wird wieder hereingeholt Das Programm tut etwas mit der Tastatureingabe 10

Das Vermeiden von Busy Waiting Die Schleife heisst jetzt i <- 10; while i > 0 do read (TEG-R); Store; i <- i - 1 weitermachen Die Schleife läuft nur 10 Mal durch 11

"Bekanntgegeben" Wie wird "bekanntgegeben"? Es gibt in der CPU eine Reihe Bits, die Interrupt Bits heissen z.b., ein Bit für die Tastatur Wenn irgendwas in der TEG-R liegt, wird gleichzeitig das entsprechende Bit "gesetzt" Alles auf der Elektronik-Ebene 12

"Bekanntgegeben" Am Ende eines Befehls-Zyklus... Wir erinnern uns, dass ein Maschinenbefehl aus einer Reihe von Mikrocodebefehlen besteht...werden die Interrupt Bits gelesen. Dann wird bemerkt, dass das Tastatur-I-Bit gesetzt worden ist Das entsprechende Programm wird hereingeholt 13

Alternativen Es könnte eine Reihe von Interrupt Bits geben Oder es könnte ein (oder wenige) Interrupt Bit(s) geben, plus ein Interrupt Vector (ein Register, das eine Nummer enthält), der sagt, welches Gerät sich gemeldet hat Geräte-IV-Nummern sind 32-255 bei PCs Also 1-Byte-Register 14

Interrupt Handler Da es unterschiedliche Interrupts gibt, gibt es auch unterschiedliche Verfahren z.b., das Verfahren für ein "invalid opcode" (ungültiges Befehl), das von dem Dekodier- Steuerwerk beschlossen wird, besteht aus einer Sonderfehlermeldung z.b., das Verfahren für eine Tastatureingabe ist, das entsprechende Programm hereinholen 15

Interrupt Handler Es wird also beim Interrupt (gesetzt) eine Sondersoftware hereingeholt, die Interrupt Handler heisst Der entsprechende Interrupt Handler wird hereingeholt und ausgeführt Unterschiedliche Interrupts haben unterschiedliche Handler 16

(Non)Maskable Interrupts Ein Interrupt wie "invalid opcode" ist nonmaskable, d.h., er wird immer gelesen und beachtet (der entsprechende Handler wird hereingeholt) Ein I/O Interrupt wird maskable, d.h., er wird zu bestimmten Zeiten (Zyklen) ignoriert "Mask Interrupts", "Unmask Interrupts" sind Sonderbefehle 17

Maskable Interrupts Interrupts wie Tastatureingabe werden gemasked, wenn etwas sehr wichtiges läuft, das nie unterbrochen werden soll z.b. ein Kernel-Panic bei Unix/Linux Ein Lock-Sensor Eingabe-Leseroutine bei ABS Wenn ein Mutex-Verfahren läuft ("Mutual Exclusion") 18

Nonmaskable Interrupts 19 Nonmaskable Interrupts sind die Interrupts, ohne deren Handlung die CPU nicht richtig weiter laufen kann (oder weiter laufen soll) Für den Pentium 0 divide error 1 debug exception 2 null interrupt 3 breakpoint 4 INTO-detected overflow

Pentium Interrupts 5 bound range exception 6 invalid opcode 7 device not available 8 double fault 9 coprocessor segment overrun (reserved) 10 invalid task state segment 11 segment not present 12 stack fault 13 general protection 20

Pentium Interrupts 14 page fault 15 (Intel reserved: do not use) 16 floating point error 17 alignment check 18 machine check 19-31 (Intel reserved; do not use) 32-255 maskable interrupts 21

Allgemeine Ausgabe Die CPU möchte was ausgeben "print" usw: geben die Character zum Monitor Ausgabe wird zwischengespeichert Device Driver Software wird hereingeholt Device Driver berechnet die entsprechende Parameter für das Geräte-Controller..und gibt die Parameter an das Gerät weiter 22

Allgemeine Ausgabe Die Device Drivers gehören zur Betriebssystem- Software Die DDrs werden im "Kernel"-Programm des Betriebssystemes eincompiliert......oder sie liegen nebenan als priviligierte Software und werden vom Kernel angerufen Was "nebenan" bedeutet? 23

Betriebssystemsoftware-Schichten 24

25

Ein Hardware-Interrupt-Kontroller 26

Interrupts mit Prioritäten I/O Interrupts können Prioritäten haben Die Prioritäten bedeuten, welcher Handler "Vorfahrt" hat, wenn gleichzeitig mehrere Interrupts gesetzt werden 27

Interrupts mit Priotitäten 28 Wenn mehrere Interrupts gleichzeitig gesetzt werden, wird der Handler des höchstpriotitisierten Interrupts aufgerufen Wenn ein Handler schon läuft, und ein Interrupt mit niedrigerer Priorität gesetzt wird, wird dieser Interrupt warten müssen..oder ein Interrupt mit höherer Priorität gesetzt wird, wird der Zustand der Handler gespeichert und der Handler vom höchsten aufgerufen

Interrupt-Verfahren mit Prioritäten Ein Drucker-Interrupt, gerfolgt von......einem Serial-Port (RS232) Interrupt, gerfolgt von......einem Festplatten Interrupt Die Interrupts sind prioritisiert RS232 (Priorität 5); Festplatte (Priorität 4); danach Drucker (Priorität 2) 29

30