systemcalls (systemaufrufe) nina, helen & nicole proudly present:

Download Systemcalls (Systemaufrufe) Nina, Helen & Nicole proudly present:

Post on 05-Apr-2015

104 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

  • Folie 1
  • Systemcalls (Systemaufrufe) Nina, Helen & Nicole proudly present:
  • Folie 2
  • 1. Definitionen 1.1. Interrupt 1.1.1. Exception 1.1.2. Hardware-Interrupt 1.1.3. Software-Interrupt 1.2. Systemcall 1.2.1. Unix Schalenmodell 1.2.2. Definition Systemcall 1.2.3. 5 Bereiche 2. Schematischer Ablauf 3. Beispiele 3.1. ausfhrlich: creat 3.2. weitere Beispiele Gliederung
  • Folie 3
  • 1. Definitionen 1.1. Interrupt 1.1.1. Exception 1.1.2. Hardware-Interrupt 1.1.3. Software-Interrupt 1.2. Systemcall 1.2.1. Unix Schalenmodell 1.2.2. Definition Systemcall 1.2.3. 5 Bereiche 2. Schematischer Ablauf 3. Beispiele 3.1. ausfhrlich: creat 3.2. weitere Beispiele Gliederung
  • Folie 4
  • Interrupt = Unterbrechung des aktuellen Prozesses durch CPU Unterteilung in : Exception Hardware Interrupt Software Interrupt
  • Folie 5
  • Hardware Interrupt
  • Folie 6
  • Software Interrupt = gewollte Unterbrechung des laufenden Progammes, weil Kernel wichtige Funktionen ausfhren soll - Software Interrupt wird durch prozessortypabhngige Befehle (Systemcalls) ausgelst
  • Folie 7
  • 1. Definitionen 1.1. Interrupt 1.1.1. Exception 1.1.2. Hardware-Interrupt 1.1.3. Software-Interrupt 1.2. Systemcall 1.2.1. Unix Schalenmodell 1.2.2. Definition Systemcall 1.2.3. 5 Bereiche 2. Schematischer Ablauf 3. Beispiele 3.1. ausfhrlich: creat 3.2. weitere Beispiele Gliederung
  • Folie 8
  • Anwenderprogramme Kernel Hardware sh who a.out date wc grep ed vi ld as comp cpp nroff Unix Schalenmodell Systemstruktur Systemcalls Systemmode Usermode
  • Folie 9
  • = Anfrage an den Kernel - Programme fordern per Systemcall Dienstleistungen vom Kernel an - definiert Schnittstelle zwischen Kernel und Benutzerprogramm
  • Folie 10
  • 5 Bereiche der Systemcalls 1. Prozessverwaltungfork, exit, exec 2. Speicherverwaltungbrk, mmap, munmap 3. Dateiverwaltungopen, read, write 4. Gerteverwaltungio_ctl 5. Kommunikationkill, pipe
  • Folie 11
  • 1. Definitionen 1.1. Interrupt 1.1.1. Exception 1.1.2. Hardware-Interrupt 1.1.3. Software-Interrupt 1.2. Systemcall 1.2.1. Unix Schalenmodell 1.2.2. Definition Systemcall 1.2.3. 5 Bereiche 2. Schematischer Ablauf 3. Beispiele 3.1. ausfhrlich: creat 3.2. weitere Beispiele Gliederung
  • Folie 12
  • Systemebenen Prozessor etc. Benutzerebene Systemebene Kernel Hardware User- Anwendungen BibliothekenBenutzerstack Hardware-Steuerung PSR Mehr- zweck- register System- stack Trap Usermode Systemmode weitere Register Tabel- len
  • Folie 13
  • BENUTZEREBENE - USERMODE User-AnwendungenBenutzerstack SYSTEMCALL creat(name, 0666);... 204 mode Angabe (Oktal 666) 1b6 Adresse von name 6a Rckkehradresse
  • Folie 14
  • BENUTZEREBENE - USERMODE Bibliothek Mehrzweckregister Befehl Nr exit1 fork2 read3.... create8 142 ;ASM.CODE BEGINN MOV JSR JMP.. 58 7e 80 13c 146 8 TRAP SYSTEMEBENE - SYSTEMMODE
  • Folie 15
  • BENUTZEREBENE - USERMODE SYSTEMEBENE - SYSTEMMODE TRAP Softwareinterrupt PSR 0 15 OF DF IF TF SFZF AFPF CF 1
  • Folie 16
  • SYSTEMEBENE - SYSTEMMODE 142 58 7e 80 13c 146 8 Mehrzweckregister Tabelle Register U-Bereich Benutzerstack... 204 1b6 6a BENUTZER- EBENE USERMODE 0 1 2 3 4 5 6 7 8 9 10 11 funktion0(); funktion1(); funktion2(); funktion3(); funktion4(); funktion5(); funktion6(); funktion7(); funktion8(); funktion9(); funktion10(); funktion11(); 204 1b6
  • Folie 17
  • SYSTEMEBENE - SYSTEMMODE Hardware ;Ken Thompson 1969 ;.STACK 1000H.DATA VARA DW1; VARB DW2;.CODE BEGINN MOV AX,@DATA; MOV AX,VARA; ADD AX,VARB, END BEGIN; Prozessor 0 1 0 11 0 1 00 1 1 101 11 0 010 110 1 0 100
  • Folie 18
  • Register U-Bereich 204 1b6 Fehlerfeld Mehrzweckregister 142 58 7e 80 146 8 SYSTEMEBENE - SYSTEMMODE 13c 0 PSR 015 OF DFIFTFSFZF AF PF CF 1 0x800CCC6F CF 1
  • Folie 19
  • BENUTZEREBENE - USERMODE SYSTEMEBENE - SYSTEMMODE PSR OF DF IF TFSFZF AF PF CF Bibliothek Befehl Nr exit1 fork2 read3.... creat 8 ;ASM.CODE BEGINN MOV JSR JMP.. ? User-AnwendungenBenutzerstack creat(name, 0666);... 204 1b6 6a I Returncode = 0
  • Folie 20
  • BENUTZEREBENE - USERMODE SYSTEMEBENE - SYSTEMMODE PSR OF DF IF TFSFZF AF PF CF Bibliothek Befehl Nr exit1 fork2 read3.... creat 8 ;ASM.CODE BEGINN MOV JSR JMP.. ? User-Anwendungen creat(name, 0666); ? Returncode = -1 1 Mehrzweckregister 58 7e 80 146 8 13c 142 0x800CCC6F errno
  • Folie 21
  • Permission No such file or directory No such process interrupted system call No such device Not a directory... File table overflow Too many open files Not a typewriter EPERM ENOENT ESRCH EINTR ENODEV ENOTDIR ENFILE EMFILE ENOTTY 1 3 4 19 20 23 24 25 error messageMakroerrno User-Anwendungen creat(name, 0666); BENUTZEREBENE - USERMODE Returncode = -1 gmake[1]: *** [libswt- gnome-gtk-3063.so] Error 1 gmake[1]: Leaving directory`/usr/ports/ java/eclipse/work/plugins /org.eclipse.swt/Eclipse SWT PI/gtk/library' gmake: *** [libswt] Error 2 0x800CCC6F errno *** Error code 2 2
  • Folie 22
  • 1. Definitionen 1.1. Interrupt 1.1.1. Exception 1.1.2. Hardware-Interrupt 1.1.3. Software-Interrupt 1.2. Systemcall 1.2.1. Unix Schalenmodell 1.2.2. Definition Systemcall 1.2.3. 5 Bereiche 2. Schematischer Ablauf 3. Beispiele 3.1. ausfhrlich: creat 3.2. weitere Beispiele Gliederung
  • Folie 23
  • char name[]=file; main { int fd; fd = creat(name, 0666); } Systemcall creat Ausschnitt aus C-Programm
  • Folie 24
  • Teil des Assemblercodes fr Motorola 68000
  • Folie 25
  • Weitere Beispiele open(, ) ffnet eine vorhandene Datei mit angegebener Benutzungsart read(,, ) liest Datei ein, mit angegebener Anzahl an Bytes write(,, ) schreibt angegebene Anzahl an Bytes in spezifizierte Datei
  • Folie 26
  • ENDE