Treiber Netzwerktreiber

Größe: px
Ab Seite anzeigen:

Download "Treiber Netzwerktreiber"

Transkript

1 Treiber Netzwerktreiber Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Treiber Netzwerktreiber 1/

2 Übersicht Inhalt: Netzwerk-Grundlagen, Registrieren und Entfernen, Starten und Stoppen, Senden von Blöcken Empfangen von Blöcken, weitere Treiberfunktionen, Anhang: NAPI-Treiber. Treiber Netzwerktreiber 2/

3 Netzwerk-Grundlagen Netzwerkgeräte werden nicht direkt von Anwendungsprogrammen aus angesprochen, sie stehen am unteren Ende des Netzwerksubsystems (Protokollstacks) des Betriebssystems, sie haben keinen Geräteknoten im Dateisystem, sondern einen symbolischen Namen, der dem Subsystem bekannt ist, es existieren geräteklassenspezifische Subsysteme (z.b. für Ethernet), insbesondere um die Adressauflösung (arp(8)) zentral zu organisieren, die Konfiguration der Geräte aus dem Userspace erfolgt meist mittels ifconfig(8), das wiederum ioctl(2) auf einem ungebundenen Socket (socket(2)) mit den SIOCGIF*- und SIOCSIF*-Funktionen (ioctl_list(2)) benutzt. Treiber Netzwerktreiber 3/

4 Netzwerk-Grundlagen (2) Beispiel ifconfig $ i f c o n f i g eth0 L i n k encap : E t h e r n e t HWaddr 0 0 : 9 0 : 4B : D5 : 3 C : 8B UP BROADCAST MULTICAST MTU: M e t r i c : 1 RX p a c k e t s : 0 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 frame : 0 TX p a c k e t s : e r r o r s : 0 dropped : 0 o v e r r u n s : 0 c a r r i e r : 0 c o l l i s i o n s : 0 t x q u e u e l e n : RX b y t e s : 0 ( 0. 0 b ) TX b y t e s :18816 ( KiB ) I n t e r r u p t : 1 0 eth1 L i n k encap : E t h e r n e t HWaddr 0 0 : 1 1 : 4 3 : 7 4 : 8 9 : B5 i n e t addr : Bcast : Mask : i n e t 6 addr : f e 8 0 : : : 4 3 f f : f e 7 4 : 8 9 b5 /64 Scope : L i n k UP BROADCAST RUNNING MULTICAST MTU: M e t r i c : 1 RX p a c k e t s :66041 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 frame : 0 TX p a c k e t s :46933 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 c a r r i e r : 0 c o l l i s i o n s : 0 t x q u e u e l e n : RX b y t e s : ( MiB) TX b y t e s : ( 5. 7 MiB) I n t e r r u p t : l o L i n k encap : L o c a l Loopback i n e t addr : Mask : i n e t 6 addr : : : 1 / Scope : Host UP LOOPBACK RUNNING MTU:16436 M e t r i c : 1 RX p a c k e t s : 3 8 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 frame : 0 TX p a c k e t s : 3 8 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 c a r r i e r : 0 c o l l i s i o n s : 0 t x q u e u e l e n : 0 RX b y t e s : ( 2. 5 KiB ) TX b y t e s : ( 2. 5 KiB ) Treiber Netzwerktreiber 4/

5 Netzwerk-Grundlagen (3) Folgen für Treiber Es müssen im Wesenlichen Funktionen für den Hardwarezugriff bei Geräteinitialisierung und -deinitialisierung, Interfacestart und -stop, Senden und Empfangen von Paketen implementiert werden, um die Aspekte höherer Protokolle (ip(7), tcp(7), upd(7) etc.) braucht sich der Treiber (normalerweise) nicht zu kümmern. Treiber Netzwerktreiber 5/

6 Schnittstelle registrieren und entfernen Ablauf Bei Modultreibern, deren Hardware einem anderen Subsystem des Kernels (PCI, USB etc.) angehört: 1 probe-funktion des Treibers allokiert und initialisiert mit alloc_netdev eine net_device-struktur, 2 alloc_netdev ruft dabei die vom Treiber implementierte setup-funktion auf, 3 der Treiber registriert anschließend das Gerät beim Netzwerk- Subsystem mit register_netdev. 4 Zum Entfernen ruft der Treiber im Zuge der remove-funktion zunächst unregister_netdev auf, 5 anschließend muss noch der Speicher der net_device-struktur mit free_netdev freigegeben werden. Treiber Netzwerktreiber 6/

7 API: alloc_netdev alloc_netdev #include <l i n u x / n e t d e v i c e. h> s t r u c t n e t _ d e v i c e a l l o c _ n e t d e v ( i n t s i z e o f _ p r i v, const char name, void ( s e t u p ) ( s t r u c t n e t _ d e v i c e ) ) ; Allokiert und initialisiert eine Instanz der net_device-struktur, es werden sizeof_priv Byte für private Daten des Treibers reserviert (zugreifbar mit netdev_priv(dev)), der String name darf (sollte!) einen Dezimal-Formatstring (%d) enthalten; daraus wird der Name des Netzwerkgeräts gebildet, setup muss eine vom Treiber implementierte Funktion sein, setup wird mit der neu angelegten Struktur aufgerufen, Achtung: alloc_netdev ruft kmalloc auf! Treiber Netzwerktreiber 7/

8 API: alloc_xxxdev alloc_xxxdev #include <l i n u x / XXXdevice. h> s t r u c t n e t _ d e v i c e alloc_xxxdev ( i n t s i z e o f _ p r i v ) ; Allokiert und initialisiert eine Instanz der net_device-struktur für Standard-Geräte, ersetze XXX durch ether, fddi,..., ansonsten wie alloc_netdev. Treiber Netzwerktreiber 8/

9 API: register_netdev register_netdev #include <l i n u x / n e t d e v i c e. h> i n t r e g i s t e r _ n e t d e v ( s t r u c t n e t _ d e v i c e dev ) ; Registriert das durch dev beschriebene Netzwerkgerät, sorgt für korrektes Locking, Rückgabewert: 0 bei Erfolg, negativer Fehlercode sonst. Treiber Netzwerktreiber 9/

