3. semaphore tn

33
4/19/12 Semaphores Click to edit Master subtitle style Semaphores Prepared by: Lâm Ngc n Tăng Trường Tuyn 4/19/12 11 Semaphores

Upload: navicella-dong

Post on 07-Apr-2018

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 1/33

4/19/12 Semaphores

Click to edit Master subtitle style

Semaphores

Prepared by:Lâm Ngọc ẨnTăng Trường Tuyển

4/19/12 11Semaphores

Page 2: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 2/33

4/19/12 Semaphores

Contents

Definition1.

Operators2.

Typical Use3.

Implementation in T-kernel4.

4/19/12 22Semaphores

Page 3: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 3/33

4/19/12 Semaphores

1. Definition

v A semaphore (sometimes called asemaphore token) is a kernelobject that one or more threads of 

execution can acquire or releasefor the purposes of synchronization or mutual

exclusion

4/19/12 33Semaphores

Page 4: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 4/33

4/19/12 Semaphores

1. Definition

4/19/12 44Semaphores

Page 5: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 5/33

4/19/12 Semaphores

1. Definition

v 3 groups:§ Binary Semaphores§ Counting Semaphores§ Mutual Exclusion Semaphores

4/19/12 55Semaphores

Page 6: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 6/33

4/19/12 Semaphores

1.1. Binary Semaphores

v Binary semaphores are treated asglobal resources

4/19/12 66Semaphores

Page 7: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 7/334/19/12 Semaphores

1.2. Counting Semaphores

v  global resourcesv  bounded count vs unbounded count 

4/19/12 77Semaphores

Page 8: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 8/33

4/19/12 Semaphores

1.3. Mutual Exclusion Semaphores

v   A mutual exclusion (mutex)semaphore is a special binarysemaphore

4/19/12 88Semaphores

Page 9: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 9/33

4/19/12 Semaphores

1.3. Mutual Exclusion Semaphores

v Ownershipv Recursive accessv Task deletion safetyv Protocols for avoiding problems

inherent to mutual exclusion

4/19/12 99Semaphores

Page 10: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 10/33

4/19/12 Semaphores

1.3. Mutual Exclusion Semaphores

v Owner is the first task acquiring itv Only owner can release it (contrast

with binary semaphores)

4/19/12 1010Semaphores

Page 11: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 11/33

4/19/12 Semaphores

1.3. Mutual Exclusion Semaphores

v Recursive locking (optional): owner can acquire multiple times in thelocked state

v Avoid causing the deadlock innested attempts to acquire theresource

4/19/12 1111Semaphores

Page 12: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 12/33

4/19/12 Semaphores

1.3. Mutual Exclusion Semaphores

v  Task Deletion Safety (optional):using task deletion locks toensure that the owner task cannot

be deleted

4/19/12 1212Semaphores

Page 13: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 13/33

4/19/12 Semaphores

1.3. Mutual Exclusion Semaphores

v  Priority Inversion Avoidance:

4/19/12 1313Semaphores

Page 14: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 14/33

4/19/12 Semaphores

1.3. Mutual Exclusion Semaphores

v  Priority Inversion Avoidance:

4/19/12 1414Semaphores

Page 15: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 15/33

4/19/12 Semaphores

1.3. Mutual Exclusion Semaphores

v  Priority Inversion Avoidance§ Common protocols:

• priority inheritance• ceiling priority

4/19/12 1515Semaphores

Page 16: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 16/33

4/19/12 Semaphores

2. Operator

v creating and deleting semaphoresv acquiring and releasing semaphoresv clearing a semaphore’s task-waiting

listv getting semaphore information.

4/19/12 1616Semaphores

Page 17: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 17/33

4/19/12 Semaphores

3. Typical Use

v

Wait-and-Signal Synchronization

4/19/12 1717Semaphores

Page 18: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 18/33

4/19/12 Semaphores

3. Typical Use

v

Wait-and-Signal SynchronizationtWaitTask ( ) {

:

Acquire binary semaphore token

:

}tSignalTask ( ) {

:

Release binary semaphore token

:} 

4/19/12 1818Semaphores

Page 19: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 19/33

4/19/12 Semaphores

3. Typical Use

v

Multiple-Task Wait-and-SignalSynchronization

4/19/12 1919Semaphores

