Win32 Systemprogrammierung

Größe: px
Ab Seite anzeigen:

Download "Win32 Systemprogrammierung"

Transkript

1 Begrüßung Win32 Systemprogrammierung Fachhochschule Wiesbaden Lehrveranstaltung: Systemprogrammierung Prof. Dr. Weber Christian Geiler Daniel Pielok Fouad Aberkane Win32 Systemprogrammierung 1

2 Inhaltsverzeichnis Kapitel 1 1. Einführung 2. Dateisysteme 3. I/O Systemaufrufe 4. Mutex/File Locking Win32 Systemprogrammierung 2

3 1.1 Einführung WinApi Ausgeschrieben steht WinAPI fürwindows Application Programming Interface.Zu dt. bedeutet es Windows Anwendungs-Programmierungs- Schnittstelle.Die WinApi ist nix anderes als eine Programmierschnittstelle und Laufzeitumgebung. Mit dieser Api kann man Anwendungsprogrammen für Microsoft Windows- Betriebssysteme erstellen Win32 Systemprogrammierung 3

4 1.1 Einführung WinApi Die existierenden Funktionen der WinAPI sind ausschließlich in der Programmiersprache C und Assembler geschrieben.die Funktionen befinden sich in Bibliotheken, den sogenannten DLL-Dateien, wie beispielsweise kernel32.dll, user32.dll und gdi32.dll. Die Api kann in Verbindung mit C, C++ oder Delphi eingesetzt werden Win32 Systemprogrammierung 4

5 1.1 Einführung Versionen Win16 war die erste API, für die 16-Bit Versionen von Microsoft Windows. Gängiger Begriff war schlicht Windows API, wurde aber später umbenannt in Win16, um sie von der neueren Windows API der 32-Bit- Architektur unterscheiden zu können. Die Funktionen der Win16 API liegen hauptsächlich im Kern des Betriebssystems: kernel.exe (oder krnl286.exe oder krnl386.exe), user.exe und gdi.exe. Trotz der Dateiendung exe sind diese Dateien tatsächlich sogenannte Programmbibliotheken Win32 Systemprogrammierung 5

6 1.1 Einführung Versionen Win32 ist die 32-Bit-API für moderne Versionen von Windows. Die API besteht aus Funktionen, die, wie bei Win16, in Programmbibliotheken implementiert sind. Die Kern-DLLs von Win32 sind kernel32.dll, user32.dll und gdi32.dll. Win32 wurde mit Windows NT eingeführt. Die Version von Win32, die mit Windows 95 ausgeliefert wurde, lief ursprünglich unter dem Namen Win32c, wobei das 'c' für Kompatibilität (engl. compatibility) stand, aber dieser Ausdruck wurde später von Microsoft zugunsten von Win32 wieder verworfen Win32 Systemprogrammierung 6

7 1.1 Einführung Versionen Win32s ist die 32-Bit-API für die Windows 3.1x-Familie von Microsoft Windows und als solche die 32-Bit- Erweiterung für die ansonsten 16-bittigen Betriebssysteme. Das s steht für Teilmenge (engl.: subset ). Dabei wurden die Funktionsbibliotheken aus Windows NT nicht komplett übernommen, sondern lediglich eine Auswahl daraus, so ist beispielsweise MS Office 97 unter Windows NT 3.51 lauffähig, nicht jedoch unter Windows 3.1x. In Kombination mit Grafikschnittstellen wie OpenGL oder Video for Windows sollte damit jedoch bis zum Erscheinen von Windows 95 ein ausreichender Standard für Heimanwender gesetzt werden Win32 Systemprogrammierung 7

8 1.1 Einführung Versionen Win32 für 64-Bit-Windows, auch bekannt unter dem Namen Win64, ist die Version der API die für 64-Bit- Versionen von Windows namentlich Windows XP x64 Edition, Windows Server 2003 x64 Edition (für AMD64 Prozessoren), Windows XP 64-Bit Edition und Windows Server 2003 für Itanium-Serien - entworfen wurde. Bei den 64-Bit-Versionen handelt es sich nur um zwei weitere unterstützte Plattformen innerhalb der Windows-NT-Architektur, so dass sowohl die 32-Bit- als auch die 64-Bit-Version einer Anwendung aus demselben Quellcode kompiliert werden können Win32 Systemprogrammierung 8

9 1.2 Dateisysteme Dateisysteme Das Dateisystem ist die Ablageorganisation auf einem Datenträger eines Computers. Dateien müssen gelesen, gespeichert oder verschoben werden. Für den Menschen müssen Dateiname und computerinterne Dateiadressen in Einklang gebracht werden. Das leichte Wiederfinden und das sichere Abspeichern ist wesentlich. Das Ordnungs- und Zugriffssystem berücksichtigt die Geräteeigenschaften und ist normalerweise Bestandteil des Betriebssystems Win32 Systemprogrammierung 9

10 1.2 Dateisysteme Welche Dateisysteme gibt es? FAT16 FAT32 HPFS NTFS NetWare ISO 9660 (CD-ROM) und ISO (DVD) UDF ReiserFS, ext, ext2, ext3, XFS, JFS Win32 Systemprogrammierung 10

11 1.2 Dateisysteme Betriebssysteme & Dateisysteme Die Betriebssysteme Windows 95 bis Windows ME benutzen ausschließlich FAT16 & FAT32 Systeme. Die folgenden Systeme Windows NT / 2000 / XP benutzen NTFS. Anders als bei Windows Betriebssystemen benutzt Unix/Linux ext2, ext3, ReiserFS, XFS, JFS Win32 Systemprogrammierung 11

12 1.3 I/O Systemaufrufe Systemaufrufe Ein Systemaufruf ist eine vom Anwendungsprogrammen benutzte Methode, um vom Betriebssystem bereitgestellte Funktionalitäten auszuführen.systemaufrufe werden im Quellcode wie Bibliotheksfunktionen aufgerufen. Jedoch die Leistung solch eines Systemaufrufs wird im Kern des Betriebssystems erbracht. Ein Systemaufruf führt Assemblercode und C Code aus. In der folgenden Abbildung wird ein Systemaufruf schematisch dargestellt Win32 Systemprogrammierung 12

13 1.3 I/O Systemaufrufe Ablauf In der Definition der Funktion write befindet sich C/Assemblercode diese Zeilen haben die Aufgabe den Adressraum zu wechseln und zwar vom Adressraum des Prozesses in den Adressraum des Kern's Win32 Systemprogrammierung 13

14 1.3 I/O Systemaufrufe Systemaufruf Beispiele Unix Win32 Beschreibung open CreateFile Neue Datei erzeugen oder Datei öffnen close CloseHandle Datei schließen read ReadFile Daten aus einer Datei lesen write WriteFile Daten in eine Datei schreiben lseek SetFilePointer Warten auf ein Ereignis stat GetFileAttributes Dateizeiger bewegen unlink DeleteFile Datei löschen mkdir CreateDirectory Neues Verzeichnis erzeugen rmdir RemoveDirectory Leeres Verzeichnis löschen Win32 Systemprogrammierung 14

15 1.3 I/O Systemaufrufe CreateFile Die Funktion CreateFile erzeugt eine Datei der Rückgabewert dieser Funktion ist ein Handle womit man später die Datei eindeutig identifizieren kann. HANDLE CreateFile ( LPCTSTR lpfilename, /*Name der Datei*/ DWORD dwdesiredaccess, /*Lesen, Schreiben, Beides*/ DWORD dwsharemode, /*Share Modus für Prozesse*/ [LPSECURITY_ATTRIBUTES lpsecurityattributes,] DWORD dwcreationdisposition, /*Überschreiben, Öffnen...*/ DWORD dwflagsandattributes, /*Schreibgesch., Versteckt*/ [HANDLE htemplatefile]); Win32 Systemprogrammierung 15

