L. Linux-Treiber. L.1.2 System Architektur

Größe: px
Ab Seite anzeigen:

Download "L. Linux-Treiber. L.1.2 System Architektur"

Transkript

1 L. Linux-Treiber L.1.1 Literatur: Maurer W.: Professional Linux Kernel Architecture; John Wiley 2008 Kroah-Hartman G., Oram A.(Ed.): Linux Kernel in a Nutshell: Linux 2.6; O'Reilly 2007 Rubini A., Corbet J., Kroah-Hartman G.: Linux Device Drivers; O'Reilly Media 2005 L.1.2 System Architektur Open Source Unix Betriebssystem begonnen durch Linus Torvald. Prozesse und präemptives Multitasking. Light-Weight Threads (durch zusätzliche Bibliothek). Shared Libraries als Gegenstück zu den Windows DLLs. Monolithischer Kern mit Modulkonzept (auch dynamisch ladbar). Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 1

2 L.1.3 Kern- Architektur: System-Call über Software Interrupt 0x80. Kern läuft im Ring-0 und Anwendungen im Ring-3 (intel-x86). Gesamter Adressraum adressierbar: Kern (0 1GB), User (1-4GB). Anwendungen System Libraries (libc) System Call Interface Modules I/O Related File Systems Networking Device Drivers Process Related Scheduler Memory Management IPC Architecture-Dependent Code Hardware Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 2

3 L.2. Einbindung eines Treibers L.2.1 Statische Treiber Statisch mit dem Linux-Kern linken: Automatischer Symbol-Export (mydrvr_xvar), mydvr_init-routine wird beim System-Start gerufen, Treiber registriert sich selber beim Kern: int register_chrdev( unsigned int major, const char *name, struct file_operations *fops); Kernel #4 Registrierung beim Kern: do_basic_setup( ) register_chrdev( )... Dateioperationen im fops-vektor name nur für Konsolmeldungen, Treiber meldet sich mit einer Major-Nummer an. init do_basic_setup Device_setup tty_io fops tty_init register_chrdev ( 4, &myfops) Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 3

4 L.2.2 Dynamisch ladbare Treiber in Modulen Superuser-Rechte notwendig für insmod & rmmod. Treibermodule dynamisch nachladen: insmod /bt878/bin/frmgrbbr.o insmod erlaubt zur Laufzeit Module zu laden, init_module Routine wird aufgerufen, Modul registriert sich beim Kern. Modul entladen mit dem Befehl: rmmod... frmgrbbr cleanup_module Routine wird aufgerufen, Cleanup-Routine entfernt die Registrierung, Symboltabelle wird automatisch aufgeräumt. Symboltabelle im Kern (siehe auch /proc/ksyms): Grundlage für dynamisches Linken von Modulen, Enthält vorerst alle exportierten Symbole, static Namen jedoch nicht exportiert, Problem: Namenskollisionen, Teile der eigenen SymbTab explizite Registrieren mit register_symbtab( &ch_few ) Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 4

5 Optionale Versionskontrolle: Kompatibilität durch Prüfen von Schnittstellen (Funktionen & Datentypen). Kern muss zunächst mit Versionsinformation übersetzt werden. Jeder exportierte Namen wird durch eine 32-Bit CRC erweitert. Beispiel: printk_r11ad48ba (11ad48ba ist CRC berechnet aus von printk genutzter Schnittstelle). Module müssen mit Schalter MODVERSIONS übersetzt werden! genksyms zum Export von Symbolen aus Modulen mit CRC. Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 5

6 L.3. Gerätedateien Gerätedateien im Verzeichnis /dev. z.b. /dev/hda1 für die IDE-Festplatte 1. Erscheinen als Datei für die User-Prozesse: Mit eigenem inode, Hier im Verzeichnis /dev/, Ohne Daten-Extent auf Platte, Im inode als Gerät vermerkt. Öffnen von Gerätedateien bzw. Treibern: int open(const char *pfadname, int opnflag, int mode) Als System Call aus dem User Kontext, Liefert Filedeskriptor oder Errorcode ( Err < 0 ), Filedeskriptor ist Index in inode-tabelle des Prozesses. Sowohl für echte Datei als auch für Gerät. Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 6

7 Entsprechende Funktion im Treiber int open(struct inode *i, struct file *fp) inode: Major, Minor Nummer und Gerätetyp. fp: File-Pointer. Einrichten von Gerätedateien: mknod /dev/tty c 4 64 Name tty im Verz. /dev/, c : ist ein Character-Device, Neuer inode im Dateisystem, inode mit Feld vom Typ kdev_t = (4,64), Treibernummer 4 (Major Number). Gerätenummer 64 (Minor Number). Verbesserung durch devfs (ab Version ): Gerätedateien werden dynamisch erzeugt und entfernt. Gerätetreiber definiert Namen selbst. Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 7

8 L.4. Datenstrukturen des Dateisystems FileDeskriptor/Handle als Integerzahl: Index in die Dateitabelle eines Prozesses, Standardinput, -output, -error (0,1,2). F _ D e s k r U s e r P r o z e s s f i l e s Die Einträge in der Dateitabelle beziehen sich auf einen inode. i N o d e s inode: nimmt Bezug auf Treiber oder Diskfile, bestimmte Inodes nur im Hauptspeicher, Caching von Inodes im Hauptspeicher, persistente Inodes auf Festplatte. K e r n e l B l o c k - C a c h e B l o c k t r e i b e r T r e i b e r T r e i b e r T r e i b e r [ i ] Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 8