10 Registrieren Beispiel s t a t i c i n t d e v i c e _ i n i t (... ) {... dev=a l l o c _ n e t d e v ( s i z e o f ( s t r u c t dhwk_device ), "dhwk%d ", dhwk_net_setup ) ; i f ( dev == NULL) { r e t u r n ENOMEM; } i f ( r e t v a l=r e g i s t e r _ n e t d e v ( dev ) ) { f r e e _ n e t d e v ( dev ) ; r e t u r n r e t v a l ; }... Treiber Netzwerktreiber 10/

11 API: unregister_netdev unregister_netdev #include <l i n u x / n e t d e v i c e. h> void u n r e g i s t e r _ n e t d e v ( s t r u c t n e t _ d e v i c e dev ) ; Meldet das durch dev repräsentierte Netzwerkgerät beim Subsystem ab, sorgt für korrektes Locking. Treiber Netzwerktreiber 11/

12 API: free_netdev free_netdev #include <l i n u x / n e t d e v i c e. h> void f r e e _ n e t d e v ( s t r u c t n e t _ d e v i c e dev ) ; Gibt die Referenz auf die Netzwerkgerätestruktur dev frei, mit alloc_netdev reservierter privater Speicher wird ebenfalls freigegeben. Treiber Netzwerktreiber 12/

13 Setup-Funktion setup void s e t u p ( s t r u c t n e t _ d e v c i e dev ) ; Bekommt die neu angelegte Netzwerk-Gerätestruktur dev übergeben, muss für den Treiber relevante Elemente der Struktur initialisieren, für einige Standard-Gerätetypen gibt es vordefinierte Initialisierungsfunktionen, die einen Teil dieser Aufgabe übernehmen (z.b. ether_setup). Treiber Netzwerktreiber 13/

14 API: struct net_device Aus <linux/netdevice.h> s t r u c t n e t _ d e v i c e { unsigned mtu ; unsigned s h o r t t y p e ; unsigned s h o r t hard_header_len ; unsigned char addr_len ; unsigned long tx_queue_len ; unsigned i n t f l a g s ; const s t r u c t net_device_ops netdev_ops ;... } Treiber Netzwerktreiber 14/

15 API: struct net_device_ops Aus <linux/netdevice.h> s t r u c t net_device_ops {... i n t ( ndo_open ) ( s t r u c t n e t _ d e v i c e dev ) ; i n t ( ndo_stop ) ( s t r u c t n e t _ d e v i c e dev ) ; i n t ( ndo_start_xmit ) ( s t r u c t s k _ b u f f skb, s t r u c t n e t _ d e v i c e dev ) ; i n t ( ndo_change_mtu ) ( s t r u c t n e t _ d e v i c e dev, i n t new_mtu ) ; s t r u c t n e t _ d e v i c e _ s t a t s ( ndo_get_stats ) ( s t r u c t n e t _ d e v i c e dev ) ;... } Treiber Netzwerktreiber 15/

16 struct net_device Wichtige Felder type Hardware-Typ des Geräts, u.a. ARPHRD_SLIP, ARPHRD_ETHER, vgl. <linux/if_arp.h>, mtu Maximum Transfer Unit, maximale Blockgröße, flags Flags, die über diverse Eigenschaften des Netzwerkgeräts Auskunft geben, z.b. ob es sich um ein Punkt-zu-Punkt-Gerät handelt (IFF_POINTOPOINT), vgl. <linux/if.h>. Treiber Netzwerktreiber 16/

17 Beispiel s t a t i c const s t r u c t net_device_ops dhwk_net_dev_ops = {. ndo_open = dhwk_open,. ndo_stop = dhwk_close,. ndo_start_xmit = dhwk_send,. ndo_get_stats = dhwk_get_stats,. ndo_change_mtu = dhwk_change_mtu, } ; s t a t i c void dhwk_net_setup ( s t r u c t n e t _ d e v i c e dev ) { dev >netdev_ops = &dhwk_net_dev_ops ; dev >t y p e = ARPHRD_SLIP ; dev >mtu = DHWK_DEFAULT_MTU; dev >hard_header_len = 0 ; dev >addr_len = 0 ; dev >tx_queue_len = 1 0 ; dev >f l a g s = IFF_NOARP IFF_POINTOPOINT IFF_MULTICAST ; } Treiber Netzwerktreiber 17/

18 Treiberfunktionen ndo_open ndo_open i n t ndo_open ( s t r u c t n e t _ d e v i c e dev ) ; Starten der Schnittstelle, nach dem Starten muss der Treiber bereit sein, Pakete zu senden und zu empfangen, Treiber ruft typischerweise netif_start_queue auf, Rückgabewert: 0 bei Erfolg, negativer Fehlercode sonst. Treiber Netzwerktreiber 18/

19 API: netif_start_queue netif_start_queue #include <l i n u x / n e t d e v i c e. h> void n e t i f _ s t a r t _ q u e u e ( s t r u c t n e t _ d e v i c e dev ) ; Zeigt der höheren Netzwerkschicht (Queueing-Layer) an, dass der Treiber von Gerät dev bereit ist, Pakete mittels ndo_start_xmit entgegenzunehmen, die Send-Queue-Verwaltung des Netzwerksubsystems sollte für die Synchronisierung der Sendefunktion verwendet werden. Treiber Netzwerktreiber 19/

20 Treiberfunktionen ndo_stop ndo_stop i n t ndo_stop ( s t r u c t n e t _ d e v i c e dev ) ; Stoppen der Schnittstelle, nach dem Stoppen werden keine Transfers mehr durchgeführt, Treiber ruft typischerweise netif_stop_queue auf, Rückgabewert: 0 bei Erfolg, negativer Fehlercode sonst. Treiber Netzwerktreiber 20/

21 API: netif_stop_queue netif_stop_queue #include <l i n u x / n e t d e v i c e. h> void n e t i f _ s t o p _ q u e u e ( s t r u c t n e t _ d e v i c e dev ) ; Zeigt dem Queueing-Layer an, dass der Treiber keine weiteren Pakete entgegennehmen kann, ist typischerweise aufzurufen, wenn... die Schnittstelle gestoppt wird (ndo_stop-funktion des Treibers), die Funktion ndo_start_xmit (s.u.) nach dem Senden eines Pakets feststellt, dass die Hardware für einen weiteren Sendevorgang nicht bereit ist. Treiber Netzwerktreiber 21/

22 API: netif_wake_queue netif_wake_queue #include <l i n u x / n e t d e v i c e. h> void netif_wake_queue ( s t r u c t n e t _ d e v i c e dev ) ; Zeigt dem Queueing-Layer an, dass der Treiber jetzt wieder Pakete zum Senden entgegennehmen kann, wird typischerweise aus einer ISR aufgerufen. Treiber Netzwerktreiber 22/

23 Treiberfunktionen ndo_start_xmit ndo_start_xmit i n t ndo_start_xmit ( s t r u c t s k _ b u f f skb, s t r u c t n e t _ d e v i c e dev ) ; Wird vom Netzwerk-Subsystem aufgerufen, um das durch den Socket-Buffer skb beschriebene Paket zu übertragen, muss den Buffer nach der Übertragung mit kfree_skb freigeben, Queueing-Layer sorgt dafür, dass die Funktion nur genau einmal aufgerufen wird und nur dann, wenn die Queue aktiv ist, sollte wenn nötig die Send-Queue mit netif_stop_queue anhalten, Rückgabewert: 0 bei Erfolg, negativer Fehlercode sonst. Treiber Netzwerktreiber 23/

24 Socket-Buffer Eigenschaften Dient dem Datenaustausch zwischen Treiber und nächster Netzwerkschicht, besteht aus: Struktur-Header, Transportschicht-Information (TCP- oder UDP-Header), Netzwerkschicht-Information (IPv4 oder -v6-header), Übertrangungsschicht-Information (z.b. für Ethernet), Tail, das die Zeiger auf die eigentlichen Nutzdaten enthält, die Struktur enthält nicht den zu übertragenden Block, sie zeigt nur darauf! Treiber Netzwerktreiber 24/

25 Socket-Buffer (2) ndo_start_xmit bekommt einen Socket-Buffer skb übergeben, skb->data zeigt auf einen skb->len Byte großen Datenblock, vor diesen Daten der höheren Schichten ist ab skb->head noch Platz für den hardwarespezifischen Header, nach dem Ende der Nutzdaten (skb->tail) können ebenfalls noch hardwarespezifische Daten eingefügt werden (z.b. Checksummen). (Vgl. <linux/skbuff.h>.) Treiber Netzwerktreiber 25/

26 Socket-Buffer (3) Treiber Netzwerktreiber 26/

27 API: kfree_skb kfree_skb #include <l i n u x / s k b u f f. h> void k f r e e _ s k b ( s t r u c t s k _ b u f f skb ) ; Dekrementiert den Referenzzähler der Buffers skb, ist der Zähler bei 0 angekommen, wird der Speicher freigegeben. Treiber Netzwerktreiber 27/

28 Pakete empfangen Wird typischerweise von einer ISR angestoßen, soll heute nicht mehr direkt in der ISR gemacht werden, stattdessen: Tasklet oder Kernel-Thread verwenden, (noch neuere Variante: spezielle poll-funktion, vgl. unten.) Treiber Netzwerktreiber 28/

29 Pakete empfangen (2) Ablauf 1 Empfangs-Funktion wird aufgerufen/angestoßen, 2 reserviert einen sk_buff mittels dev_alloc_skb, 3 schreibt die Daten in den Buffer (unterstützt durch skb_put), 4 übergibt den Buffer mittels netif_rx oder netif_rx_ni an die höhere Schicht. Treiber Netzwerktreiber 29/

30 API: dev_alloc_skb dev_alloc_skb #include <l i n u x / s k b u f f. h> s t r u c t s k _ b u f f d e v _ a l l o c _ s k b ( unsigned i n t l e n g t h ) ; Reserviert einen Socket-Buffer der Größe length, allokiert zusätzlich zum bei data beginnenden Buffer 16 Byte für einen (Ethernet-)Header, Funktion darf im Interrupt-Kontext aufgerufen werden, Rückgabewert: Zeiger auf den Socket-Buffer oder NULL bei Misserfolg. Treiber Netzwerktreiber 30/

31 API: skb_put skb_put #include <l i n u x / s k b u f f. h> unsigned char skb_put ( s t r u c t s k _ b u f f skb, u n s i g e n d i n t l e n ) ; erweitert den verwendeten Datenbereich des Socket-Buffers skb um len Byte, Zeiger und Längenfelder werden entsprechend angepasst, Überschreiten der reservierten Größe führt zu Kernel-Panic, Rückgabewert: Zeiger auf das erste Byte des hinzugefügten Bereichs. Treiber Netzwerktreiber 31/

32 API: netif_rx netif_rx #include <l i n u x / n e t d e v i c e. h> i n t n e t i f _ r x ( s t r u c t s k _ b u f f skb ) ; i n t n e t i f _ r x _ n i ( s t r u c t s k _ b u f f skb ) ; Übergibt den mit einem empfangenen Block gefüllten Socket-Buffer skb an die nächste Netzwerkschicht, netif_rx wird im Interrupt-Kontext verwendet, netif_rx_ni außerhalb des Interrupt-Kontexts (z.b. in Kernel-Threads), Rückgabewert: Information über den Zustand der höheren Schichten (siehe nächste Folie). Treiber Netzwerktreiber 32/

33 API: netif_rx (2) Rückgabewerte Wert NET_RX_SUCCESS NET_RX_CN_LOW NET_RX_CN_MOD NET_RX_CN_HIGH NET_RX_DROP Bedeutung erfolgreich abgeliefert, keine Stauung geringe Stauung mittlere Stauung hohe Stauung Paket verworfen Treiber Netzwerktreiber 33/

34 Pakete empfangen Beispiel... skb = d e v _ a l l o c _ s k b ( pkt_len ) ; skb >dev = dev ; f o r ( i =0; i < pkt_len ; i ++) { skb_put ( skb, 1 ) = i n b (IN_REG ) ; } n e t i f _ r x ( skb ) ;... Treiber Netzwerktreiber 34/

35 Treiberfunktionen ndo_change_mtu ndo_change_mtu i n t ndo_change_mtu ( s t r u c t n e t _ d e v i c e dev, i n t new_mtu ) ; Wird aufgerufen, wenn (z.b. mittels ifconfig) die MTU des Geräts geändert werden soll, muss prüfen, ob der Wert new_mtu zulässig ist, trägt den neuen Wert in dev ein, Rückgabewert: 0 bei Erfolg, negativer Fehlercode (typischerweise -EINVAL) sonst. Treiber Netzwerktreiber 35/

36 Treiberfunktionen ndo_get_stats ndo_get_stats #i n c l u d e <l i n u x / n e t d e v i c e. h> s t r u c t n e t _ d e v i c e _ s t a t s ndo_get_stats ( s t r u c t n e t _ d e v i c e dev ) ; Liefert eine Instanz der net_device_stats-struktur, Struktur enthält Sende-, Empfangs- und Fehlerstatistiken (wie bekannt aus der Ausgabe von ifconfig), Elemente der Struktur müssen ggf. aktualisiert werden. Treiber Netzwerktreiber 36/

37 API: struct net_device_stats Aus <linux/netdevice.h> s t r u c t n e t _ d e v i c e _ s t a t s { unsigned long r x _ p a c k e t s ; unsigned long t x _ p a c k e t s ; unsigned long r x _ b y t e s ; unsigned long t x _ b y t e s ; unsigned long r x _ e r r o r s ; unsigned long t x _ e r r o r s ; unsigned long rx_dropped ; unsigned long tx_dropped ; unsigned long m u l t i c a s t ; unsigned long c o l l i s i o n s ;... } Treiber Netzwerktreiber 37/

38 API: struct net_device_stats (2) Typisches Vorgehen Instanz von net_device_stats kann einmal, z.b. bei der Geräteinitialisierung, angelegt werden, die Sende- und Empfangsfunktionen aktualisieren die entsprechenden Attribute, get_stats gibt nur einen Zeiger auf die Struktur zurück. Treiber Netzwerktreiber 38/

39 Anhang: NAPI-Treiber Die NAPI ist die neue Methode für den Paketempfang. Sie empfiehlt sich vor allem, wenn: dadurch überflüssige Interrupts vermieden werden können, bei hohem Traffic verworfene Pakete gar nicht erst vom Kernel bearbeitet werden müssen. NAPI ist (und bleibt) vollkommen optional! Treiber Netzwerktreiber 39/

40 NAPI Auswirkungen auf die ISR Der Interrupt-Handler muss nun: den Hardware-RX-Interrupt vorübergehend deaktivieren (ausmaskieren), durch Aufruf von void n a p i _ s c h e d u l e ( s t r u c t n a p i _ s t r u c t n ) ; das Polling des Netzwerksubsystems aktivieren. Treiber Netzwerktreiber 40/

41 NAPI (2) poll-funktion i n t ( p o l l ) ( s t r u c t n a p i _ s t r u c t n, i n t budget ) ; empfängt ggf. mehrere Pakete, Pakete werden mit int netif_receive_skb(struct sk_buff *skb); weitergereicht, budget ist die maximale Zahl von Paketen, die in einem Poll-Aufruf bearbeitet werden dürfen, Treiber Netzwerktreiber 41/

42 NAPI (3) poll-funktion (2) sind keine Pakete mehr vorhanden, müssen die Interrupts wieder einmaskiert werden und das Polling deaktiviert mit: void napi_complete ( s t r u c t n a p i _ s t r u c t n ) ; Rückgabewert: Anzahl der noch nicht verarbeiteten Pakete. Treiber Netzwerktreiber 42/

43 NAPI (4) Treiber-Initialisierung Bei der Initialisierung muss der Treiber als NAPI-Treiber registriert werden mit: void n e t i f _ n a p i _ a d d ( s t r u c t n e t _ d e v i c e dev, s t r u c t n a p i _ s t r u c t napi, i n t ( p o l l ) ( s t r u c t n a p i _ s t r u c t, i n t ), i n t w e i g h t ) ; Treiber Netzwerktreiber 43/

Treiber Netzwerktreiber

Treiber Netzwerktreiber Treiber Netzwerktreiber Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010 Treiber Netzwerktreiber 1/42 2009-10-09 Übersicht

Mehr

Treiber Einfache Gerätetreiber

Treiber Einfache Gerätetreiber Treiber Einfache Gerätetreiber Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2007/2008 Treiber Einfache Gerätetreiber 1/42

Mehr

Treiber PCI-Subsystem

Treiber PCI-Subsystem Treiber PCI-Subsystem Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Treiber PCI-Subsystem 1/41 2011-04-05 Übersicht

Mehr

Treiber Einfache Gerätetreiber

Treiber Einfache Gerätetreiber Treiber Einfache Gerätetreiber Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Treiber Einfache Gerätetreiber 1/50

Mehr

Geräte Treiber unter Unix/Linux

Geräte Treiber unter Unix/Linux Geräte Treiber unter Unix/Linux Martin Schäf 7. Oktober 2004 1 Einleitung Die Programmierung von Geräte Treibern unter Linux ist ein sehr populäres Thema, da für viele Geräte keine, oder nur sehr primitive

Mehr

Konzepte von Betriebssystemkomponenten. Gerätetreiber. Mario Körner

Konzepte von Betriebssystemkomponenten. Gerätetreiber. Mario Körner Konzepte von Betriebssystemkomponenten Gerätetreiber Mario Körner 26.01.2004 Übersicht Einordnung in die Betriebssystemarchitektur Schnittstelle zur Hardware Schnittstelle zum Betriebssystem am Beispiel

Mehr

Tutorübung zur Vorlesung Grundlagen Rechnernetze und Verteilte Systeme Übungsblatt 6 (27. Mai 31. Mai 2013)

Tutorübung zur Vorlesung Grundlagen Rechnernetze und Verteilte Systeme Übungsblatt 6 (27. Mai 31. Mai 2013) Technische Universität München Lehrstuhl Informatik VIII Prof. Dr.-Ing. Georg Carle Dipl.-Ing. Stephan Günther, M.Sc. Nadine Herold, M.Sc. Dipl.-Inf. Stephan Posselt Tutorübung zur Vorlesung Grundlagen

Mehr

UDP User Datagramm Protokoll

UDP User Datagramm Protokoll UDP User Datagramm Protokoll Marco Gerland Janina de Jong Internet Protokolle WS 03 / 04 1/31 Einführung IP Datagramme werden durchs Internet geroutet abh. von der IP Adresse Anhand der Ziel IP Adresse

Mehr

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg Hardware PCI-Bus Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 Hardware PCI-Bus 1/23 2008-08-06 Übersicht Inhalt:

Mehr

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg Hardware PCI-Bus Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2007/2008 Hardware PCI-Bus 1/23 2007-10-26 Übersicht Inhalt:

Mehr

Einschub: HW-Zugriff aus dem Userspace

Einschub: HW-Zugriff aus dem Userspace Einschub: HW-Zugriff aus dem Userspace Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Einschub: HW-Zugriff aus dem

Mehr

In meinem Beitrag "Einrichten eines 6in4 static Tunnels mit SIXXS unter Linux" habe ich beschrieben, wie man einen IPv6 Tunnel einrichtet.

In meinem Beitrag Einrichten eines 6in4 static Tunnels mit SIXXS unter Linux habe ich beschrieben, wie man einen IPv6 Tunnel einrichtet. Linux Router für IPv6 mit ip6tables und SIXXS-Tunnel http://www.ipv6-forum.com/forum/showthread.php?tid=85 In meinem Beitrag "Einrichten eines 6in4 static Tunnels mit SIXXS unter Linux" habe ich beschrieben,

Mehr

Studienarbeit zum Thema

Studienarbeit zum Thema Universität Rostock Fachbereich Elektrotechnik und Informationstechnik Institut für Angewandte Mikroelektronik und Datentechnik Richard-Wagner-Straße 31-18119 Warnemünde MD Studienarbeit zum Thema Konzeption

Mehr

Der Linux Netzwerk-Stack

Der Linux Netzwerk-Stack August 2015 Probleme Etliche generelle Linux-Probleme gelten auch für den Netzwerkwerkstack Hardware: 1 cpu vs. SMP LTE? WLAN? 40Gbit Ethernet? Einsatzzweck: Desktop, Server, Router, Bridge,... Server

Mehr

Technische Informatik III: Betriebssysteme und Rechnernetze WS 2007/08 Musterlösung zum Übungsblatt Nr. 7. Aufgabe 1: Begriffe

Technische Informatik III: Betriebssysteme und Rechnernetze WS 2007/08 Musterlösung zum Übungsblatt Nr. 7. Aufgabe 1: Begriffe Technische Informatik III: Betriebssysteme und Rechnernetze WS 2007/08 Musterlösung zum Übungsblatt Nr. 7 Aufgabe 1: Begriffe 7 Punkte Beschreiben Sie jeden der folgenden Begriffe durch maximal zwei Sätze:

Mehr

ISA Server 2004 IP-Einstellungen definieren - Von Marc Grote

ISA Server 2004 IP-Einstellungen definieren - Von Marc Grote Seite 1 von 6 ISA Server 2004 IP-Einstellungen definieren - Von Marc Grote Die Informationen in diesem Artikel beziehen sich auf: Microsoft ISA Server 2004 Einleitung ISA Server 2004 bietet die Option

Mehr

Vernetzte Systeme. Übungsstunde Adrian Schüpbach 30. Juni 2006

Vernetzte Systeme. Übungsstunde Adrian Schüpbach 30. Juni 2006 Vernetzte Systeme Übungsstunde 30.06.2006 Adrian Schüpbach scadrian@student.ethz.ch 30. Juni 2006 Adrian Schüpbach (ETH Zürich) Vernetzte Systeme SS 2006 1 / 33 Letzte Serie! Letzte Serie! Adrian Schüpbach

Mehr

Rechnernetze Übung 11. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012

Rechnernetze Übung 11. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012 Rechnernetze Übung 11 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012 IP: 192.168.43.9 MAC: 02-55-4A-89-4F-47 IP: 216.187.69.51 MAC: 08-48-5B-77-56-21 1 2 IP: 192.168.43.15 MAC:

Mehr

Klausur: Programiermethoden und Techniken

Klausur: Programiermethoden und Techniken Klausur: Programiermethoden und Techniken WS12/13 Erlaubte Hilfsmittel: keine Lösung ist auf den Klausurbögen anzufertigen. (eventuell Rückseiten nehmen) Bitte legen Sie den Studentenausweis auf den Tisch.

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 9 I/O (2) Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät UNIX I/O UNIX I/O: ähnlich wie Standard-I/O, jedoch File-Deskriptoren

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

IP Adressen & Subnetzmasken

IP Adressen & Subnetzmasken IP Adressen & Subnetzmasken Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de Universität Bielefeld Technische Fakultät Stand der Veranstaltung 13. April 2005 Unix-Umgebung 20. April 2005 Unix-Umgebung 27. April

Mehr

Aufbau eines Kernelmoduls

Aufbau eines Kernelmoduls Kernel Module Kernelmodul = ladbare/entfernbare Objektdatei (Dateisystem, Gerätetreiber, Systemeingriffe) Vorteile: Ressourcenverbrauch abhängig vom aktuellen Anforderungen Erweiterung der Kernelfunktionalität

Mehr

Zusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks

Zusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks Zusammenfassung für CS-Prüfung 3 Seite 1 CS-Zusammenfassung für Prüfung 3 vom 24. 6. 2002 Deadlock Im Beispiel gibt es 3 Deadlocks Unterschied zwischen Blockieren, Verklemmen und Verhungenrn= -> Band 1

Mehr

Das Netzwerk von Docker. Java Stammtisch Goettingen

Das Netzwerk von Docker. Java Stammtisch Goettingen Das Netzwerk von Docker ist work in progress Ausgangslage Linux System (Netz bei Windows und MAC anders) Ein Ethernet-Interface mit oeffentlicher Adresse enp4s0 Ethernet Hwaddr c8:60:00:88:70:55 inet addr:134.76.82.240

Mehr

Mobilkommunikationsnetze - TCP/IP (und andere)-

Mobilkommunikationsnetze - TCP/IP (und andere)- - TCP/IP (und andere)- Vorlesung Inhalt Überblick ISO/OSI vs. TCP/IP Schichten in TCP/IP Link Layer (Netzzugang) Network Layer (Vermittlung) Transport Layer (Transport) Application Layer (Anwendung) Page

Mehr

PROJEKTIEREN DER HW UND DER VERBINDUNGEN...

PROJEKTIEREN DER HW UND DER VERBINDUNGEN... Inhaltsverzeichnis 1 PROJEKTIEREN DER HW UND DER VERBINDUNGEN... 2 1.1 KONFIGURATION DER HW... 2 1.2 KONFIGURATION DER VERBINDUNGEN... 3 1.2.1 Konfiguration UDP- Verbindung...3 1.2.2 Konfiguration TCP

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse

Mehr

Algorithmen und Datenstrukturen Sommersemester Übung Abgabe bis , 10:00 Uhr

Algorithmen und Datenstrukturen Sommersemester Übung Abgabe bis , 10:00 Uhr 4. Übung Abgabe bis 24.05.2010, 10:00 Uhr Aufgabe 4.1: Referenzen Geben Sie Ihre Lösung als Referenzen.pdf ab. 16 Punkte a) Führen Sie einen Schreibtischlauf des folgenden Java-Programms durch. Es werden

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 14.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 1 / 11 Übersicht 1

