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

<ul><li> Folie 1 </li> <li> Systemcalls (Systemaufrufe) Nina, Helen &amp; Nicole proudly present: </li> <li> Folie 2 </li> <li> 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 </li> <li> Folie 3 </li> <li> 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 </li> <li> Folie 4 </li> <li> Interrupt = Unterbrechung des aktuellen Prozesses durch CPU Unterteilung in : Exception Hardware Interrupt Software Interrupt </li> <li> Folie 5 </li> <li> Hardware Interrupt </li> <li> Folie 6 </li> <li> Software Interrupt = gewollte Unterbrechung des laufenden Progammes, weil Kernel wichtige Funktionen ausfhren soll - Software Interrupt wird durch prozessortypabhngige Befehle (Systemcalls) ausgelst </li> <li> Folie 7 </li> <li> 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 </li> <li> Folie 8 </li> <li> Anwenderprogramme Kernel Hardware sh who a.out date wc grep ed vi ld as comp cpp nroff Unix Schalenmodell Systemstruktur Systemcalls Systemmode Usermode </li> <li> Folie 9 </li> <li> = Anfrage an den Kernel - Programme fordern per Systemcall Dienstleistungen vom Kernel an - definiert Schnittstelle zwischen Kernel und Benutzerprogramm </li> <li> Folie 10 </li> <li> 5 Bereiche der Systemcalls 1. Prozessverwaltungfork, exit, exec 2. Speicherverwaltungbrk, mmap, munmap 3. Dateiverwaltungopen, read, write 4. Gerteverwaltungio_ctl 5. Kommunikationkill, pipe </li> <li> Folie 11 </li> <li> 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 </li> <li> Folie 12 </li> <li> 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 </li> <li> Folie 13 </li> <li> BENUTZEREBENE - USERMODE User-AnwendungenBenutzerstack SYSTEMCALL creat(name, 0666);... 204 mode Angabe (Oktal 666) 1b6 Adresse von name 6a Rckkehradresse </li> <li> Folie 14 </li> <li> 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 </li> <li> Folie 15 </li> <li> BENUTZEREBENE - USERMODE SYSTEMEBENE - SYSTEMMODE TRAP Softwareinterrupt PSR 0 15 OF DF IF TF SFZF AFPF CF 1 </li> <li> Folie 16 </li> <li> 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 </li> <li> Folie 17 </li> <li> 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 </li> <li> Folie 18 </li> <li> 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 </li> <li> Folie 19 </li> <li> 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 </li> <li> Folie 20 </li> <li> 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 </li> <li> Folie 21 </li> <li> 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 </li> <li> Folie 22 </li> <li> 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 </li> <li> Folie 23 </li> <li> char name[]=file; main { int fd; fd = creat(name, 0666); } Systemcall creat Ausschnitt aus C-Programm </li> <li> Folie 24 </li> <li> Teil des Assemblercodes fr Motorola 68000 </li> <li> Folie 25 </li> <li> 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 </li> <li> Folie 26 </li> <li> ENDE </li> </ul>