Unanswered: Need some help on basic concepts in Sybase
I am a novice to sybase and was going thru the pdf's . I was stuck up at a point in performance tuning which says that Sybase uses non - preemptive scheduling of threads wherein the task is executed up to completion if it is not waiting either for an I/O or lock from other processes .
Following this explanation it also states that Sybase makes use of time slicing for threads wherein a specific time is allocated to threads to run on the engine . This refers to pre emptive scheduling in general .Also there is a concept of Priority scheduling using execution class.
Can anyone help me whether Sybase uses non preemptive or preemptive scheduling. Also I want to know the difference between clock time and execution time in Sybase, reported by statistics time.
Sybase employs preemtive scheduling of tasks. A task is run for a quantum of time and then it yields the CPU. If the task does not voluntariry yield at the end of its cycle, a grace period is alloted and this controlled by "cpu grace time". After the expiration of the grace time, the process is terminated. But usually you dont get into such situation unless there is a bug.
A tasks will be put to sleep when it is waiting on a IO or any other resource. If a task is not waiting on any resource, it will still run for its alloted time and then yield but the process will be put into the RUN Q instead of the SLEEP Q and so if the server's engines are idle the task can get right back into one of the engine to run.
So with all the confusion about preemption n non preemption Sybase finally follows a preemptive scheduling .Thank you for u help, do u have the difference between clock time n execution time coz it's confusing as well.