Poprzedni Następny

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