Linux Scheduling

13
! " # $ % " % & ’ ! &’! % " " # ( &’! &’! % ) " &*+) $, $ &*+ - $ % $ $ ) $ $ $ . $ ! $ $ . &*+ $ &*+ $ % /, " % &*+ % &’! $ 0$ " % &*+ " $ ! $ " &*+ $ " &*+ $ %

description

Tutorial on Linux Operating System process scheduling techniques.

Transcript of Linux Scheduling

Page 1: Linux Scheduling

��

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

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

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

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

!���������������"������������������#������$��������������%������"���������������������������%� ���������������&� ������'����!���������&'!��%��� �������������������"���������������

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

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

��

����������� �������������� &'!�%������� ��������)�������������� ������"���&*+)������������$���,��������������������$����&*+�������������� ������������������������� ���� �����������������������������������-������������������������$���������� ���%�����$�����

� ��������������������������������$���������������������������������)����$����������$������������������$����������������.��������������������$���������������!� ������$��������������������������������$�����������������.�������������&*+���$���������������������������������������&*+�$����%��/����, ������������"��������������������� ��

��

����������� �������������� �%������������������&*+�����������������%�������&'!����������� �����������������������������$�����

� ���������������0$��������������������������"�����%���������������&*+������������������ ���

� ����������������������"��$�����������������������!���$���������������������������"�����������������&*+���$���������������"���������������&*+���$�������������%����������������

Page 2: Linux Scheduling

��

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

� ����&'!������������ ������������������������� ���������� ��

� ����&'!����������"��������"��������������������������&*+������$���������%���������%������������������������������ ��

� !���&'!����������������"����������������������&*+����"�������

� ������������")�������������������������������%��������������$���� �������������������%������������� %����������������$�������������������������������� ��������&*+��� �����$�����������������������������

� 1������������$�������������&*+�������������������"������� ���������� �����$�������������������������������������

��

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

� �����$������ ���������������%���������0���"�$���2����� � �����%�����������������"������������������������������������ ��������� ���������� �������������������$��������������%������%�������� ������

� ������������$��������������$������ ������������$�����������������������&*+��������"���%����������������������������������&*+��

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

� ��������������� ������������������ ���� ���������$��%�������������"�$��������������$������ �������������������������&*+�����������������������������"�$��%������ ������

��

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

� +�������������������&'!����������%���������������"�������$�������������

������������ �$����3����$������ ������������������4�������������

��������-����������������&*+���� ���������/���������������

������"���&*+, $���������������

Page 3: Linux Scheduling

#

��

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

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

�����������������&'!����� ��������/��������������� ������"���&*+, %�����������������%� ������������-����������������������� ���&'!����������������������$���

� 1� ������� ������������$�������������&*+����������������������������������������%����������%�����-���� ����2���" �����%��

� �������������"����������������������������� ������������������ �������������������������������"�$��������������5������%� ���"�������������� �'������ ���������������������������%� ���"�������2���" ����������������0�����������������������$���� ���$����� ������.�������&*+���$����

� 1� ������� ����"��������"���������� ������$������������������$���$������$��������&*+�$�������������������������������������"�������$������ ��������� ����������������0�������������%��$���2����� ���

��

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

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

�����������������&'!����� ��������/��������������� ������"���&*+, %�����������������%� ������������-����������������������� ���&'!����������������������$���

� 1� ������� ������������$�������������&*+����������������������������������������%�������������� 0$�������-���� ����2���" �����%��

� �������������"����������������������������� ������������������ �������������������������������"�$��������������5������%� ���"�������������� �'������ ��������������������������%� ���"�������2���" ����������������0�����������������������$���� ���$����� ������.�������&*+���$����

� 1� ������� ����"��������"���������� ������$������������������$���$������$��������&*+�$�������������������������������������"�������$������ ��������� ����������������0�������������%��$���2����� ���

��

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

� ������������ �����������������"�����������-����������&'!� ��������������0%��"������

� 1����0%��"�����������%������������������$������������������������������������������������

� '��������)�����0%��������$����� ������������������������������$�������%�� ����������$�����������������������

� !������������������������������������������������� ���$���������������� %��������������������������

� ����� ���������������"�����%���������������������-���"������������������

Page 4: Linux Scheduling

(

��

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

� &'!������������������"�����$��������� �����"���������������%�

���"���������%����������2���" 0 $���2����� � "�������������06��"�������

� !���������� �������"������������������������$��������/�������&*+�����,������&'!����"��������� �������"���������"���������

� 1����������� ��������������$�������$���$�"��������"���������������

�����������������������������������������0 ��$���%��������������������

���"�������������%��� ��������� �������"����������������������&*+�

$������������� ��������� ���������� ��

��

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

� 6����������������� ����������&'!����������������������������������������������������������������������� ��"����"���������������������������0������������

� &'!�� �� ����������������%�������$����������"�4��������"��������������$�����%�����������������������������

� !���$�������������������"�$�����$���$�������$��0����������$�������� ���������������������������������������������0������������"��

� ����� ���������$���2����� � $���������� ����-���"����������������������0������������"������$��0������������"��$���������&*+��� ���� ��������������0������������"���

��

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

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

&'!�����%���� ����������%�������������������(��

� 1����������%��������������������������� ����������$�� �� ����������������������������

� 5�$�������������������������%����������"������2���"������"��������������������

� 1����"��������"�������� ������������������� 1��������� ������������������������������3����������"�������$ ���"��

� 7�������"�����"����������� ���������-��������������6���� �������������� ������

� !����������"������������������������������������������������&*+����������������� �����������������6���� ����$��%�����"������%����������������

Page 5: Linux Scheduling

.

��

�����������������8����������(������������$����������$�����������������������������

� *����&'!����������%�������������������"��������������������� ��

'������ ���������������������������.������%� ���������������������� ��

&'!����������%�������%����������(���������&*+������������ �� 9�$��������)�������������������������.���������������%������������1�$����

.�%������������6��

� +����6�����������������������������������1���������� ����&*+���$���

�����6��

� �������������� ����������� ��������������%� ��������������������%������������������������������������������"��$�����������������

� !��&'!��$���������������������%����$���������.����������&*+��������������1�����6��

� ������������.������������1�$��%����������������� ���1)���� ���"���

$��������������.����������&*+��� ��$��%��������%������������ ���6)��.�

���"���

��

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

�����"����������#�����������������������������%���� ���� �������

7��������������������!&97�2'�'���!&97�2����!&97�2��97��

���������������%��� �� ��������������������������%�������������

������

�����������������������������������%���$������������ �� ���������

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

������������������������������������������������&'!���������%��������

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

1��$��������������������������0�� ������������$����������������������

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

&'!� ������������������0���0�� ���������������������������������

�� ����� ����������������� �����%����������������������$���������

������������$� ��������������������������$���������������������������

����������%�������%���� ���������������������$�����������������$����

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

��

����������

� �������������������&'!��&�����������

!����*�%���������:������������

� �6��������������"��1������

��������������$��������&� ������'����

!���������"�����������;����;<�.�

Page 6: Linux Scheduling

��

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

� ����� ������� ����!� ����� ������������� ������!�*������������"���� ���� ��� ���� ��� %��� ��$���� ����&*+�$��� ������� �� ������������9�$������������������ %������ ���������� �������� �����������$���������������������

�� ��! �����"��������������

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

����� ������� ���� ���� �����������1������� ������ %� �&*+��

� ���#

&*+�������1��������������������������=�����=���������������������������&*+���������$��1����������

�����5+�1��������������

$������&*+�����������=���=��1�������������������$������������� �������������������������������������������������������>������������������������������=�� ���=��1������������������������������ ������$���

��

��������������9���$���

&������6��0%����� ������������

��

�������� ����������� 1� ���0��������������������������� �������� �������$�����$����� ���������������������������������������=�����=���$���������������������������������������������� ��������������

� ���� �������������������� ���������������������������� ���� ���������������������������������� ��� ���%������������� ������

� �������������������������������������������������������������"���

Page 7: Linux Scheduling

��

5+�1���������������9���$����

��

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

� �����

� $ ���%��������

1������0�������� ������� �� ������������� ���� �������������� ������� ������������ �������>��� ������� ������������ �������������� �������� ����-���"� �$������%��$��� ��� ����������$���������"����������������

���� �������� ��$� ������������� �� ����������� ������ ����� �� ������� ������� ������ $��� ����������������� �� ����� ��� �� � ��� �������

1������0�������� ������� &*+��� ���� %� ����� �������� ��������� ���� &*+��

��

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

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

� ����� %�����"���� ��� ������������ ����� � ���������

�� %������'�� ������������ �����%��������� ������� �$�

��������� �����0�������� &*+� �� ���� %� ����"���� ��

���� ���� &*+��

Page 8: Linux Scheduling

<

��

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

� ����� �������� ���� !� ����� ����*�������� ���� �!�*��� ��� ��?�� %������� ����� ��$ ��!� ����� ������������� ����$��"��

� !�*������� �� ������������������!� ��� � �����%�� ��� &*+�������� ���

� ���� ������� ��� �� ���������&*+����$���� ��������� ��� $�� ��� ����� �� ����"���� ����������� ��������� �����

� �� �������� ������� �� ������!� �� ��� @������%��������� ���������%�� �� ����� ���� ����������������� ������� ������ ���� ������ �������� $��� ������������

� 7�� ����&*+������������� ��������������&*+������� ������������ ��������&*+������������������� ��� ����$��"���������

� ����� �� ��� ���� ���� ��� �������� ����� � ��%���� ���� �� �� ��� ��� ����� ����������� ������������-������ �� %� ���� %� ������������� ��������

� �� ����� ����� ������������ ���� ��%� ��� ��� �$� ������ �� ������� �� ������� ���� ���������

� ������� $�������� ������� ����� ����%� �������� %� ��� ����&*+�������� ���������� ������� ��%� ����%� �������� %� ��� ��&*+�������� ���

� �� ������� ������"� � ���� ��%�� ���� ������� ������ ����� ���� � ���� ������������� ������-����� �� ��-���� ��%�� ������������ ������

��

������� ��� ������������� ��������&�

���'���� ��������

� ����� �������� ����!� ����� ������������� �����!�*���� ���$��

� �������������� �������� ���"� ������$�������� �� ��� ��� �������-���� ���������� &*+�

� 1����� &*+������������ ��� ���������%� ��������� ���� �������������������������������� ���-������

� ������������ �������������%� ������� �� �$��� ������ ��������� �������-��������������%� ������� ���� ������� ����$� ��� �������-�������

� ��������������� ��������� �� ���� �����%����� �� ����� %���� �� ����&*+�

� ���� ������������ �� ����� %�������� ��� ����� ������� ������%������ ��������$������������������ &*+��� �"�� �� %� ���� $��� ������$��� %� ���������%� ��������� ����������-�����

��

������� ��� ������������� ��������&�

���'���� ��������

� ����� �����������$������%�������������%� ������������������&*+� �������������������������� ������������

� '������������������������������ %������%�������������������� �"�������� ���� ��� ���� &*+�� ��� ���� ��� ��� � ���� ��� ��� ���� �� �����-������ ���� &*+� ��� ���� ����� � $�� %�� ����������� $���� �����������$��%������������

� ����������� ����"��������������������"��$�����������$��"���������������-����� ����%�������������������������� ������� ������������� ��������-���� �������������������������

Page 9: Linux Scheduling

��

������� ��� ������������� ��������&�

���'���� ��������

� ������� %������ ������ ����� ��"������ ������������� ���������� �������&*+� ������������ �

� !������ ��� "���� ������� ������������ �������� �������������������-���� %������ ������ %���� ������������� ���=���������������=

� 1��������� �� ��� �� ���������&*+� $���� $��"���� ����� %�"��� %������ %� ����"�����

� ����"� �� ������������ �� ���������������� ����%� ���������� ��� � "���� ���������� ������������ ������������� ������������ ������ ������������� ���� �� ����� %���� �������= ���0����=� ����������������

��

������� ��� ������������� ��������&�

���'���� ��������

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

� !������� �� ���� ���������������� �����3�����������0 ����������� �� �����$���� ����� ����� � &*+� ������������ ��������� ������� �������� �� ���������� ���$���� �����������%�����������&*+���

� ����"� �� ������������� ����������� �� ������$��"��� %������ ����%� ���� ����������� ��������� $���

� � �� �������� ����� �� ����������)��������)���������������������������� ���$���� ���������� ����%�����������&*+� ��������������� �� �����

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

� �������� $��������������� �� ���� ��� ����&*+��� ������� ��� �� ���������$��"��� ����� ������ ����� ���������� �� ��� �� ������������$�� ���� ����$��"��� ���������� ���� ��������� � ���������� ����

��

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

� '������0��������������������������� �� ����� %������������������ ��� ��� ���0&*+������� ��������������������������

� ������������ �� ���������� ��� �$� ����������� ���$���� �����������&*+�

Page 10: Linux Scheduling

��

��

�������� ������� '������0���%������������ ���$�0��� ��������� ��� ���0&*+� ������������ %���$��� �����0�������� ����������� 9�����������������&*+����������������������������� ������������$������ %��"���������� ��������������� �� �������

� 7��� ������ ������� �� �����!��� �����������&*+�

� �������0��� �������� �� ����� �� ����� %� �$� ������������ ���� ����������� �� ������ �������� �� ��� ��������� ��������� &*+��

� ����%���� 0��� ���������� ���� ���� ���� %������������ �� ���� ����������$� �������������� ���� ����&*+�

��

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

