Sponsored Content
Full Discussion: Atomic Operations
Operating Systems Linux Atomic Operations Post 302722913 by ctsgnb on Monday 29th of October 2012 03:37:15 AM
Old 10-29-2012
An atomic operation is an operation that can only be done once at a certain "tick" time, eventhough another same operation is simultaneously performed by another thread on another CPU core.

For example
Code:
mkdir /home/flag

is an atomic operation (without the -p option)
so that even if you submit it many time
Code:
mkdir /home/flag &
mkdir /home/flag &
mkdir /home/flag &
mkdir /home/flag &
mkdir /home/flag &
mkdir /home/flag &
mkdir /home/flag &
mkdir /home/flag &

and even if they are handled in parallel at the "sametime" on your CPU core, only one will be successfull

You can for sur find some better explaination over the net but that was an attempt Smilie
 

4 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Is `mv dir dir2` atomic ?

if I rename a dir mv dir dir2 Is this operation atomic? Suppose there 100 files in dir, does linux rename them one by one or at once? In other words, is there a time at which both dir and dir2 exist, with dir has, say 30 files and dir2 has the rest 70 files? (4 Replies)
Discussion started by: meili100
4 Replies

2. Programming

Atomic lock file creation

Hello, I need to implement a locking system in C. My problem is how to make the check if the lock file exist and locking it atomic operation. I want to make something like this: FILE* lock_fname; lock_fname = fopen ( "file.lock", "r"); /*check if file exsists*/ if (lock_fname) { fclose... (7 Replies)
Discussion started by: tsurko
7 Replies

3. Programming

Atomic Read and Write with stdio

hi guys. can we use fread and fwrite with pipes to write data more than PIPE_BUF atomically since they lock FILE object until I/O operation finish? (1 Reply)
Discussion started by: majid.merkava
1 Replies

4. UNIX for Dummies Questions & Answers

system calls and atomic operation

Are system calls atomic operations? Is a system call can be interrupted? (2 Replies)
Discussion started by: vistastar
2 Replies
atomic_ops(9F)															    atomic_ops(9F)

NAME
atomic_ops - atomic operations SYNOPSIS
#include <sys/atomic.h> This collection of functions provides atomic memory operations. There are 8 different classes of atomic operations: atomic_add(9F) These functions provide an atomic addition of a signed value to a variable. atomic_and(9F) These functions provide an atomic logical 'and' of a value to a variable. atomic_bits(9F) These functions provide atomic bit setting and clearing within a variable. atomic_cas(9F) These functions provide an atomic comparison of a value with a variable. If the comparison is equal, then swap in a new value for the variable, returning the old value of the variable in either case. atomic_dec(9F) These functions provide an atomic decrement on a variable. atomic_inc(9F) These functions provide an atomic increment on a variable. atomic_or(9F) These functions provide an atomic logical 'or' of a value to a variable. atomic_swap(9F) These functions provide an atomic swap of a value with a variable, returning the old value of the variable. See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ atomic_add(9F), atomic_and(9F), atomic_bits(9F), atomic_cas(9F), atomic_dec(9F), atomic_inc(9F), atomic_or(9F), atomic_swap(9F), mem- bar_ops(9F), attributes(5) Atomic instructions ensure global visibility of atomically-modified variables on completion. In a relaxed store order system, this does not guarantee that the visibility of other variables will be synchronized with the completion of the atomic instruction. If such synchro- nization is required, memory barrier instructions must be used. See membar_ops(9F). Atomic instructions can be expensive. since they require synchronization to occur at a hardware level. This means they should be used with care to ensure that forcing hardware level synchronization occurs a minimum number of times. For example, if you have several variables that need to be incremented as a group, and each needs to be done atomically, then do so with a mutex lock protecting all of them being incremented rather than using the atomic_inc(9F) operation on each of them. 28 Mar 2005 atomic_ops(9F)
All times are GMT -4. The time now is 12:41 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy