Sponsored Content
Full Discussion: problem about race condition
Top Forums Programming problem about race condition Post 302453108 by homeboy on Tuesday 14th of September 2010 05:39:28 AM
Old 09-14-2010
problem about race condition

Hi all,
i'm reading Andrew S.Tanenbaum's book --- Modern Operating System.At the part of discussing race condition.And the author gives a solution with using the TSL instruction,say that one process must call the enter_region function before entering the critical regions and call the leave_region after finish hes job,as following:
Code:
enter_region:
       TSL  REGISTER,LOCK
       CMP REGISTER,$0
       JNE enter_region
       RET

leave_region:
      MOVE LOCK,$0
      RET

and i'm ok with that code,but the author gives another similar code and says it is essentially the same as the solution with TSL,code is following:

Code:
enter_region:
       MOVE  REGISTER,$1
       XCHG  REGISTER,LOCK
       CMP    REGISTER,$0
#my question is :
#what if the scheduler choose another process 
#to run now and set the LOCK to 1 and 
#enter the critical region?
       JNE enter_region
       RET

leave_region:
      MOVE LOCK,$0
      RET



---------- Post updated at 04:36 AM ---------- Previous update was at 04:32 AM ----------



---------- Post updated at 04:39 AM ---------- Previous update was at 04:36 AM ----------

sorry I forget now the LOCK is already 1 and no process can enter it.....
 

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

race condition with wait() function

Hi, I'm currently writing a bash script, that starts multiple threads: ____________________ #!/bin/bash loop=0 while((loop!=10)) do thread & ((loop++)) done #wait for all sub-processes (thread) to finish wait ___________________ Now I want to know, what happens, if a... (2 Replies)
Discussion started by: tho99
2 Replies

2. Linux

In unix how we can test or check race condition in c program by using multi threads

In unix how we can test or check race condition in any c program by using multi thread programming (1 Reply)
Discussion started by: afroze
1 Replies

3. UNIX for Dummies Questions & Answers

In unix how we can test or check race condition in a c program by using multi threads

In unix how we can test or check race condition in any c program by using multi thread programming (1 Reply)
Discussion started by: afroze
1 Replies

4. Programming

In unix how we can test or check race condition in c program by using multi threads

In unix how we can test or check race condition in any c program by using multi thread programming (5 Replies)
Discussion started by: afroze
5 Replies

5. Programming

In unix how we can test or check race condition in a c program by using multi threads

In unix how we can test or check race condition in any c program by using multi thread programming (1 Reply)
Discussion started by: afroze
1 Replies

6. Programming

Race condition with PTY

I've been experimenting with pseudo-terminals and found something I don't quite understand. Writing an EOF character to the master end doesn't work quite as I expect. Once I've written any other data, the master pty seems to treat a single ^D as a seperator, i.e. writing "abcabc" would let cat do... (1 Reply)
Discussion started by: Corona688
1 Replies

7. Shell Programming and Scripting

Problem with IF condition .

Hi i am writing a script where i am running , 5 scripts together in 1 script . Now what i want is when these 5 scripts run completely , i should execute some other commands like i have compile the data etc. I have have 5 echo statements at the end of all those scripts . Like echo "1 is done" in... (1 Reply)
Discussion started by: honey26
1 Replies
pthread_cond_init(3T)													     pthread_cond_init(3T)

NAME
pthread_cond_init(), pthread_cond_destroy() - initialize or destroy a condition variable SYNOPSIS
PARAMETERS
cond Pointer to the condition variable to be initialized or destroyed. attr Pointer to the attributes object that defines the characteristics of the condition variable to be initialized. If the pointer is NULL, default attributes are used. DESCRIPTION
The function initializes the condition variable cond with the attributes attr. If attr is NULL, the default condition variable attributes are used to initialize the attributes object. See pthread_condattr_init(3T) for a list of the default condition variable attributes. After successful initialization, the condition variable may be used in condition variable operations. A condition variable should be ini- tialized only once or the resulting behavior is undefined. The function provides a way to ensure that a condition variable is only ini- tialized once. The macro can be used to initialize condition variables that are statically allocated. These condition variables will be initialized with default attributes. The function does not need to be called for statically initialized condition variables. If the process-shared attribute in the condition variable attributes object referenced by attr is defined as the condition variable must be allocated such that the processes sharing the condition variable have access to it. This may be done through the memory-mapping functions (see mmap(2)) or the shared memory functions (see shmget(2)). destroys the condition variable cond. This function may set cond to an invalid value. The destroyed condition variable can be reinitial- ized using the function If the condition variable is used after destruction in any condition variable call, the resulting behavior is unde- fined. A condition variable should be destroyed only when there are no threads currently blocked on it. Destroying a condition variable that is currently in use results in undefined behavior. RETURN VALUE
Upon successful completion, and return zero. Otherwise, an error number is returned to indicate the error (the variable is not set). ERRORS
If any of the following occur, the function returns the corresponding error number: The system does not have the available resources (other than memory) to initialize the condition variable. The specified condition variable is an already initialized condition variable. However, getting for reinitializing the condition variable cannot be expected all the time since the behavior of reinitializing the condition variable is undefined. The cond parameter points to an illegal address. The value specified by cond or attr is invalid. There is insufficient memory available in which to initialize the condition variable. If any of the following occur, the function returns the corresponding error number: An attempt to destroy cond while it is in use by another thread. cond is not a valid condition variable. WARNINGS
The space for condition variable must be allocated before calling Undefined behavior will result if the process-shared attribute of attr is and the space allocated for the condition variable is not accessible to cooperating threads. AUTHOR
and were derived from the IEEE POSIX P1003.1c standard. SEE ALSO
pthread_cond_signal(3T), pthread_cond_wait(3T). STANDARDS CONFORMANCE
Pthread Library pthread_cond_init(3T)
All times are GMT -4. The time now is 05:43 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy