23

Click here to load reader

Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

Embed Size (px)

Citation preview

Page 1: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

��������� ����� �� ������� ����

� ���� ������ �������� ����������� �!�"������� �! ��� #�������!���

�������� ������� �� ���� � �������� ����������� � ���� �� �

�#$�%& �%����� ��������'������()���

�#� *��+,&��-.�#% �/�����'������()���

0,+%#�% 1� 2.��, )�3���'������()���

����������� � �� ���� ���������� � ����������� ������ �� ����������� � ��������� ����� � ���� ��� ����� �������� �����!

��������� ���� (�(�� (����!�� � "�����3�4 �((�3(����� "3� -��5���� ��������� ����� 6-��7 �!� � ��!�������((3�� ����� ����� 3! ���� "�����3�4 ������ -��5���� ��������� 8�!�5 6-��87� ��� "�����3�4 (�3(3��� �3

����� ���� ���4 �� � ��9��!�� 3" ��!���3� �!� 3(��3!�� �3�(3!�!�� �!� �3 ��(����� ����� �5�����3! �! ��3

��������!/ ��)���� ���� �((�3��� �� ��3�! �3 (�3)��� �3�� ���� /����!���� �!� :�5���� ����)�3�� ��� -��8

����� ��� ���! ��(����!��� � �!��!��!/ ��� 3��/�!�� ��(��������� 3" ��������� 8�!�5 6���8�!�57 �����

���!���!�!/ ��� (������������ �!� �";���!� "�������� ���� (�(�� ���3 ��3�� � �3�(���� ������������� ���� 3!

����� ��� �3����� 3" 3)������ 3" ��� -��8 �����" ��)� ���! �!��3������ 2 �((��!/ ���� �3�(���� ���� ���

����/!�� �� ���� �3 ��"�� /����!��� � ��������� �((������3! ��!!�!/ 3! ��� -��8 ������

��������� :�5���� ��������� ������ ��������� 3(�����!/ ������ ��������� �!���3!�<���3! "��������� ����

�� ���������

=��� ��������� ������ ��� ���!� "3����� 3! /����!����!/ ���� ��� �((������3! ���4� ����

����� ���� ����� ����!/ �3!�����!�� �� ��! ����� -3� ��� ��4� 3" ���� (����������

����)�3� ���4 �3���� "3� ���� ��������� ������ 6�!� ����� ������� ��������!/ (�����/��7

��)� �������3!��� ���! 9���� ��/�� �!� ���������)�� � !�� /�!�����3! 3" ��������� ������

������ "�#�$�� ����%���� � ��� 6-��7 ��� ����/�� ���� ��� 3�>����)� 3" ��((3���!/:�5���� ���(��)� �!� �!�����/�!� ����)�3� ����� ���3 (�3)���!/ ��� /����!���� 3"

�������3!�� ���� ��������� ������� ���� �� 3!� 3" ��� 4� ������!/�� ���!��;�� �!

6��!43)�� �!� ����������� �??�7� � �3��3! �((�3��� �3 �����)�!/ ��� ��3"3�� /3��

3" :�5������ �!� ���� /����!��� �� �3 �!��/���� ���4� ���� ��""���!� �(�� 3" ����!/

�3!�����!�� �!�@3� ��""���!� ��������!/ (�����/�� �����! ��� ���� ������

���� (�(�� (����!�� � ���3������� "�����3�4 ����� �� �((�3(����� "3� ������!/ -�� �!�

�! ��(����!����3! 3" � ��!����� ��((3�� ����� ���3���!/ �3 ���� "�����3�4� ���

"�����3�4 �3���!�� ���� ���4� ���� ��� �3!��(� 3" ������ ������� 6#�����>�! �??�7

A ��3>��� (������� "�!��� � /��!� *0?B��C��D "�3� ��� *�!�������� 0���!���!��

� ���� 3" ���� �3�4 ��� ��)��3(�� ����� ���� ����3� ��� )����!/ ��� #�� �5��3 ,!������� 3" �!�!/ �!�

����!3�3/ (������� "�!��� � E%#,F�

����������� � -��8 � -��5���� ��������� 8�!�5G ��. � ��������� .(�����!/ ����G *�. � *�!�����

���(3�� .(�����!/ ����G �+� � ���3��� +����!/ ��3�3�3�G +� � +����!/ ���(�3�� ��3�3�3�

Page 2: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

� �(����� ���4 ����3�� ����!/ �3!�����!�� ��� ����� ��! �� �5������ �" ��";���!� ���3�����

��� �������� �� ��!������ H���� ���� ���4� ��(����!� (���������� 6�!� !3����� ���(��7

��/3������ ��� �3 ����� ����!/ �3!�����!�� 3(��3!�� �3�(3!�!�� ��! ��(����!� ��/��

�3�(��5 ��$��� ��/3�������� .(��3!�� �3�(3!�!�� �� �����"3�� �� ���� �3 �!��!����� ���(3!�� 9����� �����)�� � ���� ���4�� ,! (��������� ���� "�����3�4 (�3(3��� �3�� �

�3�(�����3!�� �3��� 3! ����� ���� ���4� �3!���� 3" � ��9��!�� 3" ��!���3� �!� 3(��3!��

�3�(3!�!�� �!� � �3"����� ������������ 3! ����� ��!���3� �!� 3(��3!�� �3�(3!�!�� ���

��(������ �! ��3 �&�����' ����� � �!���3� �3�(3!�!�� ��� ��������� �� ��� ����%��������� ���3���!/ �3 � ;5�� (��3��� (����(��)� ������G ���� (������ ����� �5�����3! �3 ��/����!���� � ���!/ � "��������� ���� 6������ �� ��� �??�7� .(��3!�� �3�(3!�!�� ���

��������� �!���� ��� ��%����%���� ����� ����� �� �5������ �! ���( ���� 6$�)�� �� ��� �??�7� ���� ��)�� ��������� 3(��3!�� �3�(3!�!�� � ���!� 3" � ������������ ��������!/

(3��� 6!3� ��(3��� � ��� "�����3�47 � ����� �� �� (3������ �3 ��� :�5������ �3 ���

��������!/ (�3����� ��� ������������ ���3 (�3(3��� � ������ �������� ������! �3�� ��)���

� ����� ��� ��������� ��)�� ����� ������� ���! �3 ��! �!� ���! �3 (����(� ��� !3!�

��������� ��)��� 2 ���!� 3" ���� ������������ 3�/�!�<���3! ��� ��3 ��������!/ (3������ ���

!3� ��5�� ��� ��$��� ��)�!/ � ������ ��;!�� ���(�� �!���"���� ���� (�3)���� ������!�������!/ ��)�!��/��L ;��� ��� ������������� ��(��� 3" ��������!/ ������3!� �� ��� !3!�

��������� ��)�� �� �����!���� ��4�!/ ��� ����� �3�� �3���� �!� ���(��� �3 �!��<��

��3!� ��� ��������� ��)�� �� ��������� "�3� ��� ��/!�;��!� 3)������ ���� ������������

(3������ ������ (�3)���� ����� ��� ����/!�� �� "���������� �! �!�3�(3����!/ � ����3�

�((������3!��(���;� ��������!/ (3��� �����! ��� !3!���������� ��)���

��� ��!����� ��((3�� ����� ������ )��#�$�� *���%+��� ,���# 6-��87 ��� ���!��(����!��� � �!��!��!/ ��� 3��/�!�� ��(��������� 3" ��� ��������� 8�!�5 6���8�!�57

����� 6M3���4�! �???7� ���8�!�5 ����� � !�� ���!� �! ��������� .(�����!/ �����

6��.7 �! ����� � *�!��������(3�� .(�����!/ ���� 6*�.7 �� (�3)���� ���� ����

��������� ��(��������� � ����!/ � ����� �!� (���������� ��������� ���� ������! ���

�������� �!� ��� *�.N 4��!�� 6������ ���! � �3��"�!/ � ��/!�;��!� (��� 3" ��� *�.N

4��!�� ����� ��� ��� �������3!�� �((�3���7� ���� ���� 3��/�!��� (����!��� �! 68�����

�!� 2��� �?�B7 ��� ���3 ���! ��3(��� � 3���� ����������� 623������ �??�7 �� ���� ��

��! �3�������� (�3����� 6-����� �??BG +��(�!��� �� ��� �??�7� ��� ��3��� 3" ���

8�!�5 �� ����� 3! ��3 ����3!�L ;��� ��� �3���� �3�� 3" ���8�!�5 �!� 8�!�5 ��� (�����

���3���!/ �3 ��� ����� 3" ��� *#E *�!���� ������ 8���!�� 6�??�7G �!� ���3!� �3�� ���

8�!�5 ����/! (��!��(��� ��� 9���� ��3�� �3 ��� (�3(3���� 3" ��� "�����3�4 (����!��� ����

��/� ��� �!���!�� 3�/�!�<���3! 3" � ��������� �((������3! �� � ��� 3" �33(�����!/ ���������

�!� !3!���������� ����)����� �!� ��� ����������� ������3! ������! ��3 ��������!/ ��)���

6���8�!�5 �!� 8�!�57�

�! ��!����� ��((3�� ����� 63� 4��!��7 ����� �!��!�� �3 �� ���"�� �! ������!/ ����

��������� �((������3!� ���� �� (�3)���� ��3!/ ���� � ������� "��������� ���� ���!�!/���� ��� ���� ���� �!����� ��� 4�!�� 3" 3)������ (�3����� � ��� 4��!�� �����"� ,! ���� ��!��

��� �!"3�����3! /�)�! � �3�� �3�������� ��. ����� �(����� �!������ �3�� ����

���������!�� 6��/� �3�� 3" �3!��5� �������� ����� ����� ����7 �� !3� ��";���!�L ���

"��������� ���� ���� �� ��(���� 3" ��:����!/ ��� 4��!��N� �����' $�&���� �! ��(���� ������ �(����� 4��!�� ���4� �����! �!���3!�<���3! �����!���� �����3!� 3" �3�� �5������

���� �!�����(�� �������� ���� .!� ���! �� ��� ����� ����/!�� ���� �3 (�3)� ��� ����!/

��� �%���� %� �8�

Page 3: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

�3�����!��� 3" �! �((������3! ���!/ ���� (��������� 4��!��� ���� �3�4 �!������ � )������3!

3" ��� �3�(���� ;5�� (��3��� "��������� ���� ��������� �! 6*���O&��-3�!�� �� ��� �??�7

�5(�����!/ ��� �5��� ����!/ ����)�3� 3" ��� ��(����!��� -��8 ������

��� ���� 3" ��� (�(�� �� 3�/�!�<�� �� "3��3��L ��� "3��3��!/ �����3! (����!�� ���

"�����3�4 �!�����!/ �3�� ��� ���4 �3��� �!� ��� �3"����� ������������ (�3(3��� "3�

������!/ -��� ����3! � ����: ��������� ��� 3��/�!�� ���8�!�5 ������ ����3!� C �!� �

�������� ��� -��8 ��!����� ������ ����3! D �!��3����� ��� �����N� �3�(���� "���������

���� �!� ;!��� ����3! � (����!�� ��� �3!�����3!� �!� �3�� "����� ��!�� 3" �3�4�

!� "� ��������#

���� ��� ��� ��� ��� �����������

��� ���4 �3��� �3!������ � ��������� �((������3! �3�(����!/ � ��� 3" (���3��� ���4�� %���

���4 �� ����������<�� � ;)� ����!/ ����������L � (���3� �! 3""��� � �3�������� �5�����3!

���� 3� -��� � �3�������� ��3�4�!/ ���� �!� � ������!�� ��� ���4 �� ����/!�� � �!�9��(��3��� ������ $� � (��3����.! ��� 3���� ��!� ���� ���4 �� �3�(3��� 3" � �.����� � ������� � � �3�(3!�!�

��! �� ��������� �� � ���(��� 3" � ���4 ��(����!��!/ � �3!����� ��� 3" ����3!� �!� ��)�!/

� (��������� ����������� ���3���!/ �3 ���� ���������� ���� �3�(3!�!� �� �� ��;!�� ��

������ ������� 3� ������� �!���3� �3�(3!�!�� ��� ��3�� ��9����� �3 �5����� �!����! ���������!��� �!� "3� ���� ����3! ��� ���� ��)� �3�!��� �!� 4!3�! -��� �! 3�����3 �� �3!������� � ��� "��������� ����� .(��3!�� �3�(3!�!�� ��� !3� ������� ��9����� �3

�5����� �!� ������ ���! ���!/ �3!������� � ��� "��������� ���� ��� ����� ���� ���

(�3����3�N� �(��� ��(���� �3 �5����� ����� ,! (��������� ���� ��(���� �� �������� � �

���( ������' ��'���&� 6$�)�� �� ��� �??�7� ��/3������ 3" ���� �3�� ��� �(������ ������"3� ��� ���4 �3��� (�������!/ ��� �5(�3�����3! 3" ��� (�3����3�N� �(��� ��(���� �! �

:�5���� ��!!�� ����� ���3 !������� ���!���!�!/ ��� (������!�� ������3!���( ��3!/ ���

�3�(3!�!�� �!���� � ���4� �!�� ����� ��/3������ ��������� ��� �)������� ����4 "3� ����

�� ( ��� ����� ���3 !���� �3 4!3� �3� �3 ���������� ���� )���� ��3!/ ��� ���4N� 3(��3!���3�(3!�!��� -3� ���� ����3! ���� 3(��3!�� �3�(3!�!� �� ����������<�� � ��� ���(������� � ���� !����� 6������! <��3 �!� 3!�7 �5(�����!/ ��� �3�(3!�!�N� (3���3! 3" ����3��� ����4 ���� �)������� "3� ��� ���4 �� ���3!/� �3� �� ��! ���� �" ��� ����4 ����

��������� "3� �! 3(��3!�� �3�(3!�!� �5(���� ��"3�� ��� �3�(3!�!� �3�(����� ;!�����

���! ���� �3�(3!�!� �� 4������ =3��)�� � 4����� 3(��3!�� �3�(3!�!� ����� �� (�3����

)���� ������� �� �5(���!�� ���3��

H����! � �3�� �������� ������;����3! 3(��3!�� �3�(3!�!�� ��! �� "������ ��)���� �!�3

��� ����� "3��3��!/ �(��L

� ���.�� ��� �� 6E07� ���� �� ��� ���(���� �(� 3" 3(��3!�� �3�(3!�!� �! ��� �3��� �3!�����!/ 3" � ��!/�� �3�(�����3!�� �!�� 3� ��� ��� E0 �3�(3!�!�� �� �� ���� �3��(����!� �! ��/3����� 6�3�!��� 3� �!�3�!���7� ,! (��������� �������'���&� ���3 ������ /������ ��'���&� 6$��! �!� 23�� �?BB7 ��� �(������������ ������� ��� (�3���� )���� ������� �)�! �" ��� �3�(3!�!� �� 4������

-8%F,28% �%�8��, % 8,#EF ���

Page 4: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

� ����� ��� ��� �� 607� � �3�(3!�!� 3" ���� �(� �!���!��� �3!����� 3" � ��9��!��3" ��� �� ����� ���� �� �5������ �! ��� ������ 3���� �(���;�� �����! ��� ��9��!���0 �3�(3!�!�� ��� �((�3(����� "3� � ��� 3" ��;!���!� ��/3������ ���� 3!�

�!��!��!/ ��� �3����3! �3�(���� � ��� (��)�3�� 3!� ��4� ��� ��'�� ��� ��������'��/3������ 6H�!��3! �??�7� ," � 0 �3�(3!�!� �� 4����� ��� ������ �3�(���� � ���

���� ;!����� )����3! �� ���� �� ��� �3�(3!�!�N� �������

� /���������� ��� �� 6�07� ���� �(� 3" �3�(3!�!� �� ���� �( 3" � ��� 3" )����3!� ����3�� �! 3����� %��� ���� ��� �3�(3!�!� �� ��! 3!� �� )����3! ��! ������� ���������� "3� �5�����3!� ���� ����� �3�(3!�!�� ��� (�3)���� �! 3���� �3 ��(����!�

��""���!� �((�3����� "3� �3�)�!/ ��� ���� (�3���� !3����� ���� ��""���!� ��/���� 3"

������� �!� ��""���!� 6���������7 �3�(�����3! ����� ��4� �! ��� 0������� 0��& ��������� �! 68����� �� ��� �?BB7�

,! /�!���� ��!���3� �3�(3!�!�� ��� �!��!��� �3 ��(����!� (���������� �!� ���(��

��/3������ ���� ���� �3!�����!�� �!� �3 ������ (������ ��)���� ����� 3(��3!��

�3�(3!�!�� ��� �!��!��� �3 ��(����!� �3�(��5 �!�3�!��� ��/3������ ���� �!��!��

��� 3���3�� �3�(���� � ��!���3� �3�(3!�!��� ,! ���� ��!�� ��� �3��� 3""��� �

��3"3�� ��)�!��/�� .! ��� 3!� ��!� �� /����!���� � ��!�����9����� �3����3! �����! �

(���������� ���� ����� �� �����)�� � ��!���3� �3�(3!�!��� .! ��� 3���� ��!� ��

(�3)���� ��� ���� (3������ 9����� �!��!����!� �� ��! ���� ��(�!��!/ 3! ��� ������

��3�!� 3" ����4 ���� �)������� ����� �� �����)�� � 3(��3!�� �3�(3!�!��� ,� ���� ��

!3��� ���� !������ ��� !����� 3" �3�(3!�!�� �!���� � ���4 !3� ��� (��������� ����!/���!�

3" ����� �3�(3!�!�� �� �3!�����!�� � ��� ���4 �3���� ,! ���� ��!�� ��� ��/3������ "3�

,�(������ +3�(�����3!� 68�� �� ��� �??�7 �� ���� �� ��� (�3�3/���3(��3!����(��3/��

�3��� �! 6������ �� ��� �??D7 ��� ������� (��������� ����� 3" ���� ���4 �3����

+3���!�����3! ��3!/ ��� ��""���!� �3�(3!�!�� ���3!/�!/ �3 � ���4 �!� ��3!/ ���

���4� �� ���3�(������ � ���!� 3" � ������ ���� ���� ����� �� � �3��3! ��9������!� �!

��! ��������� �((������3!�� �3 �!���� ��� �3/���� �3�����!��� 3" ��� ���� �� ���� �� ���

����!/ �3�����!��� 3" ��� �((������3! ��!���3� �!� 3(��3!�� �3�(3!�!�� ������

����5�� "3��3��!/ � )������3! 3" ��� ���3��� +����!/ ��3�3�3� 3� ��� +����!/ ���(�3��

��3�3�3� ����� ��)� ���! ���(��� �3 ���� ����� 6��� ����3! �7�

��� ���� (���3��� ���4 ��� �� ��((3��� �3 �� ����������� ���3���!/ �3 �! �5���

"��������� ���� 6������ �� ��� �??�7 ����� �� (����!��� �! ����3! D� ���� ���� �������

���� ��!���3� �3�(3!�!�� 3" ��� ���4� ��)� 4!3�! -��� �!� ���� ����� �3�(3!�!����!!3� )3��!����� ���(�!� �������)��� %��� ���4N� -��� �� �3�(���� �� ��� ��� 3" ���-���N� 3" ��� ��� ��!���3� �3�(3!�!��� ��� "��������� ���� ���3 ������� � ;5�� (��3���(����(��)� ���(�����!/ (3��� �!� ���� ���4 ������!�� ��� ���� ���! 3� �9��� �3 �����

(���3���

H��! ��������� �((������3!� ��)� �3 ���� ���� ���!/�!/ �!)��3!��!�� �� �� ��

!������� "3� ��� �((������3! �3 �� ���� �3 �5����� ��/3������ ���� �3�)� �(����� �!� ����

�������3!�� ,! ���� ���� ��!�� ����� ��/3������ ��� ����� �)�� 63� ���� !�)��7 !����� ��

�� !3� ����3!���� "3� ��� ����� �3 �����)� � ��!������ "3� ����� �5�����3! � �3!������!/

���� �! ��� "��������� ���� 6�!���� ��� ��)� �3 �� ���P /����!����7� �� � �3��

����3!���� �((�3��� "3� �3(�!/ ���� ���� ��9������!� ��� ���4 �3��� ���3 (������ ���

��C �%���� %� �8�

Page 5: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

��;!���3! 3" �(����� �3�(3!�!��� ����� �3�(3!�!�� �3 !3� ���3!/ �3 �! ���4 �!� ��� !3�

�3!������� � ��� ���� �!� ��� ��� !3� �������� �!��� � �(����� ��!����� �������3! ��

��������� ����� �3�(3!�!�� ��� ������ ������ ������� �!� ��! �� ��;!�� �� ��������!���3� 3� 3(��3!�� ��(�!��!/ 3! ������� ��� ��)� � ����!/ �3!�����!� 3� !3�� �!

������ ������ ������� �3�� !3� !��� �! �(����� ��������!/ �����!��� ��!�� ���! �������� �� ���(� ���3��� �!3���� ���� 3(��3!�� �3�(3!�!� �3 �� ��������� �!

����4 ����� +3!)����� � ������� ������ ������� ��� � ����!/ �3!�����!� �5(������ � � -��� �!� � ������!� ���� ��� ����� ���� �� �3 ����� H��! � �3�(3!�!�3" ���� �(� �� �������� ��� ����� �((���� �! ���������� �� � �3 �� �! 3���� �3 �������!� �"�� ��! �� �5������ �����! ��� ������!� ����� ���!���!�!/ ��� ������!�� 3" ���4�� ," ��� ����

�� �����"���3� ��� �3�(3!�!� �� ����(��� �!� ��� ����� �� �3������� �3 �5����� ��

��"3�� ��� ������!�� .�������� ��� �3�(3!�!� �� ��>������ ����� �3�(3!�!�� ���

!3����� ��"����� �3 �� 1�� �� ( �����! ��� ���������� 6$�)�� �!� 2��!� �??�7�

���� ��� �������� ������������

��� �3"����� ������������ ��(����� �! -�/��� � ��(������ ��� �5�����3! 3" ��!���3�

�3�(3!�!�� "�3� ��� �5�����3! 3" 3(��3!�� �3�(3!�!�� �! ���� � �� ���� ����� ��� ��3

��������!/ ��)���� �� ��� ����%���� ����� ��� ����� ��������� ��� �((������3! ���4� �!���!� ����� ��!���3� �3�(3!�!�� ����� �� ��� ��%����%���� ����� ��� ����� ������������ ���4�N 3(��3!�� �3�(3!�!�� �!� ��!� ����� )����3!�� ����� �� � ������ �������� ������!

�3�� ��)��� ����� �� ���!���!�� � ����� ���(����)� ����������L ��� !3!���������� ��)��

��������� 6 ���%����� �&�����7 �� ���3����� ���3���!���� �3 ��� ��������� ��)����������� 61� �%����� �&�����7� %��� ��������� �((���� � ��""���!� (3��� �!� �3�� �3�4�! � �!���3!�<�� "����3! �!������� �����!/ ��� (�3����3��

�� ��� ��������� ��)�� ��� ;������)�� ��������� �((���� � ;5�� (��3��� (����(��)�

(3��� �3 ���4�G ���� (3��� ���!/ �3�(������ ���� ��� "��������� ���� /����!���� ���

�((������3!N� ����!/ �3!�����!��� ���3 �����! ���� ��)�� ��� ��� (�3����3�N� �(��� ��(����

�� ��������� 6� ���!/ � ����4�������!/ ��/3�����7 �! 3���� �3 ������ ��� �!���)��� �����

��� !3!���������� ��)�� ��! �� ��"�� �5������� ,! ���� �!���)��� ��� ���3!����)��

��������� �((���� � ������������ (3��� "3� ��������!/ ��� ���� 3(��3!�� �3�(3!�!���

���� �(� 3" (3��� ��! �3!����� ��(���� ���� �� 9�����@������ ��������������� 3"

�3�(3!�!�� �(���;� �!"3�����3! ��3�� ��� (�3���� ���!/ �3�)�� ��� �����!� �������3! 3"

��� �!)��3!��!� �!� ��� ��3�!� 3" ����4 ���� �)������� �� ���� �3��!� �""����)��

���(��!/ ��� �((������3! ���(3!�� �� ��! �����

,� �� �3��� !3��!/ ���� !������ ��� ���4 �3��� !3� ��� �3"����� ������������ ��(3��� �!

���������3! 3! ��� (��������� (3��� �3 �� ���� � ��� ���3!����)�� ���������� -�������3��

� ���! /3�� "3� ��� "�����3�4 (����!��� ���� �� �3 ��)��3( � /�!���� ��� 3" "�!���3!� ����

���(� ��� ����/!�� �! ������!/ � ����3��<�� ���3!����)�� ���������� ,! ���� ��!�� ���

"�����3�4 ��;!�� ���� �� ���� ��������!/ (3�!� 3" ��� !3!���������� ��)�� ��� ���3!��

��)�� ���������N� ������3!� ���� �!����� 6��� ��� !3� ���������� �37 ��� "3��3��!/L

� ��� �������3! 3" ��� !�5� ������� �3 �� ��! ��3!/ ��� ��� ���� 3(��3!���3�(3!�!�� ���3���!/ �3 ��� ���3!����)�� ��������!/ (3����

-8%F,28% �%�8��, % 8,#EF ���

Page 6: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

� ��� ������ ��� �� �����! ���� �3�(3!�!� ���� ���� �� �5������� -3� 0 �3�(3!�!�� ���� ������3! ��"��� �3 �3� ��! )����3!� ���� �� �5������ ����� "3� �0 �3�(3!�!��

�� ��"��� �3 ����� )����3! ���� �� �5�������

� ��� ���� �( �3 ����� ��� )����3! ���� �� �5������ ����� �� �3�!��� � ��� ��3�!� 3"����4 ���� ��������� "3� ��� �3�(3!�!��

��� 3)����� �""��� 3" ���� 3�/�!�<���3! (����!�� � ��3"3�� ��)�!��/�� -���� ��)�!/ �

��""���!� ��������!/ �((�3��� �� ���� ��)�� 3""��� � ��/� ��/��� 3" :�5������ �� ��! ����

����� (�����)�!/ ��� ��9����� /����!��� 3! ���4 ����!/ �3!�����!��� ��3!� ���

����������� ������3! ������! �3�� ���������� �!����� ��� �3����� �5�����3! 3" ��!���3�

�3�(3!�!�� �!��(�!��!�� "�3� ��� ��������!/ (3��� �� ��� !3!���������� ��)�� ����� ��

3!� ���(3!����� "3� ��(�3)�!/ ��� ���(3!�� 9����� 3" ��� �((������3!�

)�'��� 23 ��� �3"����� �������������

��D �%���� %� �8�

Page 7: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

$� � %������� �& ������� �� ��

��� ����� ���� 3" ���8�!�5� 6M3���4�! �???7 �� �3 (���� � ����� ��������� �5�����)�

������! ��� �������� �!� ��� 8�!�5 4��!�� ���!�!/ 8�!�5 �!�3 � ���� ��������� �����

����� (�����)�!/ ��� ��� 3��/�!�� "�������� ��� �5�����)� �������� (�3)���� ������ �3 ���

�������� ����� �( �3 ��� ��5���� (������3! � �� 3" ������!/ ��� �������� �!�����(�� �

��((3�� "3� ��!!�!/ ����%���� �� ( �!� � �3���!�����3! �����!��� ������! ����� ���4��!� �������3!�� 8�!�5 (�3������� ����� "������� ��� !3� ����: ����������

��� �����!��� � ����� ���8�!�5 ������� ��� �!�����(�� �� ������ �� ��������� �!��������� ��4�� 8�!�5 ��� ��������� 3� )������ �!�����(�� �����)�!/ ��� ������ �3 ���

�����!��� �������� �!�����(�� �3 ���8�!�5� ��� 3)����� �""��� �� ���� �������� �!�����(��

��� ����� �)������� �3 ���8�!�5 �!� ��� ���4� �)�! ���! 8�!�5 ���!4� ���� �� ���

�������� ����� ,! ���� ��!�� ����� �� � (��"��� ��3����3! ������! ���8�!�5 �!� 8�!�5L !3

����3! ��4�! "�3� ��� 8�!�5 ���� 6������ "�3� ��� (�3������ 3� �)�! "�3� ��� 4��!�� �����" 7

��! �)�� ���� ��� ���8�!�5 ���� ����� �� ��� 4� "������ ���� ��4�� ���8�!�5 � ����

��������� ������

���8�!�5 0� �������� ���� �! �������� ���4� ���� ������� "�3� ��� ��� ,!��� B��C

����� ���( ����� �� ��� ���!���� ����� ���( �! �3�(����� ����� 3! ��� �+ 3� �+���

����/!� ��� ���( �� !3� (�3/������ (���3������ ��� �! � ��% &� ��!!�� >��� �3�!�����(� �� ��� !�5� (3������ ���� �)�!�� �� � ������ ���8�!�5 �3�4� �� � (������3! 3"

�3�� ���! 3!� ���4 (�� ����3���3!� 6� ���4 �� �9��� �3 B�B !�7�

��������� ���4� 63� ��%�� ( 7 ��� ������� ��!!�!/ �! ��� 4��!�� ������� �(��� �!� ����4��!�� (��)���/��� ���� ���!� ���� ��� !������� ��! �! ������ ���3� �!� ��)� ������

������ �3 (������ ��)����� H����! ���� ������ ��� �!���� 8�!�5 ����� 6��� 4��!�� (���

��� ��� ���� (�3������ ��!!�!/ ��3)� ��7 �� �3!������� �� �� 3" ����� ��������� ���4� �!(��������� ��� 3!� ���� ��� �3���� (��3���� ���� �! ���8�!�5 � ��������� �((������3! ��

��;!�� �� � �3������3! 3" ��������� ���4� �!� ����� �� �� ��!!�!/ 8�!�5 ���3��� >��� �!

�5��� ���4 ��!!�!/ �! ��� ���4/�3�!��

�� ��������� �((������3!� �! ���8�!�5 ��� !3����� ��(����!��� �� � ��� 3"

�33(�����!/ ��������� ���4� �!� 8�!�5 (�3������ � �3���!�����3! �����!��� ��3!/ ���

3" ���� �� ���3 (�3)����� ���-,-.� ��� � ��� 3" ��""��� 6���3����� �! ��� 4��!�� �������

�(���7 ����� ���3� "3� ���������3!�� �3���!�����3! ������! 8�!�5 (�3������ �!� �����

���� ���4�� -�3� ��� ������4 (3�!� 3" )��� ���-,-.� ��� ���!��;�� � (3����)� �!��/��

!������ �!� ��� �������� � �����!/ �(����� �����!/ �!� �����!/ "�!���3!� ����� ���

��3��� �!� !3!���3�4�!/� -�3� ��� 8�!�5 (�3���� (3�!� 3" )��� ���-,-.� ��� ��������

��4� �������3!�� E#,F ��������� ��)�����

'� (���) � � �*���� ����� �& ���

-�/��� � ��3�� ��� ��������� 3" -��8 ����� �� � ��!����� ����� �(������ ����/!�� �3

�!��!�� ��� 3��/�!�� ��(��������� 3" ���8�!�5 �! 3���� �3 ��((3�� ��� "�����3�4

(����!��� �! ����3! �� ,! -��8 ��� �((������3! �� 3�/�!�<�� �� ��3 ��""���!� ��)��� ���

��������� ��)�� �!� ��� 8�!�5 ��)�� ����������!/ ��� ��������� �!� !3!���������� ��)���

(�3(3��� � ��� �3"����� ������������� H����! ��� ;/��� �9���� �35�� �! ��/�� /��

-8%F,28% �%�8��, % 8,#EF ���

Page 8: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

��(����!� ��� ��""���!� (���� 3" ��� -��8 ��((3�� �����L ��� ;������)�� ��������� �!�

"����� ��;!�!/ ��� �((������3! ���4� 6�����! ��� ��������� ��)��7 �!� ��� ���3!����)��

��������� �!� "����� ��;!�!/ ��� 3(��3!�� �3�(3!�!�� 6�����! ��� !3!���������� ��)��7�

,!���� ���4� �!� 3(��3!�� �3�(3!�!�� �3�!��� �35�� �! ����� ��(����!� ��� ������

�((������3! �3�� ���� �� ��� ���4�N ��!���3� �3�(3!�!�� �!� ��� 3(��3!�� �3�(3!�!��N

)����3!�� .)��� ���� �� ��� 3!� �3����� �� ��� �3( 3" ��� ;/��� 3� �!���� ��� 8�!�5 4��!��

�35 ��(����!� ���3� ������ -�!��� ��(� �35�� ��(��� (���� 3" 8�!�5 ����� ��)� !3�

���! ���!/���

)�'��� �3 ��� -��8 ��!����� ��((3�� ������

��B �%���� %� �8�

Page 9: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

H����! ��� ��������� ��)�� ��� ;������)�� ��������� ��� ���! ��(����!��� �

�3��"�!/ � ��/!�;��!� (��� 3" ��� 3��/�!�� ���8�!�5 ���������� -3� ���� ���4 ��

(�3(3��� �! ����3! ��� � ������4 �� �������� ���� ������4 �!���!��� �5������ �! �!�����

�33( ���� ���3�������� /3�� ���3�/� ��� ���4N� ���� 3" �3�(3!�!��� -3� ���� ��!���3�

�3�(3!�!� ��� ���4 ������� ����� ��� "�!���3! ��!�� ��!!�!/ ��� �3�(3!�!�� -3� ����

3(��3!�� �3�(3!�!� ��� ���4 �!)34�� � �(����� 6 (��)���7 ����� ���� ����� ��!�� �

�����/� �3 ��� ���3!����)�� ��������� 6� ���!� 3" � ��������� ���-,-. ������ ����� 1�7 �!������!/ ���� ���� 3(��3!�� �3�(3!�!� ��3��� �� ����)���� �!� ���! ����4� �" ���!3!���������� ��)�� ��! �� �!)34�� 6��� ���3�7� �� ��� �!� 3" ��� ���� 3" �3�(3!�!�� ���

������4 �!)34�� �!3���� (��)��� ����� ���� ����� ���(�!�� ��� �5�����3! 3" ��� ���4 �!���

��� !�5� (���3��� ��������

-3��3��!/ ��� ��������!/ (3��� ��� ;������)�� ��������� ����� ������� ��� �����!�

������' ������� 3" ��� ��/���� (��3��� ���� ���4 "3� �5�����3!� H��!�)�� ������!!�!/ �3�(3!�!� �� ��!���3� ��� ��������� >��� ��!� �� �� ��� ��������� ��)���

.�������� �" ��� �3�(3!�!� �� 3(��3!�� ��������� ���������� ��� "3��3��!/ ��3 )����� �!

3���� �3 �������!� ��� �5�����3! �!���)�� "3� ��� !3!���������� ��)��L

� ��� ������$�� ���( "3� ���� �3�(3!�!�� ���� �� ��� �3�(3!�!�N� ����4 "�����3!���������� 3)�� ��� �����!� ����4 ���� �)������� "3� ��� ���4 �� ���3!/� �3�

� ��� ���( ��������� ���� �� ��;!�� �� ��� (3���3! 3" ��� (��)�3�� )���� "�3� ��������!� ���� �( �3 ��� !�5� (3������ ����� �!�����(� "3� ��� ��������� ��)��� ����

�!�����(� ��! �� ������ ��� �!� 3" ��� �)������� ����4 3� ��� !�5� (���3��� ������� 3" �

��/��� (��3��� ���4� ,! ��� ������ ���� ��� ����4 �!���)�� �� ���� ���! ��� ����4

�)������� ����� �! ��� "3���� ���� �3�� ����4 )����� ������ ��� ����4 �!���)�� �� ����

��� �!���)�� 3" ���� ��� !3!���������� ��)�� ���� �� ��! ����3�� �! �!�����(� "�3� ���

��������� ��)���

.!�� ���������� �" ��� ����4 �!���)�� �� /������ ���! <��3 ��� ;������)�� ��������� ��!��

� �����/� �3 ��� ���3!����)�� ��������� �!������!/ ��� ������3! 3" ��� ����4 �!���)�� 6�

���!/ �!3���� ��������� ���-,-. ������ �&� 1�7� ���! �� ��!� 8�!�5 ����!/ �����!���)��� ���� �� 3" �5(�3���!/ ��� ����4 ���� ���� :�5������ �3 3(��3!�� �3�(3!�!�

��������!/ ������� �� ���(� 3(��3!�� �3�(3!�!�� ���3!/�!/ �3 ��)���� ���4� �3 ��

�������!�3��� ���� �! ����4 �!���)��� �� ��3�! �! 6*���O&��-3�!�� �� ��� �??D7� #3��

���� �" ��� ��!!�!/ �3�(3!�!� 3" ��� ��/���� (��3��� ���� ���4 �� 3(��3!�� ��� ����� �� !3

����4 �)������� ���! ��� ;������)�� ��������� ��!� ��� ��#� ��!���3� �3�(3!�!� 3" �������4 �" �!�

��� �((������3!N� !3!���������� ��)�� �� ��(����!��� �� � ��/���� 8�!�5 (�3���� 3!

����� ��� 3(��3!�� �3�(3!�!��N �3�� �� ��!4�� ��3!/ ���� � ��� 3" ������ "�!���3!�

��(����!��!/ ��� ���3!����)�� ���������� ���� (�3���� ������ ��� ������ ����� ��!� ����� 8�!�5 6��������� �����7 ��/���� (��3��� ����� �!����� ���� ���� ���� 8�!�5 �� ��! �

��� ;������)�� ��������� ��� 3(��3!�� ���)�� (�3���� ���� ��4� �3!��3� ;���� ���� ����/!

�3����3! �����)�� ��� ��/���� ��/��� 3" ���(3!��)�!��� �)������� �� ��� 8�!�5 ��)�� �����

�� �3!������� �3 �� �!3�/� "3� ��� !3!���������� ��)�� ����� ���)�!/ ��� 8�!�5 4��!��

�!���!/��� ���� �� �!�������!/ "3� �3�(�������� �!� (3�������� ����3!��

-8%F,28% �%�8��, % 8,#EF ��?

Page 10: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

,!���� ��� 3(��3!�� ���)�� (�3���� ��� ���3!����)�� ��������� ��!� �����! �! �!�����

�33( ���� 3!� �������3! (�� ����4 �!���)��� �� ��� ��/�!!�!/ 3" ���� �33( ��� ��������� ��

���(�!��� � �����!/ ��� �&� 1� �! � ��3�4�!/ ��!!��� H��! ��� �����/� "�3� ���;������)�� ��������� ����)�� ��� ���3!����)�� ��������� ��4�� �( �!� �5���!�� ��� ��!/��

3" ��� ����4 �!���)�� �!� ��� �����/��6�7 �! ��� ����� 1� �!������!/ ��� 3(��3!���3�(3!�!�6�7 ���� ���� �� ����)������ 2 ���!/ ��� ���� �!"3�����3! ��� ���3!����)��

��������� ���! �5������ ��� ���� 3(��3!�� �3�(3!�!�� ���3���!/ �3 ��� (3��� ����!/ ���

�!���)��� �� ��� �!� 3" ��� �!���)�� >��� ��"3�� ���!/ (����(��� � ��� ;������)��

��������� �� )3��!����� ���(�!�� �����" � �����!/ ��� �&� 1� �/��!� ���� �!����� �����3�� ���������� �3�4 �! � �!���3!�<�� ��!!���

�� ��(����� �! -�/��� � ��� (���� 3" ������ ���3� �)������� "3� ��!���3� �!�

3(��3!�� �3�(3!�!�� �� ������ ���'� �����! ��� �3!��5� 3" ��� ��!����� ������ �������3 ��� ��3��/� �� (�3)���� � ��� ����'� 0���'�� ����� �� ��(����!��� �� �3�� ��� ��������� �!� !3!���������� ��)���� ��� �3��/� �!�/�� �� ��� �!��� �! ����/� 3" ;���

��4�!/ ���� ��/�3! 3" (������ ���3� )������ �3 �3�� ��� ������4� �!� ��� 3(��3!�� ���)��

(�3���� �!� ���3!� ���3��!/ ��� �!���� ���3����3! �!� �����3����3! 3" ���3� 3�>����

�����! ��� ��3��/� �! � (���������� ��!!��� � �3�� �������� ������(��3! 3" ��� �3��/�

�!�/�� ��! �� "3�!� �! 6%�(�!3�� �� ��� �??B7�

���� ��� ��� �� ��������� ���������

�� ��� ��������� ��)�� ��� ;������)�� ��������� (�3)���� ��� ����/!�� ���� ��� ��� 3"

�!���"��� "�!���3!� ��3�! �! -�/��� � �! 3���� �3 ������ ��� �((������3! ���4��

-3� ���� ���4 �3 �� ������� ��� �� ���� ������ "�!���3! ���� �� ������ �!�����!/ ���

����!/ ���������� �!� ��� ���� (��3��� 3" ��� ���4� � ���3��� ���!��;�� 6��7 �� ���3

��9����� ��� 3!� "3� ����//�!/ (��(3���� ����9��!� ����� �3 �� ���� ��� �������

)�'��� 43 �� 3" �!���"��� "�!���3!� �� ��� ��������� ��)���

�D� �%���� %� �8�

Page 11: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

�!� �� ���� ��� � ����� ��� ��!���3� 3� 3(��3!�� �3�(3!�!�� ���(����)�� �3 ���

���4� -3� � ��!���3� �3�(3!�!� �� �� ��9����� �3 �(���" �3�� ��� "�!���3! ���� ���

�3�(3!�!� ���� ��! �!� ��� -��� 6����� �� ���! ����� �3 ��� ���4N� -���7� -3� �! 3(��3!���3�(3!�!� ��� ���!��;�� ��� �(� 6E0 0 3� �07 �!� ��� ����4 "�����3! ���� �� �(���;���

��� ���� 3" ��� �3�(3!�!�N� ��������������� ��� �(���;�� �� ��� !3!���������� ��)��� .!��

��� ��� ���4� ��)� ���! ������� ��� �((������3! ������ ��!!�!/ � �����!/ ���

�� � ����� ����� ����)���� �3�� ��� ��������� �!� !3!���������� ��)���� � ���� �3

�� � ��� ��3(� ��� �((������3! �����3�!/ ��� ��� ���4�� ��� �� ���� ��

����� ������� "�!���3! �� ���� �� ��! ���� ���! � ��!���3� �!����

�3�(3!�!� ���� �� ���������

��� �!���"��� "�!���3!� �)������� "3� ��;!�!/ ��� 3(��3!�� �3�(3!�!�� �� ��� !3!������

���� ��)�� ��� (����!��� �! -�/��� C� ,!���� ��� 3(��3!�� ���)�� (�3���� ��� ���3!����)��

��������� ���� ;��� �� �!������<�� � �����!/ ��� ����� ��� "�!���3!� �"��� ���� 3(��3!��

�3�(3!�!�� ��� ������� � �����!/ ��� �� ��� ������ "�!���3! �!������!/ ���

�3�(3!�!�N� �!�9�� ���!��;�� �!� � ��������� �3!���!�!/ ��� ��� ���������� 6��� �(� ���

!����� 3" )����3!� ��� "�!���3! �3 �� �5������ � ���� )����3! ����7� ��� ����3! "3�

��)�!/ ��� 3" ���� �!���� � ��������� �� ���� ��""���!� �((������3!���(�!��!� ��������!/

(3������ ���� (�3���� !��� ��""���!� ��������������� �3 �� �(���;�� "3� 3(��3!��

�3�(3!�!��� H��! ���� ��((�!� ��3�� !�� ��������������� ���� �� �!������ �! ���

��������� ���)�!/ ��� �!���"��� "�!���3!� �!���!/��� ��� � ����� "�!���3! �� �!)34��

���! ��� ��� 3(��3!�� �3�(3!�!�� ��)� ���! ������� �!� �� �������� ��4�� ���

���3!����)�� ��������� �!��� �!�3 ��� �!����� �33( ��������� ��3)�� ���

�� ��� �� ����� � ����� "�!���3! �� ���� �3 ������� �! 3(��3!�� �!����

�3�(3!�!� ���! �� �� !����� �� ��! �����

+� ,� �"�� �-���� ����������

H��! ���4� ����� ���3� �! � ���� ��������� ����� � ��������� �!���3!�<���3!

(�3�3�3� �� ������ !����� �! 3���� �3 /����!��� �3�� ���� �3!�����!� �!� ���� ������!���

��� ����3! "3� ���� �� � �(����� �������3! ������ ������� ����� �� ����� �� (�3����� ���!� ��/��� (��3��� ���4 �� �����!/ "3� � ���3���� ���� � � �3��� (��3��� ���4� ��� ���! /3��

3" ��������� �!���3!�<���3! (�3�3�3�� �� �3 �3�!� ����� �������3!� �""����)�� ���������!/

� -� �%�� � $��(��' ����� 3� 5� "3� ���� ���4 ����� ��! �� �!��3����� �!�3 ���

)�'��� �3 �� 3" �!���"��� "�!���3!� �� ��� !3!���������� ��)���

-8%F,28% �%�8��, % 8,#EF �D�

Page 12: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

"��������� ����� ����� (�3�3�3�� �3��)�� �(����� 3!� ������� �!���3!�<���3! ��3!/

���� ���4� ����� �� �!��";���!� "3� � "�����3�4 3! ����� ��!���3� �!� 3(��3!��

�3�(3!�!�� ����� ���3� 3�>����� ���� �����3! (����!�� )������3!� 3" ��3 �����4!3�!

��������� �!���3!�<���3! (�3�3�3�� ��� ���3��� +����!/ ��3�3�3� 6�+�7 6�� �� ��� �??�7

�!� ��� +����!/ ���(�3�� ��3�3�3� 6+�7 6��>4���� �� ��� �?B?7 ����� ��)� ���!

���(��� �! 3���� �3 �� ���!�(���!�� ���� � �! �((������3! �3�(3!�!�� ������

��!���3� 3� 3(��3!���

," � ����� �� ���!/ �3�� � �!���3!�<���3! (�3�3�3� �!� � �3�� 3" ����4 ������!/

��/3����� ��� ����4 ��/3����� ���� ��4� �!�3 ���3�!� ��� ��3�4�!/ "���3�� ������� �����

"���3�� �3���! ��� ����4 ���� �)������� "3� ���� ���4� $�)�� �� ��� ��3� �3� ��3�4�!/

"���3�� ��! �� �!��3����� �! ��� ����4����� �3�(�����3! �! 3���� �3 ��"�� ������ ���

�)������� ����4 �! ������ ���!/ ��� �+� 3� +� 6$�)�� �� ��� �??�7� ,! (��������� ���

������� ��3�4�!/ "���3� 63� $����7 "3� ���� ���4 � �� �!��3����� �! 3���� �3 �� ����������"�3� ��� ���4 �N� ����4� ��� )���� 3" $���� �� �3�!��� � 5� ��� �� �� �� �!�������

�(����� ��!�� ���4� ��� !3� ����� �� ����� �3�������� ��3�4�!/ �������3!� ,! 6$�)�� �� ���

�??�7 �� �� ���3 ������ ���� �" � �3"� ���4 ��!�� �3 �3�4 � ����5 �� ��! 3!� �3 �3 �" ���

��!/�� 3" ��� �������� �����3! �� ��!�� �3 �5����� �� !3� �3!/�� ���! ��� ����4 �)������� "3�

���� ���4� ���� �� � )���� ���� �3 �!���� ���� ���� ���4� ���� !3� �� >�3(����<�� � ��� �3"�

���4N� �������� �����3!� =3��)�� ��� ���� �3�� !3� �5(������ ������� ��� ���� �! ����� ���

����5 ��� ������ ���! �3�4�� � �!3���� 6����7 ���4L �" ��� �3"� ���4 �� ���3��� �3 �!���

��� �������� �����3! ���! ���� �� !3� �� �3!�����!�� ��������G 3! ��� �3!���� �" ��� �3�4

�� ��!��� ��� �3"� ���4 ��� �3 �� ��3�4�� ��� ���! ��� �!�������3!� ������! ��� ����4

��/3����� �!� ��� �!���3!�<���3! (�3�3�3� ���3�� ���� �3�� �3�(������� ���!

(����!��� �! ���� �3�4� ��� ��3 �����!���� !3� (����!��� ������� ����� �������

���� ������ ��� ��� ���������� �� ��� ��� ������ �

��4�!/ �!�3 ���3�!� ��� ��������������� 3" �3�� ��� "�����3�4 �!� ��� -��8 ��!�����

����� (����!��� �! (��)�3�� �����3!� ��� �+� �!� +� ��)� ���! ������/!�� �! 3���� �3

�� �!��3����� �3 ��� ������ 23�� (�3�3�3�� ��)� ���! ���(��� �! � ������� "����3! �

�((��!/ ��� "3��3��!/ �����L

� ��� (��3��� �����!/ 3" ���� ����5 �� ���������� �� ��� (��3��� 3" ��� ��/���� (��3���

���4 �! ����� �! �3�(3!�!� ���� ���� ����5�

� 5� "���3�� ��� ���������� �! ��� �������3!�� "����3! ��� � �3!������!/ 3!� ��� �3!/���

�������� �����3! ���3!/�!/ �3 ������� �3�(3!�!�� 3" ��� �3��� (��3��� ���4� ������! ��3�4 ���4 ��

� ��� ;������)�� ��������� (�3)���� ��� ��!���3� �3�(3!�!�� ���� ��� 3��/�!�� �3�4

�!� �!�3�4 3(�����3!� >��� �3!������!/ ���� ���! � �3�(3!�!� �� ��3�4�� ��� ���4 ��

���3!/� �3 �� ���3 ��3�4���

�D� �%���� %� �8�

Page 13: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

� ��� ;������)�� ��������� ���3 �!������� �3�(���� ��� $���� "���3�� �!� ���� ���������! ��� �)������������4 �3�(�����3!� ����� "���3�� ��� ����#������� �3�(���� ��!�� ��� �3�(�����3! 3" ����� �5��� )���� �!)3�)�� � /���� ���� 3" 3)�������

� ��� ���3!����)�� ��������� (�3)���� ��� 3(��3!�� �3�(3!�!�� ���� ������ �3 ����5���

H��! 3!� 3" ����� �3�(3!�!�� ��!�� �3 �3�4 � ����5 �� ���� �(���" �3�� ��� ����5

�!� ��� ��!/�� 3" ��� �������� �����3! �� ��!�� �3 �!���� ���! ��� ��������� �((���� ���

"3��3��!/ ����L QQ��� �3�4 �� /��!��� �" ��� ��!/�� 3" ��� �������� �����3! �� ������� ���!

��� �����!�!/ ����4 �!���)�� �� ��� ����5 �� !3� �3�4��G 3�������� ��� �3�4 �� ��!����!� ��� �3�(3!�!� �� 4�����NN�

,� �� ��(3���!� �3 !3�� ���� ��� ����/! ������3! 3" 4����!/ � �3�(3!�!� ���! � �3�4

�� ��!��� ��� ���! ���� �! 3���� �3 4��( ��� �!�������3!� ������! ��� ����4 ������!/

��/3����� �!� ��� �!���3!�<���3! (�3�3�3� �� � ����3!���� ��)�� 3" ���(����� �!�

�";���!�� -�������3�� ���� ���� �� !3� �3 (���������� ��4�!/ �!�3 ���3�!� ��3 "����L

;��� � �3�(3!�!� ���� ��� !3� ;!����� ��� �5�����3! � ��� �!� 3" ��� ����4 �!���)��

��� � ��/� ��4����33� 3" ���!/ 4����� �)�! �" �� ��� !3� ��9������ �! ����5 �3�4�

��3!� ��� (3��� 3" ��� ���3!����)�� ��������� �� �3!����� !3� �5�����!/ � ����

�3�(3!�!� ���� ��!�� �3 �3�4 � ����5 ����� �� ������ �3�4���

-�/��� � (����!�� ��� ��� 3" �!���"��� "�!���3!� ������� �3 �!���3!�<���3!� ,! ��� ;/���

��� "�!���3!� ���� ��� �� (��;5 ��� �)������� �� ��� ��������� ��)�� ����� ��� 3����� ���

�)������� �� ��� !3!���������� ��)��� ��� (�3�3�3� ���� � � (��������� �((������3! ��

������� �� ��� �!�����<���3! ���/� � �����!/ ������ �� ���� ��� � ��� 3�

�� ���� ��� �� ���G ��� ���� 3" ��� �!���"��� "�!���3!� ��� �!��(�!��!� "�3� ���

(�3�3�3� ����� ���5�� ��� ������� �� ��� ��������� ��)�� � �����!/ �� ���� ������ ��

��� �!������<���3! ����� ,� �� �3��� !3��!/ ���� ��� ����5 ���!��;�� �� /�)�! �3 6!3� �����!��

"�3�7 ��� "�!���3!� ���� ���!��;�� �� ������� �� ����/! ���� �!� ��!�� ��� ��� ��

�����/��"3����� ���! �3�� ��)��� 3" ��� �((������3! ��� ��(����!���� ����� ��� ��3 ����

3" �3�4 �!� �!�3�4 3(�����3!� 3!� "3� ��!���3� �!� ��� 3���� "3� 3(��3!�� �3�(3!�!��

���� ��� (�3)���� � ��� �3����(3!��!/ ���������� �� ������ ��3)� 3(��3!�� �3�(3!�!��

���� �(���" ��� ������3! 3" ��� �������� �����3! ���! ��� ���� ��� ���� ���� "�!���3!�

���5�� ��� ������� � �����!/ ��� �� ���� ������� "�!���3! �� ��� �!� 3" ���

�((������3!�

)�'��� 63 �� 3" �!���3!�<���3! �!���"��� "�!���3!��

-8%F,28% �%�8��, % 8,#EF �D�

Page 14: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

���� !��������� �� ��� ��� ������ �

2 "3��3��!/ ��� ����� (����!��� ��3)� �3�� (�3�3�3�� ��)� ���! ���(��� �3 �� )����

�3����3!� �����! ��� "�����3�4 ���3��!/ ��� �(�� 3" �3�(3!�!�� �3 ��"�� �����

���3�� =3��)�� ����� ��""���!� ��!����� ����)�3� ����� �3 � ��/!�;��!� ��""���!�� �!

(��"3���!�� ������! ���� ����� ��! �� �������<�� �! ��3 ���! (3�!��L

�� ��� +� �� � ���� ���(��� �!� �3�� �";���!� ��/3������ 23�� ��� �3�4 �!� �!�3�4

3(�����3!� ��)� � �3�� 3" 76�7 ����� ��� �3����(3!��!/ �+� 3(�����3!� ��)� � �3��3" 7 8! ���� 8 ���!/ ��� !����� 3" �((������3! ����5��� ��� +� ������ (�3��������� 3)������ �� ��! ���� ��4�!/ �!�3 ���3�!� ���3 ���� 3!� 3" ��� ���3�������

(�3(������ �� ���� �� (�3����� "���� �3!��5� �������� ���! ��� �+��

�� ��� +� ��� �! �!�������!/ (�3(��� ���� ��/�� �� ������ ����� $��(��'� ���� ��"����3 ��� "��� ���� � ���4 ��! 3!� �� ��3�4�� "�3� ��� �3��!� �� �� �������� �3 ���

�3��!� �� ������ �5�����3! �!� ���3 ���� � �3�4 ��9���� ���� � � ���4 �� ��-�� /��!���� ���� ���� ��3�4�!/ "������ ��� � ��3"3�� ��)�!��/�� -���� �� ����� �3 �������

$���� "���3�� ������� ���! � ���4 ������ �5�����3! ��� "���3� ��! �� ��"�� ��� �3 <��3�!��� ��� �!� 3" ��� �������G �!� ��)�!/ ������� $���� "���3�� ����� �3 �3�� ����4�)��������

��� ���3!� ��)�!��/� �� ���� ���� "������ (�3����� � ���� ���������)� �3�4 ���� "3�

��� ���3!����)�� ��������� ������� ��� (�3������� 3" � ����5 ���!/ �3�4�� ���! �!

3(��3!�� �3�(3!�!� �����(�� �3 �3�4 �� �� ������� �3 � )�� ���� �������3!� =�!�� �!

��� ��/���� ���� ��� 3!� ����3! � ����� �! 3(��3!�� �3�(3!�!� �� ��!��� � �3�4 ��

���� �� �3�� !3� ��)� �!3�/� ����4 ���� �3 �3�(���� ��� �������� �����3!�

.)����� ����3�/� ��� �+� �!� +� (����!� ������� ���3������� (�3(������ 6��� (��)�!�

����! ��3�4�!/ �!� �����3�4 �������3!�7 �!� �3�� 3��/�!��� ��� ���� �3�������� ��3�4�!/

"���3�� ��� +� �� ������ � ���� �3�� �((�3(����� (�3�3�3� "3� ���� ������������� ���

+� ��/3����� �5������ �3�� �";���!� ����)�3� ���� "���� �3!��5� �������� �!� ����

3)������ �� ���� �3�4 �!� �!�3�4 3(�����3!� ��� +� ��/3����� ���3 (�3����� ������

��������!/ (3����������� "3� ��� 3(��3!�� �3�(3!�!�� (�3)���!/ �3�� ����4 ���� �)�������

�!� �! (������� � ���� ���������)� �3�4 ����� � �3�� �������� ��������3! 3" �����

�!���3!�<���3! ����3�� ��! �� "3�!� �! 6������� �!� *���O&��-3�!�� �???7�

.� ����������� ���

%9����3! 6�7 ��3�� ��� ���3������� "��������� ���� "3� ��������� ������ ���!/ ��� ;5��

(��3��� (����(��)� ��������!/ ������ �� ��! ���� 6������ �� ��� �??�7� ��� �9����3!

�3�(���� ��� �3�������� ���(3!�� ���� "3� ���4 � �*�� � �3�)�!/ � �������!�� �9����3!�!�����!/ ���4 �N� -��� ���� ���4 �N� �3�������� ��3�4�!/ ���� �5�� �!� ��� ��� 3" ����!���"���!�� 6�5�����3! ����7 (�3����� � ���� ��/��� (��3��� ���4 9 6�!���� ��� ���"���3� +9 ��!3��� ��� (���3� 3" ���4 97� ," ��� �3�������� ���(3!�� ���� 3" ���� �((������3!

�DC �%���� %� �8�

Page 15: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

���4 � �� �3��� ���! 3� �9��� �3 ��� ������!� ���� ��� �((������3! �� (�3)�! �3 ������������� �!� ��!�� �� �� /����!�����

*�� �� � �� � 5� �

��� �9� �

*��

+9

� ��9 ���

�� ������ �! ����3! ��� ���� ���4N� -��� �� �3�(���� ���� �� ��� ��� 3" ��� -���N� 3"��� ��� ��!���3� �3�(3!�!��� ���� �� "3����� �5(������ � %9����3! 6�7 ����� ��������!3��� ��� ��� 3" ��!���3� �3�(3!�!�� 3" ���4 � �!� ��9 ��(����!�� ��� -��� 3" ��� (����3�(3!�!� �����! ���4 ��

�� ��

�( ���������( ���

��� ���� ��3)� ��� ���! ��������� �� �&�������� �! ��� ��!�� ���� �� ����������(��;����3!� ����� �3 !3� �3�� �! ���� �((������3!�� ,! (��������� �� �3�� !3� �!����� ���

��(��� 3" ��� 4��!�� �5�����3! 63� 4��!�� 3)������7 �! ���4 "��������� �3!����3!��

=3��)�� ���� ��(��� ��! ��/!�;��!�� ����� ��� �3�������� �3!����3!� 3" ���4�� �����"3��

�! 3���� �3 �� �������� 6�!� ���"��7 ��� ���� ���� �� �!��!��� � �!�����!/ ��� �5���

�����' $�&���� 3" ��� ������ 4��!�� ��� �((������3! ���� �� �5�����!/ 3!����� �����3! (����!�� ��� ������� "��������� ���� "3� ��� -��8 ��!����� ��((3��

������ �� ��� !3!���������� ��)�� �3�(����� ��!� �! ����4 ���� ��� ���� ���� 3!� ��4�

�!�3 ���3�!� ��� ��������� ��)�� �!� ��� ���� (����� ��"��� ���� �3 ��� ;������)������������ H����! ��� "3��3��!/ ��������3! �!� "3� ��� ��4� 3" ������ �� ���� ;��� ��

������� ���� ��� 4��!�� �����" �� �5������ ���� ��� �!�����(�� �!����� 6���� �� ��! ��

(����(��� �� �! ����7� ���� �����(��3! ���3�� ��� 3)������ ������� ������� ���� �

(��������� ���4 �3 �� �3!������� �� ���!/ �5������ �� ���� ���4N� (��3���� =�!�� ����

3)������ ��! �� �!��3����� �����! ��� ���� � ����!/ �� �3 ��� ���4N� -��� ��� ���

"3��3��!/ �����3!� ���� �5���!� �!� �!����� ���� �3���� 3" 3)������ �!�3 �� ����

���������!/ ��� ���� -��� ��!3��� � ������ � ��� �����(��3! 3" ��� 4��!�� ���!/ �5������

���� �!�����(�� �!����� ���� �� ���3)�� �� ��� �!� 3" ��� �����3!�

"��� #���� ������ ������

��� ;��� �(����� "������ 3" ��� 4��!�� ����� ���� �� �3!������� �� ���� �� �� �������������� 6�� 3((3���� 3" ���( �����7� ���� ���!� ���� ������ ���! (�3����!/ �! �!�����(� ������ ��3�4 ���4 ��� ����� �� (�3/������ �3 �!�����(� 3!� �� ��/!�;��!� ���� �)�!�� "3�

��� ��������� ��)���

��� 4��!�� ��� ���! ����/!�� �3 ��)� � �3�3/�!�3�� �((�3��� �3 ��!���!/ ��� ���

�)�!�� ���� ���� �3 ��� 4��!��N� �5�����3! ���� �� �! �������� �!�����(� ��!���!/ �!� �!

����� ����� ,! ���� ��!�� ��� �3�� �����!/ ���� ���� �(� 3" �)�!� �� ���������� �! ���

"3��3��!/ ����� ���(�L

-8%F,28% �%�8��, % 8,#EF �D�

Page 16: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

�� � ���� �3 ��� �� � ���� "�!���3!� ���� "�!���3! �(����� ��� ����� ���� �!� ���

���4�N �!���� ����!/ ���������� 6����� ����4 ���� �5�����3! ��"� �����!� ��3�4�!/

"���3� ����7� ,� ���3 �������� ���4� ��3�� (���3�� ��)� ���! ������� �!� ��3���

(�3;��!/ �!"3�����3! ��3�� ���4��

�� ��� �3�� �����!/ ���� ��� (��������� �)�!� (�3������ ���� �3�� �(����� �3��;�� ���

��������!/ �3!����3!� "3� ��� ��!!�!/ ���4 �!�@3� "3� 3���� ���4��

�� � ���� �3 ��� �� �������� "�!���3!� ��� ���4 6�!� �3�(3!�!�7 �3 �� �5������ !�5�

��� ������� �����! ���� "�!���3!� ," ��� !�� �������� ���4 �� ��� ���� �� ��� ��!!�!/

��"3�� ��� �)�!� ��� (�3����� ��� ���� ���(� �!�� ��4�!/ ���� ���4 ������

�5�����3!� .�������� � �3!��5� ������ �� (�3����� �3 ��� !�� ��!!�!/ ���4�

��� ����/! ������3! 3" ��)�!/ �3��3! ����� �!� �#�� (3�!�� �����! ��� 4��!�����(��;�� ��� ����!/ ����)�3� �!� ��� ������3! 3" !�� "��������� �3 ��� ����� �""����)��

��4�!/ �� �3�� �������� �!� ������ �3 �!��<��

"��� ��� ����� �� ��������� $��� ���

��� 3!� �!�����(� ���� � ��� -��8 ����� �� ��� ����� �!�����(� ����� ��/!��� ���4

�������� �!� ��� �!��3"�����4 �)�!��

,! ��� �3��� ���� ���� �((������3! ���4 �� �������� �� � ������ 3" � ����� �!�����(� �����

�� �(������ (�3/������ �3 ���� ������� 6�����! ��� !3!��3��� ���� 3!� �!�����(� ��

(�3���� ��� ������� 3" �3�� ���! 3!� ���47� H��! ���� �! �!�����(� 3����� �! ���3�����

�3!��5� ������ �� (�3����� "�3� ��� ������4 ����� ��� �5�����!/ �3 ��� ;������)��

���������N� �!�����(� ��!����� ��� ��!���� 3!� �3!���!� � ���� �3 �� � ���� (��� � ���� �3

�� �������� ������� ��� �3�� �����!/ ���� ��� ������� 3" ���4� �� ������� (����� �!����

��� ;��� "�!���3!� ,! ��� �3��� ���� ��� ��������� ���� ��33�� ���� !�� �������� ���4 �� ���

!�5� �3 �� �5������ ��!�� (�3����!/ � ���3!� �3!��5� ������� ��� �3�� 3" � ���4 �������

��! �����"3�� �� �5(������ ��L

�������� � ����������� � ��(���� � ������

����� ������� �� ��� �3�� 3" � �3!��5� ������ ��(���� ��!3��� ��� �3�� 3" ��� �� � ����

"�!���3! �!� ������ ��!3��� ��� �3�� 3" ��� �� �������� "�!���3!� �!�� ��� ���4� ���

(3��!����� �������� �� ��""���!� ����� ��� ������� �3�� ���� �� ����� �3 ��� -��� 3" �������4 �� %9����3! 6�7 �!��3����� ��� ���������3! 3" ���4 �N� ���� -��� ������� �� .���� "���3������ �� �!��3����� �����! ��� "3��3��!/ �����3!��

������ � �������� ��

�( ���������( ���

��� �!��3"�����4 �)�!� �� (�3����� ���! 8�!�5 ��� ���! �5�����!/ �����! � ����4

�!���)�� �!� ��� ����� ��/!��� ��� �!� 3" ���� �!���)��� ,! ���� ���� ��� ��!���� (��"3���

��� ���� �!)3����3!� �� ��3�� �! ��� ���� 3" � ���4 ������� ������� ��� "��� ���� ����� �� !3

�DD �%���� %� �8�

Page 17: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

����4 �)������� �� �������� �!���� �� �������� �!� ��!�� !3 �(����� ����3!� ���

�5������ ������! �3�� ������ ��� �!�������!/ "������ ��3�� ���� �)�!� �� ���� �� �� !3�

!������� �3 �!����� ��� �3�� �! %9����3! 6�7� ��� ����3! �� ���� ��!�� ���� �)�!� �� 3!�

(�3����� �" 8�!�5 ��� ���! �5�����!/ �! ����4 ���� ��� ������� �3�� �� �� �$������"�3� ��� �)������� ����4 �� ��� ��/�!!�!/ 3" ��� ����4 �!���)��� ,! 3���� �3��� ��� �3��

�����!/ ���� ���� �)�!� ��! �� �3!������� �� ���!/ �5������ �! ����4 ����G ��!�� �� �� !3�

(��� 3" ��� ���4N� -����

"�%� ��� ����� �� ��� ���� �&���� !� �

H����! ��� -��8 ����� ���� �((������3! ���4 �� �5������ � � ������4 ���� �!���!���

�5������ ��� "�!���3! �� ���� ����� � ���(��;�� )����3! 3" ���� "�!���3! �� (����!���

�! -�/��� D� ��� "�!���3! �!������ ����� �������� ����� ����� �! ��� ��!�� ���� ��� ��������! �3 ��� ����� (�3/������L �� ��� ��� � ���� �� ������ �"��� ��� �5�����3! 3"

���� ��!���3� �3�(3!�!� �! 3���� �3 ��������� ��� �3�(3!�!�N� '��� ����GC

�� �� � ����� �� ������ �3 ����4 �" ��� 3(��3!�� �3�(3!�!�� ��! �� �5������G

�� ���� �� ;!����� ��� �����!� ������� 3" ��� ���4� ����� ����� ����� ��� !3�

����������

��� �3�� 3" ��� �� ��� ��� � ���� ����� ���� �!������ ��� ��/���� �3�� 3"

�(����!/ �!� ��������!/ (��� ��� �3�� 3" ��� �3�� ������� �(����!/ ��� /��! ����

��/��! �3���� =3��)�� �� �3�� !3� �!����� �! �3!��5� ������ ������� ���� ����� ���� ��

)�'��� �3 ��� �� ���� ���� "�!���3!�

-8%F,28% �%�8��, % 8,#EF �D�

Page 18: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

������� �!)34�� � ��� ��!!�!/ ���4 �!� �� ��!!3� (�3���� � ���!/� �! ��� �������� ���4 �3

�� ��! !�5�L

�/��! � ��(���� � �/��! �3�� � ������

=3��)�� ��� �� �� � ����� �!� �� ���� �� ����� ��! ������� (�3���� � ���!/�

�! ��� ��!!�!/ ���4L �� � ������ 3" ��� "3���� ���� ��� �� �������� "�!���3! �� ������

�3�� �)������� ����4 �!� ���! ��! 8�!�5 (�3����!/ � �3!��5� ������� ��� ������ ����

����� (�3����� � �3!��5� ������ ������� �� ����� ��� �5�����3! 3" ��� �����!/ ���4 �!���

��� !�5� (���3��� �������� �� � ������ ����� ���(����)� �3��� ��! �� �5(������ �L

�3(� � ��(���� � �3(� �3�� � ������ � �������

��!� � ��(���� � ��!� �3�� � ������ � �������

�!�� ����� �3��� ��(� �3����� 3" 3)������ ����� ��� ������� ������� �3 ����

�((������3! ���4 � ��� ���� �� ����� �3 ��� ���������3! 3" ������ �! %9����3! 6�7� ���

�������!/ "3����� �� ��3�! �! %9����3! 6C7�

������ � �������� � ��!� ��

�( ����������( � �/��!� �

�����������

�3(� �C�

"��� ��� ����� �� '(� ���� �&���� !� �

��� �����!� ��((3�� (�3)���� � -��8 3!� �!������ ����� �#������ ����� �����

�)������� �� ��� ��������� ��)��L ��� �� ���� ���� �� ���� ����� �!�

�� ���� �� ����� ������� "�!���3!�� ����� ���(����)� �3�������� �3��� ���

���������� � ��� "3��3��!/ ������ #3�� ���� ��� ������ ��3�4 �3�� �!� ��!�3�4 �3�� �3��� ���3��(�!� 3! ��� (��������� (�3�3�3� �����

��3�4 ���(���� � ��3�4 �3�� � ������ 6+�7

��(���� � ��3�4 �3�� � ������ � ������� 6�+�7

���!�3�4 ���(���� � ��!�3�4 �3�� � ������ � �������

��!���� ���(���� � �����(� ���� � ������ � �������

=3��)�� ����� ����� "���3�� ���� !3� �� ����� �3 ��� �3�(�����3! 3" ������ ������� �� ��

������� ���� ��� ��)� ������ ���! �3!������� �! ��� �3�� ��( 3" ��� ��!���3�

�3�(3!�!�� ���!/ ����� ,! (��������� ��� �3�4 �!� �!�3�4 �3��� ��� ��((3��� �3 ��

�!������ �! ��� �3�� 3" ���� �������� �����3! �� �� �� ���3 ��9����� ���! �3�(���!/ ��� 5�

"���3���

"��� ���� ')������

��� �����(��3! ���� ��� 4��!�� ��! �� (����(��� �� �! ���� �� !3� ���3)��� ,! -��8

��� ;������)�� ��������� ����� ��!� ���� ��� �!�����(�� �������� �� � "3�� 3" �!���!��

�DB �%���� %� �8�

Page 19: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

�!���3!�<���3!� ��� �������3!�� �((�3��� �3 �3����!/ ���� "������ �� � �3!������!/ �!

�5��� ���4 �5�����!/ ��� 4��!��N� �3���� �3�� �� ��� ��/���� (��3���� =3��)�� ����� �� �

��""���!� �((�3��� �3 �3��� ���� 6�� (����!��� �! *���O&��-3�!�� �� ��� �??�7L ��� 4��!��

�3���� �3�� �����!/ ���� � (��������� �)�!� ��! �� �3!������� �3 �� �5������ �� ���

(��3��� ��)�� 3" ��� ���4 (�3)34�!/ ��� �)�!� 6�� �3!������� �3 "��7 ���� � �� ������ 3" �(3��!���� ���� �! �!3���� ���4N� �������� ���� �� (�3����� ���! � ���4 ��� �3 �� ���������5���� ���! ��� ;������)�� ��������� �� ��!!�!/ ���� �!�����(�� ��������G �! ���� �������3!

��� ����� �!�����(� ���� �� (�3����� ��/�� �"��� ��� ��������� ;!����� ��� �3�� �!� �!�����

��� �!�����(�� �/��!� ��� �!��3"�����4 �)�!� ��!!3� �� ������ ������� �! ���� ���� ���

�!�����(� �� ����� (�3����� ����� 8�!�5 �� ��!!�!/�

��� ���� �! ��� ���4N� ������� ��! �� �3����� �����! ��� ���� �� ����� � 9����� 6�������� ��� �??�7 ����� �� !3����� ��!3��� � :�� -3� �5��(�� ��� ��������� ������� >������3!��(� �� ���� �3 �3��� �������3!� 3! ����� ���4 (���3�� ��� !3� �5��� �����(��� 3" ���

��3�4 ����� ��� "3������ "3� ��� ;!�� ���� ��� �!��3����� �! %9����3! 6�7 ����� ��� �����

������ �!� �����9 ��� ���������� ���3���!/ �3 %9����3! 6C7� #3�� ���� ��� ���� ��!� ��� ���!���������� "�3� ��� �9����3! ���������!/ *� ������� � ��� ���� ���� ����� ���� ������

�5�����!/ ��� ���4 ��� ������� �!����

:� � ��5�����������/��!��3(����!����3�4���!�3�4���!�����

*�� �� � ������ � ��!� � 5� �

��� �9� �

*�� � :�

+9

� ������9

���4 � �� ����������� �" *� � :� � �� 6�7

"�"� '(������� �����������

���� �����3! (����!�� �3�� �5(�����!��� ������� 3" 4��!�� 3)������ ���������!��� ���

���������!�� ��)� ���! 3����!�� � ���!� 3" �! �!��/����� ����/ �!� (�3;��!/

�����!��� �)������� �! -��8� ���� �����!��� �3!����� 3" ��3 (����L �� ��!����� ���

;������)�� ��������� �3������ ��� ���� ��3�� ��� �)�!�� ���!/ (�3����� �!� ��3��� ��� ����

�! ������ ���3�� �"��� ��� �((������3! ��� ���! ��3((�� �3�� �33�� ���� ���� ���3�

���� �!� ���! (�3���� ��� ��� ���� �((�3(������ �!��<�!/ ��� ���4� �!� 4��!�� �5�����3!

����� �� ���� �� 3���� ���"�� ����!/ (��������� ���� �� ��� ��3�!� 3" ����4 ����

��������� "3� ���� 3(��3!�� �3�(3!�!�� ��� ������ ���������!�� (����!��� ����

�3����(3!� �3 ��)���� �5�����3!� 3" ����� ���(�� �((������3!� 6�3!���!�!/ C B �!� ��

���4� ���(����)��7 3! � �3�(���� ���� � ��� =<� ��!���� ,,, (�3����3� �!�

��B �/����� 3" ���3��

��� ���������!�� �! ����� � ��3� ��� ��!���� ��5���� �)���/� �!� )����!��

)����� 3" ���� "���3� �!��3����� �! ��� "��������� ���� ��3)�� ����� )����� ��� ��������

�! ���( ���� 3!� ���4 ���!/ �9��� �3 B�B !� 6��� ����3! �7� ��� ��� ���������!�� "3���3�4 �!� ��!�3�4 �3����(3!� �3 ��� +�� ��� ���! ������ �3 �� !3��� ���� �� ���� ����3�������� 3)������ (�� ����� ���� 3� �!�����(� ��!���� �! -��8 �� ���� ���! �� �� 3! ���/���� �+�

-8%F,28% �%�8��, % 8,#EF �D?

Page 20: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

/� 0� ������ � � � ������ 1��#

���� (�(�� ��� (����!��� �3�� � "�����3�4 ����� �� �((�3(����� "3� ��)��3(�!/ -��

�!� ��� �3����(3!��!/ ��!����� ��((3�� ����� ����� ��� ���! ��(����!��� �

�!��!��!/ ��� 3��/�!�� ��(��������� 3" ���8�!�5� ��� "�����3�4 (�3(3��� ������!/ ����

���4 �� � ��9��!�� 3" ��!���3� �!� 3(��3!�� �3�(3!�!�� �!� ��(�����!/ ����� �5�����3!

�! ��3 ��������!/ ��)���� �!���3� �3�(3!�!�� ��� ��������� �� ��� ��������� ��)�� � �

;5�� (��3��� (����(��)� (3��� ����� /����!���� ����� �5�����3!� .(��3!�� �3�(3!�!��

��� ��������� �� ��� !3!���������� ��)�� � � ������������ (3��� ����� ���3�� "3� �

:�5���� �!� ���(��)� ����)�3� �� ��! ���� �!� ��5���<�� ��� ���(3!�� 9����� �����)��

� ��!���3� �3�(3!�!��� ��� "�����3�4 �3�� !3� ��(3�� �! ���������3! ��3�� ���

!����� �!� �(� 3" �3�(3!�!�� ���3!/�!/ �3 ���� �((������3! ���4 3� ��3�� ��� (���������

(3��� (�3)���� �� ��� !3!���������� ��)��� ��� ����/!�� ���� ��� � /���� ��/��� 3"

:�5������ �! ������!/ ��� �((������3! ���3 ��)�!/ ��� ������ �3 ���(� ��� ����� �3 ���

(��������� ��������������� 3" ��� (�3���� ���!/ �3�)���

��� ��!����� ����� ������ -��8 ��� ���! ����"��� ����/!�� �!� ��(����!��� �3

���� �� �� �� (���������� �!� �";���!� �� ��� 3��/�!�� ���8�!�5 ����� ��� 3""���!/ � "����

�3�� �3(���������� ��((3��� ,�� 3)������ ��� ���! �!��3����� �! ��� ���3������� "���������

���� �������!/ �! � �3�(���� ���� ����� ��� ���3 ���! (����!���� 2 �((��!/ ���� �3�(����

���� ��� ����/!�� �� ���� �3 ��"�� /����!��� � ��������� �((������3! ��!!�!/ 3! ��� -��8

������ ��� 3)������ )����� "3� � (��������� �������� (���"3�� ��)� ���3 ���!

�!��3����� ��3��!/ �3� �";���!�� -��8 ��! (��"3�� 3! � ��/���� �+�

H3�4 �! (�3/���� �!������ ��� ��)��3(��!� 3" � /��(����� �33� �! 3���� �3 ��4� ���

��)��3(��!� 3" � ��������� �((������3! �����! -��8 ������� �!3���� ��!� 3" �������� �� �3

��)��3( � ������ 3" "�!���3!� �3!���!�!/ � ��� 3" ���!���� ���3!����)�� ��������!/

(3������� -�!��� ��!�� ��� "�����3�4 ������ 3! ��� �3����� �3�(�����3! 3" ���4 -��� ����������3! �!� ��!���!/ 3" (3��!���� ��!����� ����!/ �5��(��3!� ��� ���3 �!�������!/ ������

����� ��� ���!/ ����������

+�$�� 23 %5�����3! ���������!�� 3" ��� 4��!�� 3)�������

C ���4� B ���4� �� ���4�

�! �5 �)/ 0�� �! �5 �)/ 0�� �! �5 �)/ 0��

�������� D �� ����� ���� � �� ����B ���C B �C ����C ��CB

�/��! C �� ���� ���? � �� B��� ��C� � �� ?��C ��C�

�3(� � �D ����� ��B� B �B ���DC ���� ? �� ���?� ��D?

��!� � �B ����� ���� B �� ����D ��?� ? �� �D��� D���

��3�4 C ? ���� ��C� C ? ��B� ��CD � �� B�C� ����

��!�3�4 C ? ��D� ���� C �� ��DD ���� � �� B��? ��C�

��!���� � �� ���� ����C � �� D�?B ���?B � �� ��DB ����B

��� �%���� %� �8�

Page 21: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

��# �����)�� ��

H� ��!� �3 ���!4 0���3� M3���4�! "3� ��� ��((3�� �!� )������� ��//����3!� �!� �����4�

����!/ ��� ��)��3(��!� 3" ���� �3�4�

2����

�� �! ��/3����� �� ���� �3 �� �!�3�!��� ���! ��� �3�������� �5�����3! ���� ��!!3� �� ���������� 3� �� �� �3

(���������� ���� !3 ������������� ���� ���� /����!��� ���

�� ���� �����3! ��������� ���8�!�5 0� 6)����3! �7 ����� �� ��� ���� 3" ��� -��8 ������

�� ���� �����/� 9���� ��! ���3 �� ���� �3 �!"3�� ��� ��������� ��3�� 3���� ��/!�;��!� �!���� ���� 6��/� ���

�����!� ������ 3" ��� �!)��3!��!�7�

C� H��! � ���� ���4 �3!����� ���� �5�����3! ���� ���! ��� /����!���� -��� ��� ���� ��"� ��! �� ��������� ������4 ���� "3� ���� ���4 �!� ��� �3��� (��3��� ���4�� ���� ���� �� 4!3�! �� /��! ���� 6$�)�� �� ��� �??�7�

��&��� ���

������ #� +� 2��!� �� $�)�� �� ��!���� �� �!� H����!/� 1� �??�� -�5�� (��3��� (����(��)� ��������!/L

�! ����3����� (���(����)�� *���%+��� �� ��� BL �����?B������� #� + 2��!� �� $�)�� �� ,� ��3��;��� $� 1� �!� H����!/� �� �??D� ,!�3�(3����!/ 3(��3!�� �3"�����

�3�(3!�!�� �!�3 ���� ��������� ������� ���-��� ;�'�������' :����� � ((� �����C��23������ *� �??�� �3���� (��3������L ��((3���!/ ��������� �3�(���!/ �����! /�!�����(��(3�� 3(�����!/ �������

���$� $���������3! $�(�����!� 3" +3�(���� ���!�� E!�)����� 3" #3��� +��3��!��

+��(�!��� 2� �3��! � 0������3� #� �!� R�������! � �??�� ��� ��F ��������� �������� "3� H�!�3��

#�� +&� ��;8�< =��- 8+ =�( &� �������' ��/��� ����B�$�)�� �� ,� ��!���� �� H� �!� 2��!� �� �??�� �������!/ ���4 ���� �! -�5�� ���3��� �����(��)� ������

�������' 3 *���%+��� �� ��� ���� ��� �����/��$����� #3��� +��3��!� $������� ��� ((� ������� ,%%% +3�(���� 3���� ������

$�)�� �� ,� �??C� �((�35����� ���4 �����!/ ��/3������ "3� -�5�� ���3��� ������(��)� ������� ���������

����� �������� *�3�(� $�(�����!� 3" +3�(���� ���!��� E!�)����� 3" M3�4 E�� ��(3�� !����� M+�?��

����

$�)�� �� ,� �!� 2��!� �� �??�� .(����� (��3��� ����/!��!� "3� �(���3��� ���4� ���� ;�� ������!�� �! ;5��

(��3���� ��������� ���� ��' ,����� ��6�7L �C?���C�$��! �� �!� 23�� � �??B� �! �!����� 3" �������(�!��!� (��!!�!/� ,! �������' � �&� >�& 8������

��������� � /���1���� �������'���� ((� C?��C �� ���� �!!���3�� ��/��� �?BB�%�(�!3�� �� ������� �� *���O&��-3�!�� �� �??B� � (���������� �3���� "3� �����!/ ���3� �! ���8�!�5� ���3

� �&� �4�& �)/���)�� =�( &� � *���%+��� ��'������' =*+�?@A!� ��!�3� +��!��-����� �� �??B� 2�����!/ $���������� ��������� ����� ���� H�!�3�� #� �!� �!����� ��������� +3�(����

�3�� �(������ �� �??B�

*���O&��-3�!�� �� =����! =� �!� +���(3 �� �??D� �����/��� "3� ��������!/ 3(��3!�� ���4� �! �!�����/�!� �����

���� �!)��3!��!��� :����� � �� ��� /��&�������� C�L �?��C���*���O&��-3�!�� �� ������� �� 23��� 0� �!� +���(3 �� �??�� �!��<�!/ ��� ������������� 3" ���� ���������

����;���� �!�����/�!�� ������� ;�'�������' /��������� � /���1���� �������'���� ��6C7L �D?�����*#E *�!���� ������ 8���!��� *#E 0����3! � 1�!� �??�� ���(L@@����/!��3�/@�3(��"�@/(�������

8����� 0� �����! 1� �!� $��"�� %� �?BB� �((�35����� (�3�����!/ �! ��������� (�3���� �3�)�!/� +&� /�0�'�B��� ?6�7L CC�D��

8�� 1� H� � 8�! �� 1� 8� ��� H� �� M� �� +� +��!/ 1� M� �!� R��3 H� �??�� ��/3������ "3� �������!/

,�(������ �3�(�����3!�� ������� �;;; � �B�DB�

-8%F,28% �%�8��, % 8,#EF ���

Page 22: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

8�4���� =� �!� 2��� $� 8� �?�B� ��� %�� 3(�����!/ ������ +&� 5��� �� ��� +��&����� :����� ��6D7L��C?���BD�

#�����>�! � 6���7 �??�� ,�(������ �!� �((�35����� +3�(�����3!� ������ �������� �����������

��>4���� �� �� 8� �!� 8��3�<4 1� �� �?B?� �! �5(�����!��� �!)����/���3! 3" �!���3!�<���3! (�3�3�3��� ,!

�������' � �&� �;;; =�( &� � *���%+��� 7�������' �� ��� �� �-�-��� � ((� �������� 8� ��>4���� �� �!� 8��3�<4 1� �� �??�� ���3��� �!������!�� (�3�3�3��L �! �((�3��� �3 ���������

�!���3!�<���3!� �;;; +��� ����� � ������� �?6?7L �������B����!43)�� 1� �!� ����������� �� �??�� ��)�!��� �! ��������� ������ ,%%% +3�(���� 3���� ������

������� �� �!� *���O&��-3�!�� �� �???� ��������� !���3!�<���3! ������! ���� �!� �3"� ���4� �! ���8�!�5� ,!

�������' � �&� ��& ������������ ��������� � *���%���� �������' �� ��� �� /��������� *+��/?@@! �3 �((����

H�!��3! �� =� �??�� /���1��� �������'���� ��� %����3!� �����3!�H�����M3���4�!� 0� �???� �! ���8�!�5 ��!�"���3� ,! �������' � �&� 6�& ,���# ;#� �����/� #3��� +��3��!� � �???�

� ���3� ������ �����)�� ��� ���$� ��/��� �!

+3�(���� ���!�� "�3� ��� ����!���� E!�)����� 3"

0���!��� �! ����� =� �� �����!�� � 8������� �! ���

$�(�����!� 3" +3�(���� ���!��� ����!����

E!�)����� 3" 0���!��� �� ���� �� � ������ 3" ���

��������� ����;���� ,!�����/�!�� /�3�(� =�� ��������

�!������� ���!� �!����� ��������� �����

�������!/ ��������� .(�����!/ ����� �!�

��������� ����;���� ,!�����/�!���

� � 4���53���� �� �����)�� ��� ���$� ��/��� �!+3�(���� ���!�� "�3� ��� ����!���� E!�)����� 3"

0���!��� (��! �! �??D� �� �� �����!�� �!

���3����� ��3"���3� �! ��� $�(�����!� 3" +3�(����

���!�� ����!���� E!�)����� 3" 0���!��� �!� �

������ 3" ��� ��������� ����;���� ,!�����/�!��

/�3�(� =�� �������� �!������� ��� "3����� 3! �����

���� ����� �������!/ .(�����!/ ����� �!�

��������� �!3����/��2���� ������

��� �%���� %� �8�

Page 23: Flexible Real-Time Linux*: A Flexible Hard Real-Time Environment

6��� �� 7� 8���� �������� ��� � ������ � ���������� � �� ���� � � � ��� ������ � �������� ���� �� ���� ��� ���� ���� � ���������� ���� ���� ���� � � !" � � � # ������������$� �� ����� ��� � ��������� �� ��������� �� ���� � � � ���� �� �� ��� ���� ����� �������� �� ���� ��� $� �� ��� ���� �� ����������� � �� �������� ���� ��� ���� ����� �������� ���� ���� ���� �� �� � " �� ���%�� ��� ���� �� ��� &���'���� (���)����* ������� �� ������ ����� � ������� +���� �� � �������� �������� ���,���� �� �� � !-� �� ���.��/�� � ��� ��������� � �� / �.�����'%������������ ����'���� / �.�����'%���� �������� ����'���� ��� �'%���� ������� $�� �������� � �������� ����� &���'���� �������� &���'���� (���)����* ������� ��� ������%���� (���)���� * ������� ���� � 0������� � �������

-8%F,28% �%�8��, % 8,#EF ���