9 Virtual File System Koexistenz mehrerer Dateisysteme: Reale Dateisysteme (... HPFS, Minix), /proc/ -Dateisystem, Gerätetreiber: V i r t u e l l e s D a t e i s y s t e m E x t 2 F A T x F S / p r o c / B l o c k - C a c h e G e r ä t e t r e i b e r Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 9

10 Subsystem der /proc/-dateien Vorgespiegelte Dateien ohne persistente Speicherung. Informationen über Maschine, OS & Netz. /proc/ Pseudoverzeichnis: pci: gefundene PCI Devices stat: allgemeine Linux-Kern Statistik cpuinfo: inklusive CPU Designfehler devices: Character und Block Devices meminfo: Hauptspeicher, Cache, Swapspace... modules: geladene Module und Treiber /proc/sys/ Pseudoverzeichnis: fs/: Infos zu den Dateisystemen net/: Infos zu Netzwerksubsystemen vm/: Parameter der Speicherverwaltung kernel/: Infos zum Kern und zu Internetnamen /self/ Pseudoverzeichnis liefert Information über aktuelle Prozesse. Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 10

11 L.5. Major & Minor Nummern inode enthält eine 32-Bit Zahl (früher nur 16-Bit): Major Number: obere 8-Bit bezeichen den Treiber, Minor Number: untere 8-Bit bezeichnen Device: Ein Treiber kontrolliert evtl. mehrere Devices: mehrere Partitionen auf einer Festplatte, mehrere tty-leitungen. Dynamische Zuordnung von Major- & Minor-Nr., falls Registrierung mit major=0. Major Number Treiber Treiber Treiber Minor Number Device Device Device Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 11

12 L.6. Operationen für Character-Devices Vektor für mögl. Operationen eines Character-Devices: Als Funktionsvariablen, NULL, falls nicht unterstützt, Evtl. Defaultimplementierungen: struct file_operations { loff_t ( *llseek) ( ), ssize_t ( *read) ( ), ssize_t ( *write) ( ), int ( *readdir) ( ), unsigned int ( *poll) ( ), int ( *ioctl) ( ), int ( *mmap) ( ), int ( *open) (struct inode*, struct file * ), int ( *flush) ( ), int ( *release) ( ), int ( *fsync) ( ), int ( *fasync) ( ), int ( *check_media_change) ( ), int ( *revalidate) ( ), int ( *lock) ( ), }; Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 12

13 Beispiel: Registrierung der File-Operationen #define KERNEL /* kernel code */ #define MODULE /* module */ int my_major=0; read_write_t my_read (struct inode *inode, struct file *filp, char *buf, count_t count) { } read_write_t my_write (struct inode *inode, struct file *filp, const char *buf, count_t count) { } struct file_operations my_fops = { NULL, /* lseek */ my_read, my_write, }; /* nothing more, fill with NULLs */ int init_module() { my_major = register_chrdev(my_major, "mydriver", &my_fops); return 0; } void cleanup_module() { unregister_chrdev(my_major, "mydriver"); } Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 13

14 L.7. Nebenläufigkeit Jeder User-Prozess kann über INT 0x80 einen Systemaufruf absetzen und darauf warten. P r e e m p t i o n U s e r P r o z e s s e K o r o u t i n e n K e r n e l S p a c e Eigener Adressraum pro User-Prozess. Preemption im User Space: Prozess wird in beliebigem Zeitpunkt suspendiert, Koroutinen im Kernel Space: Nur unterbrochen durch einen Hardware-Interrupt, Sonst allenfalls explizite Prozessumschaltung. User- und Kernel-Threads durch zusätzliche Bibliothek. Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 14

15 Warteschlangen im Kernel: tq_scheduler: Tasks in dieser Queue immer ausgeführt, wenn der Scheduler aktiv wird. Laufen in der Umgebung des User-Prozesses, der schlafen gelegt wird. tq_timer: initiiert durch Timer (alle 10 ms), läuft im Interrupt. tq_immediate: Ausführung bei Rückkehr von Systemaufruf. Oder wenn der Scheduler aktiv wird. Tasks laufen als Bottom-Half. tq_disk: virtueller Speicher & Disk-Puffer Cache. Reserviert für internen Gebrauch. NB: zusätzlich können eigene Queues implementiert werden. Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 15

16 L.8. Ein-/Ausgabe Verarbeitung L.8.1 Interrupt-Routinen Treiber installiert seinen Interrupt: int request_irq ( unsigned int irq, void ( *handler ) ( int irq, void *dev_id, struct pt_regs *regs), unsigned long flags, const char * device, /* name für console */ void *dev_id ); /* optional */ Kernel prüft ob der IRQ verfügbar ist (result<0?) handler als Interrupt Service Routine (ISR): Evtl. ein Handler für mehr als eine IRQ Leitung, Prozedurvariable mit Signatur, Alter Registerkontext. Flags: SA_SHIRQ bedeutet shared Interrupt., SA_INTERRUPT bedeutet fast handler. Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 16

17 Shared Interrupts (SA_SHIRQ): Üblich am PCI-Bus, möglich am ISA-Bus, Interessenten für einen Interrupt werden verkettet, Kern ruft nacheinander alle Routinen zu einem Interrupt. dev_id optionaler Kontext für den Treiber. Beispiel: interrupt-basiertes Lesen struct wait_queue *my_queue; /* eigene Queue */ read_write_t my_read (struct inode *inode, struct file *filp, char *buf, count_t count) { if (nodataavail==true) { /* no data available? */ interruptible_sleep_on(&my_queue); /* we must sleep and wait */ } return count; /* number of read bytes */ } void myisr (int irq, void *dev_id, struct pt_regs *regs) { printk("my_driver: ISR running\n");. wake_up_interruptible(&my_queue); /* is there a pending read? */ } Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 17