16 1.3 I/O Systemaufrufe ReadFile Die Funktion ReadFile liest aus einer gegebenen Datei mithilfe eines HANDLE's. BOOL ReadFile ( HANDLE hfile, /*Das Objekt das gelesen werden soll*/ LPVOID lpbuffer,/*buffer*/ DWORD nnumberofbytestoread, /*Anzahl Max. Bytes*/ LPDWORD lpnumberofbytesread, /*Wirkl. gel. Bytes*/ [LPOVERLAPPED lpoverlapped]); Win32 Systemprogrammierung 16

17 1.3 I/O Systemaufrufe CloseFile Die Funktion CloseFile schließt eine Datei. BOOL CloseFile (HANDLE hfile); Win32 Systemprogrammierung 17

18 1.3 I/O Systemaufrufe Lese Beispiel #include<windows.h> #define SOURCE source.txt #define MAXREADSIZE 1024 int main(int argc, char **argv[]) { HANDLE hread; DWORD readsize; char buffer [MAXREADSIZE]; hread = CreateFile(SOURCE, GENERIC_READ, 0, NULL,OPEN_EXISTING, 0, NULL); /*Mögliche Fehler abfangen*/ ReadFile (hread, buffer, MAXREADSIZE, &readsize, NULL); /*Mögliche Fehler abfangen*/ printf( %s, buffer); CloseFile(hread); Win32 Systemprogrammierung 18

19 1.4 Mutex Mutex Mutex bedeutet Wechselseitiger Ausschluss (mutual exclusion).ein Mutex ist nix anderes als eine Gruppe von Verfahren mit denen das Problem des kritischen Abschnitts gelöst wird.damit wird verhindert, dass nebenläufige Prozesse gleichzeitig oder zeitlich verschränkt gemeinsam genutzte Datenstrukturen unkoordiniert verändern. Zu dieser Gruppe gehören zb. Semaphore, Monitore, Lock Win32 Systemprogrammierung 19

20 1.4 File Locking File Locking Das File Locking ist einfaches Prinzipe das folgendermaßen vorgeht nach dem dem Öffnen einer Datei für andere automatisch gesperrt. Es ist notwendig damit zwei Nutzer nicht gleichzeitig eine Datei manipulieren.es kann immer nur ein Anwender bzw. immer nur ein Anwendungsprogramm zu einer Zeit die Datei manipulieren. File Locking wird in Netzwerkumgebungen oder auf multitaskingfähigen Systemen wie beispielsweise Windows-Rechnern eingesetzt Win32 Systemprogrammierung 20

21 1.4 File Locking LockFile Die WinApi stellt die Funktionalität für das File Locking zur Verfügung mit der Methode LockFile kann man eine ganze Datei oder bestimmte Abschnitte in Bytes für andere Prozesse sperren. BOOL WINAPI LockFile( ); HANDLE hfile, /*Datei*/ DWORD dwfileoffsetlow, /*Offset*/ DWORD dwfileoffsethigh, /*Offset*/ DWORD nnumberofbytestolocklow, /*Lock bytes*/ DWORD nnumberofbytestolockhigh /*Lock bytes*/ Win32 Systemprogrammierung 21

22 1.4 File Locking UnlockFile Natürlich muss die gesperrte Datei bzw. der Abschnitt wieder für andere Prozesse zugänglich sein dafür gibt s die Funktion UnlockFile sie besitzt dieselben argumente wie die Funktion LockFile. BOOL WINAPI UnlockFile( ); HANDLE hfile, /*Datei*/ DWORD dwfileoffsetlow, /*Offset*/ DWORD dwfileoffsethigh, /*Offset*/ DWORD nnumberofbytestounlocklow, /*Unlock bytes*/ DWORD nnumberofbytestounlockhigh /*Unlock bytes*/ Win32 Systemprogrammierung 22

23 1.4 File Locking File Locking Beispiel #include<windows.h> #define ANFANG 10 #define ENDE 20 HANDLE hfile; hfile = CreateFile(TEXT("two.txt"), /* Datei öffnen*/ GENERIC_READ, /* Datei lesen*/ FILE_SHARE_READ, /* Mehrfache Lesen*/ NULL, /* Security Atrribut wird nich gebraucht */ OPEN_EXISTING, /* Öffnen oder erstellen*/ FILE_ATTRIBUTE_NORMAL, /* Normale Datei*/ NULL); /* Kein Template*/ /*Fehler abfangen*/ LockFile(hFile, ANFANG, 0, ENDE, 0); /*Datei lesen*/ UnlockFile(hFile, ANFANG, 0, ENDE, 0); Win32 Systemprogrammierung 23

24 Inhaltsverzeichnis Kapitel 2 1. Windows Registry 2. Fehlerbehandlung 3. Windows Sockets Win32 Systemprogrammierung 24

25 2.1 Windows Registry Registry Zentrale, hierarchische Datenbank für Applikations- und Konfigurationsinformationen Registry-Editor wird durch den regedit Befehl geöffnet auf der Kommandozeile Zugriff durch Schlüssel Programme kommunizieren mit der Registry durch Registry API Funktionsaufrufe Registry-Programmierung ähnlich zur Dateiverarbeitung Win32 Systemprogrammierung 25

26 2.1 Windows Registry Registry Registry enthält folgende Informationen: Betriebssystem-Versionsnr., Build-Nr. und registrierte User ähnliche Informationen für jede installierte Applikation Hardware-Informationen über Prozessortyp, Anzahl an Prozessoren, Arbeitsspeicher, etc. Benutzerspezifische Informationen (Home-Verzeichnis, bevorzugte Anwendungen) installierte Services Mappings von Dateiendungen zu deren ausführbaren Programmen und Mappings von Netzwerkadressen zu deren Hostnamen Win32 Systemprogrammierung 26

27 2.1 Windows Registry Registry Win32 Systemprogrammierung 27

28 2.1 Windows Registry Registry-Schlüssel HKEY_LOCAL_MACHINE Informationen über den Rechner und darauf installierte Software HKEY_USERS Informationen über Benutzer- Konfigurationen HKEY_CURRENT_CONFIG Informationen wie Bildschirmauflösung und Schriftarten HKEY_CLASSES_ROOT Mappings von Dateiendungen zu deren Anwendung HKEY_CURRENT_USER Benutzerspezifische Informationen (Umgebungsvariablen, Drucker,...) Win32 Systemprogrammierung 28

29 2.1 Windows Registry Registry API Calls RegOpenKeyEx - vorhandenen Key öffnen RegDeleteKeyEx - vorhandenen Key löschen RegCreateKeyEx - neuen Key erzeugen RegEnumKeyEx - Auflisten aller Subkeys im geöffneten Key RegSetValueEx Setzen eines Name/Wert-Paares im geöffneten Key RegEnumValue - Auflisten aller Values im geöffneten Key Win32 Systemprogrammierung 29

30 2.1 Windows Registry RegOpenKeyEx LONG RegOpenKeyEx ( HKEY hkey, /* Parent Key-Handle */ LPCTSTR lpsubkey, /* Name des Subkeys */ DWORD uloptions, /* = 0 */ REGSAM samdesired, /* Zugriffsrechte */ PHKEY phkresult); /* Key-Handle des neu geöffneten Keys*/ Win32 Systemprogrammierung 30

31 2.1 Windows Registry RegOpenKeyEx Beispiel #include <windows.h> HKEY hkey = Null; /* Schlüssel öffnen */ if (ERROR_SUCCESS!= RegOpenKeyEx(HKEY_LOCAL_MACHINE, L Software\\Alias\\Common, 0, KEY_READ, &hkey)) { } printf( Fehler beim Öffnen des Keys ); Win32 Systemprogrammierung 31

32 2.1 Windows Registry RegEnumKeyEx LONG RegEnumKeyEx ( HKEY hkey, /* Parent Key-Handle */ DWORD dwindex, /* Indexwert */ LPTSTR lpname, /* Name des Schlüssels */ LPDWORD lpcbname, /* Größe des Keynamen*/ LPDWORD lpreserved, /* reserviert */ LPTSTR lpclass, /* Klassenname */ LPDWORD lpcbclass, /* Größe des Klassennames*/ PFILETIME lpftlastwritetime); /*Zeit des letzten Schreibens*/ Win32 Systemprogrammierung 32

33 2.1 Windows Registry RegCreateKeyEx LONG RegCreateKeyEx ( HKEY hkey, LPCTSTR lpsubkey, DWORD Reserved, /* = 0 */ LPTSTR lpclass, /* Typ des neuen Keys */ DWORD dwoptions, REGSAM samdesired, /* Zugriffsrechte */ LPSECURITY_ATTRIBUTES lpsecurityattributes, PHKEY phkresult, LPDWORD lpdwdisposition); Win32 Systemprogrammierung 33

34 2.1 Windows Registry RegCreateKeyEx Beispiel #include <windows.h> HKEY hkey = Null; DWORD dwdisp = NULL; /* Schlüssel mit Schreibrechten erzeugen */ if (ERROR_SUCCESS!= RegCreateKeyEx(HKEY_LOCAL_MACHINE, L SYSTEM\\CurrentControlSet\\Services\\EventLog\\MyLog, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkey, &dwdisp)) { } printf( Fehler beim Erzeugen des Keys ); Win32 Systemprogrammierung 34

35 2.1 Windows Registry Values in der Registry Values sind typisiert Einige Typen: REG_BINARY Binärdaten REG_DWORD 32 Bit Zahlen REG_SZ Strings REG_EXPAND_SZ Strings mit Verweisen auf Umgebungsvariablen Win32 Systemprogrammierung 35

36 2.1 Windows Registry RegSetValueEx LONG RegSetValueEx ( HKEY hkey, /* Key-Handle */ LPCTSTR lpvaluename, /* Name des Values */ DWORD Reserved, /* = 0 */ DWORD dwtype, /* Datentyp des Values */ CONST BYTE * lpdata, /* Daten (Value) */ DWORD cbdata); /* Größe der Daten */ Win32 Systemprogrammierung 36

37 2.1 Windows Registry RegSetValueEx Beispiel #include <windows.h> HKEY hkey = Null; wchar_t *value = L New Registry Value ; /* Key öffnen oder neu erzeugen */... /* Wert setzen */ if (ERROR_SUCCESS!= RegSetValueEx(hKey, L MyValue, 0, REG_SZ, (LPBYTE) value, (DWORD) ((lstrlen(value)+1) * sizeof(tchar))) { } printf( Fehler beim Setzen des Wertes ); Win32 Systemprogrammierung 37

38 2.1 Windows Registry RegEnumValue LONG RegEnumValue ( HKEY hkey, /* Parent Key-Handle */ DWORD dwindex, /* Indexwert */ LPTSTR lpvaluename, /* Name des Values */ LPDWORD lpcbvaluename, /* Größe des Valuenamens */ LPDWORD lpreserved, /* reserviert */ LPDWORD lptype, /* Typ des Values */ LPBYTE lpdata, /* der zurückgegebene Wert */ LPDWORD lpcbdata); /* Größe des Rückgabewertes */ Win32 Systemprogrammierung 38

39 2.2 Fehlerbehandlung Fehlerbehandlung Win32 Structured Exception Handling (SEH) Exceptions, Arithmetikfehler und Systemfehler SEH Support durch Win32 Funktionen, Sprachensupport des Compilers und Run-Time Support Beispiele für Fehlerbehandlungen: Array-Out-Of-Bound-Exceptions Pointer Dereferenzierung Division durch Null Win32 Systemprogrammierung 39

40 2.2 Fehlerbehandlung Try / Except ähnlich zum gewöhnlichen try-catch-block: try { /* Code, der einen Fehler werfen könnte */ } except (filter expression) { /* Fehlerbehandlung */ } Filter expression: nur auf bestimmte Fehlerereignisse im except-block reagieren Win32 Systemprogrammierung 40

41 2.2 Fehlerbehandlung Filterexpressions Filterexpression in except Anweisung wird direkt nach Auftreten der Exception überprüft normalerweise eine Konstante, eine Filterfunktion oder ein konditionaler Ausdruck, wobei immer einer der folgenden drei Typen zurückgegeben werden muss: EXCEPTION_EXECUTE_HANDLER EXCEPTION_CONTINUE_SEARCH EXCEPTION_CONTINUE_EXECUTION Win32 Systemprogrammierung 41

42 2.2 Fehlerbehandlung Exceptions Beispiel 1 #include <windows.h> GetTempFileName (TempFile,...); while (...) try { /* Datei erzeugen */ hfile = CreateFile (TempFile,..., OPEN_ALWAYS,...); SetFilePointer (hfile, 0, NULL, FILE_END); /* in Datei schreiben */ WriteFile (hfile,...); /* hier kann ein Addressierungsfehler auftreten!!! */ i = *p;... CloseHandle (hfile); } except (EXCEPTION_EXECUTE_HANDLER) { CloseHandle (hfile); DeleteFile (TempFile); } /* Datei am Ende immer geschlossen*/ Win32 Systemprogrammierung 42

43 2.2 Fehlerbehandlung Fehlercodes DWORD GetExceptionCode (VOID); Funktion gibt Fehlercode zurück Reagieren auf bestimmte Fehlerereignisse möglich einige wichtige Fehlercodes: EXCEPTION_ACCESS_VIOLATION EXCEPTION_NONCONTINUABLE_EXECUTION EXCEPTION_INT_DIVIDE_BY_ZERO EXCEPTION_BREAKPOINT Win32 Systemprogrammierung 43

44 2.2 Fehlerbehandlung Exceptions Beispiel 2 #include <windows.h> try {... i = j / 0;... } except (Filter (GetExceptionCode ())) {... } /* Filter Funktion, die auf bestimmte Fehler reagiert*/ DWORD Filter (DWORD ExCode) { switch (ExCode) {... case EXCEPTION_INT_DIVISION_BY_ZERO:... return EXCEPTION_EXECUTE_HANDLER; case... } } Win32 Systemprogrammierung 44

45 2.3 Windows Sockets Windows Sockets dienen der Interprozess-Kommunikation fast identisch zu Berkeley Sockets Initialisierung der WinSock API: int WSAStartup ( WORD wversionrequired, /* Socket Version (Minimum) */ LPWSADATA lpwsadata); /* Pointer zu WSADATA Struct */ Win32 Systemprogrammierung 45

46 2.3 Windows Sockets Sockets (TCP) Quelle: Folienbeispiel von Herr Weber Win32 Systemprogrammierung 46

47 2.3 Windows Sockets Sockets socket, bind Socket erzeugen: SOCKET socket (int af, /* Adress-Familie */ int type, /* Typ des Sockets (DGRAM, STREAM) */ int protocol); /* Protokoll */ Server: binden eines Sockets an einen Port: int bind (SOCKET s, /* Socket-Handle */ const struct sockaddr *saddr, /* Adresse/Port */ int namelen); /* Größe der Adresse */ Win32 Systemprogrammierung 47

48 2.3 Windows Sockets Sockets - sockaddr_in sockaddr_in Struktur bei AF_INET verwenden: struct sockaddr_in { short sin_family; /* AF_INET */ u_short sin_port; /* Portnummer */ struct in_addr sin_addr; /* 4-Byte IP-Adresse */ } char sin_zero [8]; /* optional */ Win32 Systemprogrammierung 48