Mehr

IPv4- und IPv6 Header Analyse und Vergleich

IPv4- und IPv6 Header Analyse und Vergleich IPv4- und IPv6 Header Analyse und Vergleich Von Jan Arends EPRO WS 13/14 Das neue Internetprotokoll 01/27/2019 IPv4- und IPv6 Header 1 Agenda Analyse des IPv4 Headers Analyse des IPv6 Headers mit vergleich

Mehr

Device Management Schnittstellen. Referat von Peter Voser Embedded Development GmbH

Device Management Schnittstellen. Referat von Peter Voser Embedded Development GmbH Device Management Schnittstellen Referat von Peter Voser Embedded Development GmbH Device Management ist Gerätesteuerung Parametrisierung Zugang zu internen Messgrössen und Zuständen Software Upgrade www.embedded-development.ch

Mehr

Beispiel einer Anwendung: HTTP

Beispiel einer Anwendung: HTTP Beispiel einer Anwendung: HTTP» HTTP: Hypertext Transfer Protocol The Hypertext Transfer Protocol (HTTP) is an application-level protocol with the lightness and speed necessary for distributed, collaborative,

Mehr

Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2018

Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2018 Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2018 Übungsblatt 6 21. Mai 1. Juni 2018 Wegen der Pfingsfeiertage wird dieses Blatt am 23. 25. Mai sowie am 28. und 29. Mai besprochen. Die Übungsgruppen