18 U s e r p r o c e s s K e r n e l i n t e r r u p t i b l e _ s l e e p _ o n ( ) T r e i b e r I S R D e v i c e I R Q w a k e _ u p _ i n t e r r u p t i b l e ( ) Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 18

19 L.8.2 Bottom-Half Routinen Ziel: ISR möglichst kurz Lösung: Aufräumarbeiten außerhalb der ISR. Bottom-Half Routinen können unterbrochen werden und verbessern so die Anwortzeiten auf IRQs. Beim Verlassen eines System Calls werden maximal 32 Bottom-Half Routinen gerufen: r e t u r n _ f r o m _ s y s c a l l # 3 1 B o t t o m - H a l f s i n T r e i b e r n Kernelunterstützung für Bottom-Halfs: Registrierung: Deregistrierung: Aktivierung: init_bh(int Nr, void (*bh_routine)(void)); remove_bh(int Nr); mark_bh(int Nr); In neueren Linux Systemen Tasklets anstelle von Bottom-Halfs. Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 19

20 Beispiel: Bottom-Half struct tq_struct mybottomh_task; /* my bottom half task queue */ struct wait_queue *my_queue; /* waiting queue for pending readers */ void init() { mybottomh_task.routine = my_bottom_half; mybottomh_task.data = NULL; /* unused */ } void my_bottomh_interrupt(int irq, void *dev_id, struct pt_regs *regs) { queue_task_irq_off(&mybottomh_task, &tq_immediate); /* queue our bottom half */ mark_bh(immediate_bh); /* activate the queue element */ } void my_bottom_half(void *unused) { wake_up_interruptible(&my_queue); /* wake up a pending reader */ } Tasklets bevorzugt, ab Linux 2.3.x: void my_do_tasklet (unsigned long); DECLARE_TASKLET (my_tasklet, my_do_tasklet, 0); void my_bottomh_interrupt(int irq, void *dev_id, struct pt_regs *regs) { tasklet_schedule(&my_tasklet); } Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 20

21 L.8.3 Pufferzugriff Problem: Treiber darf nicht auf virtuellen User-Mode Speicher zugreifen: getrennte Prozeßadreßräume u.u. ist während der Abarbeitung des I/Os ein anderer Prozeß aktiv! Standardmässig geschieht gepufferte E/A: Treiber kopiert Daten explizit um. copy_from_user (unsigned long to, unsigned long from, unsigned long len); copy_to_user (unsigned long to, unsigned long from, unsigned long len); Memory-Mapping als Alternative: Treiber implementiert mmap. Vermeidet teueres Umkopieren. Puffer eines Treibers oder Speicher eines Gerätes in User-Adreßraum einblenden. Gut für Zugriff auf Grafikspeicher (z.b. für X-Server), aber weniger geeignet für eine serielle Schnittstelle. Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 21

22 L.9. Konfigurierung eines Treibers L.9.1 Hardware-Erkennung Bestimmung von E/A-Ports, IRQ und DMA: Automatisch im Treiber ( do_it_yourself ), Im Bootparameter für statisch gebundene Treiber, durch Programmzeilenparameter: insmod mydrvr c io_addr=0x400,0x408 irq=11 E/A-Adressen erkennen ( probing ): Verfügbarkeit prüfen mit check_region( port, len ), Konfigurationsraum lesen für PCI-Geräte, Erkennung von ISA-Devices ist heikel, Auf ISA-Ports vorerst nur Lesen, Geräteisolierung mit Plug&Play. Erkennung zum Initialisierungszeitpunkt. Ressourcenallozierung so spät wie möglich (request_region...). Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 22

23 Eigenen Interrupt erkennen: Freischalten aller nicht allozierten Interrupts. Interrupt vom eigenen Gerät auslösen. Aufsammeln des Interrupts. freeirqs = probe_irq_on(); outb( mydevicecntrl, intonmask...); /* enable interrupts */ outb( mydevicedata, somebyte ); /* force interrupt */ udelay( 1000); /* wait for device */ outb( mydevicecntrl, intoffmask ); /* disable interrupts */ myirq = probe_irq_off( freeirqs ); /* get my interrupt */ Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 23

24 L.9.2 Allozierung der Ressourcen Möglichst erst beim Öffnen des Treibers: mydrvr_open( inode, file) /* device open */ E/A-Ports reservieren (kein result): request_region( startaddr, len, Drvr77 ) Interrupt reservieren: success = request_irq ( Irq, Hdlr, Flags, ) DMA-Kanäle reservieren: success = request_dma( mychannel, Drvr77 ) Deinstallieren: release_region( ); free_irq( ); free_dma( ).. Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 24

25 L.10. Block-Devices L.10.1 Registrierung und Operationen Registrierung: register_blkdev(major, name, fops) Operationen für Block Devices: struct file_operations my_fops = { NULL, /* lseek: default */ block_read, /* gegeben */ block_write, /* gegeben */ NULL, }; NULL, my_ioctl, NULL, my_open, my_release, block_fsync, /* Device Puffer leeren */ NULL, my_check_media_change, /* media change? */ my_revalidate /* disk change detected */ /* mehrere vordef. Ctrl.-Codes, z.b. HDIO_GETGEO, */ Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 25