49 2.3 Windows Sockets Sockets - listen Struktur sin_addr besitzt eine Variable s_addr, die die IP Adresse speichert Bsp.: sa.sin_addr.s_addr = inet_addr ( ); Server: Socket auf Akzeptieren von Clients vorbereiten: int listen ( SOCKET s, /* Socket-Handle */ int nqueuesize); /* Größe der Warteschlange an Clients*/ Win32 Systemprogrammierung 49

50 2.3 Windows Sockets Sockets accept, connect Server: Warten auf Verbindungsanfrage: SOCKET accept (SOCKET s, /* Socket-Handle */ LPSOCKADDR lpaddr, /* Definition von Port und Adresse */ LPINT lpaddrlen); /* Größe der Adresse */ Client: Verbindung aufbauen: int connect (SOCKET s, /* Socket-Handle */ LPSOCKADDR lpaddr, /* Definition von Port und Adresse */ int naddrlen); /* Größe der Adresse */ Win32 Systemprogrammierung 50

51 2.3 Windows Sockets Sockets recv, send Empfangen von Daten: int recv ( SOCKET s, /* Socket-Handle */ LPSTR lpbuffer, int nbufferlen, /*Puffer und -größe*/ int nflags); Senden von Daten: int send ( SOCKET s, /* Socket-Handle * LPSTR lpbuffer, int nbufferlen, /*Puffer und -größe*/ int nflags); Win32 Systemprogrammierung 51

52 2.3 Windows Sockets Server Beispiel #include <winsock.h> struct sockaddr_in SrvSAddr,ConnectAddr; SOCKET SrvSock, sockio;... SrvSock = socket (AF_INET, SOCK_STREAM, 0); SrvSAddr.sin_family = AF_INET; SrvSAddr.sin_addr.s_addr = htonl (INADDR_ANY); SrvSAddr.sin_port = htons (SERVER_PORT); /* Socket an Adresse binden */ bind (SrvSock, (struct sockaddr *) &SrvSAddr, sizeof (SrvSAddr); listen (SrvSock, 5); AddrLen = sizeof (ConnectAddr); /* Client Verbindung akzeptieren*/ sockio = accept (SrvSock, (struct sockaddr *) &ConnectAddr, &AddrLen);... /* Daten empfangen*/ ret = recv (sockio, buffer, sizeof(buffer), 0);... closesocket (sockio); Win32 Systemprogrammierung 52

53 2.3 Windows Sockets Client Beispiel #include <winsock.h> SOCKET ClientSock; /* Socket erzeugen */ ClientSock = socket (AF_INET, SOCK_STREAM, 0); memset (&ClientSAddr, sizeof (ClientSAddr), 0); ClientSAddr.sin_family = AF_INET; ClientSAddr.sin_addr.s_addr = inet_addr (argv[1]); ClientSAddr.sin_port = htons (SERVER_PORT); /* Verbindung zu Server aufbauen */ ret = connect (ClientSock, (struct sockaddr *) &ClientSAddr, sizeof (ClientSAddr));... /* Daten senden */ ret = send (ClientSock, buffer, sizeof(buffer), 0);... /* Socket und Verbindung schliessen*/ shutdown (ClientSock); closesocket (ClientSock); Win32 Systemprogrammierung 53

54 Inhaltsverzeichnis Kapitel 3 1. Win32 Adressraum 2. Virtuelle Adressierung 3. Heaps 4. Memory Mapped Files 5. Bibliotheken 6. Prozesse Win32 Systemprogrammierung 54

55 3.1 Win32 Adressraum 32-Bit Adressraum 32-Bit Zeiger (z.b.: LPCTSTR, LPDWORD...) 4GB adressierbarer Speicher RING 0: Kernel-Mode, Prozesse können die vollen 4GB adressieren. RING 3: User-Mode, Prozesse können nur 2-3 GB adressieren (versionsabhängig). Der Rest ist exklusiv für Kernel, Gerätetreiber, DLL s also für von mehreren Diensten genutzten Code Reserviert Win32 Systemprogrammierung 55

56 3.2 Virtuelle Adressierung: Einführung I Rechtfertigung: nicht alle Teile eines Programms werden immer gleichzeitig benötigt Funktionsweise: - virtueller Speicher ist in Seiten aufgeteilt. - physikalischer Speicher ist in gleich große Rahmen aufgeteilt. - Zuordnung von Seiten zu Rahmen (Mappen). - Auslagern von Rahmen (Swapen) - Seitentausch-Strategien (swapen dann mappen): random=schwach, RR=fair, FIFO=Sehr fair Win32 Systemprogrammierung 56

57 3.2 Virtuelle Adressierung: Einführung II Vorteil: Es ist mit nur 32MB physical Memory möglich einen 1GB Prozess laufen zu lassen. Dazu werden die aktuell benötigten Speicherbereiche in den RAM geladen und nicht benötigte aus diesem verdrängt. Funktionen auf Seiten-Basis: VirtualAlloc, VirtualFree, VirtualLock, VirtualUnlock... Funktionen auf definierbarer Basis (byte, word,...): HeapAlloc, HeapCreate, HeapDestroy, HeapFree Win32 Systemprogrammierung 57

58 3.2 Memory Management Architecture C library: malloc, free Windows Program Heap API: H e a p C r e a t e, H e a p D e s t r o y, MMF API: H e a p A l l o c, H e a p CF r re ea et e F i l e M a p p i n g, C r e a t e V i e w O f F i l e Virtual Memory API Windows Kernel with Virtual Memory Manager Physical Memory Disc & File System Win32 Systemprogrammierung 58

59 3.3 Heaps: Einführung Ein Heap (engl: Haufen) ist ein Speichervorrat, welcher dem Stack (lokaler Prozedur-Speicher) entgegen wächst. Jeder Prozess besitzt min. einen Default-Heap. Speicheranforderungen durch malloc, realloc, calloc, werden vom Default- Heap abgezogen. Jeder Heap wird automatisch bis zur definierten Obergrenze erweitert => und immer auf ganze Seiten gerundet. Ein Heap in Windows ist ein Objekt somit existiert zu diesem ein Handle: HANDLE GetProcessHeap(VOID) Win32 Systemprogrammierung 59

60 3.3 Heaps: Beispiel separater Heaps Virtual Address Space Program Process Heap RecHeap NodeHeap Not allocated P r o c H e a p = G e t P r o c e s s H e a p ( ) ; p R o o t = H e a p A l l o c ( P r o c H e a p ) ; Not allocated R e c H e a p = H e a p C r e a t e ( ) ; RecordN o d e H e a p = H e a p C r e a t e ( ) ; Record w h i l e ( ) { Record p R e c = H e a p A l l o c ( R e c H e a p ) ; Not p allocated N o d e = H e a p A l l o c ( N o d e H e a p ) ; H e a p F r e e } Node ( R e c H e a p, 0, Node p R e c ) ; Node Not allocated H e a p F r e e ( N o d e H e a p, 0, p N o d e ) ; H e a p D e s t r o y ( R e c H e a p ) ; H e a p D e s t r o y Win32 Systemprogrammierung 60 ( N o d e H e a p ) ;

61 3.3 Heaps: Vorteile separater Heaps Fairness: kein Thread kann mehr Speicher anfordern als für dessen Heap reserviert ist. (Memory-Leaks betreffen nur diesen Thread) Multithreaded-Preformence: Der Wettstreit um den default Heap des Prozesses entfällt, dies kann substantielle preformence Verbesserung mit sich bringen. Allocation Efficency: Speicheranforderungen auf einen kleinen Heap welche nur in einer bestimmten Größe auftreten sind effizienter als Anforderungen auf einen großen Heap, welche in den verschiedensten Größen auftreten. Somit Reduzierung von Fragmentration. Deallocation Efficeny: Der gesamte Heap kann mit nur einem Funktionsaufruf beseitigt werden, wobei auch Memory-Leaks beseitigt werden. Locality of Reference Efficency: Wird für eine Datenstruktur ein kleiner Heap verwendet, so wird das Risiko von Page-Faults reduziert, da sich die Struktur dann nur über wenige Speicherseiten erstreckt Win32 Systemprogrammierung 61

