![]() |
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Alto Nível de programação Post perguntas sobre C, C + +, Java, SQL, e outras linguagens de programação aqui. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| semáforo | raguramtgr | UNIX para Dummies Perguntas & Respostas | 7 | 06-15-2009 10:39 |
| Semáforo | Jaken | Programação Shell Script e | 2 | 04-04-2009 06:10 |
| dmidecode, RAM velocidade \u003d "Actual Speed: Desconhecido" | Santi | Filesystems, Discos e Memória | 0 | 02-16-2006 06:16 |
| Semáforo | vjsony | UNIX para Dummies Perguntas & Respostas | 3 | 04-07-2003 03:06 |
| semáforo | yls177 | UNIX para Dummies Perguntas & Respostas | 1 | 10-09-2002 12:18 |
|
|
Linkback | Thread Tools | Pesquisar este Thread |
Avaliação:
|
Display Modes |
|
||||
|
semáforo acesso velocidade
Estou investigando algumas bloqueio esquema utilizando Semáforos. Para avaliar sistema básico de velocidade eu executar um loop de obter algumas informações semáforo e exibi-la:
enquanto:; fazer. / semshow; feito> res.txt Corri presente em 3 caixas - duas semelhantes moderna HP Xeon caixas, executando um SCO OpenServer 5, o outro é o Fedora 2.6.9, e uma velha casa em modernas PIII Linux (não tenho info). Os resultados são muito contra intuitiva: H / W | SO | avg número de execuções ber sec ---- | --- | ------------------------- Xeon | SCO | 1700 Xeon | Fedora | 500 PIII | Linux (recente distro, desconhecido) | 900 Todos os três sistemas eram bastante ociosa no ensaio tempo. Gostaria de perguntar, quais seriam os fatores que torna a antiga Unix para superar moderno SOs, também, como é PIII caixa superam moderna Xeon caixa em semelhante OS. Qualquer ponters seria apreciada. Semshow O programa é muito básico, veja a lista abaixo: Código:
#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);
}
Código:
#define NSEMS 2
#define RDLOCK 0
#define WRLOCK 1
union semun {
int val;
struct semid_ds *buf;
unsigned short *array;
};
|
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|