![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund. |
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Højtstående Programmering Post spørgsmål om C, C + +, Java, SQL, og andre programmerings sprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Semaforens | raguramtgr | UNIX for dummyer Spørgsmål & svar | 7 | 06-15-2009 09:39 AM |
| Semaforens | Jaken | Shell Programmering og Scripting | 2 | 04-04-2009 05:10 PM |
| dmidecode, RAM hastighed \u003d "Nuværende Hastighed: Ukendt" | Santi | Filsystemer, disketter og Hukommelse | 0 | 02-16-2006 06:16 AM |
| Semaforens | vjsony | UNIX for dummyer Spørgsmål & svar | 3 | 04-07-2003 02:06 PM |
| Semaforens | yls177 | UNIX for dummyer Spørgsmål & svar | 1 | 10-08-2002 11:18 PM |
|
|
LinkBack | Thread Tools | Søg denne tråd |
Karakter:
|
Display Modes |
|
||||
|
Semaforens adgang hastighed
Jeg undersøger nogle låsning ordningen bruger semaforer. At evaluere grundlæggende system hastighed jeg køre en løkke om at få nogle Semaforens info og vise det:
mens:; gøre. / semshow; gjort> res.txt Jeg har kørt dette på 3 kasser - to lignende moderne HP Xeon kasser, en kører SCO OpenServer 5, den anden er Fedora 2.6.9, og en gammel PIII boks under moderne Linux (har ingen info). Resultaterne er meget i modstrid med sund fornuft: H / W | OS | avg antal løber ber sec ---- | --- | ------------------------- Xeon | SCO | 1700 Xeon | Fedora | 500 PIII | Linux (seneste distribution, ukendt) | 900 Alle tre systemer blev temmelig meget tomgang på prøvekørslen tid. Jeg vil gerne spørge, hvad der ville være de faktorer, der gør gamle Unix at overgå moderne OSes også, hvordan kommer PIII rubrik vinde moderne Xeon boks under lignende OS. Enhver ponters ville blive værdsat. Den semshow program er meget grundlæggende, se tabellen nedenfor: 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;
};
|
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|