62 3.3 Heaps: Optionen der Heap API HEAP_GENERATE_EXCEPTIONS: Nutzung eines SEH (StructuredExceptionHandler) zur Fehlerbehandlung. Vorteil: Kein Fehlertest nach einer Heapoperation notwendig HEAP_NO_SERIALIZE: Schaltet Mutal-Exclusion Mechanismus bei zugriff auf Heap aus. Sicher wenn: 1.) Der Prozess (Hauptthread) exklusiv den Default- Heap und keinen der Thread-Heaps verwendet. 2.) Jeder Thread exklusiv seinen eigenen Heap besitzt. sonst: Bei gleichzeitiger Nutzung eines Heaps durch mehrere Threads muss ein Mutal-Exclusion Mechanismus implementiert werden. HEAP_ZERO_MEMORY: Angeforderter Speicher wird mit 0 Initialisiert Win32 Systemprogrammierung 62

63 3.3 Heaps: Erstellung HANDLE HeapCreate ( DWORD floptions, SIZE_T dwinitialsize, SIZE_T dwmaximumsize ); Rückgabewerte: NULL bei fehler sonst Heap-Handle. Parameter: - floptions: HEAP_GENERATE_EXCEPTIONS, HEAP_NO_SERIALIZE - dwinitialsize: Initiale Heapgröße (wird in der Pagefile reserviert) - dwmaximumsize: Maximale Heapgröße (wenn nicht 0, kein wachsen möglich) Anmerkungen: - dwmaximumsize=0: bei bedarf gesamter freier virtueller Adressraum - dwmaximumsize<>0: dwmaximumsize wird allokiert aber es wird nur dwinitialsize in der Pagefile reserviert Win32 Systemprogrammierung 63

64 3.3 Heaps: Loeschen BOOL HeapDestroy ( HANDLE hheap ); Rückgabewerte: - Erfolg <> 0, sonst Misserfolg Parameter: - hheap: Handle eines mit HeapCreate erstellten Heaps. Anmerkungen: - Loeschen eines Heaps - Der Default-Heap des Prozesses darf niemals zerstört werden. - Es werden auch die in der Pageing-File ausgelagerten Teile freigegeben. - Man kann somit durch nur einen Funktionsaufruf alle allokierten Datenstrukturen des Heaps löschen => Sehr schnell! Win32 Systemprogrammierung 64

65 3.3 Heaps: Speicherbereich anfordern HANDLE HeapAlloc ( HANDLE hheap, DWORD dwflags, SIZE_T dwbytes ); Rückgabewerte: - NULL bei Fehler (wenn kein SHE) sonst Zeiger auf Speicherbereich der Größe dwbytes. Parameter: - hheap: Handle eines Heaps (GetProcessHeap, HeapCreate) - dwflags: HEAP_GENERATE_EXCEPTIONS, HEAP_NO_SERIALIZE, HEAP_ZERO_MEMORY - dwbytes : Speicher in Byte welcher reserviert werden soll. Anmerkungen: - Anfordern eines Speicherberiches vom Heap Win32 Systemprogrammierung 65

66 3.3 Heaps: Speicherbereich freigeben BOOL HeapFree ( HANDLE hheap, DWORD dwflags, LPVOID lpmem ); Rückgabewerte: - Erfolg <> 0, sonst Misserfolg Parameter: - hheap: Handle eines Heaps (HeapCreate) - dwflags: HEAP_NO_SERIALIZE, - lpmem : Zeiger auf einen durch HeapAlloc oder HeapRelloc allokierten Speicherbereich Anmerkungen: - Freigabe eines allokierten Speicherbereiches eines Heaps Win32 Systemprogrammierung 66

67 LPVOID HeapReAlloc ( HANDLE hheap, DWORD dwflags, LPVOID lpmem, DWORD dwbytes ); 3.3 Heaps: Speicherbereichsgröße ändern Rückgabewerte: Parameter: - NULL bei Fehler (wenn kein SHE) sonst Zeiger auf Speicherbereich der Größe dwbytes. - hheap: Handle eines Heaps (HeapCreate) - dwflags: HEAP_GENERATE_EXCEPTIONS, HEAP_NO_SERIALIZE, HEAP_ZERO_MEMORY (neu allokierter Speicher), HEAP_REALLOC_IN_PLACE_ONLY (Block nicht verschieben) - lpmem : Zeiger auf einen durch HeapAlloc oder HeapRelloc Anmerkungen: allokierten Speicherbereich - dwbytes : Speicher in Byte welcher reallokiert werden soll. - Keine Win32 Systemprogrammierung 67

68 3.3 Heaps: Speicherbereichsgröße ermitteln DWORD HeapSize ( HANDLE hheap, DWORD dwflags, LPVOID lpmem ); Rückgabewerte: - 0 bei Fehler (wenn kein SHE) sonst Größe des Speicherbereiches in Bytes. Parameter: - hheap: Handle eines Heaps (HeapCreate) - dwflags: HEAP_NO_SERIALIZE, - lpmem : Zeiger auf einen durch HeapAlloc oder HeapRelloc allokierten Speicherbereich Anmerkungen: - Ermittelt die Größe eines Speicherbereiches eines Heaps, nicht die Größe des Heaps! Win32 Systemprogrammierung 68

69 3.3 Heaps: weitere Funktionen HeapValidate: Feststellen ob ein Heap korrupiert wurde. HeapCompact: Defragmentieren eines Heaps durch zusammenfassen von freien Blöcken und freigeben von großen Freibereichen. HeapWalk: Ermittelt alle allokierten Speicherbereiche eines Heaps. HeapLock, HeapUnlock: Dient Mutal-Exclusion Mechanismen Win32 Systemprogrammierung 69

70 3.3 Heaps: Systemaufrufe Systemaufrufe UNIX Win32 Beschreibung Nur default-heap HeapCreate Erstellt einen Heap Nicht vorhanden! HeapDestroy Löscht einen Heap malloc da nur default-heap realloc Da nur default-heap HeapAlloc HeapReAlloc Allokiert einen Speicherbereich vom Haeap Heap-Speicherbereich neu dimensionieren. Nicht vorhanden! HeapSize Heap- Speicherbereichgröße. Nicht vorhanden! HeapValidate Heap korrupiert? Nicht vorhanden! HeapCompact Heap defragmentieren Nicht vorhanden! HeapWalk Heapgröße ermitteln Nicht vorhanden! HeapLock Heap sperren (mutal exc.) Nicht vorhanden! HeapUnlock Heap freigabe (mutal exc.) Win32 Systemprogrammierung 70

71 3.4 Memory-Mapped Files: Einführung Rechtfertigung: - Bei der Virtuellenspeicherverwaltung muss Speicher für Objekte (Heap-Bereiche) in der Auslagerrungsdatei (Swaping) bereitgestellt werden. - Wird ein Prozess terminiert, so geht der zugehörige Auslagerrungsdateispeicher verloren. - Lösung: Man nutzt MMF's statt der Auslagerrungsdatei. Vorteile: - Ermöglichen das Einblenden eines Objektes in den virtuellen Adressraum eines Prozesses. - Für MMF s wird keine File-I/O-API benötigt - Inhalte von Datenstrukturen können wiederverwendet werden. - Implementierung für Dateipuffer entfällt! - Bietet die Möglichkeit Daten mit anderen Prozessen zu teilen. - Die Auslagerungsdatei wird entlastet Win32 Systemprogrammierung 71

Windows - Registry. Einführung / Gefahren. Windows Registry - Gliederung. Registry Was ist das? Registry Aufbau. Programmierung.

