1. semop() - это не POSIX, а семафоры System V, это для Linux, скорее, экзотика, чем норма - это включено больше для совместимости с программами, написанными для ... Solaris, например.
2. детально про все операции синхронизации (и semop в том числе) можете почитать:
![23626.jpg](http://files.books.ru/pic/23001-24000/23626/23626.jpg)
(можете найти и скачать, её много где есть)
3. Стивенс пишет:
Весь массив операций, передаваемый функции semop, выполняется ядром как одна операция; атомарность при этом не гарантируется. Ядро выполняет все указанные операции, или ни одну из них.