systemcalls (systemaufrufe) nina, helen & nicole proudly present:
TRANSCRIPT
Systemcalls (Systemaufrufe)Systemcalls (Systemaufrufe)
Nina, Helen & Nicole proudly present: Nina, Helen & Nicole proudly present:
1. Definitionen
1.1. Interrupt1.1.1. Exception
1.1.2. Hardware-Interrupt1.1.3. Software-Interrupt
1.2. Systemcall1.2.1. Unix –
Schalenmodell1.2.2. Definition
Systemcall
1.2.3. 5 Bereiche
2. Schematischer Ablauf
3. Beispiele
3.1. ausführlich: creat
3.2. weitere Beispiele
Gliederung
1. Definitionen
1.1. Interrupt1.1.1. Exception
1.1.2. Hardware-Interrupt1.1.3. Software-Interrupt
1.2. Systemcall1.2.1. Unix –
Schalenmodell1.2.2. Definition
Systemcall
1.2.3. 5 Bereiche
2. Schematischer Ablauf
3. Beispiele
3.1. ausführlich: creat
3.2. weitere Beispiele
Gliederung
Interrupt
= Unterbrechung des aktuellen Prozesses durch CPU
Unterteilung in :
Exception
Hardware – Interrupt
Software – Interrupt
Hardware – Interrupt
Software – Interrupt
= gewollte Unterbrechung des laufenden Progammes,
weil Kernel wichtige Funktionen ausführen soll
- Software – Interrupt wird durch prozessortypabhängige
Befehle (Systemcalls) ausgelöst
1. Definitionen
1.1. Interrupt1.1.1. Exception
1.1.2. Hardware-Interrupt1.1.3. Software-Interrupt
1.2. Systemcall1.2.1. Unix –
Schalenmodell1.2.2. Definition
Systemcall
1.2.3. 5 Bereiche
2. Schematischer Ablauf
3. Beispiele
3.1. ausführlich: creat
3.2. weitere Beispiele
Gliederung
Anwenderprogramme
Kernel
Hardware
sh
who
a.out
date
wc
grep
ed
vi
ld
as
comp
cpp
nroff
Unix Schalenmodell – Systemstruktur
Systemcalls
SystemmodeSystemmode
UsermodeUsermode
Systemcalls
= Anfrage an den Kernel
- Programme fordern per Systemcall Dienstleistungen
vom Kernel an
- definiert Schnittstelle zwischen Kernel und
Benutzerprogramm
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
1. Definitionen
1.1. Interrupt1.1.1. Exception
1.1.2. Hardware-Interrupt1.1.3. Software-Interrupt
1.2. Systemcall1.2.1. Unix –
Schalenmodell1.2.2. Definition
Systemcall
1.2.3. 5 Bereiche
2. Schematischer Ablauf
3. Beispiele
3.1. ausführlich: creat
3.2. weitere Beispiele
Gliederung
Systemebenen
Prozessor etc.
Benutzerebene
SystemebeneKernel
Hardware
User-Anwendungen
Bibliotheken Benutzerstack
Hardware-Steuerung
PSRMehr-zweck-register
System-stack
Trap
Userm
odeSystem
mode
weitereRegister
Tabel-len
BENUTZEREBENE - USERMODE
User-Anwendungen Benutzerstack
SYSTEMCALL
creat(name, 0666);
...
204 mode Angabe (Oktal 666)
1b6 Adresse von name
6a Rückkehradresse
BENUTZEREBENE - USERMODE
Bibliothek Mehrzweckregister
Befehl Nr
exit 1
fork 2
read 3..
.
.
create 8
…
…
142
…
…
…
;ASM.CODEBEGINN MOV MOV JSR JMP . . . . .
…58
7e
80
13c
146
8
TRAP
SYSTEMEBENE - SYSTEMMODE
BENUTZEREBENE - USERMODE
SYSTEMEBENE - SYSTEMMODE
TRAP
Sof
twar
eint
erru
pt
PSR0 15
OF DF IF TF SF ZF AF PF CF
1
SYSTEMEBENE - SYSTEMMODE
…
142
…
…
…
…58
7e
80
13c
146
8
MehrzweckregisterTabelleRegister
…
…
U-Bereich
Benutzerstack...
204
1b6
6a
BENUTZER-EBENE – USERMODE
01234567891011
funktion0();funktion1();
funktion2();
funktion3();
funktion4();
funktion5();
funktion6();
funktion7();
funktion8();
funktion9();
funktion10();
funktion11();
204
1b6
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 011 0 1 00 1 1 101 11 0 010 110 1 0 100
Register
…
…
U-Bereich
204
1b6
Fehlerfeld
Mehrzweckregister
…
…
142
…
…
58
7e
80
146
8
SYSTEMEBENE - SYSTEMMODE
13c 0
PSR
0 15
OF DF IF TF SF ZF AF PF CF1
0x800CCC6F
CF
1
BENUTZEREBENE - USERMODE
SYSTEMEBENE - SYSTEMMODE
PSROF DF IF TF SF ZF AF PF CF
Bibliothek
Befehl Nr
exit 1
fork 2
read 3
.
.
.
.
creat 8
;ASM.CODEBEGINN MOV MOV JSR JMP . . . . .
?
User-Anwendungen Benutzerstack
creat(name, 0666);
...
204
1b6
6aI
Returncode = 0
BENUTZEREBENE - USERMODE
SYSTEMEBENE - SYSTEMMODE
PSROF DF IF TF SF ZF AF PF CF
Bibliothek
Befehl Nr
exit 1
fork 2
read 3
.
.
.
.
creat 8
;ASM.CODEBEGINN MOV MOV JSR JMP . . . . .
?
User-Anwendungen
creat(name, 0666);
?
Returncode = -1
1
Mehrzweckregister
…
…
…
…
58
7e
80
146
8
13c
142
0x800CCC6F
0x800CCC6Ferrno
-1
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 1gmake[1]: Leaving directory`/usr/ports/java/eclipse/work/plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library'gmake: *** [libswt] Error 2
0x800CCC6Ferrno
*** Error code 2
2
1. Definitionen
1.1. Interrupt1.1.1. Exception
1.1.2. Hardware-Interrupt1.1.3. Software-Interrupt
1.2. Systemcall1.2.1. Unix –
Schalenmodell1.2.2. Definition
Systemcall
1.2.3. 5 Bereiche
2. Schematischer Ablauf
3. Beispiele
3.1. ausführlich: creat
3.2. weitere Beispiele
Gliederung
char name[]=„file“; main {
int fd;fd = creat(name, 0666);
}
Systemcall creat
Ausschnitt aus C-Programm
Teil des Assemblercodes für Motorola 68000
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
ENDEENDE