Na linuxu postoje dvije API implementacije semafora,
a man pages za posix varijantu kazu:
man sem-overview
"System V semaphores (semget(2), semop(2), etc.) are an older
semaphore API. POSIX semaphores provide a simpler, and better
designed interface than System V semaphores ..."
Medjutim, posix semafori nemaju API za mijenjanje ownera
(e.g. semctl)
Ako ostavimo na stranu "bolji API" (diskutabilno sto je bolje)
jel netko zna koji API je preferiran i koja te tehnicka podloga
zasto je jedan preferiran u odnosu na drugi.
--
^TM
> Medjutim, posix semafori nemaju API za mijenjanje ownera (e.g. semctl)
> Ako ostavimo na stranu "bolji API" (diskutabilno sto je bolje) jel netko
> zna koji API je preferiran i koja te tehnicka podloga zasto je jedan
> preferiran u odnosu na drugi.
Ovisi o tome sto ti treba. Oracle podrzava sysv semafore.
Treba mi defaultna kernel (2.6) implementacija
semafora. Pretpostavljam da je to samo jedna, a druga
je wrapper oko defaultne.
Koliko mi se cini kernel ima source samo sa sysv
implementaciju unutar ipc/sem.c
Posix semafore nemogu nigdje nac u kernelu
> Oracle podrzava sysv semafore.
>
Kaj imas source code :) ?
Pozdrav,
--
^TM
> Ovisi o tome sto ti treba. Oracle podrzava sysv semafore.
Ajme meni. Oracle ne podr�ava, Oracle koristi SysV semafore. Vjerojatno
zato �to kernel mo�e naraviti cleanup ako proces ugine. A i u doba kad su
Oraklo pisali POSIX semafori nisu postojali.
--
.-. .-. Yes, I am an agent of Satan, but my duties are largely
(_ \ / _) ceremonial.
|
| da...@fly.srk.fer.hr
>
>> Oracle podrzava sysv semafore.
>>
>>
> Kaj imas source code ?
Ne, nego dokumentaciju i Metalink. Metalink dokument 226209.1 ti
objasnjava kako postaviti semafore, u terminima SYSV parametara.
>> Ovisi o tome sto ti treba. Oracle podrzava sysv semafore.
>
> Ajme meni. Oracle ne podržava, Oracle koristi SysV semafore.
Nije sija nego vrat.
> Vjerojatno
> zato što kernel može naraviti cleanup ako proces ugine. A i u doba kad
> su Oraklo pisali POSIX semafori nisu postojali.
Slazem se u potpunosti.
Ide mi na �ivce da se Oraklo tretira kao all-encompasing platform. OS
podr�ava SysV semafore, a Oraklo je samo jedna od aplikacija koja ih
koristi. :-P
> Ide mi na živce da se Oraklo tretira kao all-encompasing platform. OS
> podržava SysV semafore, a Oraklo je samo jedna od aplikacija koja ih
> koristi. :-P
All hail the mighty Oracle! U principu se slazem s tobom, Oracle je samo
jedna od baza podataka no daleko je najbolja. Evo ti, samo za tebe, jedan
mali select iz cuvene tabele SCOTT.EMP
mgogala@nyclapwxp2622:~$ psql -U scott -h localhost
Password for user scott:
Welcome to psql 8.3.8, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
scott=> select * from emp;
empno | ename | job | mgr | hiredate | sal | comm |
deptno
-------+--------+-----------+------+---------------------+------+------
+--------
7369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800 |
| 20
7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 00:00:00 | 1600 | 300
| 30
7521 | WARD | SALESMAN | 7698 | 1981-02-22 00:00:00 | 1250 | 500
| 30
7566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975 |
| 20
7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250 | 1400
| 30
7698 | BLAKE | MANAGER | 7839 | 1981-05-01 00:00:00 | 2850 |
| 30
7782 | CLARK | MANAGER | 7839 | 1981-06-09 00:00:00 | 2450 |
| 10
7788 | SCOTT | ANALYST | 7566 | 1987-04-19 00:00:00 | 3000 |
| 20
7839 | KING | PRESIDENT | | 1981-11-17 00:00:00 | 5000 |
| 10
7844 | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500 | 0
| 30
7876 | ADAMS | CLERK | 7788 | 1987-05-23 00:00:00 | 1100 |
| 20
7900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950 |
| 30
7902 | FORD | ANALYST | 7566 | 1981-12-03 00:00:00 | 3000 |
| 20
7934 | MILLER | CLERK | 7782 | 1982-01-23 00:00:00 | 1300 |
| 10
(14 rows)
scott=> select * from dept;
deptno | dname | loc
--------+------------+----------
10 | ACCOUNTING | NEW YORK
20 | RESEARCH | DALLAS
30 | SALES | CHICAGO
40 | OPERATIONS | BOSTON
(4 rows)
scott=> \q
Jedina prednost POSIX semafora je sto koristi path za ime semafora umjesto
key_t koji se koristi u semget() pozivu. Osim toga, SysV semafore mozes
pogledati sa ipcs, ubiti sa ipcrm ak svi programi koji koriste semafor
krknu itd... za POSIX semafore ne postoje ekvivalentni alati, kolko je meni
poznato.