08-28-2007
semaphore concept
Hi All,
I am going through the semaphore concept and have a doubt regarding the same and hope to get a resolution here.
I have a file which has a number of records.
I want to write an application (in C) which will be able to do concurrent read/write on these records.
Of what I have understood about semaphores, I know that a process can obtain a lock on the critical section of code, read/write into records, then release the lock so the other processes waiting to access the data can obtain a lock.
I am confused and tend to think that "Wouldn't this concept lead to a more serious problem?" as another process, actually wanting to read/write a different record on the same file has to wait for the lock to get released by the process which has obtained the lock. If this is the case, think of a situation where we have a large number of processes (say, more than 1000) wanting to do a read/write on same/different records. Wouldn't this concept slow down the application?
Please let me know if I have misunderstood the concept and throw some light on this...
Regards
maverix
Last edited by maverix; 08-28-2007 at 12:35 PM..
Reason: remove my name in the signature
9 More Discussions You Might Find Interesting
1. HP-UX
In my location we have Hp storage (san),from there they created luns,
so could u plz send me clear document for understanding LUN. (1 Reply)
Discussion started by: Prem
1 Replies
2. UNIX for Dummies Questions & Answers
Hi all
This is my first thread here.i confused with the concept of thread.Can anyone tell me this concept in detail.my Quation may be at primary level.
Thanx in advance for help. (1 Reply)
Discussion started by: vishwasrao
1 Replies
3. UNIX for Dummies Questions & Answers
Hi all,
I am new here ,i want to know about interrupts in detail.What r
Interrupts .how they r handeled.
Thanx in adavnce. (1 Reply)
Discussion started by: vishwasrao
1 Replies
4. Shell Programming and Scripting
Hi all, I used array a lot in C,VB,C# and java but now i am very new to shell programming,so i need a start of array in shell programming. All i want to do is read a string and put it into a character type array. For reading the string,i did this:
$ read a
now i want to put the content of a... (1 Reply)
Discussion started by: gautamshaw
1 Replies
5. AIX
hi.... Friends...
Why using mirroring ?
what is the use of mirroring? just any one tell about clearly....
thanks.... (4 Replies)
Discussion started by: Kannan841
4 Replies
6. UNIX for Dummies Questions & Answers
i couldn't get what does the metainit command represents in numeric values.
(i.e)
#metainit d66 2 1 c0t0d0s4 1 c0t0d0s5
??here 2 1 1 represnts what ??
can some one tell clearly about this... (6 Replies)
Discussion started by: sriniv666
6 Replies
7. UNIX for Advanced & Expert Users
Hi Gurus,
Please help me in below requirement.
Instance =5 (it is user parameter)
total=52 (it is user parameter
i need to split this to 5 and reminder as 1 instances totally 6
for example i need to splitt to each
52/5=10.4
1-10
11-20
21-30
31-40
41-50 (2 Replies)
Discussion started by: ragu.selvaraj
2 Replies
8. UNIX for Dummies Questions & Answers
Hi..
Could someone explain about setfacl,getfacl in unix and its uses.
Regards,
Suresh (1 Reply)
Discussion started by: suresh sunkara
1 Replies
9. UNIX for Dummies Questions & Answers
Is wc -c and wc -m same ?
Shellscript::cat file1
hello
Shellscript::cat file1 | wc -c
6
Shellscript::cat file1 | wc -m
6
Shellscript::file file1
file1: ASCII text
Shellscript::uname -a
Linux was85host 2.6.27.45-0.1-vmi #1 SMP 2010-02-22 16:49:47 +0100 i686 i686 i386 GNU/LinuxAtleast... (5 Replies)
Discussion started by: shellscripting
5 Replies
LEARN ABOUT HPUX
sem_trywait
sem_wait(2) System Calls Manual sem_wait(2)
NAME
sem_wait, sem_trywait - lock a POSIX semaphore
SYNOPSIS
DESCRIPTION
is used to lock a semaphore. The calling thread will not return from its call to until one of the following events occur: it successfully
obtains a lock on the semaphore; it is interrupted by a signal or an error condition occurs.
is used to lock a semaphore, if it is available. The value of the semaphore sem is checked at some unspecified time during the call. If
the semaphore is available at the time its value is checked, the calling thread will atomically, with respect to the checking of the value,
lock the semaphore. The thread will now own a lock on the semaphore; the call will return successfully. If the semaphore is unavailable
at the time its value is checked, then the call returns -1 with errno set to EAGAIN.
If the specified semaphore referred to by sem is a named semaphore, then this semaphore must have been opened by the calling process with
The calling process must have both read and write permissions on the semaphore to perform these operations. The semaphore will be locked
upon successful return and will stay locked until it is explicitly released by a call to
To use this function, link in the realtime library by specifying on the compiler or linker command line.
EXAMPLES
The following call to will lock the semaphore sem.
The following call to will lock the semaphore sem, if it is available.
RETURN VALUE
A successful call to will return 0 and the calling thread will then own a lock on the semaphore. Otherwise, the call to will return -1
with errno set to the appropriate value of the error condition.
A successful call to will return 0, if the semaphore was available and the calling thread was able to lock the semaphore. Otherwise, the
call to will return -1 with errno set to the appropriate value of the error condition.
ERRORS
and fail and do not perform the requested operation if any of the following conditions are encountered:
[EPERM] The calling process does not have the privileges necessary to lock the semaphore.
[EAGAIN] The semaphore was not available and hence could not be locked by This error condition only occurs in
[EINVAL] The argument sem does not refer to a valid semaphore.
[EINTR] The function was interrupted by a signal
SEE ALSO
sem_post(2), <semaphore.h>.
STANDARDS CONFORMANCE
sem_wait(2)