26 Programme schreiben und lesen in aus den vom Kern verwalteten Pufferbereichen: Block Cache, Directory Cache, inode Cache. Der Kern bietet eine Schnittstelle zum Transport von Blöcken an: block_read / block_write / block_fsync open / release, ioctl, check_change, revalidate. Die Synchronisierung zwischen Festplatte und Caches wird aus Effizienzgründen verzögert. Block-Devices können gemountet werden (z.b. mount /dev/hdb1 /win/c). Anforderungen vom Kern an den Treiber geschehen nicht über den File- Operations Vektor, sondern in einer blk_dev_struct: struct blk_dev_struct { void (*request_fn)(void); /* Request Funktion des Treibers */ struct request current_request ; /* aktueller Request, vorne in der Liste */ } Request-Function ist im Blocktreiber & interpretiert aktuellen Request. Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 26

27 L.10.2 Block-Device Datenstrukturen Array von Block Device Struktur mit zusätzl. Device Parameter Arrays für Block-, Sektorgröße,... Bei der Initialisierung wird u.a. die Request-Funktion eingetragen: blk_dev_struct[major].request_fn = my_request; Verkettete Requests: Kern reorganisiert evtl. Reihenfolge. Pro E/A-Operation ein Request. Enthält Cmd-Feld und Adressen zum lesen oder schreiben. b l k _ d e v _ s t r u c t [ m a j o r m i n o r D e v i c e p a r a m e t e r Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 27 m y _ r e q u e s t r e q u e s t s s

28 Gerüst einer Request-Funktion: void my_request(void) { while (1) /* process all requests in queue */ { INIT_REQUEST; /* macro checks for requests, returns if none */ switch(current->cmd) /* CURRENT macro to access current req. */ { case WRITE: memcpy(ptr, CURRENT->buffer, size); break; } end_request(1); /* complete block request (status=success) */ } } Technische Informatik 2, Wintersemester 2008/09, VS Informatik, Universität Ulm, P. Schulthess L - 28

22. Linux-Treiber. System Architektur

22. Linux-Treiber. System Architektur 22. Linux-Treiber Rubini, A. & Corbet, J.: Linux Gerätetreiber, 2. Auflage, O Reilly 2002. M. Beck, & al.: Linux Kernelprogrammierung Algorithmen & Strukturen der Version 2.4, Addison-Wesley, 6. Auflage,

Mehr

4. Linux-Treiber. System Architektur

4. Linux-Treiber. System Architektur 4. Linux-Treiber Rubini, Alessandro: Linux Device Drivers, O Reilly, 2nd Edition, 2001. M. Beck, & al.: Linux Kernelprogrammierung Algorithmen & Strukturen der Version 2.4, Addison-Wesley, 6. Auflage,

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

Linux-Kernel- Programmierung

Linux-Kernel- Programmierung Michael Beck, Harald Böhme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus, Dirk Verworner, Claus Schröter Linux-Kernel- Programmierung Algorithmen und Strukturen der Version 2.2 5., aktualisierte und erweiterte

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

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

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

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13.

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13. DOSEMU Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren Matthias Felix filo@icip.de FAU 13. Juni 2007 Matthias Felix (FAU) DOSEMU 13. Juni 2007 1 / 22 Inhalt 1 Einführung

Mehr

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus 2. November 2012 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität

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

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK)

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Schwerpunkt Linux Interrupts, Softirqs, Tasklets, Bottom Halves Interrupts: Softirqs, Tasklets, Bottom Halves 1 Thomas Engelhardt Übersicht: Klassifizierung

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

Linux-Kernel- Programmierung

Linux-Kernel- Programmierung Michael Beck, Harald Böhme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus & Dirk Verworner Linux-Kernel- Programmierung Algorithmen und Strukturen der Version 2.0 4., aktualisierte und erweiterte Auflage

Mehr

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1 /home/esser/daten/dozent/hs-muenchen-2008/folien/bs-ss2008-esser-14.odp Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]:

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

GNU/Hurd. ... ein Mach basiertes Multi Server Betriebssystem. Manuel Gorius. . p.1/33

GNU/Hurd. ... ein Mach basiertes Multi Server Betriebssystem. Manuel Gorius. . p.1/33 . p.1/33 GNU/Hurd... ein Mach basiertes Multi Server Betriebssystem Manuel Gorius 16. September 2004 . p.2/33 Übersicht 1. Wissenswertes zu Hurd 2. Motivationen und Ziele 3. Mach Microkernel 4. Single

Mehr

Praktikum angewandte Systemsoftwaretechnik (PASST)

Praktikum angewandte Systemsoftwaretechnik (PASST) Praktikum angewandte Systemsoftwaretechnik (PASST) Dateisysteme / Aufgabe 6 21. Juni 2018 Stefan Reif, Peter Wägemann, Florian Schmaus, Michael Eischer, Andreas Ziegler, Bernhard Heinloth und Benedict

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

Hardware. Heimo Schön 4/2002 Seite 1/22

Hardware. Heimo Schön 4/2002 Seite 1/22 Hardware Heimo Schön 4/2002 Seite 1/22 /dev Geräte befinden sich im Directory /dev Gerätetypen: Unterscheidung durch Dateityp (erste Spalte von ls -al) b Block Devices (Disk, Floppy, etc.) c character

Mehr

Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen

Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen Referent Klaus Ruhwinkel Module, Built-In-Treiber, Treiber Ein Modul kann alles sein Ein Treiber hat I/O Aufgaben und unterscheidet

Mehr

Betriebssysteme 7. Geräteverwaltung. Peter Altenbernd Geräteverwaltung Betriebssysteme WS 2010/11 Hochschule Darmstadt

