Zegary
Załóżmy, że mamy dwa uśpione procesy, A mający zostać zbudzony za 5 ms i B mający zostać zbudzony za 23 ms
zegar tyka co 10 ms
- 0 ms
- 10 ms budzony jest proces A - 5 ms za późno
- 20 ms
- 30 ms budzony jest proces B - 7 ms za późno
|
zegar jak w RTLinuksie
- 0 ms - następne tyknięcie za 5 ms
- 5 ms - budzony jest proces A, następne tyknięcie za 18 ms
- 23 ms - budzony jest proces B
|
- w większości systemów operacyjnych zegar 'tyka' (wywołuje przerwanie zegarowe) co określony przedział czasu (W Linuksie, około 100 razy na sekundę)
- o ile tyka często - obsługa tyknięć zajmuje dużą część czasu procesora
- o ile tyka rzadko - procesy nie mogą dokładnie odmierzać czasu i szybko reagować na jego upływ
- w RTLinuksie zegar tyka tylko wtedy, gdy jest to potrzebne - przy tyknięciu, chip zegara jest przeprogramowywany
|
|