Page 20: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 20/33

4/19/12 Semaphores

3. Typical Use

v

Multiple-Task Wait-and-SignalSynchronization tWaitTask () {

:

Do some processing specific to task Acquire binary semaphoretoken

:

}

tSignalTask () {

:Do some processing Flush binary semaphore's task-waiting list

:

}

4/19/12 2020Semaphores

Page 21: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 21/33

4/19/12 Semaphores

3. Typical Use

v

Credit-Tracking Synchronization

4/19/12 2121Semaphores

Page 22: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 22/33

4/19/12 Semaphores

3. Typical Use

v

Credit-Tracking Synchronization tWaitTask () {

:

Acquire counting semaphore token

:}

tSignalTask () {

:

Release counting semaphore token

:}

4/19/12 2222Semaphores

Page 23: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 23/33

4/19/12 Semaphores

3. Typical Use

v

Single Shared-Resource-AccessSynchronization

4/19/12 2323Semaphores

Page 24: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 24/33

4/19/12 Semaphores

3. Typical Use

v

Single Shared-Resource-AccessSynchronizationtAccessTask () {

:

Acquire binary semaphore token Read or write to sharedresource Release binary semaphore token

:

}

4/19/12 2424Semaphores

Page 25: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 25/33

4/19/12 Semaphores

3. Typical Use

v

Multiple Shared-Resource-AccessSynchronization

4/19/12 2525Semaphores

Page 26: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 26/33

4/19/12 Semaphores

3. Typical Use

v

Multiple Shared-Resource-AccessSynchronizationtAccessTask () {

:

 Acquire a counting semaphore tokenRead or Write to shared resource

Release a counting semaphore token

:

}

4/19/12 2626Semaphores

Page 27: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 27/33

4/19/12 Semaphores

3. Typical Use

v

Multiple Shared-Resource-AccessSynchronization

tAccessTask () {

:Acquire first mutex in non-blocking way

If not successful then acquire 2nd mutex in a blocking way

Read or Write to shared resource

Release the acquired mutex

:}

4/19/12 2727Semaphores

Page 28: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 28/33

4/19/12 Semaphores

3. Typical Use

v

Recursive Shared-Resource-Access Synchronization

4/19/12 2828Semaphores

Page 29: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 29/33

4/19/12 Semaphores

3. Typical Use

v

Recursive Shared-Resource-Access SynchronizationtAccessTask () {

 Acquire mutex

 Access shared resourceCall Routine A

Release mutex

}

Routine A () {

 Acquire mutex Access shared resource

Call Routine B

Release mutex

}4/19/12 2929Semaphores

Routine B () {:

Acquire mutex Access shared resourceRelease mutex:

}

Page 30: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 30/33

4/19/12 Semaphores

4. Implementation in T-Kernel

v

The semaphores functions:ID semid = tk_cre_sem ( T_CSEM *pk_csem );

ER ercd = tk_del_sem ( ID semid ) ;

ER ercd = tk_sig_sem ( ID semid, INT cnt ) ; ER ercd = tk_wai_sem ( ID semid, INT cnt,

TMO tmout ) ;

ER ercd = tk_ref_sem ( ID semid, T_RSEM*pk_rsem ) ;

4/29/11 30Semaphores

Page 31: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 31/33

4/19/12 Semaphores

4. Implementation in T-Kernel

v

The mutex functions:ID mtxid = tk_cre_mtx ( T_CMTX *pk_cmtx ) ;

ER ercd = tk_del_mtx ( ID mtxid ) ;

ER ercd = tk_loc_mtx ( ID mtxid, TMO tmout ) ;ER ercd = tk_unl_mtx ( ID mtxid ) ;

ER ercd = tk_ref_mtx ( ID mtxid, T_RMTX

*pk_rmtx ) ;

4/29/11 31Semaphores

Page 32: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 32/33

4/19/12 Semaphores

4. Reference

v

T-kernel Specification – T-engine Forumv Real-Time Concepts for Embedded Systems -

Qing Li with Caroline Yao

4/29/11 32Semaphores

Page 33: 3. Semaphore TN

8/4/2019 3. Semaphore TN

http://slidepdf.com/reader/full/3-semaphore-tn 33/33

4/19/12 S h

Click to edit Master subtitle style

Thank

You !

4/19/12 3333S h