Mehr

Version: Das Versionsfeld gibt an ob es sich um IPv4 oder um IPv6 handelt.

Version: Das Versionsfeld gibt an ob es sich um IPv4 oder um IPv6 handelt. Folie 1 Folie 2 Folie 3 Version: Das Versionsfeld gibt an ob es sich um IPv4 oder um IPv6 handelt. IHL (IP Header Length) Im IHL-Feld wird ein vielfaches von 32 Bit angegeben. Die Summe gibt die Größe

Mehr

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Im Jahre 1983 wurde TCP/IP das Standardprotokoll im DOD, und ist heute der generische Name für die gesamte Sammlung von Protokollen.

Im Jahre 1983 wurde TCP/IP das Standardprotokoll im DOD, und ist heute der generische Name für die gesamte Sammlung von Protokollen. Netzwerk In diesem Abschnitt befassen wir uns mit dem Anschluss des Rechners an ein TCP/IP Netzwerk. Wir lernen die historische Entwicklung der Vernetzung von Rechnern kennen, wir befassen uns mit Aufbau

Mehr

Variablen und Parameter

Variablen und Parameter D3kjd3Di38lk323nnm Variablen und Parameter Eine Variable repräsentiert einen Speicherbereich, der einen veränderbaren Wert enthält. Eine Variable kann eine lokale Variable, ein Parameter (value, ref oder

Mehr

Übungen zu Grundlagen der systemnahen Programmierung in C (GSPiC) im Wintersemester 2017/18

Übungen zu Grundlagen der systemnahen Programmierung in C (GSPiC) im Wintersemester 2017/18 Übungen zu Grundlagen der systemnahen Programmierung in C (GSPiC) im Wintersemester 2017/18 2017-11-21 Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl

Mehr

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne)

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne) Übungsblatt 4 Aufgabe 1 (Router, Layer-3-Switch, Gateway) 1. Welchen Zweck haben Router in Computernetzen? (Erklären Sie auch den Unterschied zu Layer-3-Switches.) 2. Welchen Zweck haben Layer-3-Switches

