I have a question regarding your initial query.
In your mail you said that the expected sequence of events is: 1: The task calls 'read' 2: RTC generates an interrupt 3: The task returns from read.
I dont understand why the task should wait till the rtc generates an interrupt. Am i missing something here?
As far as your query goes: What might be happening is that ps/free might be waking up some other SCHED_FIFO (which i guess is what you are using) scheduled process (some kernel threads are scheduled using SCHED_FIFO). This might schedule that process in instead of yours.
If you need predictable performance then you might try using KURT: KU Real-Time Linux (http://hegel.ittc.ukans.edu/projects/kurt)
I hope this helps balaji