wh@cxa.daresbury.ac.uk (Bill Purvis) (02/25/91)
Micahael Bane of Manchester asked about time slices - As the number of processes goes up, the tx will spend the same amount of time slicing, individual processes will get the same amount of time per slice, but less frequently. Basically, the tx will switch processes when it reaches the first unconditional branch or loop after the next low priority clock tick. It simply puts the expired process onto the back of the ready queue and then dispatches the process at the head of the ready queue. This is quite independent of the number of processes (or the length of the queue). I/O requests depend on whether the channel is free or blocked - if a request has already been issued to it, the I/O can be completed and the process will continue. If the channel is free - i.e. no request queued on it, the transfer must be delayed until another process wishes to communicate. The current is therefore suspended and the tx will take the process from the head of the ready queue. The suspended process will remain suspended until the transfer has completed, at which point it is appended to the tail of the ready queue. Hope this is clear! Bill Purvis SERC, Daresbury Lab. Warrington Cheshire