Windows - Registry. Einführung / Gefahren. Windows Registry - Gliederung. Registry Was ist das? Registry Aufbau. Programmierung. Windows - Registry Einführung / Gefahren Informatikseminar am 14.07.03 Diana Reichwein Windows Registry - Gliederung Registry Was ist das? Registry Aufbau Programmierung Gefahren Windows Registry Registry

Mehr

Erklären Sie kurz die Begriffe Handle und Prozess/Thread im Kontext von Windows 2000.

Erklären Sie kurz die Begriffe Handle und Prozess/Thread im Kontext von Windows 2000. Aufgabe 1 Erklären Sie kurz die Begriffe Handle und Prozess/Thread im Kontext von Windows 2000. Im MSDN-Glossary findet sich zum Thema Handle die Erklärung (englisch): 1. A pointer to a pointer; that is,

Mehr

Windows32 Systemprogrammierung

Windows32 Systemprogrammierung Hochschule RheinMain WS 2009/2010 Allgemeine Informatik (B.Sc.) Vertiefung Bachelor AI Windows32 Systemprogrammierung Eine Gegenüberstellung von Systemaufrufen unter Windows und Linux 1 von 27 Inhalte

Mehr

Lösung Übungszettel 6

Lösung Übungszettel 6 Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik SS 03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 1 Aufgabe 1: Parallel-Server 1.1 Client #include

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Theoretische Aspekte

Theoretische Aspekte Webserver mit Win32 API Datum: 04.02.03 Autor: Michael Hielscher Homepage: www.genesis-x7.de Theoretische Aspekte Aufbau eines Webservers Als erstes sollte man im Abschnitt Multithreaded SocketServer nachlesen

Mehr

Tafelübung zu BS 4. Interprozesskommunikation

Tafelübung zu BS 4. Interprozesskommunikation Tafelübung zu BS 4. Interprozesskommunikation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/

Mehr

Erzeugen eines Threads mit der Windows-API

Erzeugen eines Threads mit der Windows-API Erzeugen eines Threads mit der Windows-API Ziel, Inhalt Wir erzeugen heute unter Windows einen zum main parallelen Arbeitsfaden (Thread) und beenden diesen auf sichere Art wieder Erzeugen eines Threads

Mehr

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen Kommunikationsnetze Gliederung 1. Socket-Programmierung unter C 2. Socket-Programmierung unter Java Gliederung Berkeley Sockets (Erste freie TCP/IP-Implementierung in Berkeley UNIX): SOCKET: Erzeugen eines

Mehr

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen

Mehr

Einführung in die Systemprogrammierung unter Linux

Einführung in die Systemprogrammierung unter Linux Einführung in die Systemprogrammierung unter Linux Systemsoftware Praktikum Inhalt Übersicht über benötigte Systemfunktionen Programmieren unter Linux Grundlegendes Message-Queue Shared Memory Semaphore

Mehr

Dienstspezifikation nach RFC 2396 193

Dienstspezifikation nach RFC 2396 193 Dienstspezifikation nach RFC 2396 193 Für die Kombination aus Rechnernamen (oder alternativ einer IP-Adresse) und einer Portnummer gibt es mit RFC 2396 einen Standard: hostport host [ : port ] host hostname

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 20.11.2013 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Wdhlg.: Attributinformationen in

Mehr

www.heimetli.ch Heimetli Software AG HSWModule ... Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5.

www.heimetli.ch Heimetli Software AG HSWModule ... Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5. www.heimetli.ch. Heimetli Software AG HSWModule........ Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5. August 2005 Inhaltsverzeichnis Was ist HSWModule?... 1 Installation...

Mehr

Dämon-Prozesse ( deamon )

Dämon-Prozesse ( deamon ) Prozesse unter UNIX - Prozessarten Interaktive Prozesse Shell-Prozesse arbeiten mit stdin ( Tastatur ) und stdout ( Bildschirm ) Dämon-Prozesse ( deamon ) arbeiten im Hintergrund ohne stdin und stdout

Mehr

Embedded-Linux-Seminare. Linux als Betriebssystem

Embedded-Linux-Seminare. Linux als Betriebssystem Embedded-Linux-Seminare Linux als Betriebssystem http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a Was machen wir heute? Betriebssysteme Tutorium 10 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

An Open Interface for Network Programming under Microsoft Windows. DI. Dr. Peter René Dietmüller

An Open Interface for Network Programming under Microsoft Windows. DI. Dr. Peter René Dietmüller Windows Sockets An Open Interface for Network Programming under Microsoft Windows DI. Dr. Peter René Dietmüller Institut für Informationsverarbeitung und Mikroprozessortechnik Johannes Kepler Universität

Mehr

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory

Mehr

Projekt: Web-Proxy. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015

Projekt: Web-Proxy. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Einführung in COM. 04.04.2006 Seite 1

Einführung in COM. 04.04.2006 Seite 1 Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006

Mehr

DLLs (dynamic loaded libraries) mit MingW erstellen

DLLs (dynamic loaded libraries) mit MingW erstellen DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:

Mehr

6 Speicherorganisation

6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für

Mehr

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam Aktuelle Fileposition ermitteln long pos; pos=ftell(fp); //aktuelle Bytenummer Filelaenge in Bytes fseek(fp,0,seek_end); pos=ftell(fp); Fileendeerkennung int rc; rc = feof (fp) //!= 0 bei Fileende // ==

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

bereit (oder Zombie genannt). Normales Ende (exit) und synchrone und asynchrone Signal-Ereignisse, z.b.

bereit (oder Zombie genannt). Normales Ende (exit) und synchrone und asynchrone Signal-Ereignisse, z.b. Prof. Dr. Michael Jäger FB MNI Lösungsvorschlag zur Klausur Betriebssysteme vom 1.10.2014 Blau gekennzeichnete Textstellen sind beispielhafte Lösungen bzw. Antworten zu den Aufgaben. Rot gekennzeichnete

Mehr

Praktikum Betriebssysteme 1. Aufgabe (1)

Praktikum Betriebssysteme 1. Aufgabe (1) FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen

Mehr

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert fuddl@gmx.de. 20. Juni 2007

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert fuddl@gmx.de. 20. Juni 2007 User Mode Linux (UML) Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren Friedrich-Alexander-Universität Erlangen-Nürnberg Bruno Kleinert fuddl@gmx.de 20. Juni 2007 Überblick

Mehr

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161? Was machen wir heute? Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8 Byte-Taxi Bedienungsanleitung Seite 1 von 8 Inhaltsverzeichnis 1. Beschreibung 3 2. Systemvoraussetzungen 4 3. Installationsanleitung 5 4. Bedienung 6 5. Infos & Kontakt 8 Seite 2 von 8 1. Beschreibung

Mehr

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST 2. Interaktive Web Seiten GET und POST Die Übertragungsmethoden GET und POST sind im http Protokoll definiert: POST: gibt an, dass sich weitere Daten im Körper der übertragenen Nachricht befinden: z.b.

Mehr

Partitionieren und Formatieren

Partitionieren und Formatieren Partitionieren und Formatieren Auf eine Festplatte werden Partitionen angelegt, damit Daten an verschiedenen (relativ) unabhängigen Orten gespeichert werden können oder dass mehrere unabhängige Betriebssysteme

Mehr

Konzepte von Betriebssystem Komponenten. Aufbau eines Modernen Betriebssystems (Windows NT 5.0)

Konzepte von Betriebssystem Komponenten. Aufbau eines Modernen Betriebssystems (Windows NT 5.0) Konzepte von Betriebssystem Komponenten Aufbau eines rnen Betriebssystems (Windows NT 5.0) Moritz Mühlenthaler 14.6.2004 1.Das Designproblem a) Überblick b) Design Goals c) Möglichkeiten der Strukturierung

Mehr

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Betriebssysteme Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Umfaßt z.b. auch Compiler, Interpreter und Dienstprogramme

