3 - J (suc1)
3 - J (suc1)
3 - J (suc1)
Fichier Détails
Cartes-fiches | 68 |
---|---|
Langue | Deutsch |
Catégorie | Devinettes |
Niveau | École primaire |
Crée / Actualisé | 06.01.2014 / 15.01.2014 |
Lien de web |
https://card2brain.ch/box/3_j_suc1
|
Intégrer |
<iframe src="https://card2brain.ch/box/3_j_suc1/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Créer ou copier des fichiers d'apprentissage
Avec un upgrade tu peux créer ou copier des fichiers d'apprentissage sans limite et utiliser de nombreuses fonctions supplémentaires.
Connecte-toi pour voir toutes les cartes.
Ein Thread hat folgende Zustände
<Parallele Prozesse und Multithreading>
neu bereit für die Ausführung in der Ausführung blockiert tot
Die Zustandsübergänge können
durch entsprechende Methodenaufrufe (z. B. sleep) im Programm und
durch das Betriebssystem (in Java JVM)
Der Zustand neu bedeutet
<Parallele Prozesse und Multithreading>
dass der Thread durch den new-Operator erzeugt wurde und sich in seinem Anfangszustand befindet
der Thread ist noch nicht lauffähig
seine Datenfelder und Methoden können angesprochen werden
Der Zustand tot bedeutet
<Parallele Prozesse und Multithreading>
dass der Thread seine Arbeit erledigt hat
seine Datenfelder und Methoden können angesprochen werden, ausser die Methode run
Threads in Java
<Parallele Prozesse und Multithreading>
die Klasse java.lang.Thread und
die Schnittstelle java.lang.Runnable
Klasse thread fähig machen
<Parallele Prozesse und Multithreading>
die generierende Klasse wird von der Klasse Thread abgeleitet, oder
die generierende Klasse implementiert die Schnittstelle Runnable
Modthode run()
Beenden der Ausführung
<Parallele Prozesse und Multithreading>
Durch Aufruf der Methode interrupt und isInterrupted
Durch Einsatz von privaten Datenfelder
Zugriff auf gemeinsame Ressourcen
<Parallele Prozesse und Multithreading>
Falls ein Prozess / Thread auf gemeinsame Ressourcen zugreift und sie manipuliert, nennt man das race condition (auf Deutsch: Wettkampfbedingung)
Der Abschnitt, in dem die gemeinsamen Daten manipuliert werden, wird kritischer Abschnitt genannt.
Der Zugriff auf einen solchen kritischen Abschnitt muss gegenseitig ausschliessend (mutual exclusion) erfolgen: zu einem Zeitpunkt darf sich nur ein Prozess im kritischen Abschnitt befinden
Vor dem Eintritt in einen solchen kritischen Abschnitt muss der Prozess um "Erlaubnis fragen"
Das Monitorkonzept (synchronized)
<Parallele Prozesse und Multithreading>
Wesentliche Eigenschaften eines Monitors:
Kritische Abschnitte, die auf denselben Daten arbeiten, sind Methoden eines Monitors
Ein Prozess betritt einen Monitor durch Aufruf einer Methode des Monitors
Monitor für synchronisierte Klassenmethoden
<Parallele Prozesse und Multithreading>
(ein Monitor pro klasse)
Wenn eine oder mehrere Klassenmethoden mit dem Schlüsselwort synchronized versehen werden, wird ein Monitor um diese Methoden "herum gebaut"
Die synchronisierten Klassenmethoden werden dadurch die Methoden des Monitors
Zu einem bestimmten Zeitpunkt kann nur ein Thread eine der Methoden des Monitors (synchronisierte Klassenmethoden) ausführen
Für alle synchronisierten Klassenmethoden einer Klasse wird ein Monitor angelegt, welcher den Zugriff auf diese Methoden überwacht (ein Monitor pro Klasse)
Monitor für Instanzmethoden
<Parallele Prozesse und Multithreading>
(ein Monitor pro Instanz der Klasse vorhanden)
Falls eine oder mehrere Instanzmethoden mit dem Schlüsselwort synchronized versehen werden, so hat jede Instanz dieser Klasse einen eigenen Monitor, welcher den Zugriff auf die synchronisierten Instanzmethoden überwacht
Somit ist für die synchronisierten Instanzmethoden einer Klasse ein Monitor pro Instanz der Klasse vorhanden
Synchronisierten von einzelnen Codeblöcken
<Parallele Prozesse und Multithreading>
synchronized (this) { // kritischer Abschnitt }
Synchronisation und Schlüssel (etwas das nur einmal vorkommt)
<Parallele Prozesse und Multithreading>
Welches Objekt eignet sich als Schlüssel?
Instanz der Klasse Class
Ein übergebenes Schlüssel-Objekt
Die Referenz auf das aktuelle Objekt (this)
Der Schlüssel, der in der Regel von mehreren Instanzen gebraucht wird, darf nur einmal Vorkommen!
Executor Framework, Threadpool
<Parallele Prozesse und Multithreading>
Der Threadpool ist eine gute Lösung in Applikationen, in denen eine grosse Anzahl von kurzlebigen und voneinander unabhängigen Aufgaben erledigt werden müssen
Typischer Anwendungsfall stellt der Server dar, bei dem jede Clientanfrage von einem Pool-Thread abgearbeitet wird
Der Threadpool ist keine gute Lösung in Applikationen, in denen eine kleine Anzahl aufwändiger und voneinander abhängigen Aufgabe erledigt werden müssen
Ein verteiltes System ist
<Verteilte Systeme und Anwendungen>
ein System, in dem Hard- und Softwarekomponenten, die sich auf untereinander vernetzten Computer befinden, miteinander kommunizieren und Ihre Aktionen koordinieren, indem sie Nachrichten austauschen
Eine verteilte Anwendung ist
<Verteilte Systeme und Anwendungen>
aus verschiedenen Komponenten besteht und ein verteiltes System zur Lösung eines Anwendungsproblems benutzt
Komponenten einer verteilten Anwendung kommunizieren miteinander mit Hilfe von Nachrichten
Einem Standard-Anwender erscheint eine verteilte Anwendung wie eine gewöhnliche, nicht verteilte Anwendung (transparent)
Schichten einer Anwendung
<Verteilte Systeme und Anwendungen>
Datenhaltung Datenbanken / Dateien
Datenverarbeitung Geschäftslogik / Prozesssteuerung
Datenpräsentation Diverse Datensichten Kommunikation mit Benutzer (UI)
Verteilte Systeme - Vorteile
<Verteilte Systeme und Anwendungen>
Besseres Abbild der Realität (Leistungen werden dort erbracht, wo sie benötigt werden)
Wirtschaftlichkeit und Lastverteilung
Bessere Skalierbarkeit
Fehlertoleranz
Verteilte Systeme - Nachteile
<Verteilte Systeme und Anwendungen>
Höhere Komplexität durch Verteilung und Heterogenität
Komplexe Netzinfrastruktur
Höhere Sicherheitsrisiken (Verletzlichkeit)
Modell (Abbildung der Wirklichkeit)
<Verteilte Systeme und Anwendungen>
Mit einem Modell werden allgemeine Eigenschaften und Design eines Systems beschrieben
Die wichtigsten Komponenten des Systems und deren Aufgaben
Die Interaktion zwischen unterschiedlichen Komponenten des Systems
Wie das Verhalten der Komponenten (einzeln und kollektiv) beeinflusst werden kann
Softwareschichten Modell
<Verteilte Systeme und Anwendungen>
Applikation (Unabhängig von Platform)
Middleware (Verbirgt die Heterogenität des verteilten Systems)
Platform
- OS (ermöglicht zugriff auf systemressourcen)
- HW
Architektur Modelle, aufgabe
<Verteilte Systeme und Anwendungen>
Das Architekturmodell eines verteilten Systems
vereinfacht und abstrahiert die Erfassung von Funktionen der einzelnen Komponenten
definiert die Verteilung von Komponenten in einem Netz von Computern
definiert die Beziehung von Komponenten untereinander (Rolle in der Kommunikation, Kommunikationsmuster)
Architektur Modelle, Beispiele
<Verteilte Systeme und Anwendungen>
Peer-To-Peer Modell
Client-Server
Client-Server: Variante Applet
Client-Server: Mobile Agenten
Client-Server: Spontane Netzwerke
Mehrfacher Server
Proxy-Server
Aufgabenteilung zwischen Client uns Server bei 2-Tier-Architektur
<Verteilte Systeme und Anwendungen>
Thin Client reine Präsentation von Daten
Fat Client Präsentation, Verarbeitung und teilweise Datenhaltung
Performance von modellen, beinhaltet
<Verteilte Systeme und Anwendungen>
Antworten auf eine Anfrage schnell
Durchsatz von Daten
Lastbalancierung
Quality of Service von Modellen, beinhaltet
<Verteilte Systeme und Anwendungen>
Verfügbarkeit des Systems
Zuverlässigkeit des Systems
Sicherheit
Transparenz durch Middleware, erklärung
<Verteilte Systeme und Anwendungen>
Das verteilte System wirkt wie eine Ganzheit
Der Benutzer nimmt es gar nicht wahr, dass es sich bei dem System, das von ihm benutzt wird, um ein verteiltes System handelt Folie
DBMS-Unabhängigkeit
<DB Zugriff>
Eine Anwendung soll nicht von einem konkreten DBMS abhängig sein.
Eine Zwischenschicht zwischen Anwendung und DBMS soll als "Übersetzer" dienen
Lösungen: ODBC JDBC
DBMS und Treiberkonzept
<DB Zugriff>
Allgemeine Definition: Ein DB-Treiber ist eine Softwarekomponente, welche die Kommunikation zwischen einer Anwendung und einer Datenbank ermöglicht.
JDBC-Treiber
ist eine Komponente, welche die Kommunikation zwischen einer Java-Anwendung und einer Datenbank ermöglicht.
stellt für den Client eine einheitliche Java-Schnittstelle zur Verfügung.
-
- 1 / 68
-