Systemnahe Software WS 2006/2007
|
|
|
- Berthold Reinhold Albrecht
- vor 10 Jahren
- Abrufe
Transkript
1 Systemnahe Software WS 2006/2007 Andreas F. Borchert Universität Ulm 5. Februar 2007
2 Konkurrierende Zugriffe Prinzipiell erlaubt Unix den konkurrierenden Zugriff mehrerer Prozesse auf die gleiche Datei. Das u.u. notwendige gegenseitige Ausschliessen und die Atomizität von Änderungen ergeben sich dabei nicht von selbst, sondern sind Aufgabe der parallel zugreifenden Anwendungen. Es gibt aber einige Systemaufrufe, die hier eine Hilfestellung leisten können.
3 Beispiel für eine Problemstellung Es ist ein kleines Werkzeug unique zu entwickeln, das einen Dateinamen als Parameter erhält und folgende Anforderungen erfüllt: Die Zahl in der gegebenen Datei ist auszulesen, um eins zu erhöhen, wieder in die Datei zu schreiben und auf der Standardausgabe auszugeben. Gegenseitiger Ausschluss: Jeder Wert darf höchstens einmal ausgegeben werden, egal wieviele Instanzen des Programms gleichzeitig auf die Datei zugreifen. Atomizität: Die Datei muss immer einen gültigen Inhalt haben, selbst wenn inmitten einer Operation der Strom ausfällt.
4 Gegenseitiger Ausschluss Wenn mehrere gleichzeitig zugreifende Prozesse sich gegenseitig ausschliessen möchten, kommen folgende auf dem Dateisystem basierende Techniken in Frage, die alle ohne Interprozess-Kommunikation auskommen: Option O_EXCL zusammen mit O_CREAT bei open setzen. Dann ist open nur erfolgreich, wenn die Datei vorher noch nicht existiert. Mit link zu einer existierende Datei einen weiteren Namen hinzufügen. Dies ist nur erfolgreich, wenn der neue Name noch nicht existiert. Mit lockf können bei einem gegebenen Deskriptor einzelne Bereiche reserviert werden. Jedoch wird lockf nicht überall unterstützt oder ist (wie bei NFS) nicht ausreichend zuverlässig.
5 Atomizität Wenn das Ergebnis einer Schreib-Operation abgesichert werden soll, dann empfiehlt sich fsync, das einen Dateideskriptor erhält und im Erfolgsfalle wartet, bis der aktuelle Stand auf die Platte gesichert ist. Datenbanken und andere Anwendungen arbeiten bei Transaktionen mit mehreren Versionen (der alten und der neuen). Erst wenn die neue Version mit fsync abgesichert worden ist, wird ein Versionszeiger in der Datei so aktualisiert, dass er auf die neue Fassung verweist.
6 Atomizität Im einfachen Falle empfiehlt sich die Verwendung des Systemaufrufs rename. Hier wird zunächst eine vollständig neue Version der Daten in einer temporären Datei erstellt. Dann wird rename aufgerufen mit der temporären Datei und der eigentlichen Datei als Ziel. Das ist auch zulässig, wenn das Ziel existiert. In diesem Falle wird implizit zuvor der alte Verweis gekappt. Diese Operation ist atomar und alle anderen Prozesse sehen entweder den alten oder den neuen Inhalt, vermissen aber nie die Datei und sehen unter keinen Umständen eine nur teilweise beschriebene Datei.
7 Beispiel: unique #include <ctype.h> #include <errno.h> #include <fcntl.h> #include <stdbool.h> #include <stdlib.h> #include <stralloc.h> #include <string.h> #include <unistd.h> unique.c char* cmdname; stralloc tmpfile = {0; bool tmpfile_created = false; /* print an out of memory message to standard error and exit */ void memerr() { /*... */ /* print a error message to standard error and exit; include "message" in the output message, if not 0, otherwise strerror(errno) is being used */ void die(char* filename, char* message) { /*... */ int main(int argc, char* argv[]) { /*... */
8 Beispiel: unique unique.c /* print an out of memory message to standard error and exit */ void memerr() { static char memerrmsg[] = "out of memory error\n"; write(2, memerrmsg, sizeof(memerrmsg) - 1); if (tmpfile_created) unlink(tmpfile.s); exit(1); Sollte tatsächlich der Speicher ausgehen, dann sollte die Ausgabe der zugehörigen Fehlermeldung ohne dynamische Speicheranforderungen auskommen. Von sizeof(memerrmsg) wird 1 abgezogen, weil das Nullbyte nicht auszugeben ist. Wenn die Ausführung abgebrochen wird, sollten ggf. temporäre Dateien aufgeräumt werden. Mit unlink kann eine Verweis aus einem Verzeichnis auf eine Datei entfernt werden.
9 Beispiel: unique unique.c /* print a error message to standard error and exit; include "message" in the output message, if not 0, otherwise strerror(errno) is being used */ void die(char* filename, char* message) { stralloc msg = {0; if (stralloc_copys(&msg, cmdname) && stralloc_cats(&msg, ": ") && ( message? stralloc_cats(&msg, message) : stralloc_cats(&msg, strerror(errno)) ) && stralloc_cats(&msg, ": ") && stralloc_cats(&msg, filename) && stralloc_cats(&msg, "\n")) { write(2, msg.s, msg.len); else { memerr(); if (tmpfile_created) unlink(tmpfile.s); exit(1);
10 Beispiel: unique unique.c int main(int argc, char* argv[]) { /* process command line arguments */ /* try to open the temporary file which also serves as a lock */ /* determine current value of the counter */ /* increment the counter and write it to the tmpfile */ /* update counter file atomically by a rename */ /* write counter value to stdout */ Vorgehensweise: Wir erhalten einen Dateinamen als Argument, leiten daraus den Namen einer temporären Datei ab, eröffnen diese exklusiv zum Schreiben, lesen den alten Zählerwert aus, erhöhen diesen um eins, schreiben den neuen Zählerwert in die temporäre Datei, taufen diese in den gegebenen Dateinamen um und geben am Ende den neuen Zählerwert aus.
11 Beispiel: unique unique.c /* process command line arguments */ cmdname = argv[0]; if (argc!= 2) { stralloc usage = {0; if (stralloc_copys(&usage, "Usage: ") && stralloc_cats(&usage, cmdname) && stralloc_cats(&usage, " counter\n")) { write(2, usage.s, usage.len); else { memerr(); exit(1); char* counter_file = argv[1]; Genau ein Dateiname wird als Argument erwartet. In dieser Datei wird der Zähler verwaltet.
12 Beispiel: unique unique.c /* try to open the temporary file which also serves as a lock */ if (!stralloc_copys(&tmpfile, counter_file)!stralloc_cats(&tmpfile, ".tmp")!stralloc_0(&tmpfile)) { memerr(); int outfd; for (int tries = 0; tries < 10; ++tries) { outfd = open(tmpfile.s, O_WRONLY O_CREAT O_TRUNC O_EXCL, 0666); if (outfd >= 0) break; if (errno!= EEXIST) break; sleep(1); if (outfd < 0) die(tmpfile.s, 0); tmpfile_created = true; Den Namen der temporären Datei gewinnen wir durch ein Anhängen der Endung».tmp«an den übergebenen Dateinamen. Damit liegt die temporäre Datei im gleichen Verzeichnis wie die angegebene Datei und damit auch auf dem gleichen Dateisystem. Das Nullbyte am Ende der Zeichenkette tmpfile wird für open benötigt.
13 Beispiel: unique unique.c int outfd; for (int tries = 0; tries < 10; ++tries) { outfd = open(tmpfile.s, O_WRONLY O_CREAT O_TRUNC O_EXCL, 0666); if (outfd >= 0) break; if (errno!= EEXIST) break; sleep(1); Die Option O_EXCL lässt den Aufruf von open scheitern, wenn die Datei bereits existiert. In diesem Falle hat errno den Wert EEXIST. Wenn open aus diesem Grunde schiefgeht, wird die Operation mit Zeitverzögerung wiederholt. sleep erlaubt ein sekundengenaues Suspendieren des eigenen Prozesses. Sobald der Aufruf von open erfolgreich ist, schliessen wir alle Konkurrenten aus.
14 Beispiel: unique unique.c /* determine current value of the counter */ int current_value; int infd = open(counter_file, O_RDONLY); if (infd >= 0) { char buf[512]; ssize_t nbytes = read(infd, buf, sizeof buf); if (nbytes <= 0) die(counter_file, 0); current_value = 0; for (char* cp = buf; cp < buf + nbytes; ++cp) { if (!isdigit(*cp)) die(counter_file, "decimal digits expected"); current_value = current_value * 10 + *cp - 0 ; else if (errno!= ENOENT) { die(counter_file, 0); else { /* start a new counter */ current_value = 0; Sobald wir einen exklusiven Zugriff haben, lohnt es sich, den bisherigen Zählerstand auszulesen. Falls die Datei noch nicht existiert, gehen wir von einem bisherigen Zählerwert von 0 aus.
15 Beispiel: unique unique.c /* increment the counter and write it to the tmpfile */ ++current_value; stralloc outbuf = {0; if (!stralloc_copys(&outbuf, "")!stralloc_catint(&outbuf, current_value)) { memerr(); int nbytes = write(outfd, outbuf.s, outbuf.len); if (nbytes < outbuf.len) die(tmpfile.s, 0); if (fsync(outfd) < 0) die(tmpfile.s, 0); if (close(outfd) < 0) die(tmpfile.s, 0); Der um eins erhöhte Zählerwert wird in die temporäre Datei geschrieben. Mit fsync wird der Inhalt der temporären Datei mit der Festplatte synchronisiert.
16 Beispiel: unique unique.c /* update counter file atomically by a rename */ if (rename(tmpfile.s, counter_file) < 0) die(counter_file, 0); tmpfile_created = false; Mit rename wird der Verweis auf die Zieldatei, falls dieser zuvor existierte, implizit mit unlink entfernt und danach die temporäre Datei in die Zieldatei umgetauft. IEEE Std verlangt ausdrücklich, dass rename atomar ist. Dies in Erweiterung zu ISO (C99-Standard), das den Fall, dass die Zieldatei existiert, ausdrücklich offen lässt.
17 Beispiel: unique unique.c /* write counter value to stdout */ if (!stralloc_cats(&outbuf, "\n")) memerr(); nbytes = write(1, outbuf.s, outbuf.len); if (nbytes < outbuf.len) die("stdout", 0); Am Ende wird hier, falls alles soweit erfolgreich war, der neue Zählerwert auf der Standard-Ausgabe ausgegeben.
18 Probleme des Beispiels Folgende Nachteile sind mit dem vorgestellten Beispiel verbunden: Sollte das Programm gewaltsam terminiert werden, während die temporäre Datei noch existiert, kommt keine weitere Instanz mehr zum Zuge, da alle darauf warten, dass diese irgendwann verschwindet. Das Problem kann dahingehend angegangen werden, dass die anderen Instanzen überprüfen, ob derjenige, der dem die Datei gehört, noch lebt. Dies ist möglich, wenn die Prozess-ID bekannt ist und der Prozess auf dem gleichen Rechner läuft. Andernfalls läuft es nur über Netzwerkprotokolle oder über Heuristiken, die eine zeitliche Beschränkung einführen. Eine Wartezeit von einer Sekunde ist recht grob. Kleinere Wartezeiten sind mit Hilfe des Systemaufrufs poll möglich.
19 Zufällige Wartezeiten unique2.c void randsleep() { static int invocations = 0; if (invocations == 0) { srand(getpid()); ++invocations; /* determine timeout value (in milliseconds) */ int timeout = rand() % (10 * invocations + 100); if (poll(0, 0, timeout) < 0) die("poll", 0); poll blockiert den aufrufenden Prozess bis zum Eintreffen eines Ereignisses (aus einer Menge gegebener Ereignisse im Kontext von Dateideskriptoren) oder wenn ein Zeitlimit abgelaufen ist. Das Zeitlimit wird in Millisekunden als ganze Zahl spezifiziert. Im einfachsten Falle kann poll wie hier auch als reines Suspendierungs-Werkzeug verwendet werden, das im Gegensatz zu sleep Zeitangaben in Millisekunden akzeptiert. Wie genau das jedoch aufgelöst wird, hängt vom Betriebssystem ab.
20 Konkurrierende Zugriffe auf eine Datei Grundsätzlich können beliebig viele Prozesse gleichzeitig auf die gleiche Datei zugreifen. Eine Synchronisierung oder Koordinierung bleibt grundsätzlich den Anwendungen überlassen. Es gibt aber einen entscheidenden Punkt: Arbeiten die konkurrierende Prozesse mit unabhängig voneinander geöffneten Dateideskriptoren oder sind die Dateideskriptoren gemeinsamen Ursprungs? Dateideskriptoren können vererbt werden. Bei der Shell wird dies intensiv ausgenutzt, um beispielsweise die Standard-Kanäle im gewünschten Sinne vorzubereiten. Zu jedem Dateideskriptor gibt es eine aktuelle Position. Wenn Dateideskriptoren vererbt werden, arbeiten alle Erben mit der gleichen Position.
21 Eine Testanwendung int main(int argc, char* argv[]) { cmdname = argv[0]; for (int i = 1; i <= 10; ++i) { stralloc text = {0; if (!stralloc_copys(&text, "")) memerr(); if (!stralloc_catint(&text, getpid())) memerr(); if (!stralloc_cats(&text, ": ")) memerr(); if (!stralloc_catint(&text, i)) memerr(); if (!stralloc_cats(&text, "\n")) memerr(); ssize_t nbytes = write(1, text.s, text.len); if (nbytes < text.len) die("stdout", 0); Dieses Programm ruft 10 mal write auf, um die eigene Prozess-ID zusammen mit einer laufenden Nummer auf der Standardausgabe auszugeben. Dies dient im folgenden als Testkandidat. write10.c
22 Testfall 1 #!/bin/sh test1 rm -f out./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out &./write10 >out & Hier wird das Testprogramm 30 mal aufgerufen und dabei jeweils individuell die Ausgabedatei zum Schreiben eröffnet. Das Eröffnen erfolgt durch die Shell mit den Optionen O_WRONLY, O_CREAT und O_TRUNC. Jedes Programm arbeitet mit einem eigenen unabhängigen Dateideskriptor, der jeweils ab Position 0 beginnt.
23 Testfall 2 #!/bin/sh test2 rm -f out./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out &./write10 >>out & Hier wird von der Shell die Ausgabedaei wiederum jeweils individuell zum Schreiben eröffnet. Aber diesmal fällt die Option O_TRUNC weg. Stattdessen positioniert die Shell den Dateideskriptor an das aktuelle Ende. Nach wie vor arbeitet jeder der aufgerufenen Prozesse mit einer eigenen Dateiposition.
24 Testfall 3 #!/bin/sh test3 rm -f out exec >out./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 &./write10 & Hier eröffnet die Shell die Ausgabedatei genau einmal zu Beginn im Rahmen der exec-anweisung. Dieser Dateideskriptor wird danach an alle aufgerufenen Prozesse vererbt. Entsprechend arbeiten alle Prozesse mit einer gemeinsamen Dateiposition.
25 Ausführung der Testfälle turing$./testit1 turing$ wc -l out 10 out turing$./testit2 turing$ wc -l out 50 out turing$./testit2 turing$ wc -l out 29 out turing$./testit3 turing$ wc -l out 300 out turing$ Nur im dritten Falle geht hier keine Ausgabe verloren. Allerdings könnte diese bunt gemischt sein. IEEE Std garantiert allerdings hier nicht die Verlustfreiheit, weil das Betriebssystem nicht notwendigerweise entsprechend intern synchronisiert. In der Praxis kann dies allerdings bei write dennoch klappen. Bei read wird aus Performance-Gründen jedoch weitgehend darauf verzichtet.
26 Die internen Datenstrukturen für Dateien UFDT OFT KIT User File Descriptor Table Open File Table Kernel Inode Table Prozess A Prozess B (einmal für jeden Prozess) (nur einmal!)
27 User File Descriptor Table (UFDT) Diese Tabelle gibt es für jeden Prozess. Dateideskriptoren dienen als Index zu dieser Tabelle. Als Werte hat die Tabelle nur einen Zeiger in die systemweite Open File Table.
28 Open File Table (OFT) Diese Tabelle gibt es nur einmal global im Betriebssystem. Zu einem Eintrag gehören folgende Komponenten: Ein Zeiger in die Kernel Inode Table. Die aktuell geltenden Optionen, die bei open angegeben wurden und potentiell später durch fcntl verändert wurden. Die aktuelle Dateiposition. Eine ganze Zahl, die die Zahl der Verweise aus der UFDT auf den jeweiligen Eintrag spezifiziert. Geht diese auf 0 zurück, kann der entsprechende Eintrag freigegeben werden.
29 Kernel Inode Table (KIT) Diese Tabelle gibt es nur einmal global im Betriebssystem. Jede geöffnete Datei ist in dieser Tabelle genau einmal vertreten. Zu einem Eintrag gehören folgende Komponenten: Eine vollständige Kopie der Inode von der Platte. Eine ganze Zahl, die die Zahl der Verweise aus der OFT auf den jeweiligen Eintrag spezifiziert. Solange diese positiv ist, bleibt die Inode auch auf der Platte enthalten, selbst wenn der Referenzzähler innerhalb der Inode auf 0 ist, weil die Datei aus sämtlichen Verzeichnissen entfernt wurde.
Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole
Lavid-F.I.S. Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der Lavid Software GmbH Dauner Straße 12, D-41236 Mönchengladbach http://www.lavid-software.net Support:
Einrichtung des Cisco VPN Clients (IPSEC) in Windows7
Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über
Möglichkeiten des Parallelbetriebs der VR-NetWorld Software Parallelbetrieb VR-NetWorld Software 4.4x und Version 5.0 ab der 2. Beta!
Möglichkeiten des Parallelbetriebs der VR-NetWorld Software Um mehrere Versionsstände parallel betreiben zu können, sollte man die folgenden Hintergründe kennen, um zu verstehen wo ggf. die Hürden liegen.
Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me
Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte
OP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.
Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine
Professionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge
Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht
5.2 Neue Projekte erstellen
5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort
Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing
Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing Finanzbuchhaltung Wenn Sie Fragen haben, dann rufen Sie uns an, wir helfen Ihnen gerne weiter - mit Ihrem Wartungsvertrag
Speichern. Speichern unter
Speichern Speichern unter Speichern Auf einem PC wird ständig gespeichert. Von der Festplatte in den Arbeitspeicher und zurück Beim Download Beim Kopieren Beim Aufruf eines Programms Beim Löschen Beim
Outlook-Daten komplett sichern
Outlook-Daten komplett sichern Komplettsicherung beinhaltet alle Daten wie auch Kontakte und Kalender eines Benutzers. Zu diesem Zweck öffnen wir OUTLOOK und wählen Datei -> Optionen und weiter geht es
Workshop: Eigenes Image ohne VMware-Programme erstellen
Workshop: Eigenes Image ohne VMware-Programme erstellen Normalerweise sind zum Erstellen neuer, kompatibler Images VMware-Programme wie die Workstation, der ESX-Server oder VMware ACE notwendig. Die Community
Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb
Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb CashPro basiert auf Accesstechnologie 2003 und ist auch unter den aktuellen Accessversionen 2007 bis 2013 einsetzbar und Mehrbenutzerfähig.
Updatehinweise für die Version forma 5.5.5
Updatehinweise für die Version forma 5.5.5 Seit der Version forma 5.5.0 aus 2012 gibt es nur noch eine Office-Version und keine StandAlone-Version mehr. Wenn Sie noch mit der alten Version forma 5.0.x
Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige
1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern
1 Einleitung Lernziele Symbolleiste für den Schnellzugriff anpassen Notizenseiten drucken eine Präsentation abwärtskompatibel speichern eine Präsentation auf CD oder USB-Stick speichern Lerndauer 4 Minuten
SFTP SCP - Synology Wiki
1 of 6 25.07.2009 07:43 SFTP SCP Aus Synology Wiki Inhaltsverzeichnis 1 Einleitung 1.1 Grundsätzliches 2 Voraussetzungen 2.1 Allgemein 2.2 für SFTP und SCP 3 Installation 3.1 Welche openssl Version 3.2
Internet online Update (Internet Explorer)
Um Ihr Consoir Beta immer schnell und umkompliziert auf den aktuellsten Stand zu bringen, bieten wir allen Kunden ein Internet Update an. Öffnen Sie Ihren Internetexplorer und gehen auf unsere Internetseite:
Übung: Verwendung von Java-Threads
Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum
! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006
!"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst
AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
Updateanleitung für SFirm 3.1
Updateanleitung für SFirm 3.1 Vorab einige Informationen über das bevorstehende Update Bei der neuen Version 3.1 von SFirm handelt es sich um eine eigenständige Installation, beide Versionen sind komplett
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 // ==
Durchführung der Datenübernahme nach Reisekosten 2011
Durchführung der Datenübernahme nach Reisekosten 2011 1. Starten Sie QuickSteuer Deluxe 2010. Rufen Sie anschließend über den Menüpunkt /Extras/Reisekosten Rechner den QuickSteuer Deluxe 2010 Reisekosten-Rechner,
Lizenzen auschecken. Was ist zu tun?
Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.
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
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
Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000
Folgende Anleitung beschreibt, wie Sie ein bestehendes Postfach in Outlook Express, bzw. Microsoft Outlook bis Version 2000 einrichten können. 1. Öffnen Sie im Menü die Punkte Extras und anschließend Konten
Erstellen einer PostScript-Datei unter Windows XP
Erstellen einer PostScript-Datei unter Windows XP Sie möchten uns Ihre Druckvorlage als PostScript-Datei einreichen. Um Fehler in der Herstellung von vorneherein auszuschließen, möchten wir Sie bitten,
EasyWk DAS Schwimmwettkampfprogramm
EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage
GFAhnen Datensicherung und Datenaustausch
GFAhnen Datensicherung und Datenaustausch In dieser Anleitung wird das Daten Sicheren, das Daten Wiederherstellen und der Datenaustausch zwischen 2 Rechner beschrieben. Eine regelmäßige Datensicherung
ABB i-bus KNX. Software-Information. Melde- und Bedientableau. Typ: MT 701.2
Produkt: Melde- und Bedientableau Typ: MT 701.2 Aktuelles Anwendungsprogramm Plug-In für ETS 2 MT_701_2_ETS2_SOW_xx_V1-12a_de_en.exe Plug-In für ETS 3 MT_701_2_ETS3_SOW_xx_V1-12a_de_en.exe EIBTAB: MT_701_2_EIBTAB_SOW_de_V2-08-00A_EibTab+Firmware.EXE
Guide DynDNS und Portforwarding
Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch
Microsoft Update Windows Update
Microsoft bietet mehrere Möglichkeit, Updates durchzuführen, dies reicht von vollkommen automatisch bis zu gar nicht. Auf Rechnern unserer Kunden stellen wir seit September 2006 grundsätzlich die Option
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):
Supportanfrage ESN Bitte füllen Sie zu jeder Supportanfrage diese Vorlage aus. Sie helfen uns damit, Ihre Anfrage kompetent und schnell beantworten zu können. Verwenden Sie für jedes einzelne Thema jeweils
E Mail Versand mit der Schild NRW Formularverwaltung
-Seite 1- E Mail Versand mit der Schild NRW Formularverwaltung Seit der Version 1.12.3.97 der Reportverwaltung ist die Möglichkeit integriert, E Mails direkt, d.h. ohne Umweg über einen externen Mailclient
Bilder zum Upload verkleinern
Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr
Vorgehensweise bei der Installation Bob50SQL für einen unabhängigen PC.
Vorgehensweise bei der Installation Bob50SQL für einen unabhängigen PC. Wichtiger Hinweis Diese Installation ist für einen unabhängigen PC (Bob50 ist auf einen einzigen PC installiert ohne auf irgendein
Dokumentation zum Spielserver der Software Challenge
Dokumentation zum Spielserver der Software Challenge 10.08.2011 Inhaltsverzeichnis: Programmoberfläche... 2 Ein neues Spiel erstellen... 2 Spielfeldoberfläche... 4 Spielwiederholung laden... 5 Testdurchläufe...
ec@ros2-installer ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg 7 64331 Weiterstadt
ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Download des ecaros2-installer...3 2 Aufruf des ecaros2-installer...3 2.1 Konsolen-Fenster (Windows)...3 2.2 Konsolen-Fenster
INSTALLATION VON INSTANTRAILS 1.7
INSTALLATION VON INSTANTRAILS 1.7 InstantRails 1.7 ist ein Paket, das Ruby, Rails, Apache, MySQL und andere Tools, z.b. phpmyadmin in vorkonfigurierter Form enthält. Das Paket muss in einem Verzeichnis
Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.
Internet, Codes und Update ab Version 13 Um Ihnen einen möglichst schnellen Zugang zu den aktuellsten Programmversionen zu ermöglichen liegen Update-Dateien für Sie im Internet bereit. Es gibt drei Möglichkeiten
Installationshilfe VisKalk V5
1 Installationshilfe VisKalk V5 Updateinstallation (ältere Version vorhanden): Es ist nicht nötig das Programm für ein Update zu deinstallieren! Mit der Option Programm reparieren wird das Update über
Effiziente Administration Ihrer Netzwerkumgebung
Admin Anwender Aufträge, Freigaben Verwaltet Benutzer, Mailboxen, Ordner und vergibt Berechtigungen Anbindung von Fremdsystemen Erzeugt und pflegt Mailboxen und Datenbanken Benutzerinformationen und Konventionen
.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage
.htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess
Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank
Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen
Was meinen die Leute eigentlich mit: Grexit?
Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?
Der beste Plan für Office 365 Archivierung.
Der beste Plan für Office 365 Archivierung. Der Einsatz einer externen Archivierungslösung wie Retain bietet Office 365 Kunden unabhängig vom Lizenzierungsplan viele Vorteile. Einsatzszenarien von Retain:
How to install freesshd
Enthaltene Funktionen - Installation - Benutzer anlegen - Verbindung testen How to install freesshd 1. Installation von freesshd - Falls noch nicht vorhanden, können Sie das Freeware Programm unter folgendem
Softwarelösungen: Versuch 4
Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]
2. Word-Dokumente verwalten
2. Word-Dokumente verwalten In dieser Lektion lernen Sie... Word-Dokumente speichern und öffnen Neue Dokumente erstellen Dateiformate Was Sie für diese Lektion wissen sollten: Die Arbeitsumgebung von Word
Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert
Beamen in EEP Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Zuerst musst du dir 2 Programme besorgen und zwar: Albert, das
Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MESONIC WINLine Jahreswechsel. Umstellung des Wirtschaftsjahres SMC IT AG
MESONIC WINLine Jahreswechsel Umstellung des Wirtschaftsjahres und SMC MESONIC.Connect SMC IT AG Meraner Str. 43 86165 Augsburg Fon 0821 720 620 Fax 0821 720 6262 smc it.de info@smc it.de Geschäftsstelle
Adminer: Installationsanleitung
Adminer: Installationsanleitung phpmyadmin ist bei uns mit dem Kundenmenüpasswort geschützt. Wer einer dritten Person Zugriff auf die Datenbankverwaltung, aber nicht auf das Kundenmenü geben möchte, kann
Anmeldeverfahren. Inhalt. 1. Einleitung und Hinweise
Anmeldeverfahren Inhalt In dieser Anleitung finden Sie eine detaillierte Beschreibung der verschiedenen Anmeldeverfahren bzw. Zugangsberechtigungen anhand der verschiedenen Szenarien, die für Sie in der
Software Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER
AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...
Änderung des Portals zur MesseCard-Abrechnung
Änderung des Portals zur MesseCard-Abrechnung Seit dem 1. Februar 2010 steht das neue Portal zur Abrechnung der MesseCard zur Verfügung. Dieses neue Portal hält viele Neuerungen für Sie bereit: Das Portal
Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung
Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Nach dem Update auf die Version 1.70 bekommen Sie eine Fehlermeldung,
INSTALLATIONSANLEITUNG
INSTALLATIONSANLEITUNG MASTER UPDATE 2.1.0.4 2014 Gambio GmbH. www.gambio.de Inhaltsverzeichnis 1 Changelog 3 2 Datensicherung 3 3 Installation Master Update 4 3.1 Update von Shopsystemen v2.0.7c bis v2.0.15.4
Quickstep Server Update
Quickstep Server Update Übersicht Was wird aktualisiert Update einspielen intersales stellt das Quickstep Entwicklungs- und Ablaufsystem auf eine aktuelle Version um. Hierfür ist es erforderlich, Ihre
SJ OFFICE - Update 3.0
SJ OFFICE - Update 3.0 Das Update auf die vorherige Version 2.0 kostet netto Euro 75,00 für die erste Lizenz. Das Update für weitere Lizenzen kostet jeweils netto Euro 18,75 (25%). inkl. Programmsupport
Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:
Einleitung Unter MacOS X hat Apple die Freigabe standardmäßig auf den "Public" Ordner eines Benutzers beschränkt. Mit SharePoints wird diese Beschränkung beseitigt. SharePoints erlaubt auch die Kontrolle
How to do? Projekte - Zeiterfassung
How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...
iphone-kontakte zu Exchange übertragen
iphone-kontakte zu Exchange übertragen Übertragen von iphone-kontakten in ein Exchange Postfach Zunächst muss das iphone an den Rechner, an dem es üblicherweise synchronisiert wird, angeschlossen werden.
Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen
Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...
Eprog Starthilfe. 5. Oktober 2010. 1 Einleitung 2
Eprog Starthilfe 5. Oktober 2010 Inhaltsverzeichnis 1 Einleitung 2 2 Windows 2 2.1 Cygwin Installation................................... 2 2.2 Programmieren mit Emacs............................... 8
Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:
Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,
Fachbericht zum Thema: Anforderungen an ein Datenbanksystem
Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank
Die Dateiablage Der Weg zur Dateiablage
Die Dateiablage In Ihrem Privatbereich haben Sie die Möglichkeit, Dateien verschiedener Formate abzulegen, zu sortieren, zu archivieren und in andere Dateiablagen der Plattform zu kopieren. In den Gruppen
1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien
combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager / address manager Dateiabgleich im Netzwerk über Offlinedateien Dateiabgleich im Netzwerk über Offlinedateien
lññáåé=iáåé===pìééçêíáåñçêã~íáçå=
lññáåé=iáåé===pìééçêíáåñçêã~íáçå= Wie kann das LiveUpdate durchgeführt werden? Um das LiveUpdate durchzuführen, müssen alle Anwender die Office Line verlassen. Nur so ist gewährleistet, dass die Office
Internet Explorer Version 6
Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster
Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch
Einfache und effiziente Zusammenarbeit in der Cloud EASY-PM Office Add-Ins Handbuch Inhaltsverzeichnis 1. Einführung... 3 2. Ribbonmenü... 4 3. Dokument... 5 3.1 Öffnen... 5 3.2 Speichern... 6 3.3 Speichern
Wie können Sie eine Client Lizenz wieder freigeben?
NetWorker - Allgemein Tip #267, Seite 1/5 Wie können Sie eine Client Lizenz wieder freigeben? Auch diese Frage wird häufig gestellt - sie ist wichtig, wenn ein Computer außer Dienst gestellt wurde und
Anwendungsbeispiele Buchhaltung
Rechnungen erstellen mit Webling Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Rechnungen erstellen mit Webling 1.1 Rechnung erstellen und ausdrucken 1.2 Rechnung mit Einzahlungsschein erstellen
Step by Step Remotedesktopfreigabe unter Windows Server 2003. von Christian Bartl
Step by Step Remotedesktopfreigabe unter Windows Server 2003 von Remotedesktopfreigabe unter Windows Server 2003 Um die Remotedesktopfreigabe zu nutzen muss diese am Server aktiviert werden. Außerdem ist
Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten
Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während
Eine Anwendung mit InstantRails 1.7
Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der zugehörigen
CADEMIA: Einrichtung Ihres Computers unter Windows
CADEMIA: Einrichtung Ihres Computers unter Windows Stand: 21.02.2015 Java-Plattform: Auf Ihrem Computer muss die Java-Plattform, Standard-Edition der Version 7 (Java SE 7) oder höher installiert sein.
Sie wollen Was heißt das? Grundvoraussetzung ist ein Bild oder mehrere Bilder vom Wechseldatenträger
Den Speicherplatz wechseln oder eine Sicherungskopie erstellen. Es lässt sich nicht verhindern. Manche Sachen liegen am falschen Platz, können gelöscht werden oder man will vor der Bearbeitung eine Sicherungskopie
Programmierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten
Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Version 1.0 Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten In unserer Anleitung zeigen wir Dir, wie Du Blogbeiträge
Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware
Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO
Drägerware.ZMS/FLORIX Hessen
Erneuerung des ZMS Nutzungs-Zertifikats Lübeck, 11.03.2010 Zum Ende des Monats März 2010 werden die Zugriffszertifikate von Drägerware.ZMS/FLORIX Hessen ungültig. Damit die Anwendung weiter genutzt werden
Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.
Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:
Zunächst empfehlen wir Ihnen die bestehenden Daten Ihres Gerätes auf USB oder im internen Speicher des Gerätes zu sichern.
Anleitung zum Softwareupdate Eycos S 75.15 HD+ Eine falsche Vorgehensweise während des Updates kann schwere Folgen haben. Sie sollten auf jeden Fall vermeiden, während des laufenden Updates die Stromversorgung
Installationsanleitung dateiagent Pro
Installationsanleitung dateiagent Pro Sehr geehrter Kunde, mit dieser Anleitung möchten wir Ihnen die Installation des dateiagent Pro so einfach wie möglich gestalten. Es ist jedoch eine Softwareinstallation
Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
