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

  1. ��: ����� ����� ��� � �� ��� �� � ��, ���� ��� ����, ��� ��� �� �� �� ���� �� ��� ��� ��.
  2. ��: ��� ����� ���� ����� �� ���� ����� �� �� ��� ���� ����, � �� ����, ��� ����� �� �� ��� � ��.
  3. ��: ����� ����� ����� ����, ��� �� unit, �� ��� ����� ����� ����, ��� ��� ����� hazards� ��� ������� ���.

. �� � ��� (Context & Necessity)

  • ��: ����� ����� �� ���� ��� ���� � �� ��� ����� ��� ���� ����.� ��� � ��� ��� ��� ��� ������, ��� ���� ���� ��� ��� ��� � ���� ��� ��� �� ��� �� ����� ��.

  • ���: ���� ����� ������ ������� �� ��� �� ������ �� �����, ���� ��� ����� ���� �� ��� �� ����. ��� �� ��� ��� ���� ����� ����� ��� �� �� ��� �����

  • � ��: ����� ����� ���� �� ���� ��� ���� �� ��. ��� ����� ����� ������, �� ��� ��� ����� ��� ���� ��(� ��), ���� �� ��� ���� ��(���� ���) � �� ���� ��� ����.

  • �� �� � �� ��:

    1. �� ������ �� ��: �� �� ���� ���� ������� ����� ��� ����, ���� ���� �� �� ��� ����� �� ��� ��� ���� ����.
    2. ���� ��� ��: � �� ��, ���� ��� ��, �� �� ��(false sharing) �� ���� �� ��� ��� ���� �����.
    3. ���� �� �� ��: � �� ����, 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)                
                           
   

[����� ��] � ������ �� ��� ��� ������ �� ���� �� �� ��� ����. � ���� ���� ��� ��� �� ��� ����, ��� ��� � �� �� ��� ���� ����� ���� �� ��� ����� �� ��� ����. �� ���� �� �� ��� ��� ��� �� �� �� �� ��� ���� ���� ��� ��� � ��.


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

�� ����

  1. ���� -- ��� �� ������ � �� ��: ����� ��� �� ��� ���� ������ ��� � ��� � ����� ��.�������

  2. ���� -- � ����� ��� � ��: �� �� �� ��� ���� � ����� ��� �� �� � ��� ��� ���� ���� ���� � �� ��� ��� ��� ��. �� �� ���� ���� ��� ����� ����, �� ��� �� ���� ����.

  3. ���� -- �� �������� �� �� ��: ��� ��� �� ���� ��� ��� �, ��� ���� ��� �� ��� ���� �� ��� �� ���� ����. � �� �� �� ��� ����� ��� ���� �� �� ��� ����� ��.

�� ��� ��� "�� ��� ��� ��"� ���, ��� ��, �� ��, �� ��� �� �� ����� ���� ��. �� ���� ���� ���� ����� ����� ����� �� ���� � ��� ��� ���.

   
                 ����� ���� ��� ���� ���            
   
                                                                       
      [��� ���?]                                                 
                                                                      
                                                                      
         �� �� ��� ����?                                    
              �  [�� �� ��]                             
                                                                     
                                   [� �� � �� �� ��]     
                                                                      
              ���  [�� ��� �� � �� ��]          
                                                                       
         �� ����� 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� �� ��

  1. ������ �� ��� �� ���� ��� �� �� ���, �� ���� ��� ��� ���� �.
  2. ��� ���� ����, �� �� ���� �� ��� ���� � �� ��� �� �����.
  3. ��� ���� � � ����, ��� ��� ��� �� � �� � � �� ���.

(End of file - total lines will be around 300)