Betriebssysteme 7. Geräteverwaltung. Peter Altenbernd Geräteverwaltung Betriebssysteme WS 2010/11 Hochschule Darmstadt Betriebssysteme 7. Geräteverwaltung 1 Übersicht 1. Ziel des Kapitels 2. Motivation und Aufgaben 3. Einleitung 4. E/A-Schichtenmodell 5. E/A mit Plattenspeichern 6. Uhren 7. Terminals und Graphische Benutzeroberflächen

Mehr

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis... 1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................

Mehr

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a Was machen wir heute? Betriebssysteme Tutorium 10 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

Hardware und Gerätetreiber

Hardware und Gerätetreiber Hardware und Gerätetreiber Betriebssysteme Hermann Härtig TU Dresden Übersicht Übersicht Kommunikation zwischen Hardware und CPU Interrupts I/O-Ports I/O-Speicher Busse Verwaltung von Geräten Dynamisches

Mehr

I/O Managment und Software. Input/Output Management Tanenbaum Kap. 5 Stallings Kap. 11 Glatz Kap. 6

I/O Managment und Software. Input/Output Management Tanenbaum Kap. 5 Stallings Kap. 11 Glatz Kap. 6 I/O Managment und Software Input/Output Management Tanenbaum Kap. 5 Stallings Kap. 11 Glatz Kap. 6 1 1 Inhalt Um was geht es? I/O-Hardware Geräte, Systeme, Schnittstellen, Controller Organisation und Architektur

Mehr

Zwei Möglichkeiten die TLB zu aktualisieren

Zwei Möglichkeiten die TLB zu aktualisieren Zwei Möglichkeiten die TLB zu aktualisieren Die MMU kümmert sich um alles (Hardware-Lösung) sucht die p-entry wenn diese nicht da ist, behandelt direkt das TLB-miss zum Schluss wird die neue p-entry (virt

Mehr

andere aufrufen und Datenstrukturen Die Folgen von Änderungen und Erweiterungen sind schwer

andere aufrufen und Datenstrukturen Die Folgen von Änderungen und Erweiterungen sind schwer 3. Betriebssystemorganisation 3.1 Monolithische Betriebssysteme Sammlung von Routinen, ohne Hierarchie, Kapselung und Schichtung. Jede Prozedur kann beliebige Anwendungen andere aufrufen und Datenstrukturen

Mehr

Tafelübung zu BS 5. Dateioperationen

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

Mehr

Hardware & Kernel-Module

Hardware & Kernel-Module Hardware & Kernel-Module Linux-Kurs der Unix-AG Zinching Dang 09. Juli 2013 Hardwarekomponenten Mainboard CPU RAM Grafikkarte Festplatte Optische und Wechsel-Datenträger Peripherie Zinching Dang Hardware

Mehr

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Aufbau eines modernen Betriebssystems (Windows NT 5.0) Aufbau eines modernen Betriebssystems (Windows NT 5.0) Moritz Mühlenthaler 14.6.2004 Proseminar KVBK Gliederung 1.Das Designproblem a) Überblick b) Design Goals c) Möglichkeiten der Strukturierung 2. Umsetzung

Mehr

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Betriebssysteme. Tutorium 2. Philipp Kirchhofer Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 4. November 2009 Philipp

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

Vorlesung 5: Interrupts

Vorlesung 5: Interrupts 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

Mehr

4.3 Directories / Filesysteme

4.3 Directories / Filesysteme I-Node H. Weber, FH Wiesbaden WS 2008/09 Systemprogrammierung Kap. 4.3 Seite 1 von 32 Hierfür gibt es eine ganze Reihe von Systemaufrufen und Subroutines. Wir beginnen mit chroot Root Directory ändern

Mehr

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft Prozeß: drei häufigste Zustände Prozeß: anatomische Betrachtung jeder Prozeß verfügt über seinen eigenen Adreßraum Sourcecode enthält Anweisungen und Variablen Compiler überträgt in Assembler bzw. Binärcode

Mehr

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

Name: ES2 Klausur Thema: ARM Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 75 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 7 Prozesse und Threads Lothar Thiele Computer Engineering and Networks Laboratory Betriebssystem 7 2 7 3 Betriebssystem Anwendung Anwendung Anwendung Systemaufruf (syscall) Betriebssystem

Mehr

7 Laufzeit-Speicherverwaltung

7 Laufzeit-Speicherverwaltung 7.1 Grundlagen Bevor wir die Code-Generierung betrachten, müssen wir uns Gedanken über zur Laufzeit des zu generierenden Programms notwendige Aktivitäten zur Zuordnung und Freigabe von Speicherplatz machen.

Mehr

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Task Wiederholung 1 System SysCalls (1) Wozu? Sicherheit Stabilität Erfordert verschiedene modes of execution: user mode privileged mode

Mehr

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL3 Folie 1 Grundlagen Software steuert Computersysteme

Mehr

Implementierung eines Dateisystems für den transparenten Zugriff auf ein Versionskontrollsystem

Implementierung eines Dateisystems für den transparenten Zugriff auf ein Versionskontrollsystem eines Dateisystems für den transparenten Zugriff auf ein Versionskontrollsystem Präsentation zur Bachelorarbeit Jens M. Nödler Betreut durch Prof. Dr. Grabowski Institut für Informatik Georg-August-Universität

Mehr

I/O: Von der Platte zur Anwendung. Von Igor Engel

