Poprzednia - Następna
Dlaczego Linux nie jest systemem real-time?
Podsumujmy to, co już zostało powiedziane:
- Jądro nie jest wywłaszczalne - to oznacza, że jeżeli proces o
niższym priorytecie znajduje się w trybie jądra, to nawet jeśli jest
już gotowy proces o wyższym priorytecie, to musi zaczekać aż jądro
obsłuży proces o niższym priorytecie.
- Przerwania są blokowane, często na długi czas - czas od pojawienia
się przerwania do jego obsłużenia (ang. interrupt latency) może
być duży i nie jest przewidywalny. Jeśli w czasie, gdy przerwania są
zablokowane pojawi się przerwanie zegarowe, to jądro nie dostanie o
nim informacji. Nastąpi utrata niezbędnej precyzji czasowej
- Jądro ma za małą rozdzielczość czasową
W Linuksie zegar jest programowany tak, żeby generował przerwania w
stałych odstępach czasu. W większości systemów, w tym na PC-tach,
przerwanie to jest generowane co 10 milisekund, czyli 100 razy na
sekundę (makro HZ w pliku include/asm/param.h). To
jest najmniejsza rozdzielczość, z jaką jądro może szeregować
zdarzenia. Nie jest to rozdzielczość wystarczająca dla większości
systemów czasu rzeczywistego.
Poprzednia - Dlaczego Linux nie jest systemem real-time - Następna