Tema 01. Introduccion a La Programacion Concurrente
Transcript of Tema 01. Introduccion a La Programacion Concurrente
ULE
��������
������ ������������
Programación Avanzada
Programación Concurrente
ULE
��������
������ ������������
Resumen� ���������
� ������������
� ������������ �����������������������
� ���������������������������������
� ��������������������
� �������������!����"������������������
� #��������������������
� $��"����%�&��&�"����'$�&&(
� $�&&)����������������
� ������������ �**��
ULE
��������
������ ������������
Paralelismo� ���������)��+������������������������������"�������
� #���,���"���������"��������)
� &+�����������-���-"������������,������"�����������
� �"��,��.�������������������
� ���������,�������������������"�����,���&���/���"���������)��,���������"��������"���
� ��������,���������������������/����������������'���"�������(��0�#��������1�#����������)�#���"�����������
� ����,���"��2�������/�������������"������������������,���������������������,�3�������������"�����������
� �2���������"����"��������)��+��"�����!�/
� ������������)�45������"���������������"��������"������1��������������������������
ULE
��������
������ �����������6
Concurrencia� �2����������"�������"������3�������2��������"��������������-��������������+��������"��������������������7�������+������������-�������� �8���������������"����������������������
� ������������������������)�����������"����������������������������9��"���"���������������������+�������������-����
ULE
��������
������ �����������:
Terminología� ��������)�����������������������������+�����"�����������������������������+������������������"�������
� ������)�&�������7�����"�����������+�������������,��������"������������������"������� ��2�������������1���������1������������������������/�����������������3�����"�����"������� ������������� ���������
� ����������)�������������������������"��������"������
� �������������������)����������7������+����������������,������"����������������
� ����� �����������)�&+�����������������������,������"������������"��������������������"���������
� �����������������)����������7���"������������������������������������"���,��������������
� ����������������)����������7���"�����������+�����������������������,������������
� ��������������)����������������������������������1�����,������"�����������
� ����������������)��������������,����������������������������������"�������7������2�����"��������3��������2��
ULE
��������
������ �����������;
Concurrencia (cont.)� ���2������������3�����)
� ���"�������)� ���"�����������"�����"������������������
� ������������)� ���"������������������������������"�������"������������
� ��������3�����)� ���"����������������������3�������������������������������9�������2�
� ���2������������<�)
� =����������)�#��.���"��2�����"�7��<��������-��-��������"���������"�����-����������������������
ULE
��������
������ �����������>
Intercalación. Instrucciones Atómicas
� ���������������"���2��)�
� ��(�?�@��1���(�?�@��1��(�?�@��1�6(�?�@��
� ���2����)������������������������������,��������������� �A�/���������������7�������+����������,������"����
� �������������������)������"����2��������7�����������������������������������,���2��7�������+���������������������������"� �
� &����������������"�����������������������"�������"������������"���2�����������������������������������������������������
X:=0cobegin
x := x + 1; �x := x + 2; �
coend;
ULE
��������
������ ������������
Corrección Programas Concurrentes
� �������������"���������������)������+����������������������������������������������1�"�����7����?����������������������������������/������������
� B������������������������2�����"����"��2���7�������������������
� #��������"����������)�B��"����������������������������������������������������������������������7�������+�����
� �������������"���2���������
� �����������������)��'?()�"�����������C�D'?1/()�"������������1��1�2)������
� �����������4������� ��������� ������� ��� � ���� ��� ����
� ��� �������� ������� ��� ������ ��� ����
ULE
��������
������ �����������E
Definiciones corrección� 8����������������������"������"��"��������7�����2��,�����������7������+�������)
� ���"��������7������2������������������� ��
� ����������������������������� �&����������������F���������.�/��������-��������"������ �
� ��������������������!������"8������������������"����������������"������� �G������2������������������������������������������������������
� �#�������$���!%������&")�&�����������2������"���"���������3���������2�+��9��1�������"�����"��������������"���������-����������������"������������������������7������������"�������-
� '����������������
� ���"��������7�����2�������,����������������(��������
� '��������������
� �� �������������!���������&" �$����������������"��������������9�������+��������"����������"�����������9���,�����.������������������"��2���
� �$������ ����������!����������" ������"���������2��F�������������"��������������+��������
ULE
��������
������ �������������
Soluciones Software para la Concurrencia
� 8�������������2������������������!����"������������������
� ���2�������7���F"����
� B��������������!����"���������������������2����������-?���/����-������"���)
� &�"��������7�5������������/�7�5����������������"�����
� &�"��������7���"���������������"�����������"�������+�����������������������
� ������������?��������9���������������������
� ��������3���"�������
� �������"�3�����������������)�"������������/�������H�
ULE
��������
������ �������������
Modelo de concurrencia� &������������������������������7������������������������������3��-�"��)
� #����������"�������/���2��'��,�������+��(
� ��������������������������������
� I�������,���������������)
� $��"����&����"��� ������������5�������"��2����������?��������9���
� ���-����
� #��������
� �������������+��
� �����3�,���
ULE
��������
������ �������������
Ocupado – En Espera (O-EE)� 8�������?��������9������2�+����,�������������������F�����
� ���������F����)�������������������7������"������+�������������������������
� &+��"��"����������������������������"�����������������������
� J���������������"����-�������������������������������
ULE
��������
������ �������������
O-EE: Primer Intento
� &+��"���������������������������1�.����������������"���������������"������������������������
� B��-�2���������������7��5��"�����������������������"������ �'I������������(
� ������������2��������)���1��1��1��1�
� ������"���������������������������������F����1�����������������������"���-�,�,�����������
ULE
��������
������ ������������6
"�����������C2����
��"����!.���������@�����C�K"����LK�B��������+�������"����L������)@��CK�$�����������L
���,�����C
"�����������C2����
��"����!.���������@�����C�K"����LK�B��������+�������"����L������)@��CK�$�����������L
���,�����C
K�����"��"�����"��LM����
������)@��C��2����
��C���C�����
���
����������������������C,���������)�� �C
�N&&N�������� "�
ULE
��������
������ ������������:
Segundo Intento
� #����������)������������7������"���������������������������F���������"���7���������5�������
� �������������������"���������"�������������-���������������F����
� ��$M8&#�)����������������?��������9�������������������"�3�����������-��������
ULE
��������
������ ������������;
"�����������C2����
��"����!.���"�3������@�"����������C�K"����L"�3������)@�"�������CK������B��������+�������"���������L"�3������)@�G$"�������CK�$�����������L
���,�����C
"�����������C2����
��"����!.���"�3������@�"����������C�K"����L"�3������)@�"�������CK�������B��������+�������"����������L"�3������)@�G$"�������CK�$�����������L
���,�����C
K�����"��"�����"��LM����
"�3������)@�G$"�������C"�3������)@�G$"�������C��2����
��C���C�����
���
����������������������C,���"�3�����1�"�3�����)�'"�������1�G$"�������(C
�N&&N�������� "�
ULE
��������
������ ������������>
"�����������C2����
��"����"�3������)@�"�������C!.���"�3������@�"����������C�K"����L
K������B��������+�������"���������L"�3������)@�G$"�������CK�$�����������L
���,�����C
"�����������C2����
��"����"�3������)@�"�������C!.���"�3������@�"����������C�K"����LK�������B��������+�������"����������L"�3������)@�G$"�������CK�$�����������L
���,�����C
K�����"��"�����"��LM����
"�3������)@�G$"�������C"�3������)@�G$"�������C��2����
��C���C�����
���
��������4������������C,���"�3�����1�"�3�����)�'"�������1�G$"�������(C
� #����������)�������������������������������/������������������"���
� ��$M8&#�)������2�7�������������������"�3�����������-��������
� �����+����������"��������������1�"�����������,���
�N&&N�������� "�
ULE
��������
������ �������������
"�����������C2����
��"����"�3������)@�"�������C!.���"�3������@�"�����������2����
"�3������)@�G�"�������CK�����������,�����L"�3������)@�"�������C
���CK������B��������+�������"���������L"�3������)@�G$"�������CK�$�����������L
���,�����C
"�����������C2����
��"����"�3������)@�"�������C!.���"�3������@�"�����������2����
"�3������)@�G�"�������CK����������,�����L"�3������)@�"�������C
���CK�������B��������+�������"����������L"�3������)@�G$"�������CK�$�����������L
���,�����C
M����"�3������)@�G$"�������C"�3������)@�G$"�������C��2����
��C���C�����
���
���������������������C,���"�3�����1�"�3�����)�'"�������1�G$"�������(C
� #����������)��������������������������������������F��������"������������
� ��$M8&#�)�&�"���������������������.�/���������3������"������
�N&&N�������6 "�
ULE
��������
������ ������������E
Algoritmo de Dekker� �����������
� #�������������������������������������<����������������������������,-����
� ���"������+������������������7������-7�����������"��������!���
� I������������5����������������������������"�������������.���!���
� &��2������������������1����������������-7�������������"������"����
� &������"�����������������/�2�+����,��/�"���������"����,�����������
ULE
��������
������ �������������
"�����������C2������"����
"�3������)@�"�������C!.���"�3������@�"�����������
��������@��.���2����
"�3������)@�G$"�������C!.���������@�����C�K�����������,�����L"�3������)@�"�������C
���CK������B��������+�������"���������L������)@��C"�3������)@�G$"�������CK�$�����������L
���,�����C
"�����������C2������"����"�3������)@�"�������C!.���"�3������@�"������������������@��
�.���2����"�3������)@�G$"�������C!.���������@������C�K����������,�����L"�3������)@�"�������C
���CK�������B��������+�������"����������L������)@��C"�3������)@�G$"�������CK�$�����������L
���,�����C
M����"�3������)@�G$"�������C"�3������)@�G�"�������C������)@��C
���������������� �**��C,��� "�3�����1�"�3�����)�'"�������1�G�"�������(C
�����)�� �C
��2������C���C
��������
��**�� "�
ULE
��������
������ �������������
SEMÁFOROS
�������������� ��������������������
ULE
��������
������ �������������
Concurrencia: Semáforos
� ���������������-����
� �O�&+��"�)�&?��������9�����������-����
� �&+��"����������������-����������������������������
� H��.����)��������������������� "��/������������������������� "�
� &+��"���8��������&���������
ULE
��������
������ �������������
Definición Semáforos� B�����-����' �+*����(�������4 �����������3����"��)
� B����������������������
� B������������������"�����,��� G
� B����������"����������"�����������������-���
� 4�����"���������)
� ����'��)����-���C��)��������(� ����������������"������������������� ��������3�������-��������,�����
� P���'��)����-����(� �������"������������"���������������� �&��-�����?���������������������� �
� ������@������������"��������������������"���1������0�������������)@������
� �����'��)����-����(� �������"������������"���������������� �&��-�����?�����������������P��� �
ULE
��������
������ ������������6
��������M��������C,��
�����)����-���C������������2�������$�&���4Q�&�4��������'�)��������(C
2�������'�(!���'�����(C���R������"��������'�(�����'�����(C���'�(
���C,���
"������)����/S� G���4� $�T���4�������CM&=�G
����'�����1��(C���4����������2������$M&=�G
���+�)@������G���4� $�����������S+T'+(C
�$&G &G
������"����������2������"����+�������2���������/����,��������"�����G"������� �&�"����������"��������2�������.�/�2����"����.����� �$8B��UG �&V�8B��UG�#J4B�)�&����"�����'�(�������������������3��������?��������9���1������"�����'�(���������������
Ejemplo exclusión mútua
ULE
��������
������ ������������:
Productor-Consumidor� ���2�����2��������7�����"�����������������������7��)
� &?������������,������"��������7���W"�������X����
� &?������������,������"��������7���W��������X���"���������"������"����������
� &�������������)
� 8���"�������������2����2���������"������������������������������2������������������� �8���"�������������2���������������"������+�������"������������/����"��������������������.���������"��������
� 8������������������2��������������"�����������������
ULE
��������
������ ������������;
Dificultades con Semáforos� ��������������9����2�+����,�
� 8���������������"��������2�����������������-���� �&�������"�����������������������������������������������
� 8������-���������,����2�����2����"�������"�������)�����7�����1�.��������������� �� � )����"�������7������5������������������������F�������������������������-���1�/�.����!��������������-���1�"�����7����������������������F���������"�������������
ULE
��������
������ ������������>
MONITORES
�������������� ��������������������
ULE
��������
������ �������������
Monitores� 45����������-��������,�� 4�"������ ������2��������� �����"�����������������������������.��������+������"�����������
� &���"�����������������������������"�������� ����������$$�'���7���5���������/���.�������(
� ������H�������"�����������+��7��������"�������������
ULE
��������
������ ������������E
Definición� B�����������������)
� G����������?����������������� ��������?���������������,5��������"�������������
� &?��������9������������������?������������"��������������"��7������+����������������"�������������������������������
� I����2������������1��1��������������������"��������������7���7��������+�������������������������
� $"���������)� ���/'�()��������������"������������������������������ �����2�������?����������������������� ��
� ������'�()���������������������-�,��F�1�������"��������"������"������ �
�������
�����
�����������
��������������� �����
pc_monitor.pfc
ULE
��������
������ �������������
Dificultades� ��"���������������������)���������������������"�������.�/������+�1����������� ����"��������/����"����������1�"��������������������"������������������������������/�������1���+�����������/�,��F��"������
� ����2������������)� �����"����������-��������"�������7���������"����� � &������7������7������"��������������������9��������"���������7������+�����1������"�����7���������5���+�������������,�3���"�������������7����������������/���7���������"�����
� A�/�����������������"����������������������7�F �&��������H���������3����������������������������������1�������������������"��������7��������������5������?"������1�/�����1�������/���"��������1���������������"��������7������.����2�������������,����2����������� ��
ULE
��������
������ �������������
Emulación Monitores - Semáforos� �������������-������������������)��������M������N���N��������� "�
� ���������������������������-����)� B�����-������"��������������?��������9�������������"������������������������
� B�����-�����������N��"��������,����2������������
� ��������������������������������N��"������������������"��7������"�����������������"����������������������-�,��F������
� �����"�������������������������-������"��������!���'�(���������"�������������������/���������'�(������9����
� ������"�����������/'�(����-��������������"��
��������N��)@���������N��Y��C�����'�(CP���'�������N�(C '�(���&�"������������������P���'�( ������������������������'�(���������2������������������2��,�,������+������������"����������������
���������������N��)@���������N�����
� �������������������������'�(�"��)
����������N��0����.��������'�������N�(C����������'�(����� '�(
� ��"����������������������9����������������
� A�/����"��2������������������������'�(�/�'�( �$����"�������"���F���+����������P���'�(������������/�"��������"������������"����������"������ ��8���������������������'�(�/�.�����'�(������������N�0���.��������'�������N�(����������'�(������C
ULE
��������
������ �������������
Lectores - Escritores� G���?��������������������� &?���������������������/������������ &?������������������������ &+��"��)
� M�������������1���.����
� 4�2���������"������������������.����
� B2��������������,���������������"�����
� &+��"�)�8&N#�������� "�
ULE
��������
������ �������������
El problema de los filósofos
!�����"
!�����#!�����$
!�����%
!�����&'�����"
'�����#
'�����$
'�����%
'�����&
���������(�����������)*����������������������������)�����������+���������)����������,��)������������+���������)��������-��)������������)
ULE
��������
������ ������������6
Soluciones� �������-����)
� ��������������)����������������)������� "� �������2�7���
� ���������������)�������������5����������������6������"������������ ������� "�
� �������������)������ "