I/O: Von der Platte zur Anwendung. Von Igor Engel I/O: Von der Platte zur Anwendung Von Igor Engel 1 Gliederung 1 Einleitung 2 Übersicht 3 Systemaufrufe Beispiel in Unix 4 Dateien 4.1 Dateisysteme 4.2 Transport der Daten 5 Festplattentreiber 6 Festplattenkontroller

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard Systeme I: Betriebssysteme Kapitel 4 Prozesse Wolfram Burgard Version 18.11.2015 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

UNIX Devices Übung aus Systemprogrammierung & Systemnahme Programmierung. Armin Wasicek

UNIX Devices Übung aus Systemprogrammierung & Systemnahme Programmierung. Armin Wasicek UNIX Devices Übung aus Systemprogrammierung & Systemnahme Programmierung Armin Wasicek 1 Inhalt UNIX Kernel Dateisystemverwaltung Geräteverwaltung Networking Security 2 UNIX Kernel Struktur System call

Mehr

Konzepte von Betriebssystemkomponenten

Konzepte von Betriebssystemkomponenten Konzepte von Betriebssystemkomponenten Systemstart und Programmausführung Seminarvortrag 15.12.2003, Michael Moese Übersicht 2. Systemstart 3. Programmausführung TEIL 1: Systemstart 1.1 Das BIOS 1.2 Der

Mehr

Single- und Multitasking

Single- und Multitasking Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de Peter B. Ladkin Command Interpreter (ComInt) läuft wartet auf Tastatur-Eingabe "liest" (parst) die Eingabe (für Prog-Name) Macht "Lookup"

Mehr

Übung zu Betriebssystemtechnik

Übung zu Betriebssystemtechnik Übung zu Betriebssystemtechnik Nachrichtenaustausch und Copy-on-Write 11. Juni 28 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl

Mehr

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen

Mehr

Geräteverwaltung: Einführung

Geräteverwaltung: Einführung Geräteverwaltung: Einführung Die Ziele einer Geräteverwaltung sind: Einfache Softwareschnittstelle Gleiche Software Schnittstellen für alle Geräte eines Gerätetyps z.b.: unabhängig vom Soundkartenhersteller

Mehr

GNU/Linux Introduction Linux Introduction: Part 1. Simon M. Haller, Sebastian Stabinger iis.uibk.ac.at

GNU/Linux Introduction Linux Introduction: Part 1. Simon M. Haller, Sebastian Stabinger iis.uibk.ac.at GNU/Linux Introduction Linux Introduction: Part 1 Simon M. Haller, Sebastian Stabinger iis.uibk.ac.at Windows / Linux @ Central IT Services Windwos 7 Centos 7.3 Zugriff von Windows auf Linux (WinSCP, PuTTy)

Mehr

Überlegungen beim Entwurf eines Betriebssystems

Überlegungen beim Entwurf eines Betriebssystems Überlegungen beim Entwurf eines Betriebssystems Schnelligkeit Schutz und Sicherheit Korrektheit Wartbarkeit Kommerzielle Faktoren Standards und offene Systeme Schnelligkeit Es ist schwierig, Kenngrößen

Mehr

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen Albrecht Achilles 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Betriebssysteme Eine kompakte Einführung mit Linux

Mehr

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) J. Zhang zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 10 am 29.06.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Mobile Anwendungsentwicklung - Überblick über ios & Swift I -

Mobile Anwendungsentwicklung - Überblick über ios & Swift I - Mobile Anwendungsentwicklung - Überblick über & I - Prof. Dr. Michael Cebulla 4. November 2016 Hochschule Schmalkalden Wintersemester 2016/17 1 / 38 M. Cebulla Mobile Anwendungsentwicklung Gliederung 1

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

Echtzeitbetriebssysteme

Echtzeitbetriebssysteme Speicherverwaltung (Memory Management) Aufgaben der Memory-Management-Unit ist l der Speicherschutz und l die Adressumsetzung Wird durch Hardware unterstützt l Memory Management Unit (MMU) l MMU wird vom

Mehr

Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009. Grundkurs Unix. Teil 1: Die Essenz von UNIX. Dr.

Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009. Grundkurs Unix. Teil 1: Die Essenz von UNIX. Dr. Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009 Grundkurs Unix Teil 1: Die Essenz von UNIX Dr. Erwin Hoffmann E-Mail: unix@fehcom.de https://www.fehcom.net/unix/ Dr. Erwin Hoffmann:

Mehr

Betriebssysteme und Microkern

Betriebssysteme und Microkern 16. September 2004 Überblick 1 Einführung 2 Betriebssysteme 3 Monolith 4 5 Anhang Einführung Teil I Einführung Einführung Was ist ein Betriebssystem? Unterscheidung Was ist ein Betriebssystem? engl. Operating

Mehr

6.4 Fallstudie: PC-Bussysteme (9)

6.4 Fallstudie: PC-Bussysteme (9) 6.4 Fallstudie: PC-Bussysteme (9) Plug & Play: beim Booten liest BIOS den 256- Byte Konfigurationsblock jeder PCI-Karte mit: Code für Hersteller und Gerätenummer Code für Gerätetyp Zeitparameter BIOS konfiguriert

Mehr

6.5 Fallstudie: USB. 6.4 Fallstudie: PC-Bussysteme (9) 6.5 Fallstudie: USB (2) 6.5 Fallstudie: USB (3)

6.5 Fallstudie: USB. 6.4 Fallstudie: PC-Bussysteme (9) 6.5 Fallstudie: USB (2) 6.5 Fallstudie: USB (3) 6.4 Fallstudie: PC-Bussysteme (9) Plug & Play: beim Booten liest BIOS den 256- Byte Konfigurationsblock jeder PCI-Karte mit: Code für Hersteller und Gerätenummer Code für Gerätetyp Zeitparameter BIOS konfiguriert

