Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Systemcalls (Systemaufrufe)

Ähnliche Präsentationen


Präsentation zum Thema: "Systemcalls (Systemaufrufe)"—  Präsentation transkript:

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

2 Gliederung 1.1.1. Exception 1. Definitionen 1.1. Interrupt
Hardware-Interrupt Software-Interrupt 1.2. Systemcall Unix – Schalenmodell Definition Systemcall Bereiche 2. Schematischer Ablauf 3. Beispiele 3.1. ausführlich: creat 3.2. weitere Beispiele

3 Gliederung 1.1.1. Exception 1. Definitionen 1.1. Interrupt
Hardware-Interrupt Software-Interrupt 1.2. Systemcall Unix – Schalenmodell Definition Systemcall Bereiche 2. Schematischer Ablauf 3. Beispiele 3.1. ausführlich: creat 3.2. weitere Beispiele

4 = Unterbrechung des aktuellen Prozesses durch CPU
Interrupt = Unterbrechung des aktuellen Prozesses durch CPU Unterteilung in : Exception Hardware – Interrupt Software – Interrupt

5 Hardware – Interrupt

6 Software – Interrupt = gewollte Unterbrechung des laufenden Progammes,
weil Kernel wichtige Funktionen ausführen soll - Software – Interrupt wird durch prozessortypabhängige Befehle (Systemcalls) ausgelöst

7 Gliederung 1.1.1. Exception 1. Definitionen 1.1. Interrupt
Hardware-Interrupt Software-Interrupt 1.2. Systemcall Unix – Schalenmodell Definition Systemcall Bereiche 2. Schematischer Ablauf 3. Beispiele 3.1. ausführlich: creat 3.2. weitere Beispiele

8 Unix Schalenmodell – Systemstruktur
Anwenderprogramme nroff sh who cpp Kernel a.out comp Systemcalls Hardware as date Systemmode ld wc vi grep ed Usermode

9 Systemcalls = Anfrage an den Kernel
- Programme fordern per Systemcall Dienstleistungen vom Kernel an - definiert Schnittstelle zwischen Kernel und Benutzerprogramm

10 5 Bereiche der Systemcalls
1. Prozessverwaltung fork, exit, exec 2. Speicherverwaltung brk, mmap, munmap 3. Dateiverwaltung open, read, write 4. Geräteverwaltung io_ctl 5. Kommunikation kill, pipe

11 Gliederung 1.1.1. Exception 1. Definitionen 1.1. Interrupt
Hardware-Interrupt Software-Interrupt 1.2. Systemcall Unix – Schalenmodell Definition Systemcall Bereiche 2. Schematischer Ablauf 3. Beispiele 3.1. ausführlich: creat 3.2. weitere Beispiele

12 Systemebenen User- Anwendungen Bibliotheken Benutzerstack
Benutzerebene Usermode Trap PSR Mehr- zweck- register weitere Register Tabel- len System- stack Systemebene Kernel Systemmode Hardware-Steuerung Hardware Prozessor etc.

13 BENUTZEREBENE - USERMODE
User-Anwendungen Benutzerstack . . . 204 mode Angabe (Oktal 666) 1b6 Adresse von name 6a Rückkehradresse creat(name, 0666); SYSTEMCALL

14 BENUTZEREBENE - USERMODE SYSTEMEBENE - SYSTEMMODE
Bibliothek Mehrzweckregister Nr 58 Befehl ;ASM .CODE BEGINN MOV JSR JMP . exit 1 7e fork 2 142 8 read 3 . 80 . . 13c . TRAP 146 create 8

15 TRAP PSR BENUTZEREBENE - USERMODE Softwareinterrupt TF 1 15
DF IF TF SF ZF AF PF CF PSR 1 15 SYSTEMEBENE - SYSTEMMODE

16 SYSTEMEBENE - SYSTEMMODE
BENUTZER- EBENE – USERMODE SYSTEMEBENE - SYSTEMMODE Benutzerstack Register Tabelle Mehrzweckregister . . funktion0(); . 58 funktion1(); 1 funktion2(); 2 7e 204 funktion3(); 3 1b6 U-Bereich funktion4(); 4 142 8 funktion5(); 5 204 funktion6(); 6 80 6a 1b6 funktion7(); 7 13c funktion8(); 8 funktion9(); 9 146 funktion10(); 10 funktion11(); 11

17 SYSTEMEBENE - SYSTEMMODE
;Ken Thompson 1969 ; .STACK 1000H .DATA VARA DW1; VARB DW2; .CODE BEGINN MOV MOV AX,VARA; ADD AX,VARB, END BEGIN; 1 0 0 100 Hardware Prozessor

18 SYSTEMEBENE - SYSTEMMODE
Register Mehrzweckregister 58 7e U-Bereich 142 8 204 80 1b6 13c 0x800CCC6F 146 1 Fehlerfeld OF CF CF DF IF TF SF ZF AF PF PSR 1 15

19 ? BENUTZEREBENE - USERMODE User-Anwendungen Benutzerstack Bibliothek .
Nr ;ASM .CODE BEGINN MOV JSR JMP . Befehl exit 1 204 fork 2 1b6 read 3 . creat(name, 0666); 6a . I . ? . creat Returncode = 0 8 SYSTEMEBENE - SYSTEMMODE OF DF PF CF IF TF SF ZF AF PSR

20 ? BENUTZEREBENE - USERMODE User-Anwendungen Mehrzweckregister
Bibliothek 58 Befehl Nr ;ASM .CODE BEGINN MOV JSR JMP . 7e exit 1 142 8 fork 2 80 read 3 . 13c 0x800CCC6F -1 creat(name, 0666); . ? 146 . ? . creat Returncode = -1 8 errno 0x800CCC6F SYSTEMEBENE - SYSTEMMODE CF OF DF IF TF SF ZF AF PF PSR 1

21 … BENUTZEREBENE - USERMODE errno User-Anwendungen 2 Returncode = -1
0x800CCC6F User-Anwendungen errno Makro error message 1 3 4 19 20 23 24 25 EPERM ENOENT ESRCH EINTR ENODEV ENOTDIR ENFILE EMFILE ENOTTY 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 2 creat(name, 0666); 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 *** Error code 2 Returncode = -1

22 Gliederung 1.1.1. Exception 1. Definitionen 1.1. Interrupt
Hardware-Interrupt Software-Interrupt 1.2. Systemcall Unix – Schalenmodell Definition Systemcall Bereiche 2. Schematischer Ablauf 3. Beispiele 3.1. ausführlich: creat 3.2. weitere Beispiele

23 Systemcall creat char name[]=„file“; main { int fd;
Ausschnitt aus C-Programm char name[]=„file“; main { int fd; fd = creat(name, 0666); }

24 Teil des Assemblercodes für Motorola 68000

25 Weitere Beispiele open(<dateiname>,<art>)
öffnet eine vorhandene Datei mit angegebener Benutzungsart read(<filehandle>,<puffer>,<puffergröße>) liest Datei ein, mit angegebener Anzahl an Bytes write(<filehandle>,<puffer>,<puffergröße>) schreibt angegebene Anzahl an Bytes in spezifizierte Datei

26 ENDE


Herunterladen ppt "Systemcalls (Systemaufrufe)"

Ähnliche Präsentationen


Google-Anzeigen