![]() |
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.
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| High-Level-Programmierung Post Fragen zu C, C + +, Java, SQL, und andere Programmiersprachen hier. |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| Semaphore | raguramtgr | UNIX for Dummies Questions & Answers | 7 | 06-15-2009 10:39 AM |
| Semaphore | Jaken | Shell Programmierung und Scripting | 2 | 04-04-2009 06:10 PM |
| dmidecode, RAM-Geschwindigkeit \u003d "Aktuelle Geschwindigkeit: Unbekannt" | Santi | Dateisysteme, Festplatten und Memory | 0 | 02-16-2006 06:16 AM |
| Semaphore | vjsony | UNIX for Dummies Questions & Answers | 3 | 04-07-2003 03:06 PM |
| Semaphore | yls177 | UNIX for Dummies Questions & Answers | 1 | 10-09-2002 12:18 AM |
|
|
LinkBack | Thread Tools | Suche diesen Thread |
Bewertung:
|
Anzeige-Modi |
|
||||
|
Semaphore Zugriffsgeschwindigkeit
Ich untersuche einige Sperr-Schema mit Semaphoren. Basis-System zu bewerten Geschwindigkeit ich eine Schleife der Semaphore, einige Infos und geben es aus:
während:; tun. / semshow; Geschehen> res.txt Ich habe diese auf 3 Boxen - zwei ähnliche moderne HP XEON-Boxen, einer läuft, SCO OpenServer 5, der andere ist Fedora 2.6.9, und eine alte PIII Feld unter modernen Linux (keine Infos). Die Ergebnisse sind sehr widersinnig: H / W | OS | avg Zahl der Anlagen ber Sek. ---- | --- | ------------------------- XEON | SCO | 1700 XEON | Fedora | 500 PIII | Linux (aktuelle Distribution, unbekannt) | 900 Alle drei waren ziemlich viel Leerlauf bei den Testlauf Zeit. Ich möchte Sie fragen, was wäre der Faktoren, die alten Unix zu übertreffen modernen Betriebssystemen, auch, wie kommen PIII Feld Outperformance modernen XEON-Box unter ähnlichen OS. Jede ponters wird gebeten. Die semshow Programm ist sehr einfach, siehe unten: Code:
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/timeb.h>
#include <time.h>
#include "semlib.h"
#define MODE_CREATE 0
#define MODE_REMOVE 1
key_t IPCKEY;
main(int argc, char *argv[])
{
int sid, i;
pid_t last_rpid, last_wpid;
char dbuf[80];
union semun arg;
unsigned short vals[NSEMS];
struct timeb tb;
struct tm *tp;
if((IPCKEY = get_ipc_key()) == -1)
{
errexit("Can Not Obtain IPC Key");
}
if((sid = semget(IPCKEY, NSEMS, 0)) == -1)
{
errexit("Can Not Get Semaphore ID");
}
memset(vals, 0, sizeof(vals));
arg.array = &vals[0];
if(semctl(sid, NSEMS, GETALL, arg) == -1)
{
errexit("Can Not Get Semaphore Values");
}
if((last_rpid = semctl(sid, RDLOCK, GETPID)) == -1)
{
errexit("Can Not Get Semaphore R-Pid");
}
if((last_wpid = semctl(sid, WRLOCK, GETPID)) == -1)
{
errexit("Can Not Get Semaphore W-Pid");
}
ftime(&tb);
tp = localtime(&tb.time);
strftime(dbuf, sizeof(dbuf) - 1, "%T", tp);
printf("%12li.%03i %s RD:[%i] WR:[%i] %i/%i\n",
tb.time, tb.millitm, dbuf,
vals[RDLOCK], vals[WRLOCK],
last_rpid, last_wpid);
exit(0);
}
Code:
#define NSEMS 2
#define RDLOCK 0
#define WRLOCK 1
union semun {
int val;
struct semid_ds *buf;
unsigned short *array;
};
|
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|