Mehr

11. Die PC-Schnittstelle

11. Die PC-Schnittstelle PC-Schnittstelle Funktion -1. Die PC-Schnittstelle.1. Funktion Die folgenden Angaben gelten ohne Einschränkung für den PC, PC-XT, PC-AT, AT-386, AT-486 und kompatible Rechner. Sie sind nur für jene interessant,

Mehr

Linux-Kernel- Programmierung

Linux-Kernel- Programmierung Michael Beck, Harald Böhme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus, Dirk Verworner Linux-Kernel- Programmierung Algorithmen und Strukturen der Version 1.0 ADDISON-WESLEY PUBLISHING COMPANY Bonn Paris

Mehr

E.1 Allgemeine Konzepte (3) E.1 Allgemeine Konzepte (2) E.1 Allgemeine Konzepte. Datei. Einordnung. Katalog / Verzeichnis

E.1 Allgemeine Konzepte (3) E.1 Allgemeine Konzepte (2) E.1 Allgemeine Konzepte. Datei. Einordnung. Katalog / Verzeichnis E Dateisysteme E Dateisysteme (3) Einordnung Prozessor (CPU, Central processing unit) Datei speichert Daten oder Programme Katalog Verzeichnis erlaubt Benennung der Dateien enthält Zusatzinformationen

Mehr

Dokumentation CanFox API

Dokumentation CanFox API Dokumentation CanFox API Author: Andreas Herbertz Erstellt: 18.09.2012 Sontheim Industrie Elektronik GmbH Georg-Krug-Straße 2, D-87437 Kempten Telefon: +49) 0831.575900-0 Fax: +49) 0831.575900-72 Email:

Mehr

1 Prozesse und Scheduling (12 Punkte)

1 Prozesse und Scheduling (12 Punkte) 1 Prozesse und Scheduling (12 Punkte) a) UNIX Shell-Operatoren (insgesamt 4 Punkte) 1. Operator (1,5 Punkte) Beschreiben Sie die Funktionsweise des Operators. 2. Operator Beispiel (1 Punkt) Geben Sie für

Mehr

Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen

Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen Referent Klaus Ruhwinkel Module, Built-In-Treiber, Treiber Ein Modul kann alles sein Ein Treiber hat I/O Aufgaben und unterscheidet

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 11 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Betriebssysteme I WS 2017/18. Prof. Dr. Dirk Müller. 05a 64-/32-Bit-Architekturen

Betriebssysteme I WS 2017/18. Prof. Dr. Dirk Müller. 05a 64-/32-Bit-Architekturen Betriebssysteme I 05a 64-/32-Bit-Architekturen Prof. Dr. Dirk Müller Begriff Eine n-bit-architektur ist eine Prozessorarchitektur mit einer Wortbreite von n Bit. meist Zweierpotenzen: 8-, 16-, 32-, 64-Bit-Architekturen

Mehr

Filesystemserver. SDI Gruppe Juni Till Schuberth / Victor van Santen. Filesystemserver: Till Schuberth und Victor van Santen SDI6

Filesystemserver. SDI Gruppe Juni Till Schuberth / Victor van Santen. Filesystemserver: Till Schuberth und Victor van Santen SDI6 Filesystemserver SDI Gruppe 6 04. Juni 2009 Till Schuberth / Victor van Santen 1 Überblick Einführung Entwurfsentscheidungen Beschreibung der Server Beispielimplementierungen für L4 Schnittstellenbeschreibung

Mehr

Threads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015

Threads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

PVFS (Parallel Virtual File System)

PVFS (Parallel Virtual File System) Management grosser Datenmengen PVFS (Parallel Virtual File System) Thorsten Schütt thorsten.schuett@zib.de Management grosser Datenmengen p.1/?? Inhalt Einführung in verteilte Dateisysteme Architektur

Mehr

3.5 Unterbrechungsbehandlung (interrupt handling)

3.5 Unterbrechungsbehandlung (interrupt handling) 3.5 Unterbrechungsbehandlung (interrupt handling) hat folgende Aufgaben: Zustandsdaten des unterbrochenen Prozesses retten und neuen Kontext für die Behandlung aufsetzen, unterbrechungsspezifische Behandlung

Mehr

19. Mai 2004 Gewerbeschule Bad Säckingen Manuel Schneider

19. Mai 2004 Gewerbeschule Bad Säckingen Manuel Schneider Partitionen und Dateisysteme Sinnvolle Partitionierung Linux Boot-Partition (ext2) Swap-Partition (swap) Root-Partition (reiserfs) Windows (ntfs) Partitionierung mit fdisk (Linux) :[~]#> fdisk /dev/hda

Mehr

9.3 Virtuelle FS Linux VFS Windows IFS 9.4 Dateizugriff in Linux-Programmen

9.3 Virtuelle FS Linux VFS Windows IFS 9.4 Dateizugriff in Linux-Programmen Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit

Mehr

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme Basisinformationstechnologie I Wintersemester 2011/12 23. November 2011 Betriebssysteme Seminarverlauf 12. Oktober: Organisatorisches / Grundlagen I 19. Oktober: Grundlagen II 26. Oktober: Grundlagen III

Mehr

Homogene Multi-Core-Prozessor-Architekturen

