�� ���� (3� ��)
- ��: ����� ����� ��� � �� ��� �� � ��, ���� ��� ����, ��� ��� �� �� �� ���� �� ��� ��� ��.
- ��: ��� ����� ���� ����� �� ���� ����� �� �� ��� ���� ����, � �� ����, ��� ����� �� �� ��� � ��.
- ��: ����� ����� ����� ����, ��� �� unit, �� ��� ����� ����� ����, ��� ��� ����� hazards� ��� ������� ���.
. �� � ��� (Context & Necessity)
-
��: ����� ����� �� ���� ��� ���� � �� ��� ����� ��� ���� ����.� ��� � ��� ��� ��� ��� ������, ��� ���� ���� ��� ��� ��� � ���� ��� ��� �� ��� �� ����� ��.
-
���: ���� ����� ������ ������� �� ��� �� ������ �� �����, ���� ��� ����� ���� �� ��� �� ����. ��� �� ��� ��� ���� ����� ����� ��� �� �� ��� �����
-
� ��: ����� ����� ���� �� ���� ��� ���� �� ��. ��� ����� ����� ������, �� ��� ��� ����� ��� ���� ��(� ��), ���� �� ��� ���� ��(���� ���) � �� ���� ��� ����.
-
�� �� � �� ��:
- �� ������ �� ��: �� �� ���� ���� ������� ����� ��� ����, ���� ���� �� �� ��� ����� �� ��� ��� ���� ����.
- ���� ��� ��: � �� ��, ���� ��� ��, �� �� ��(false sharing) �� ���� �� ��� ��� ���� �����.
- ���� �� �� ��: � �� ����, RCU, ����� ���, ��� I/OActor �� �� ����� ��� �� �� � ������.
����� ����� �� �� ��� ����, ��� ��� ���� � ��� ��.
����� ���� �� ��
1. � �� (Lock Contention)
- �� ���� ��� �� ���� ��
- �� ��� ���� ��� ��
2. ���� ��� ����
- �� �� ��/��, ���� ��/�� �
- ���� � ����� ��
3. ��� ��� ��
- �� ��� ����(MESI �) �� ��
- �� ��(false sharing)� �� ���� �� ���
4. ���� ��
- �� �� ��, ���� �� �
5. ��� ����� �� ��
- ��� ���/��, ���� �� �
[����� ��] � ������ ����� ������ ���� �� ���� ��� �� ��� ���� ����. �� � ��� ��� ��� ��� ��� �� ����� ������ ���� ���� ���� �� ����.
. ���� � �� �� (Deep Dive)
�� ��
| ��� | �� | �� �� | �� �� | �� |
|---|---|---|---|---|
| � (Lock) | �� �� �� | �� � ��� �� �� �� | ���, ���, ���� | ���� ���� �� � |
| ���� ��� | ��� �� �� | ���� ��, �� ��, �� ��� | ���� ����, TLB ��� | ��� �� � ��� �� |
| �� ��� ���� | �� �� ��� ��� �� | �noop �� �� ���� �� �� �� | MESI, MOESI, ��� ���� | ���� �� �� �� ��� |
| ���� | CPU �� �� �� | ����, �� ���, �� ��� | CFS, ��� ���� | ��� �� �� ��� |
| ��� ����� | ��� �� �� | �� ��, ���, ���� � | pthread_cond, std::barrier | ��� �� �� ��� |
� ��� �� �� ��
� ��� �� ���� ��� �� ����� ��� � ����, �� �� ��� ���� ��� ��� ����.
� �� �� ��
[1] � �� ��
- �� �� �� ��(UNLOCKED)
[2] ��� A� � �� ��
- �� ����� ��
- � ��: LOCKED (by A)
[3] ��� B� � �� ��
- �� �� �� ���� ��
- �� �� �� ��
[4] ��� A� �� �� � � ��
- � ��: UNLOCKED
- �� �� ��� B�� ��
[5] ��� B� � �� � �� ��
- �� ���� �� ��
[����� ��] � ������ � ���� ��� �� �� ���� ���� ��� ����. ��� B� �� �� ���� ��� ���� �� ���� ��� �� ��� ����. �� ��� locks� �� ���� �� �� ���� ���� ���� ����, ���� �� CPU ���� ���� �� ����� ����.
. �� �� � ��� ��
�� 1: ��� ��� ��� ���� ��
| �� �� | ��� (Blocking) | ��� | � �� (Lock-Free) | ��� ��� �� |
|---|---|---|---|---|
| �� �� | ��� (��) | �� �� (��) | ��� �� | ��/�� |
| CPU ��� | �� � �� | �� � �� | ��� (��� � ��) | ��� �� �� �� |
| ���� ��� | �� �� | �� (�� ����� ��) | �� | ��� ���� � �� |
| �� ��� | �� | �� | �� (�� �� �) | �� (��� �� ��) |
| � ��� | ���� ��� � | �� �� �� � | ��� ��, �� �� | GUI, ���� �� |
� �� ��� � ��� ���� �� ��� ��(CAS)� �� ���� ����� � �� ����� �� � ���, ��� ���� ABA �� �� ���� ��.
�� �� ��
- ��� �� (Computer Architecture): �� ��� ����(MESI)� �������� ��� ��� ��� ����� ���� ������, �� ��� �� ��� ��� ��� �����. �� ��(False Sharing)� ��� �� �� unrelated ���� �� ��� � ���� ���� �����.
- ���� (OS, Operating System): ����� �� ��� �� ��� ��� ���� ��� ��� ���� ��� ���, �� �� ����� ����. �� TLB ��� ��� ���� ��� ��� ���� ��� ��� ��.
�� ���� �� ��� ��� ��� ��� ����, ��� ����� ���� � � ��.
�� ��(False Sharing) ��
�� �� ��: 64���
��� A �� unused padding ��� B ��
(4 bytes) (56 bytes) (4 bytes)
����: ��� A� ��� ��� �� ��
�� �� ��� ����� ��� B� ��� ��
���� ���� �� �� ��� �� �� ��
���: ��� �� �� �� �� ���� ��
��� A �� �� ��� B ��
(4 bytes) (60 bytes) (4 bytes)
[����� ��] � ������ �� ��� ��� ������ �� ���� �� �� ��� ����. � ���� ���� ��� ��� �� ��� ����, ��� ��� � �� �� ��� ���� ����� ���� �� ��� ����� �� ��� ����. �� ���� �� �� ��� ��� ��� �� �� �� �� ��� ���� ���� ��� ��� � ��.
. �� �� � ���� ��
�� ����
-
���� -- ��� �� ������ � �� ��: ����� ��� �� ��� ���� ������ ��� � ��� � ����� ��.�������
-
���� -- � ����� ��� � ��: �� �� �� ��� ���� � ����� ��� �� �� � ��� ��� ���� ���� ���� � �� ��� ��� ��� ��. �� �� ���� ���� ��� ����� ����, �� ��� �� ���� ����.
-
���� -- �� �������� �� �� ��: ��� ��� �� ���� ��� ��� �, ��� ���� ��� �� ��� ���� �� ��� �� ���� ����. � �� �� �� ��� ����� ��� ���� �� �� ��� ����� ��.
�� ��� ��� "�� ��� ��� ��"� ���, ��� ��, �� ��, �� ��� �� �� ����� ���� ��. �� ���� ���� ���� ����� ����� ����� �� ���� � ��� ��� ���.
����� ���� ��� ���� ���
[��� ���?]
�� �� ��� ����?
� [�� �� ��]
[� �� � �� �� ��]
��� [�� ��� �� � �� ��]
�� ����� stringent��?
� [��� �� ��� ��]
[���� ���]
��� [�� ��� � �� ��]
��� �� ��� ��� ����?
� [�� �� �� �� ��]
[��� �� ���]
��� [�� ���� ��]
�� ��: � types vs ��� vs ��� �� � ��� ��
[����� ��] � ���� ��� ��� "���� ��� �� ��� �� ��� ���"� ���. � ��� ���� � ��� ���� � �� ��� ����, ���� ���� ���� ��� �� ����� ��� ��� ����, ��� ���� ���� �� �� ��� �� �� ��� ���� ��. ��� � �� ��� sempre "�� ����� �� � �� �� ����?"�� ���� ��.
�� �����
- ���: � ��� ��� ���� ���?(����� ��) ���� ��� �� �� �� ��� �� �� ���? �� ��� ����� �� ��� �� ���?
- �� ���: ��� ���� ���� ���� ���? ���� �� ��� ���� ���� �� ����� ���� ���?
����
-
��� � ���: �� ���� �� �� �� ���� � �� ��� � � �. �� ��� �� ���� �����.
-
��� ��� ��: ��� �� ���� ���� CPU� ����� ���� �. ���� �� �� �� ��� ����.
-
� �� �� ��: ��� � ���� �� ����� �� ��� ���� ���, ��� ��� �� � � �� ��� �� �� ���, ��� ���� ���� ��� ��� � �� ��� ���� ��.
. ���� � ��
��/�� ����
| �� | ��� � | ��� � | �� �� |
|---|---|---|---|
| �� | � ���� �� �� �� �� | � �� �� ���� � �� | �� �� 50~90% �� |
| �� | ���� ��� �� �� | ��� � ��� �� ��� | ��� �� 30~70% �� |
| �� | ��� ��� �� �� �� | ��� ��� �� � �� �� | �� �� � �� ��� �� |
�� ��
- ���� � �� (Transactional Memory): ���� ����� ����� ���(RTM, HLE)� ���� � ��� ��� ��� ��� � �� ���.
- ��� ���: ��� � �� ��� �� � ��� ���� ���� ��� ���� �� ���.
- ��� �� ���� (Ults): ��� ��� ��� ���� ���� �� �� �� ����� ��� ��� ����� ��.
����� ���� �� ��� �� ��� ����� ����, ���� ��� ���� ���, � ��, ��� ���� ������ ���� ��� ��� � ��.
����� ���� �� �� �� ���
1990�� 2000�� �� 2010�� �� 2020��+
[�� ���] [��� ���] [� �� ����] [���� TM]
��� � ��
��� �� ����
�� vs ��� �� �� �� ��
�� ��:
"� �� ���" -> "�� ��" -> "���� ��" -> "�� ���� ��"
[����� ��] 1990���� ���� ��� ���� �� ������, 2000�� ���� �� �� �� �� ���� ���� ����, 2010�� ���� CAS �� � �� ����� ��Critical� ���� ��� ����. ��� ��� RTM � ���� ���� ���� ���� ���, ���� ��� ����� ����� ��� ���� ����� ����� �� ��� ���.
� �� �� � (Knowledge Graph)
| �� �� | �� � ��� �� |
|---|---|
| � (Lock) | �������� �� ��� ����, �� � ����� ����. |
| ��� (Spinlock) | �� �� ��� ���� ���, �� �� �� �� ����. |
| � �� (Lock-Free) | �� ���� �� ��� ���� ���� ���� ����. |
| �� �� (False Sharing) | unrelated ���� ��� �� ��� ��� ���� ���� �� �����. |
| ���� ��� (Context Switching) | ��� �� � ���� �����, �� �� ��/�� ��� ��. |
� ���� �� 3� �� ��
- ������ �� ��� �� ���� ��� �� �� ���, �� ���� ��� ��� ���� �.
- ��� ���� ����, �� �� ���� �� ��� ���� � �� ��� �� �����.
- ��� ���� � � ����, ��� ��� ��� �� � �� � � �� ���.
(End of file - total lines will be around 300)