본문 바로가기
기술면접

동기와 비동기 / Deadlock

by 해룸 2024. 4. 22.

동기/비동기 : 요청한 작업에 대해 완료여부를 신경 써서 작업을 순차적으로 수행할지 아닌지에 대한 관점

블로킹/논블로킹: 단어 그대로 현재 작업이 block 되느냐, 아니냐에 따라 다른 작업을 수행할 수 있는지에 대한 관점

 

보통 비동기 특징을 성능과 연관지어 말한다. 왜냐하면 요청한 작업에 대해 완료여부를 신경쓰지 않고 자신의 그 다음 작업을 수행한다는 것은, I/O 작업과 같은 느린 작업이 발생할 때, 기다리지 않고 다른 작업을 처리하면서 동시에 처리하여 멀티 작업을 진행할 수 있기 떄문이다. 이는 전반적인 시스템 성능 향상에 도움을 줄 수 있다. 

 

데드락

프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태. '교착상태'라고도 하며 시스템적으로 한정된 자원을 여러곳에서 사용하려고 할 때 발생한다.

 

데드락의 발생조건

교착상태는 한 시스템 내에서 다음의 네가지 조건이 동시에 성립할 때 발생한다.

따라서 하나라도 성립하지 않도록 만든다면, 교착 상태를 해결할 수 있다.

1. 상호 배제: 자원은 한번에 한 프로세스만이 사용 할 수 있어야 한다.

2. 점유대기: 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용하고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야한다.

3. 비선점: 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 한다.

4. 순환대기: 프로세스의 집합에서 서로를 순환하며 점유한 자원을 요구해야 한다.

 

 

'기술면접' 카테고리의 다른 글

운영체제  (0) 2024.07.03
Promise, asyc/await, Hoisting  (0) 2024.04.17
Array & LinkedList / Stack & Queue  (0) 2024.04.15
[JS] 선택정렬 / 버블정렬  (0) 2024.04.09
객체지향 프로그래밍 / 클래스형, 함수형의 차이  (0) 2024.04.05