Homogene Multi-Core-Prozessor-Architekturen Homogene Multi-Core-Prozessor-Architekturen Praktikum Parallele Rechnerarchitekturen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009

Mehr

Prozesszustände (1a)

Prozesszustände (1a) Prozesszustände (1a) NOT EXISTING DELETED CREATED Meta-Zustand (Theoretische Bedeutung) Prozesszustände Multiuser Umfeld (1c) Hintergrund-Prozess - der Prozess startet im Hintergrund - my-commandbin &

Mehr

Linux booten. Jörg Ahrens

Linux booten. Jörg Ahrens Linux booten Was passiert beim Einschalten eines PCs? Das BIOS Viele Bootsektoren Bootloader (Grub, LILO) Kernel Parameter und InitRD Feinheiten beim Plattenausfall Der Bootvorgang Beim Einschalten eines

Mehr

Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger

Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger Netzwerk - Programmierung Threads Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Jan Krüger jkrueger@cebitec.uni-bielefeld.de Übersicht Probleme mit fork Threads Perl threads API Shared Data Mutexes

Mehr

Virtueller Speicher und Memory Management

Virtueller Speicher und Memory Management Virtueller Speicher und Memory Management Speicher-Paradigmen Programmierer ein großer Adressraum linear adressierbar Betriebssystem eine Menge laufender Tasks / Prozesse read-only Instruktionen read-write

Mehr

Konzepte von Betriebssystem- Komponenten:

Konzepte von Betriebssystem- Komponenten: Konzepte von Betriebssystem- Komponenten: OS für kleine Endgeräte: Symbian OS Sven Walter Folie 1/25 S.Walter Überblick 1. Einleitung 2. Hardware Anforderungen und Architektur 3. Betriebssystem Architektur

Mehr

Literatur. Betriebssysteme - WS 2015/16 - Teil 15/Dateisysteme1

Literatur. Betriebssysteme - WS 2015/16 - Teil 15/Dateisysteme1 Literatur [15-1] Rémy Card, Theodore Ts'o, Stephen Tweedie: Design and Implementation of the Second Extended Filesystem http://web.mit.edu/tytso/www/linux/ext2intro.html [15-2] Dateisystem http://de.wikipedia.org/wiki/dateisystem

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

Dynamische Speicherverwaltung

Dynamische Speicherverwaltung Dynamische Speicherverwaltung 1/ 23 Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Dynamische Speicherverwaltung 2/ 23 Gliederung 1 Allgemeines zur Speichernutzung 2 Ziele und Nutzen 3 Anwendung in

Mehr

Seminar AspektOS. DEVIL und BOSSA. DSLs für Systemsoftware: Referent: Helmut Wünsch

Seminar AspektOS. DEVIL und BOSSA. DSLs für Systemsoftware: Referent: Helmut Wünsch Seminar AspektOS DSLs für Systemsoftware: DEVIL und BOSSA Referent: Helmut Wünsch Übersicht DSLs: kurze Einführung DEVIL Motivation Prinzip Praxisbeispiel Busmousedriver Implementierung konventionell Implementierung

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 21.11.2012 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Testat nach Weihnachten Mittwoch

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

Linux Paging, Caching und Swapping

Linux Paging, Caching und Swapping Linux Paging, Caching und Swapping Inhalte Paging Das Virtuelle Speichermodell Die Page Table im Detail Page Allocation und Page Deallocation Memory Mapping & Demand Paging Caching Die verschiedenen Caches

Mehr

9. Dateisysteme. Betriebssysteme Harald Kosch Seite 164

9. Dateisysteme. Betriebssysteme Harald Kosch Seite 164 9. Dateisysteme Eine Datei ist eine Abstraktion für ein Aggregat von Informationen (muß nicht eine Plattendatei sein). Aufbau eines Dateisystems: Katalog (Directory) Einzelne Dateien (Files) Zwei Aspekte

Mehr

Betriebssystemschichten (11.03.2011)

Betriebssystemschichten (11.03.2011) Proseminar Speicher- und Dateisysteme (11.03.2011) Bernd Ihnen Übersicht 2/20 Einleitung Betriebssysteme/ Übersicht Mikrokernel Monolithischer Kernel Vergleich der Kernel Fallbeispiel Linux Kernelaufbau

Mehr

Das virtuelle Dateisystem von Linux (VFS)

Das virtuelle Dateisystem von Linux (VFS) Das virtuelle Dateisystem von Linux (VFS) Idee: uniformer Zugriff auf unterschiedliche Dateisysteme ext2 Block Device Programm (cp, rm) VFS NTFS Block Device NFS Netzwerk Arten von Dateisystemen: plattenbasiert

Mehr

Betriebssysteme VO Betriebssysteme KU

Betriebssysteme VO Betriebssysteme KU VO KU für Lehramt VU Einführung 7.10.2011 Inhalt Vorstellung Motivation und Inhalte der Vorlesung Organisatorisches Übungen git Inhalte Aufbauend auf Rechnerorganisation Verständnis für Funktionen und

Mehr

Hans-Georg Eßer, Hochschule München, Betriebssysteme I, SS Speicherverwaltung 1

Hans-Georg Eßer, Hochschule München, Betriebssysteme I, SS Speicherverwaltung 1 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Grundlagen Rechnerarchitektur und Betriebssysteme

Grundlagen Rechnerarchitektur und Betriebssysteme Grundlagen Rechnerarchitektur und Betriebssysteme Johannes Formann Definition Computer: Eine Funktionseinheit zur Verarbeitung von Daten, wobei als Verarbeitung die Durchführung mathematischer, umformender,

Mehr