Thread-Erzeugung kostengünstiger als Prozesserzeugung Thread-Umschaltung kostengünstiger als Prozessumschaltung



Ähnliche Dokumente
11.1 Indirektes Binden (3) 11.1 Indirektes Binden (4) Objektadapterkonfiguration. Unmittelbarer Vorteil des indirekten Bindens

2. Installation unter Windows 10 mit Internetexplorer 11.0

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Cisco AnyConnect VPN Client - Anleitung für Windows7

Domänenmodell: Fadenkommunikation und -synchronisation

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Grundlagen verteilter Systeme

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

ANYWHERE Zugriff von externen Arbeitsplätzen

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Windows Server 2008 (R2): Anwendungsplattform

Formular»Fragenkatalog BIM-Server«

Systemvoraussetzungen Informationscenter IFC

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

Persona-SVS e-sync GUI/Client Installation

2. Installation unter Windows 8.1 mit Internetexplorer 11.0

MSXFORUM - Exchange Server 2003 > Archivierung mit Exchange eigenen Mitteln

Abbildung 8.1: Problem mit dem Zertifikat. 2. Melden Sie sich am imanager als admin an. Die Anmeldung erfolgt ohne Eingabe des Kontextes: 8-2

PRODUKTINFORMATION LOCKING SYSTEM MANAGEMENT 3.3 SERVICE PACK 1 BASIC BASIC ONLINE BUSINESS PROFESSIONAL STAND: JUNI 2016

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach Bremen. Friedrich-Mißler-Straße Bremen

Projektgruppe Algorithmen für die Cloud-unterstützte 3-D-Darstellung auf mobilen Endgeräten

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Unico Cloud AdminPortal

How-to: Webserver NAT. Securepoint Security System Version 2007nx

PRODUKTINFORMATION LOCKING SYSTEM MANAGEMENT 3.3 BASIC BASIC ONLINE BUSINESS PROFESSIONAL STAND: FEBRUAR 2016

Installation OMNIKEY 3121 USB

Nutritioner V2.0: Lokaler, Synchronisations- und Servermodus

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

HamburgService Registrierung für die Online-Dienste Gutachterverfahren (GUV) und Gutachterinformationssystem (GIS)

ADDISON Aktenlösung Automatischer Rewe-Import. Technische Beschreibung

Sicherheitstage SS 2007

Synchronisations- Assistent

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Effiziente Administration Ihrer Netzwerkumgebung

[DvBROWSER] Offline-Viewer für [DvARCHIV] und [DvARCHIVpersonal] Version 2.2

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Anwenderleitfaden Citrix. Stand Februar 2008

1 Voraussetzungen für Einsatz des FRITZ! LAN Assistenten

Technische Grundlagen von Netzwerken

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Auskunft über die Kassendaten

Fakultätsname XYZ Fachrichtung XYZ Institutsname XYZ, Professur XYZ. Big.LITTLE-Processing mit ARM- Cortex-Prozessoren. E. Zenker

Step by Step Softwareverteilung unter Novell. von Christian Bartl

ObjectBridge Java Edition

4D Server v12 64-bit Version BETA VERSION

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

Umleiten von Eigenen Dateien per GPO

Unified Communication Client Installation Guide

Systemvoraussetzungen:

Lubuntu als Ersatz für Windows

Ihr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.

Erfolgreiche Verbindung. 3. Anmeldung: Bitte geben Sie Ihren Benutzernamen und Ihr Kennwort ein.

Workshop: Eigenes Image ohne VMware-Programme erstellen

Erläuterungen: GEO - Lastverteilung

Internet Explorer Version 6

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Systemvoraussetzungen

WinVetpro im Betriebsmodus Laptop

Mastermind. Testplan. Hochschule Luzern Technik & Architektur. Programmieren 2 FS12. Gruppe 10

Es kann maximal ein Prozess die Umladestelle benutzen.

Bedienerhandbuch Toleranztabellen Version 1.2.x. Copyright Hexagon Metrology

Einführung in die technische Informatik

Elektronischer Kontoauszug

AnyOS Setupbeschreibung Installation und Konfiguration Bedienung Fazit. AnyOS. Axel Schöner. 25. August 2012

Identity Propagation in Fusion Middleware

Virtueller Computer in Microsoft Hyper-V

TeamSpeak3 Einrichten

Buddy - Algorithmus Handbuch für Endnutzer Stand

Internet online Update (Mozilla Firefox)

Voraussetzungen zur Nutzung aller LANiS Funktionalitäten

Leitfaden zur Nutzung von binder CryptShare

Übersicht Die Übersicht zeigt die Zusammenfassung der wichtigsten Daten.

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Installationsanleitung Sander und Doll Mobilaufmaß. Stand

staffitpro WEB Produkte und Lizenzen (SaaS) (Ergänzung zu Allgemeine Geschäftsbedingungen audeosoft GmbH staffitpro Web-SaaS )

Speicher in der Cloud

Installationsvoraussetzungen

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Bitte unbedingt lesen! Update-Dokumentation

GPS Navigation für PPC

Behebung des sog. Heartbleed-Bugs (CVE ) in der Krypto-Bibliothek OpenSSL.

Die Backup-Voreinstellungen finden Sie in M-System Server unter dem Reiter "Wartung".

GOOGLE CHROME 40. BROWSEREINSTELLUNGEN OPTIMIEREN. BMW FINANCIAL SERVICES. Google Chrome 40 Browsereinstellungen optimieren. 1

TISIS - Industrie 4.0. Ereignis, Ort, Datum

Routing im Internet Wie findet ein IP Paket den Weg zum Zielrechner?

BELIEBIG GROßE TAPETEN

MS Outlook Integration

... über OGVIT GmbH & Co. KG

DAS SIND WIR. Kronthalerstraße Königstein phone +49 (0) fax +49 (0) mail web nolinkup.

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Arbeiten in der Agro-Cloud mit Windows PC

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Hilfe zur Ad-hoc-Bereitstellung von Anwendungen an der Staatsbibliothek zu Berlin

xgu 2.0 Installationsanleitung Installationsanleitung Excel Add-In zu ASTAG GU Kalkulationsgrundlage Bern, 19. August 2014 Version: 01.

Transkript:

1.5 Threaded Server Server als ein Prozess mit mehreren Threads Threads Thread als Aktivitätsträger virtueller Prozessor eigener Programmzähler eigener Stackbereich eingebettet in den Kontext eines Prozesses gemeinsamer Adressraum gemeinsame Betriebsmittel (Sockets, Dateien etc.) Vorteil Thread-Erzeugung kostengünstiger als Prozesserzeugung Thread-Umschaltung kostengünstiger als Prozessumschaltung 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 9 1.5 Threaded Server (2) Beispiel mit Sockets Client Server connect() Warten auf Verb. accept() Starte neuen Thread Socket write() read() read() write() close() close() mehrere Threads im Serverprozess 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 10

1.5 Threaded Server (3) Weitere Vorteile Thread-Umschaltung durch Betriebssystem oder Thread-Bibliothek volle Nebenläufigkeit im Server geringst mögliche mittlere Bearbeitungszeit Nachteile Nebenläufigkeitskontrolle erforderlich (Koordinierung der Threads) Thread-Erzeugung evtl. teuer Obergrenze für sinnvolle Thread-Anzahl notwendig Ressourcenverbrauch wirkt sich nachteilig aus z.b. zusätzliche Speicherauslagerungen z.b. Timeouts durch faires Scheduling führen zu unnötigen Nachrichten 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 11 1.6 Einsatz von Threads Zwei Implementierungsmöglichkeiten Kernel-Level-Threads Threads im Betriebssystem implementiert Betriebssystem schaltet um Vorteil: bei blockierenden Systemaufrufen wird nur ein Thread blockiert User-Level-Threads Threads im Prozess implementiert Thread-Software schaltet den einen Aktivitätsträger des Prozesses auf viele Threads um Vorteil: effizientere Umschaltung 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 12

1.6 Einsatz von Threads (2) Thread-Software Integration in die Sprache Thread-Konzept und Koordinierungsmittel nahtlos in Sprache eingebettet z.b. Java, Ada Thread-Bibliotheken zusätzliche Software macht Sprache threading-fähig z.b. C++, C Effizientere Thread-Erzeugung Pool von Arbeitsthreads Threads im Pool warten auf Aufträge Neuerzeugung nur bei leerem Pool erforderlich Poolgröße ist Tuningparameter 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 13 1.7 Implementierungsstrukturen Dispatcher/Worker-Modell, Master-Slave-Modell Haupt-Thread empfängt Aufträge und gibt diese an Bearbeiter-Thread (Worker) weiter (evtl. dynamisch erzeugt) siehe Beispiel auf Folie.10 Server Worker-Threads Dispatcher-Thread Kommunikationspuffer nach Weber 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 14

1.7 Implementierungsstrukturen (2) Team-Modell alle Threads arbeiten gleichberechtigt zentrale Komponente stellt Aufträge bereit z.b. alle rufen accept() am Socket auf z.b. Abruf von Aufträgen an einem Auftrags- oder Nachrichtenpuffer Koordinierung beim Zugriff erforderlich! Server Worker-Threads 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] nach Weber 15 1.7 Implementierungsstrukturen (3) Pipeline-Modell jeder Thread bearbeitet nur Teilauftrag Anordnung der Threads in einer Bearbeitungskette (Pipeline) Weitergabe der Ergebnisse an Folge-Thread Zwischenpuffer zur Entkopplung benachbarter Threads sinnvoll Server Kommunikationspuffer Kommunikationspuffer nach Weber 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 16