� '������'������0���������������� ���$�0������������ ��� �� <0&*+�5+�1������������� $��� �$������ �������� &*+� ����������

� �������0��� �� ��� �������3�� ����$� ����������� ���$���� ������������� ����������� ������

� 7���� %�������������� ��� ����� ����&*+������������������� ������� ���� ����������� ���$���� ����� �������&*+�

��

������� ��� ������������� ��������&�

���'���� ��������

� ���"�����������-����� ������������ �%������������������� ����� ����������������"���%������������ ����������� ��� ��������������"��

� ����������������������� ���������������� ������� �����������&*+�������������� ������ ��������������-����������������������$������������� ���������$���������

� !&97�2���7������&*+��������������������������������� ��������$��������������

� 5��2���7������&*+������������������������������������� ������������$��������������

� ����������� ������ �������������� ����������������� %��������������������������-���� �������������������-����)� �������$��"���>������������������������������������������������� ����������� ����������������-���������������

Page 11: Linux Scheduling

��

��

���'���� ��������&������������������� ��������

� ������������� ����� ������������������������������� �������������������� �����%������ ����������������%�������� �������������������-��������������������������0������ �����

� ������������������������������������ �����$������������� �������� ���������"���������������� ����������������������������%����������������������������������� �����

� ���������������� ������ ������ ����������������������������������������������� �����������-����������������������������������������

� ������� ����-������!&97�2���7��������������-���� ���� ���������������� ����� ����"������������� -�������������������������������������$�����"����������������� ������������������������� ������������&*+����

� &����������������� ����-������5��2���7��������� ����� ����"������������� ����������������������������� ������������������������� ��������������������������&*+����������������� ���� ������������������������� �����������������������������&*+���

��

���'���� ��������&������������������ �

��������

� �������������� �������������"��$�������������������� ���������������������%������>�

� ������������������������� ����"��$���������%�����������%����������%�� ������� ��������������� �����%����������������������-���� �����������&*+�������������������������� ��������� ��������

��

���'���� ��������&������������������ ���������

� �������������������������� ���������$��������������

�� ����"����������������� �������� ����������������3������$��"���������������������������������������� �����

� ��������������������������������������������������� ������������������%�������������������������������������������������������������&*+>���������������������������������������������� %�������������������%�� ���������������������-���� �����������%��������

� ���������������������������������%����������������������������&*+��������������������������%�����������������������������5+����

���������������� �������� ����������������������������������������&*+���������������������%��������������������������������������������� �������������������������������� �������

#�������$����������������� ����"����������������� �������� ���������������������%�������&*+������������������������������������������������������������������������������ �����������������������-�����

Page 12: Linux Scheduling

��

��

���'���� ��������&������������������ �

��������

� ����"������������ ����� ���������������� ������� ��������������� ���������� ����-���� ��������������-���� ��������

� ������������ ����� ������������������ ��������� ������������������������-��������������������� �������������%��������

� ��������2%��������$�"���������� ��������"������������$������������������������������������� ���� ���� � %������������������� ���� ��� �������������������� ������������ ����������� �������������������&*+����������������������������%�� �������� ������-���� ��� ��������������-���� ��� ���� ��������������������� �������"�������� ������������������� ���� �����������������������

� ���� ��������"������������$�"������������������������������ �������� �����%������ ���������������� ���-���� ������������� �������"��������������&*+������������&*+���������������"����������������"�������� ����� ��� ��������������������������������-�����

� ��� �������

��

���'���� ��������&�������������� ���������

� ��������� ����� ��������� ������������������ �������������-������������������-����

� �����������������������3����������������������� ������������ ����-����������������� ��������������������������

� ������������������������������%������������������������������� �������� ����������� ������������ ����-������

��

���'���� ��������&�������������� ���������

� '��������������������������������������������"���������� �� ������$���������������������������$������������������� �������������������%����������������������%�������� ����&*+�

� ��������&*+�����������������������2��$�� %�� ��" ��������������������������

� 1���������������������$��������

� ��������&*+����������������"�����������������������0��������������������������&*+�������������������������� ����%������

� ����"������������������%�����%���������������������� ����

%�������������������� ������� �������������������������

� ���������������%�� ������������=���������=���������������������

������������������ ����&*+����������������� ����������������������������������������������������$������������������� ����&*+��

Page 13: Linux Scheduling

�#

��

���'���� ��������&�������������� ���������

� ���������� �� ���� ������������������������� ����� ����"������������ ���� ������������ ����������������������������������������-������

� ����� ������� �������������������� ������� �������-���������������������������������������������-��������������������������������@���� ������������������� ������������������������������"����������� ����������� ����������������������������������&*+