Mehr

Treiber Kernel und Module bauen

Treiber Kernel und Module bauen Treiber Kernel und Module bauen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Treiber Kernel und Module bauen 1/17

Mehr

C/C++-Programmierung

C/C++-Programmierung 1 C/C++-Programmierung Speicherverwaltung, 0, const Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Speicherverwaltung

Mehr

Hochschule Bonn-Rhein-Sieg. Prof. Dr. Kerstin Uhde Hochleistungsnetze u. Mobilkommunikation. Modul 5: IPv6. Netze, BCS, 2.

Hochschule Bonn-Rhein-Sieg. Prof. Dr. Kerstin Uhde Hochleistungsnetze u. Mobilkommunikation. Modul 5: IPv6. Netze, BCS, 2. Modul 5: IPv6 Folie 1 IPv6 Motivation: Adressknappheit durch starkes Abwachsen des Internet (abgemildert durch verschiedene kurzfristige Lösungsansätze) in wesentlichen Teilen seit 1998 standardisiert

Mehr

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne)

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne) Übungsblatt 4 Aufgabe 1 (Router, Layer-3-Switch, Gateway) 1. Welchen Zweck haben Router in Computernetzen? (Erklären Sie auch den Unterschied zu Layer-3-Switches.) 2. Welchen Zweck haben Layer-3-Switches