Mehr

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation 09.05.15 1 Literatur [6-1] http://php.net/manual/de/book.sockets.php [6-2] http://de.wikipedia.org/wiki/socket_(software) [6-3] http://php.net/manual/de/book.network.php

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11

Mehr

Moderne C-Programmierung

Moderne C-Programmierung Xpert.press Moderne C-Programmierung Kompendium und Referenz Bearbeitet von Helmut Schellong 1. Auflage 2005. Buch. xii, 280 S. ISBN 978 3 540 23785 3 Format (B x L): 15,5 x 23,5 cm Weitere Fachgebiete

Mehr

Betriebssysteme KU - Einführungstutorium

Betriebssysteme KU - Einführungstutorium Betriebssysteme KU - Einführungstutorium SWEB-Tutoren irc://irc.at.euirc.net/bs Teamwork Arbeitsaufteilung? Zeiteinteilung? Codeeinteilung? Kommunikation! Kommunikation Kommunikation mit dem Team Gruppentreffen

Mehr

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend U7 6. Übung U7 6. Übung U7-1 Motivation von Threads U7-1 Motivation von Threads Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte pthread-ai Koordinierung UNIX-rozesskonzept: eine Ausführungsumgebung

Mehr

Prozesse. Stefan Janssen. sjanssen@cebitec.uni-bielefeld.de. Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de

Prozesse. Stefan Janssen. sjanssen@cebitec.uni-bielefeld.de. Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Netzwerk - Programmierung Prozesse Stefan Janssen sjanssen@cebitec.uni-bielefeld.de Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Madis Rumming mrumming@cebitec.uni-bielefeld.de Übersicht Prozesse

Mehr

CA Übung 30.01.2006. Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder

CA Übung 30.01.2006. Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder CA Übung 30.01.2006 Hallo zusammen! Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder Adrian Schüpbach: scadrian@student.ethz.ch Christian Fischlin: cfischli@student.ethz.ch

Mehr

IBM SPSS Collaboration and Deployment Services Deployment Manager Installation von 5

IBM SPSS Collaboration and Deployment Services Deployment Manager Installation von 5 IBM SPSS Collaboration and Deployment Services Deployment Manager Installation von 5 Bevor Sie IBM SPSS Collaboration and Deployment Services Deployment Manager installieren und mit dem Tool arbeiten können,

Mehr

Übersicht. Einführung in die Programmierung. main. main. main. main. Speicherverwaltung. Definition nach ANSI C:

Übersicht. Einführung in die Programmierung. main. main. main. main. Speicherverwaltung. Definition nach ANSI C: Übersicht Einführung in die Programmierung Bachelor of Science die -Funktion Prof. Dr. Rethmann Fachbereich Elektrotechnik und Informatik Hochschule Niederrhein WS 009/0 Einführung in die Programmierung

Mehr

IBM SPSS Modeler Text Analytics für Windows Installationsanweisungen

IBM SPSS Modeler Text Analytics für Windows Installationsanweisungen IBM SPSS Modeler Text Analytics für Windows Installationsanweisungen IBM SPSS Modeler Text Analytics Server kann so installiert und konfiguriert werden, dass es auf einem Rechner ausgeführt werden kann,

Mehr

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches U6 6. Übung U6 6. Übung U6-1 Organisatories U6-1 Organisatories Organisatorisches Zusätzliche Tafelübung zur S1-Klaurvorbereitung Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte am

Mehr

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 09:30 Uhr (90 min) Aufgabenblätter 14 Seiten (einschl. Deckblatt) erreichbare Punktzahl 54 zugelassene

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

Mehr

Logging, Threaded Server

