10 More Discussions You Might Find Interesting
1. UNIX for Beginners Questions & Answers
I was asked to add this piece of code to a c program which I will execute through the shell:
for(long i = 0; i < NITER; i++)
{ sem_wait( &sema);
count++;
sem_post( &sema); }
I didn't get it, which is the critical section ? if it's "count++" how would a thread wake up in order to enter it... (1 Reply)
Discussion started by: uniran
1 Replies
2. Solaris
Can anyone tell me abt the Semaphore concept and what is semaphore???
is semaphore id is associated in terms as in resources like semaphore id 1 indicates cpu share unit is given and semaphore id 2 will indicate abt the memore or semaphore id 3 will tell us the i/o components (1 Reply)
Discussion started by: aarjun07
1 Replies
3. Shell Programming and Scripting
Control two exclusively shared resources(semaphore). The two resources are two files. The producer will write even numbers to one file, and odd numbers to another one. The consumer respectively reads from each file until it gets 5 even numbers and 5 odd numbers.
Can any one help me with the... (0 Replies)
Discussion started by: gokult
0 Replies
4. Programming
In my server code there is a thread per client...
The server call accept() and after that start the thread.
So there is a thread for client that save in RAM the client's message, that will be send to other clients.
Now in RAM I have created a shared memory in which thread read and write(save)... (2 Replies)
Discussion started by: italian_boy
2 Replies
5. UNIX for Dummies Questions & Answers
what is semaphore? can any body explain it in a more simple way than the manual ??
replies appreciated
Regards
raguram R (7 Replies)
Discussion started by: raguramtgr
7 Replies
6. Shell Programming and Scripting
Hi,
I am looking to use a semaphore for the first time in one of my scripts. I am just wondering if there are any simple examples or tutorials around?
I am a beginner so the simpler the better :)
Thanks
-Jaken (2 Replies)
Discussion started by: Jaken
2 Replies
7. UNIX for Advanced & Expert Users
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... (8 Replies)
Discussion started by: maverix
8 Replies
8. Programming
I'm running one multithreaded application, in that one of my thread
is waiting infinitely in a semphore. Is there a way to determine, in
which semaphore the particular thread is waiting and which thread(s)
is holding the semaphore. (5 Replies)
Discussion started by: ptprabu
5 Replies
9. UNIX for Dummies Questions & Answers
Hi,
I'm new to UNIX.
I need to know what's a semaphore
Do reply.
Thanks
VJ (3 Replies)
Discussion started by: vjsony
3 Replies
10. UNIX for Dummies Questions & Answers
hi, is there any command where we can monitor semaphores? (1 Reply)
Discussion started by: yls177
1 Replies
sem_init(3) Library Functions Manual sem_init(3)
NAME
sem_init - Initializes an unnamed semaphore (P1003.1b)
LIBRARY
Realtime Library (librt.so, librt.a)
SYNOPSIS
#include <semaphore.h>
int sem_init (
sem_t *sem,
int pshared,
unsigned int value);
PARAMETERS
sem Specifies a location to receive the descriptor of the initialized semaphore.
pshared Specifies a value indicating whether the semaphore should be sharable between processes (non-zero value) or not (zero).
value Specifies the initial value to be given to the semaphore.
DESCRIPTION
The sem_init function creates a new counting semaphore with a specific value. A semaphore is used to limit access to a critical resource.
When a process requires access to the resource without interference from other processes, it attempts to establish a connection with the
associated semaphore. If the semaphore value is greater than zero, the connection is established and the semaphore value is decremented by
one. If the semaphore value is less than or equal to zero, the process attempting to access the resource is blocked and must wait for
another process to release the semaphore and increment the semaphore value.
The sem_init function establishes a connection between an unnamed semaphore and a process; the sem_wait and sem_trywait functions lock the
semaphore; and the sem_post function unlocks the semaphore. Use the sem_destroy function to deallocate system resources allocated to the
process for use with the semaphore. You can use the sem_getvalue function to obtain the value of a semaphore.
A semaphore created by a call to the sem_init function remains valid until the semaphore is removed by a call to the sem_destroy function.
RETURN VALUES
On successful completion, the function returns the value 0 (zero); otherwise, the function returns the value -1 and sets errno to indicate
the error.
ERRORS
The sem_init function fails under the following conditions:
[EINVAL] The value argument exceeds {SEM_VALUE_MAX}.
[ENOSPC] A resource required to initialize the semaphore has been exhausted. The limit on semaphores ({SEM_NSEMS_MAX}) has been
reached.
[EPERM] The process lacks the appropriate privilege to initialize the semaphore.
RELATED INFORMATION
Functions: sem_destroy(3), sem_post(3), sem_trywait(3),sem_wait(3)
Guide to Realtime Programming delim off
sem_init(3)