Как сделать, чтобы в процессе кусок кода выполнился атомарно, то есть не прерываясь ни другими процессами, ни ядром? И можно ли вообще такое сделать? Вообще стоит задача гарантированно выполнить кусок кода в заданный промежуток времени при условии, что само выполнение меньше этого промежутка. В драйвере вроде такое можно сделать, но желательно обойтись без этого.
P.S. Речь идёт о Linux.
Хм..
Ну можно приоритет повысить...
man setpriority
man getpriorityЧтобы совсем остановить ядро - это я думаю не очень то корректный подход к многозадачной системе. если критично время, поставь QNX, он время точно отслеживает. :)
Кстати драйвера тоже не сколько хотят работают, им отводится определенное время для работы, после которого они должны вернуть управление системе.
именно поэтому функция read может вернуть меньше чем запрошено.