The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > UNIX für Fortgeschrittene und Experten
.
Google unix.com



UNIX für Fortgeschrittene und Experten Expert-to-Experte. Erfahren Sie fortgeschrittene UNIX-, UNIX-Kommandos, Linux-Betriebssysteme, System-Administration, Programmierung, Shell, Shell-Skripte, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Pro * C-Programm für SQL-Abfragen mit Threading Konzept user71408 UNIX for Dummies Questions & Answers 0 05-21-2008 03:11 AM
LUN-Konzept Prem HP-UX 1 02-22-2007 05:02 PM
Probleme mit UNIX-Konzept. Bitte helfen Sie! Alon UNIX for Dummies Questions & Answers 4 01-11-2007 11:42 AM
IPTABLES Firewall-Konzept Hilfe Bradley Porter UNIX for Dummies Questions & Answers 1 01-02-2007 05:39 AM
Konzept der Mount-Punkt Vikas Sood UNIX for Dummies Questions & Answers 3 06-08-2006 07:31 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 08-28-2007
maverix maverix is offline
Registrierte Nutzer
  
 

Join Date: Jun 2007
Beiträge: 12
Semaphoren-Konzept

Hi All,

Ich gehe durch die Semaphore Konzept und haben Zweifel über die gleichen und hoffen, dass sich hier eine Lösung.

Ich habe eine Datei, die eine Anzahl von Datensätzen.
Ich möchte ein Programm schreiben (in C), die in der Lage zu tun, die gleichzeitige Lese-und Schreibzugriff auf diese Aufzeichnungen.

Von dem, was ich verstanden habe über Semaphoren, ich weiß, dass ein Prozess kann eine Sperre auf dem kritischen Abschnitt des Codes, read / write in Aufzeichnungen, dann lassen Sie die Sperre, so dass die anderen Prozesse warten auf die Daten zugreifen können, eine Sperre.

Ich bin verwirrt und neigen zu glauben, dass "nicht das Konzept zu einem ernsten Problem?" als ein anderer Prozess, eigentlich wollen lesen / schreiben eine andere Aufnahme auf der gleichen Datei muss warten, bis die Sperre zu bekommen, die von der Prozess, der hat die Schleuse. Wenn dies der Fall ist, denken Sie an eine Situation, wo wir eine große Anzahl von Prozessen (z. B. mehr als 1000) will eine read / write auf gleichen / verschiedenen Datensätze. Würde dieses Konzept nicht langsam die Anwendung?

Bitte lassen Sie mich wissen, wenn ich falsch verstanden das Konzept und werfen ein Licht auf dieser ...

Grüße
maverix

Zuletzt bearbeitet von maverix; am 08-28-2007 12:35 PM.. Grund: Entfernen Sie meinen Namen in die Signatur
  #2 (permalink)  
Old 08-28-2007
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Ort: NM
Posts: 5759
Sie sagen nicht, was Sie sich auf UNIX, aber der Ansicht, Datei-Schlösser statt Semaphoren.

Start mit "Mann Herde", wenn Sie auf Linux.
Sonst, der Mensch fcntl, suchen Sie dann nach FD_SETLK oder FD_GETLK zu starten.

Abhängig von Ihrem Betriebssystem können Sie Dateien Schleusen auf verschiedenen Ebenen; struct flock kann Verriegelung ein Teil einer Datei.

Semaphoren sind hauptsächlich für den Zugriff auf den gemeinsamen Speicher.
  #3 (permalink)  
Old 08-28-2007
Neo's Avatar
Neo Neo is offline Forum Staff  
Administrator
  
 

Join Date: Sep 2000
Ort: Asien-Pazifik-Raum
Posts: 6709
Semaphoren sind nicht zwangsläufig in den Speicher, Prozesse, Dateien oder Code.

Semaphoren sind Flags, die Prozesse, einschließlich der Prozesse, die Zugriff auf Dateien oder Shared Memory, verwenden Sie zu wissen, einen garantierten Status, der oft als "Atom".

Nehmen wir an, Sie schreiben einen Shared-Memory-Anwendung. Sie wollen nicht, dass zu lesen oder zu schreiben, um den gemeinsamen Speicher, wenn ein anderer Prozess ist schriftlich an (falls dieses Prozesses hat Schreibzugriff). Auch Sie wollen nicht, dass zu lesen, dass eine Datei geändert wird, etc. Also, legen Sie eine Semaphore und benennen Sie zwei Zustände:

- Semaphore gesetzt, bedeutet, dass ein Prozess mit Schreibberechtigung hat eine Datei Schlagwort geöffnet.

- Semaphore klar, bedeutet, dass es keine mit Schreibzugriff den Zugriff auf den gemeinsamen Speicher.

Nun, jeder Prozess, der greift auf den gemeinsamen Speicher zu prüfen, den Status der Semaphore, wenn sie (er) öffnen Sie die Datei (in diesem Fall gemeinsam genutzter Speicher) für den Zugang.