Mehr

7. Übung Informatik II - Objektorientierte Programmierung

7. Übung Informatik II - Objektorientierte Programmierung 7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber

Mehr

Informatik II Übung 05. Benjamin Hepp 3 April 2017

Informatik II Übung 05. Benjamin Hepp 3 April 2017 Informatik II Übung 05 Benjamin Hepp benjamin.hepp@inf.ethz.ch 3 April 2017 Java package Hierarchie import.. nur noetig um Klassen aus anderen Packeten zu importieren Es kann auch immer der vollstaendige

Mehr

CAN-Bus mit Linux und Python

CAN-Bus mit Linux und Python CAN-Bus mit Linux und Python Grazer Linuxtage 2014 Jörg Faschingbauer 1 / 31 Inhaltsverzeichnis 1 Basics 2 CAN Interfaces 3 Programmierung 4 Hardware, Kernel 5 Schluss 2 / 31 Basics Übersicht 1 Basics

Mehr

Probeklausur Name: (c)

Probeklausur Name: (c) Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

Rechnernetze Übung 11

Rechnernetze Übung 11 Rechnernetze Übung 11 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juli 2011 Herr Müller (Test GmbH) Sekretärin (Super AG) T-NR. 111 T-NR. 885 Sekretärin (Test GmbH) Herr Meier (Super

Mehr

Verbindungslose Netzwerk-Protokolle

Verbindungslose Netzwerk-Protokolle Adressierung Lokales Netz jede Station kennt jede Pakete können direkt zugestellt werden Hierarchisches Netz jede Station kennt jede im lokalen Bereich Pakete können lokal direkt zugestellt werden Pakete

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Hardware Leitungscodierung

Hardware Leitungscodierung Hardware Leitungscodierung Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2007/2008 Hardware Leitungscodierung 1/16 2007-11-05

Mehr

Tafelübung zu BS 4. Interprozesskommunikation

Tafelübung zu BS 4. Interprozesskommunikation Tafelübung zu BS 4. Interprozesskommunikation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/

Mehr

Hardware Logik-Analysatoren

Hardware Logik-Analysatoren Hardware Logik-Analysatoren Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Hardware Logik-Analysatoren 1/24 2010-10-12

Mehr

Übung Prüfen von Ethernet-Rahmen mit Wireshark

Übung Prüfen von Ethernet-Rahmen mit Wireshark Topologie Lernziele Teil 1: Prüfen der Header-Felder in einem Ethernet-II-Rahmen Teil 2: Analysieren und Erfassen von Ethernet-Rahmen mit Wireshark Hintergrund / Szenario Wenn höhere Schichtprotokolle

Mehr

Internetanwendungstechnik (Übung)

Internetanwendungstechnik (Übung) Internetanwendungstechnik (Übung) IPv6 Stefan Bissell, Gero Mühl Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik Kommunikations- und Betriebssysteme (KBS) Einsteinufer 17, Sekr.

Mehr

Grundlagen der Rechnernetze. Internetworking

Grundlagen der Rechnernetze. Internetworking Grundlagen der Rechnernetze Internetworking Übersicht Grundlegende Konzepte Internet Routing Limitierter Adressbereich SS 2012 Grundlagen der Rechnernetze Internetworking 2 Grundlegende Konzepte SS 2012

Mehr

Dynamischer Speicher

Dynamischer Speicher Dynamischer Speicher C-Kurs 2012, 3. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 13. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

KNX Twisted Pair Protokollbeschreibung

KNX Twisted Pair Protokollbeschreibung KNX Twisted Pair Protokollbeschreibung Übersicht Dieses Dokument soll eine Übersicht über die Datenpaketstruktur des KNX Twisted-Pair (TP1-256) Standards geben. Es handelt sich um eine private Arbeit die

Mehr

Serielle Schnittstelle

Serielle Schnittstelle Serielle Schnittstelle RS-232 ist ein Standard für eine bei Computern teilweise vorhandene serielle Schnittstelle, der in den frühen 1960er Jahren von dem US-amerikanischen Standardisierungskomitee Electronic

Mehr

Parallele Algorithmen mit OpenCL. Universität Osnabrück, Henning Wenke,

Parallele Algorithmen mit OpenCL. Universität Osnabrück, Henning Wenke, Parallele Algorithmen mit OpenCL Universität Osnabrück, Henning Wenke, 2013-04-17 Kapitel I OpenCL Einführung Allgemeines Open Compute Language: API für einheitliche parallele Programmierung heterogener

Mehr

Übung 7. Tutorübung zu Grundlagen: Rechnernetze und Verteilte Systeme (Gruppen Mo-T1 / Di-T11 SS 2016) Dennis Fischer

Übung 7. Tutorübung zu Grundlagen: Rechnernetze und Verteilte Systeme (Gruppen Mo-T1 / Di-T11 SS 2016) Dennis Fischer Übung 7 Tutorübung zu Grundlagen: Rechnernetze und Verteilte Systeme (Gruppen Mo-T1 / Di-T11 SS 2016) Dennis Fischer Technische Universität München Fakultät für Informatik 06.06.2016 / 07.06.2016 1/7 Aufgabe

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

10: Serial Communication Interface (SCI)

10: Serial Communication Interface (SCI) 10: Serial Communication Interface (SCI) Sie verstehen das RS-232 Protokoll sowie das Zusammenspiel zwischen HW und SW bei der Kommunikation über die serielle Schnittstelle. 1. Systemüberblick Vom PC aus

Mehr

Pointer und Arrays. INE1, Montag M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.

Pointer und Arrays. INE1, Montag M. Thaler, Office TG208.  ZHAW, M. Thaler, K. Rege, G. Pointer und Arrays INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Variable Speicherplatz Datenwert über Name ansprechbar hat Typ hat Adresse (Speicheradresse)

Mehr

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland. C++ Klassen, Vererbung Philipp Lucas phlucas@cs.uni-sb.de Sebastian Hack hack@cs.uni-sb.de Wintersemester 2008/09 saarland university computer science 1 Inhalt Klassen in C++ Sichtbarkeit Erzeugen von

Mehr

Statisches Routing. Jörn Stuphorn Bielefeld, den Juni Juni Universität Bielefeld Technische Fakultät

Statisches Routing. Jörn Stuphorn Bielefeld, den Juni Juni Universität Bielefeld Technische Fakultät Statisches Routing Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de Universität Bielefeld Technische Fakultät Stand der Veranstaltung 13. April 2005 Unix-Umgebung 20. April 2005 Unix-Umgebung 27. April 2005

Mehr

Informatik-Ausbildung Basis: I-CH Modulbaukasten R3 I-CH-M130-CC. Autoren: HERDT-Autorenteam. Überarbeitete Ausgabe vom 12.

Informatik-Ausbildung Basis: I-CH Modulbaukasten R3 I-CH-M130-CC. Autoren: HERDT-Autorenteam. Überarbeitete Ausgabe vom 12. I-CH-M130-CC Autoren: HERDT-Autorenteam Überarbeitete Ausgabe vom 12. August 2008 HERDT-Verlag für Bildungsmedien GmbH, Bodenheim Internet: www.herdt.com Alle Rechte vorbehalten. Kein Teil des Werkes darf

Mehr

Rechnern netze und Organisatio on

Rechnern netze und Organisatio on Rechnernetze und Organisation Assignment A3 Präsentation 1 Motivation Übersicht Netzwerke und Protokolle Rechnernetze und Organisatio on Aufgabenstellung: Netzwerk-Protokoll-Simulator 2 Motivation Protokoll-Simulator

Mehr

Großer Beleg. Björn Gottschall Dresden,

Großer Beleg. Björn Gottschall Dresden, Implementierung eines Linux-Gerätetreibers zur dynamischen Allokation von isolierten Kommunikationskanälen zu partiell konfigurierten FPGA-Kernen in einem Zynq-System Großer Beleg Björn Gottschall Dresden,

Mehr

Vermittlungsschicht im Internet - Bsp. Forschungseinrichtungen DFN als Provider für Hochschulen und Universitäten Kopplung von Providernetzen zum

Vermittlungsschicht im Internet - Bsp. Forschungseinrichtungen DFN als Provider für Hochschulen und Universitäten Kopplung von Providernetzen zum Vermittlungsschicht im Internet - Bsp. Forschungseinrichtungen DFN als Provider für Hochschulen und Universitäten Kopplung von Providernetzen zum Internet - IP definiert Regeln, wie Pakete von Sender zum

Mehr

Remote-Objekt-Überwachung. von Jan Schäfer und Matthias Merk

Remote-Objekt-Überwachung. von Jan Schäfer und Matthias Merk Remote-Objekt-Überwachung von Jan Schäfer und Matthias Merk Aufgabenstellung Steuerung von Sensoren zur Remote Objektüberwachung mit einem µc PIC16F874. Welcher Sensor hat gemeldet? Die Überwachung Mehrere

Mehr

Implementierung eines universellen IPv6 Protokollstapels

Implementierung eines universellen IPv6 Protokollstapels Fakultät Informatik, Inst. für Technische Informatik, Prof. für VLSI-Entwurfssysteme, Diagnostik und Architektur Implementierung eines universellen IPv6 Protokollstapels Kolloquium zum Masterpraktikum

Mehr

U8 7. Übung U8 7. Übung

U8 7. Übung U8 7. Übung U8 7. Übung U8 7. Übung Dynamische Speicherverwaltung Generisches Sortieren Aufgabe 7 U8.1 U8-1 Dynamische Speicherverwaltung U8-1 Dynamische Speicherverwaltung Erzeugen von Feldern der Länge n: mittels:

Mehr

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, 13.00-14.45 Uhr Bearbeitungszeit: 105 Minuten Schalten Sie ihr Mobiltelefon aus. Bei der Klausur ist als einziges

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

U5 Verzeichnisse und Sortieren

U5 Verzeichnisse und Sortieren U5 Verzeichnisse und Sortieren U5 Verzeichnisse und Sortieren Linux-Benutzerumgebung Fehlerbehandlung POSIX-Verzeichnis-Systemschnittstelle Datei-Attribute in Inodes U5.1 Verzeichnisse öffnen: opendir(3)

Mehr

Zwischenbericht Diplomarbeit Implementierung von Routing-Algorithmen für das DES-Testbed

Zwischenbericht Diplomarbeit Implementierung von Routing-Algorithmen für das DES-Testbed Beispielbild Zwischenbericht Diplomarbeit Implementierung von Routing-Algorithmen für das DES-Testbed Pawel Cofta 04.11.2008 Ausgangspunkt -Ziel: möglichst viele Routing-Algorithmen aus verschiedenen Bereichen

Mehr

Beispiel. Echo-Anwendung. Beispiel Echo Anforderungen. Benutzer stellt Konfiguration der seriellen Schnittstelle am PC ein (z.b. über Hyperterminal)

Beispiel. Echo-Anwendung. Beispiel Echo Anforderungen. Benutzer stellt Konfiguration der seriellen Schnittstelle am PC ein (z.b. über Hyperterminal) Beispiel Echo-Anwendung Erweiterung String-Ausgabe Beispiel Echo Anforderungen Benutzer stellt Konfiguration der seriellen Schnittstelle am PC ein (z.b. über Hyperterminal) - asynchroner Modus - Baudrate:

Mehr

ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS. Sascha Kath

ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS. Sascha Kath ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS Sascha Kath Dresden, Gliederung 1. Motivation & Zielstellung 2. Systembeschreibung 3. Implementierung und Messungen

Mehr

Implementierung und Vergleich verschiedener Strategien zur Durchführung von Ethernet-Performancemessungen

Implementierung und Vergleich verschiedener Strategien zur Durchführung von Ethernet-Performancemessungen Implementierung und Vergleich verschiedener Strategien zur Durchführung von Michael Gernoth 1 Jochen Reinwand 1 Stephan Kraft 1 Verena Venus 2 Roland Karch 2 Ralf Kleineisel 2 Birgit König 2 1 Friedrich-Alexander

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2017/18

Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2017/18 Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2017/18 Übung 3 Benedict Herzog Sebastian Maier Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für

Mehr

F Zeiger, Felder und Strukturen in C

F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts

Mehr

Proseminar Konzepte von Betriebssystemkomponenten

Proseminar Konzepte von Betriebssystemkomponenten Proseminar Konzepte von Betriebssystemkomponenten Thema: Module von Michael Balda am 02.02.2004 1 Allgemeines zum Modulkonzept 1.1 Was sind Module? Wozu dient das Modulkonzept? Module sind Codeelemente,

Mehr

Informatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1

Informatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Informatik Vorlesung 08 Pointer (Dynamisch) 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Pointer (Zeiger) Dynam. Speicher Bisher: Speicherbedarf muss

Mehr

Service & Support. Mechanismen des CP zum Senden und Empfangen von Daten

Service & Support. Mechanismen des CP zum Senden und Empfangen von Daten Deckblatt Mechanismen des CP4-7 zum Senden und Empfangen von Daten Betriebsart Telecontrol zur Kommunikation zwischen S7-00 Station und Zentrale FAQ April 0 Service & Support Answers for industry. Fragestellung

Mehr

Arrays. Einleitung. Deklarieren einer Array Variablen

Arrays. Einleitung. Deklarieren einer Array Variablen Arrays Einleitung bisher jede Variable einzeln deklariert: 12 3 14 12 32 32 3 32 5 3 double sum; int count; ÿ Sie können Zweck und Aufbau von Array-Datentypen erklären ÿ Sie können einen Array korrekt

Mehr

Zeiger vom Typ void* benötigen weniger Speicher als andere Zeiger, da bei anderen Zeigertypen zusätzlich die Größe gespeichert werden muss.

Zeiger vom Typ void* benötigen weniger Speicher als andere Zeiger, da bei anderen Zeigertypen zusätzlich die Größe gespeichert werden muss. EZS-Test Fragen zur Programmiersprache C Fragen entnommen aus SPiC 1 1. Ein Hauptprogramm und eine Interruptbehandlung greifen nebenläufig auf die Variable uint16_t foo zu. Das Hauptprogramm verwendet

Mehr

Deckblatt. S7-Kommunikation mit S FB14 GET und FB15 PUT. FAQ April Service & Support. Answers for industry.

Deckblatt. S7-Kommunikation mit S FB14 GET und FB15 PUT. FAQ April Service & Support. Answers for industry. Deckblatt FB14 GET und FB15 PUT FAQ April 2011 Service & Support Answers for industry. Fragestellung Dieser Beitrag stammt aus dem Service&Support Portal der Siemens AG, Sector Industry, Industry Automation

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2018/19

Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2018/19 Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2018/19 Übung 3 Rebecca Felsheim Benedict Herzog Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für

Mehr

R-ADSL2+ Einrichthinweise unter Windows 98/ME

R-ADSL2+ Einrichthinweise unter Windows 98/ME Verwenden Sie einen externen Router? Dann folgen Sie bitte der Anleitung des Routers und NICHT unseren zur Einrichtung einer Internetverbindung unter Windows 98/ME! Mit dieser Installationsanleitung möchten

Mehr

Kosten der Abschirmung von Code und Daten

Kosten der Abschirmung von Code und Daten Kosten der Abschirmung von Code und Daten Alexander Züpke, Kai Beckmann, Andreas Zoor, Reinhold Kröger vorname.nachname@hs-rm.de Motivation Internet der Dinge STM32F4 Mikrocontroller 2 Motivation Internet

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Hydroinformatik I: Referenzen und Zeiger

Hydroinformatik I: Referenzen und Zeiger Hydroinformatik I: Referenzen und Zeiger Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 06. Januar

Mehr

Grundlagen der Informatik 2 Modul Systemnahe Programmierung in C (SPiC) Klausur am 9. April 2008

Grundlagen der Informatik 2 Modul Systemnahe Programmierung in C (SPiC) Klausur am 9. April 2008 Grundlagen der Informatik 2 Modul Systemnahe Programmierung in C (SPiC) WS 2007/2008 Dr.-Ing. Jürgen Kleinöder Friedrich-Alexander-Universität Erlangen-Nürnberg Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Treiber Fortgeschrittene Konzepte

Treiber Fortgeschrittene Konzepte Treiber Fortgeschrittene Konzepte Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Treiber Fortgeschrittene Konzepte

Mehr