기어가더라도 제대로

12. 동시성과 관련된 문제들 본문

CS/동시성

12. 동시성과 관련된 문제들

Damagucci-juice 2022. 9. 27. 13:11

경쟁 상황

  • 2개 이상의 쓰레드를 사용하면서 , 동일한 메모리 접근 등으로 인해 발생할 수 있는 문제.

  • Thread-Safety

    • 여러 쓰레드가 동시에 쓰여도 안전하다.

    • 동시적 처리를 하면서(여러 쓰레드를 사용하면서도) 문제 없이 쓰레드를 안전하게 사용

12. 동시성과 관련된 문제들 image

‏‏‎ ‎

교착 상태(DeadLock)

12. 동시성과 관련된 문제들 image

가장 좋은 예는 자기 자원을 점유한 상태에서 상대방의 자원을 접근하려고 서로 하는 상황..

‏‏‎ ‎

  • 두 사람이 있는데 각자 치킨 닭다리를 들고 있다.

    • 각각의 사람들은 상대방의 치킨이 먹고 싶다.

    • 그래서 닭다리를 쥐고있는 손의 반대 손으로 상대방의 치킨을 뺏으려고 하는 상황

‏‏‎ ‎

Priority Inversion(우선 순위 뒤바뀜)

12. 동시성과 관련된 문제들 image

  • 작업의 우선 순위를 봤을 때 Task 3 이 가장 먼저 실행이 되어야 할거같지만,

    • 작업 1, 2 가 자원을 사용하고 있어서 실질적인 작업을 하지 못하고,

    • 각 작업이 끝날때 까지 기다려야하는 상황

낮은 우선 순위의 작업이 자원을 배타적으로 사용하고 있을 때, 작업의 우선순위가 바뀔 수 있음

실질적으로는 Task1 -> Task 3 -> Task 2 의 순서로 이뤄진다.

  • 공유 자원에 접근 시엔 동일한 QoS 사용

12. 동시성과 관련된 문제들 image

‏‏‎ ‎

'CS > 동시성' 카테고리의 다른 글

11.GCD 살펴보기  (0) 2022.09.27
10. Semaphore 의 이해  (0) 2022.09.26
9. Dispatch workItem  (0) 2022.09.26
8. 디스패치 그룹의 사용  (0) 2022.09.26
7. Dispatch Group 개념  (0) 2022.09.26
Comments