Präsentation herunterladen
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.