동기/비동기 : 요청한 작업에 대해 완료여부를 신경 써서 작업을 순차적으로 수행할지 아닌지에 대한 관점
블로킹/논블로킹: 단어 그대로 현재 작업이 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 |