Logging, Threaded Server Netzwerk-Programmierung Logging, Threaded Server Alexander Sczyrba Michael Beckstette {asczyrba,mbeckste@techfak.uni-bielefeld.de 1 Übersicht Logging Varianten für concurrent server 2 current working directory

Mehr

Microsoft Visual C++ 6.0

Microsoft Visual C++ 6.0 Hardwareinbindung in Matlab bild = Quickcam; figure;imshow(bildanzeige); MATLAB 6.1 void mexfunction( int nlhs, mxarray *plhs[], int nrhs, const mxarray*prhs[] ) Microsoft Visual C++ 6.0 Aufruf int Capture(unsigned

Mehr

Lösungsvorschlag zur 9. Übung

Lösungsvorschlag zur 9. Übung Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zur 9. Übung 1 Präsenzübungen 1.1 Schnelltest a) Welche der folgenden Aussagen über

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

DAP2-Programmierpraktikum Einführung in C++ (Teil 1) DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume

Mehr

(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT

(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT Architektur Übersicht (allgemeine) OOP in C++ Polymorphie Virtuelle Funktionen Kompilieren Linken dynamische/statische Bibliotheken Tutorial: vs2008+ogre+(campus modell) Architektur (allgemeine) OOP in

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation MySQL-Job-Automation Managed User Jobs JOB SCHEDULER Dokumentation Juli 2005 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin Telefon (030) 86 47 90-0 Telefax (030) 861 33 35

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei Dateiverwaltung Dateiverwaltung 2002 Prof. Dr. Rainer Manthey Informatik II 1 Dateien weitere zentrale Aufgabe des Betriebssystems: "Verbergen" der Details der Struktur von und der Zugriffe auf Sekundärspeicher-Medien

Mehr

Installationsanleitung Volksbank Office Banking Mehrplatzinstallation

Installationsanleitung Volksbank Office Banking Mehrplatzinstallation Installationsanleitung Volksbank Office Banking Mehrplatzinstallation Inhalt Systemvoraussetzungen... 1 Hintergrund zur Installation... 1 Installation des DBMS auf einem Server... 2 Mehrplatz Installationsvarianten

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

Die Programmiersprache C

Die Programmiersprache C Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,

Mehr

Sicheres C Programmieren in Embedded Systemen ARM I (ARM7TMDI [1] ) Wintersemester 2010-2011

Sicheres C Programmieren in Embedded Systemen ARM I (ARM7TMDI [1] ) Wintersemester 2010-2011 Sicheres C in Embedded Systemen ARM I (ARM7TMDI [1] ) Wintersemester 2010-2011 Dipl. Ing. (FH) Ebrecht Roland, Infineon Technologies AG M.Eng (Electronic Systems) Güller Markus, Infineon Technologies AG

Mehr

IT in der Arztpraxis Technisches Handbuch zum Kodierassistenten

IT in der Arztpraxis Technisches Handbuch zum Kodierassistenten Technisches Handbuch zum Kodierassistenten [KBV_ITA_AHEX_Handbuch_Kodierassistent] Dezernat 6 Informationstechnik, Telematik und Telemedizin 10623 Berlin, Herbert-Lewin-Platz 2 Kassenärztliche Bundesvereinigung

Mehr

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B. C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von

Mehr

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome (Timo Heinrich, t_hein03@uni-muenster.de) Inhaltsverzeichnis: 0.Einleitung 1.Teil: Helloworldprogramm 1.1 Quellcode: Helloworld.cpp 1.2

Mehr

Jürgen Bayer. MDI-Anwendungen in C#

Jürgen Bayer. MDI-Anwendungen in C# Jürgen Bayer MDI-Anwendungen in C# Inhaltsverzeichnis 1 Grundlagen 2 1.1 Einrichten der Formulare 2 1.2 Öffnen von MDI-Childformularen 3 2 Menüs 4 2.1 Erstellen eines Menüs 4 2.2 Programmierung der Menüpunkte

Mehr

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand 14.11.07

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand 14.11.07 ExpandIT Client Control Kurzanleitung Stand 14.11.07 Inhaltsverzeichnis ExpandIT Client Control 3 Installationshinweise 3 System-Voraussetzungen 3 Installation 3 Programm starten 6 Programm konfigurieren

Mehr

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu) HMExcel Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu) Inhalt 1. Einleitung...1 2. Beispiele...2 2.1. Daten in ein Tabellenblatt schreiben...2

Mehr

Betriebssysteme KU - Bewertung A2 - WS 15/16

Betriebssysteme KU - Bewertung A2 - WS 15/16 Betriebssysteme KU - Bewertung A2 - WS 15/16 TEAM:... Mögliche Punkte: 50 + Bonus Allgemein Design Design / PoC Implementation... Sonstiges/Abzüge +X Sonstiges / : Bewertung der einzelnen Gruppenmitglieder

Mehr

Zusätzliche Unterlagen

Zusätzliche Unterlagen Programmieren 1 & 2 Zusätzliche Unterlagen Zusätzliche Unterlagen Inhaltsverzeichnis 1 Hilfe- und Dokumentationsseiten unter UNIX (man pages) 1 2 Plotten unter UNIX (gnuplot) 3 3 Detect Unintended Memory

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 2. UNIX/Linux-Prozessverwaltung und zugehörige Systemaufrufe Wintersemester 2015/16 2. Die UNIX/LINUX-Prozessverwaltung Aufgaben: 1. Erzeugen neuer Prozesse

Mehr

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2014 1 / 25 2 / 25 Pipes Die Bash kennt drei Standard-Dateideskriptoren: Standard In (stdin) Standard-Eingabe,

Mehr

Betriebssysteme Kap A: Grundlagen

Betriebssysteme Kap A: Grundlagen Betriebssysteme Kap A: Grundlagen 1 Betriebssystem Definition DIN 44300 Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten

Mehr

3. Grundlagen der Systemprogrammierung

3. Grundlagen der Systemprogrammierung 3.1 Betriebssysteme Zum täglichen Umgang des Systemprogrammierers gehört in erster Linie das Betriebssystem des Rechners, mit dem er arbeitet. Es ist daher selbstverständlich, daß er sich einen guten Einblick

Mehr

Anleitung zum Prüfen von WebDAV

Anleitung zum Prüfen von WebDAV Anleitung zum Prüfen von WebDAV (BDRS Version 8.010.006 oder höher) Dieses Merkblatt beschreibt, wie Sie Ihr System auf die Verwendung von WebDAV überprüfen können. 1. Was ist WebDAV? Bei der Nutzung des

Mehr

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere

Mehr

IPv6 kompatible Programmierung unter Unix. Vortrag von Dipl. Inf. Matthias Scheler Paderborn, Juli 2004

IPv6 kompatible Programmierung unter Unix. Vortrag von Dipl. Inf. Matthias Scheler Paderborn, Juli 2004 1 IPv6 kompatible Programmierung unter Unix Vortrag von Dipl. Inf. Matthias Scheler Paderborn, Juli 2004 2 Was ist IPv6? Internet Protocol Version 6 (auch Internet Protocol Next Generation genannt) Nachfolger

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

Operating System Kernels

Operating System Kernels Operating System Kernels von Patrick Bitterling 1 Themenübersicht -Eine Einleitung über Kernel -Begriffserklärung, Architekturen -Kernel Subsysteme -Prozess-Scheduling, Speichermanagement,... -Der Networking

Mehr

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen 1 C-Schlüsselwörter Schlüsselwörter sind in allen Programmiersprachen reservierte Wörter. In C sind auch alle Namen _[A-Z]... und... reserviert, auch _... bereichsweise. Weiterhin durch die Standard-

Mehr

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis... 1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................

Mehr

Konzepte von Betriebssystemkomponenten (KVBK) Schwerpunkt Linux

Konzepte von Betriebssystemkomponenten (KVBK) Schwerpunkt Linux Konzepte von Betriebssystemkomponenten (KVBK) Schwerpunkt Linux Adressräume, Page Faults, Demand Paging, Copy on Write Seminar am 24.11.2003, Referent: Johannes Werner Speicherverwaltung ist bei heutigen

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

Marketing Update. Enabler / ENABLER aqua / Maestro II

Marketing Update. Enabler / ENABLER aqua / Maestro II Marketing Update Enabler / ENABLER aqua / Maestro II Quartal 01/2012 1 Kommentar des Herausgebers Liebe Kunden und Partner, dieser Marketing Update gibt Ihnen einen kurzen Überblick über die aktuell verfügbaren

Mehr

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile

Mehr

Was ist ein Dateisystem? Wozu dient es? Lokale Dateisysteme. Speichergrößen. Inhalt der Präsentation

Was ist ein Dateisystem? Wozu dient es? Lokale Dateisysteme. Speichergrößen. Inhalt der Präsentation Was ist ein Dateisystem? Wozu dient es? Lokale Dateisysteme Christine Arndt 9arndt@informatik.uni-hamburg.de Universität Hamburg - Studentin der Wirtschaftsinformatik 11. März 2011 Schicht zwischen Betriebssystem

Mehr

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft Prozeß: drei häufigste Zustände Prozeß: anatomische Betrachtung jeder Prozeß verfügt über seinen eigenen Adreßraum Sourcecode enthält Anweisungen und Variablen Compiler überträgt in Assembler bzw. Binärcode

Mehr

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock

Mehr

Workshop 3. Sensible Daten schützen und verwalten. 3.1 Ist eine gelöschte Datei gelöscht?

Workshop 3. Sensible Daten schützen und verwalten. 3.1 Ist eine gelöschte Datei gelöscht? Workshop 3 Sensible Daten schützen und verwalten Datenspionage bei sensiblen Daten. Wer macht so was? Schauen Sie sich einfach mal kurz den Workshop über Viren und Würmer an (Workshop 6). Jeder hat etwas,

Mehr

IPETRONIK TESTdrive SDK V02.00

IPETRONIK TESTdrive SDK V02.00 TESTdrive SDK V02.00 Übersicht Kundenspezifische Erweiterungen möglich Unabhängige Entwicklungen von TESTdrive-Kernsystem (Releases) Eigenständige Erweiterungen durch den Kunden selbst Nutzung von bestehenden

Mehr

[Geben Sie Text ein] ISCSI Targets mit der Software FreeNAS einrichten

[Geben Sie Text ein] ISCSI Targets mit der Software FreeNAS einrichten [Geben Sie Text ein] ISCSI Targets mit der Software FreeNAS einrichten ISCSI Targets mit der Software FreeNAS einrichten Inhalt FreeNAS Server Vorbereitung... 2 Virtuelle Maschine einrichten... 3 FreeNAS

Mehr

Zusammenfassung des Handzettels für Programmieren in C

Zusammenfassung des Handzettels für Programmieren in C Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.

Mehr

21 Netzwerkprogrammierung mit Sockets

21 Netzwerkprogrammierung mit Sockets 302 21 Netzwerkprogrammierung mit Sockets Das Socket-API liegt zwischen den transportorientierten und den anwendungsorientierten Netzwerkschichten und tritt in der Praxis in 2 Formen auf: Ursprünglich

Mehr

6.2 FAT32 Dateisystem

6.2 FAT32 Dateisystem 6.2 FAT32 Dateisystem Dateisystem für Windows 98 einige Unterschiede zum Linux-Dateisystem EXT2: keine Benutzeridentifikation für Dateien und Verzeichnisse! Partitionen werden durch Laufwerke repräsentiert,

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

4 Threads. FH Regensburg BT/SS04 Betriebssysteme Wirtschaftsinformatik. 4.1 Allgemein

4 Threads. FH Regensburg BT/SS04 Betriebssysteme Wirtschaftsinformatik. 4.1 Allgemein 4 Threads 4.1 Allgemein Prozessmodell: Zwei unabhängige Eigenschaften eines Prozesses: Er hat Resourcen: Adressen, Daten, geöffnete Dateien und ist ausführbar Thread: hat keine eigenen Resourcen (ausser

Mehr