Es gibt viele Anwendungen für Semaphoren für Interprozesskommunikation Kommunikation, nicht nur auf den gemeinsamen Speicher, aber den gemeinsamen Speicher sicherlich erforderlich atomaren Flags für Interprocess Communications.

Denken Sie daran, wie eine Person auf einem einzigen Track der Eisenbahnlinie, die eine Flagge. Ein Zug fliegt die Strecke auf 200 km / h in einer Richtung und anderen Zug in Richtung der gleichen Spur Segment aus der entgegengesetzten Richtung. Es ist ein Schalter in einem Abschnitt der Strecke, wo ein Zug kann warten, während die anderen Pässe. Ein Weichensteller, in den alten Tagen, würde eine Flagge (später mit Licht), um den Status für beide Züge.

Sie können sehen, dass Vertrauen in die Flaggen der Weichensteller ist von entscheidender Bedeutung, Leute könnte dies, wenn die Flagge ist falsch, oder die Leitung des Zuges nicht sehen.

Das gleiche gilt in Interprocess Kommunikation und Semaphoren sind sie in der UNIX / Linux-Kernel zu atomarer, direkt am Toten.

Datei-Sperren werden nicht durch den Kernel zu atomaren, wie ich mich erinnere, dann verwenden Sie sie mit Vorsicht zu genießen.
  #4 (permalink)  
Old 08-29-2007
maverix maverix is offline
Registrierte Nutzer
  
 

Join Date: Jun 2007
Beiträge: 12
Hi Jim und Neo,

Vielen Dank für Ihre Antworten ...

Ich bin mit RHEL 4.
Ich habe lockf () und flock ()-System fordert, und es scheint zu funktionieren.

Ich möchte jedoch Semaphoren zu benutzen, um die gleiche Wirkung. FYI ... ich diese nur zu verstehen und zu lernen, die Begriffe. Es ist nicht eine Live-/ Projekt-Industrie.

Mit lockf () und flock (), konnte ich zum Sperren bestimmter Abschnitte der Dateien abhängig von der Position, die wir die Datei. Sagen, zum Beispiel, die Anwendung ist ein einfaches Banking-Applikation und die Datenbank ich ist eine einfache Datei, die Anzahl der Datensätze, die Account-Informationen. Mit lockf (), konnte ich zu einem bestimmten Datensatz sperren, indem Sie die Kontonummer des Benutzers, so dass ein anderer Prozess wollen den Zugang zu einem anderen Datensatz keine Probleme beim Lesen / Schreiben auf einen anderen Datensatz.

Meine Frage war, wie man den gleichen Effekt mit Semaphoren. Wenn die Anzahl der Prozesse sind, dann wird jeder wartet, um die Semaphore, um den kritischen Abschnitt des Codes, ist das nicht so?

Grüße
maverix
  #5 (permalink)  
Old 08-29-2007
Neo's Avatar
Neo Neo is offline Forum Staff  
Administrator
  
 

Join Date: Sep 2000
Ort: Asien-Pazifik-Raum
Posts: 6709
Ich denke, die Wikipedia-Eintrag über die Semaphore Programmierung Antworten Ihre Frage .....
  #6 (permalink)  
Old 08-29-2007
Portier porter is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Jan 2007
Beiträge: 2965
Zitat:
Zitat von maverix View Post
Ich habe lockf () und flock ()-System fordert, und es scheint zu funktionieren.

Ich möchte jedoch Semaphoren zu benutzen, um die gleiche Wirkung. FYI ... ich diese nur zu verstehen und zu lernen, die Begriffe. Es ist nicht eine Live-/ Projekt-Industrie.
Eine Sache, die sich bewusst sein, ist die Art der Bewachung, was Sie sind bestimmt die Art der semphore.

Wenn es sich um eine Datei, dann das Sperren von Dateien wird auf diese Weise auch, wenn die Datei befindet sich auf einem NFS Band, die Verriegelung und die gemeinsame Nutzung wird immer noch funktionieren.

Wenn die Sache ist in einem einzigen Prozess und den Austausch zwischen Fäden dann mit pthread_mutex / pthread_cond et al.

Wenn die Sache ist, den gemeinsamen Speicher oder ähnliches, das von Prozessen, die auf der gleichen Maschine können Sie den Kernel, die semahores.

Ich schlage vor, Lesung etwas von W. Richard Stevens zu den Themen.
  #7 (permalink)  
Old 08-30-2007
maverix maverix is offline
Registrierte Nutzer
  
 

Join Date: Jun 2007
Beiträge: 12
Talking

Hi All,

Vielen Dank für Ihre Eingaben.

Wie von Porter, ich glaube, ich habe sich mit file locking Mechanismen wie ich mit einer einfachen Datei.

Lassen Sie mich, andere IPC Einrichtungen (noch zu studieren :-)) und werden uns mit euch mit mehr Zweifel ...

Grüße
maverix

Zuletzt bearbeitet von maverix; am 08-30-2007 06:15 AM.. Grund: entfernt den Smiley URL
Closed Thread

Lesezeichen

Tags
Linux

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 10:58 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0