CSC 456 Fall 2013/7a ac: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 122: Line 122:
==References==
==References==
<references>
<references>
<ref name="coarray">[http://www.co-array.org Co-Array Fortran]</ref>
</references>


<ref name="syncstudy">[http://www.cse.chalmers.se/~tsigas/papers/StudySynchronization-IPDPS13.pdf A Study of the Behavior of Synchronization Methods
[http://www.cse.chalmers.se/~tsigas/papers/StudySynchronization-IPDPS13.pdf A Study of the Behavior of Synchronization Methods
in Commonly Used Languages and Systems Cederman et al.]</ref>
in Commonly Used Languages and Systems Cederman et al.]


[https://developer.apple.com/library/mac/documentation/cocoa/conceptual/Multithreading/ThreadSafety/ThreadSafety.html Apple Synchronization]
[https://developer.apple.com/library/mac/documentation/cocoa/conceptual/Multithreading/ThreadSafety/ThreadSafety.html Apple Synchronization]


[http://msdn.microsoft.com/en-us/magazine/jj721588.aspx C++ Sync Article]
[http://msdn.microsoft.com/en-us/magazine/jj721588.aspx C++ Sync Article]
<ref name="coarray">[http://www.co-array.org Co-Array Fortran]</ref>
</references>

Revision as of 20:26, 12 November 2013

Survey of Primitives for Synchronization

Assignment

7a. Survey of primitives for synchronization Section 7.3 of Solihin covers the need for synchronization at the program level. It mentions lock and unlock operations. But real programs do not usually call lock and unlock mechanisms. Instead, they use higher-level operations, such as Java’s synchronized statement, or Open MP pragmas. Consider popular languages and common OSs such as Linux, MacOS, and Windows. How would programs do synchronization in these environments?

Ideas

synchronization constucts

syncs in clr semaphores in monitors (how many langs available in?)

Different Synchronization Constructs, languages that support them, general info.

Test-and-Set

Test-and-Test-and-Set

Lock-free

Array-lock


Semaphore-Java, C Acquire/Release the semaphore to enter the critical section. Only 1 thread can have the semaphore at a time.

Mutex-Java, C Like a binary semaphore, but with a few differences such as deletion safety (a process holding a mutex cannot be deleted).

Monitor-Java, C

Synchronized-Java

pragma-C (OpenMP)


a study of behavior of synchronization methods in commonly used languages and systems cederman et al.

Types of Synchronization

Locks

Supported Synchronization in Different Languages

The following table shows different programming languages and their support for various synchronization methods. The cells are color coded based on the following key:

Supported Operating Systems Key
None Windows Only Mac Only Linux Only Windows & Mac Windows & Linux Mac & Linux All
Synchronization Support
Language Semaphore/Mutex Monitor OpenMP Synchronized Other
C
Java
C++ Slim Rd/Wr Lock (SRW)
C#
Ruby Get Sources
Python Get Sources
PHP Get Sources
Fortran Co-Array<ref name="coarray"/>

References

<references> <ref name="coarray">Co-Array Fortran</ref> </references>

[http://www.cse.chalmers.se/~tsigas/papers/StudySynchronization-IPDPS13.pdf A Study of the Behavior of Synchronization Methods in Commonly Used Languages and Systems Cederman et al.]

Apple Synchronization

C++ Sync Article