![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| High Level Programmering Post spørsmål om C, C + +, Java, SQL og andre programmeringsspråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| semaforen | raguramtgr | UNIX for Dummies Spørsmål og svar | 7 | 06-15-2009 09:39 |
| Semaforen | Jaken | Shell programmering og Skripting | 2 | 04-04-2009 05:10 |
| dmidecode, RAM hastighet \u003d "Nåværende Speed: Ukjent" | Santi | Filsystemer, disker og Minne | 0 | 02-16-2006 06:16 |
| Semaforen | vjsony | UNIX for Dummies Spørsmål og svar | 3 | 04-07-2003 02:06 |
| semaforen | yls177 | UNIX for Dummies Spørsmål og svar | 1 | 10-08-2002 11:18 |
|
|
LinkBack | Thread Tools | Søk i denne tråden |
Vurdering:
|
Visningsmoduser |
|
||||
|
semaforen tilgang hastighet
Jeg undersøkte litt låsing ordningen bruker semaphores. Å vurdere grunnleggende system fart kjører jeg en løkke til å få noen semaforen info og vise det:
mens:; gjøre. / semshow; gjort> res.txt Jeg kjørte dette på 3 bokser - to lignende moderne HP Xeon bokser, en kjører SCO OpenServer 5, den andre er Fedora 2.6.9, og en gammel PIII boksen under moderne Linux (har ingen info). Resultatene er svært counter intuitive: H / W | OS | Gj.sn. antall kjører BER sec ---- | --- | ------------------------- Xeon | SCO | 1700 Xeon | Fedora | 500 PIII | Linux (siste distro, ukjent) | 900 Alle de tre maskinene var ganske mye inaktiv på test kjøring. Jeg vil gjerne spørre, hva ville være faktorer som gjør gamle Unix til resultater moderne OSes også, hvordan komme PIII boksen enn moderne Xeon boksen under lignende OS. Eventuelle ponters ville være verdsatt. Den semshow programmet er helt grunnleggende, se liste under: 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;
};
|
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|