2 Lastverteilung 2.1 Verteilter Server Mehrere Serverprozesse auf verschiedenen Rechnerknoten Beispiel: Dispatcher-Modell mit fest konfigurierten, verteilten Bearbeiterprozessen Last lässt sich auf mehrere Knoten verteilen Arten von Last Verbrauch von Betriebsmitteln Prozessor: Rechenlast Speicher: Speicherlast Netzwerkbandbreite: Kommunikationslast u.a. 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 17 2.1 Verteilter Server (2) Anwendung der Implementierungsstrukturen für Threads Dispatcher-Modell zentraler Server gibt Aufträge an fest konfigurierte Prozesse weiter zentraler Server startet für Aufträge neue Prozesse auf verschiedenen Rechnern z.b. Ray-Tracing (Push-Modell) Team-Modell Bearbeiterprozesse holen sich Aufträge von zentraler Stelle z.b. Ray-Tracing (Pull-Modell) Pipeline-Modell Zwischenergebnisse werden von Prozess zu Prozess weitergereicht z.b. Trainingsläufe für Spracherkenner 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 18

2.2 Einsatz bei Arbeitsplatzrechnern Viele Arbeitsplatzrechner nicht ausgelastet Benutzer häufig mit anderen Dingen beschäftigt nachts inaktiv Starten von Bearbeiterprozessen auf ungenutzten Arbeitsplatzrechnern Problem: Sicherheit vertrauenswürdige Arbeitsplatzrechner erforderlich Problem: Benutzer kommt zurück, will rechenintensive Software nutzen Bearbeiterprozess stoppen Bearbeiterprozess abbrechen und anderswo neu starten laufenden Bearbeiterprozess verlagern (Migration) 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 19 2.3 Lastverteilungsalgorithmen Problem gegeben mehrere Prozesse mit gegebenem Kommunikationsverhalten welche Verteilung für optimale Lastbalancierung Vermeidung von Ressourcenengpässen effizente Abarbeitung Einteilung der Algorithmen Lastverteilungsalgorithmen statische dynamische ohne Migration mit Migration 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 20

2.3 Lastverteilungsalgorithmen (2) Statische Algorithmen berechnen eine optimale initiale Prozessverteilung Dynamische Algorithmen berechnen für jede Prozesserzeugung idealen Ort berücksichtigen aktuelle Last an den Orten (Messung) mit Migration zur Lastveränderung werden Prozesse verlagert 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 21 3 Migration Verlagerung einer Softwarekomponente an einen neuen Ort Prozesse Objekte... Relokationstransparenz Verlagerung bleibt den Kommunikationspartnern verborgen Passive Komponenten einfache Verlagerung durch Übertragung von Daten und Code notwendiges Warten bis alle laufenden Operationen beendet schwache Migration 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 22

3 Migration (2) Aktive Komponenten Verlagerung eines laufenden Aktivitätsträgers zusätzlich Übertragung von Programmzähler Registersatz Stackspeicher Hilfe des Betriebssystems notwendig starke Migration Problem Umgebung der Komponente muss erhalten bleiben z.b. offene Dateien eines verlagerten Prozesses 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 23 3 Migration (3) Problem verschiedene Rechnerarchitekturen unterschiedliche Datenspeicherung z.b. Little-Endian vs. Big-Endian unterschiedliche Adressräume z.b. 32 Bit vs. 64 Bit unterschiedliche Maschinenbefehle z.b. IA32 vs. Sparc Teilweise lösbar Umwandlung in architekturunabhängiges Übertragungsformat und zurück Laden äquivalenter Code-Module anstatt Migration von Code 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 24

3.1 Mobile Agenten Mobile Objekte/Prozesse mit proaktivem Verhalten selbständig und zielgerichtet tätig z.b. Suche nach einem geeigneten Online-Shop Einsatz von Migrationstechniken schwache Migration Agent sichert seinen Bearbeitungszustand in Datenstrukturen nach Migration wird Datenstruktur analysiert und geeignet fortgefahren starke Migration Agent setzt einfach Tätigkeit fort 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 25 3.2 Migration großer Komponenten Optimierung der Übergangszeit Komponente soll bald möglichst am neuen Ort einsatzbereit sein Vorabübertragung Kopieren der Daten und des Codes der laufenden Komponente an neuen Ort Erkennung und Nachlieferung veränderter Daten kurze Überganszeit mit letzter Übertragung Code nach erster Kopie: Daten Thread Übertragung geänderter Daten Übertragung der Aktivität 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 26

3.2 Migration großer Komponenten (2) Nachgelagerte Übertragung der Daten Vorabübertragung des Codes Stoppen der Komponente an altem Ort, Starten an neuem sukzessives Nachliefern der Daten bei Zugriffsfehlern: sofortiges Nachliefern der Daten z.b. seitenbasiert, gesteuert über Seitenfehler Code nach Kopie von Code und Aktivität: Daten Thread bei Zugriff Übertragung notwendiger Daten 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 27 4 Zusammenfassung Lokale Serverstrukturen iterative Server nebenläufige Server Multiplex-Server, Mehrprozess-Server, Threaded-Server Verteilte Serverstrukturen Lastverteilung von Serverkomponenten z.b. Bearbeiterprozesse Lastverteiltungsalgorithmen Migration von Software-Komponenten (transparente) Verlagerung 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS--Proc.fm, 2004-01-08 22.24] 28