운영체제/동시성3 블로킹, 논블로킹, 동기, 비동기 블로킹 논블로킹 - 함수의 동작 방식블로킹 : 블로킹 함수는 결과를 즉시반환하지 않아 호출한 스레드가 결과를 받기위해 멈춤논블로킹 : 논블로킹 함수는 결과가 없음에도 -1을 즉시반환하여 호출한 스레드가 결과를 받는사이에 다른일을 할 수있음 결과를 받는 법은 주기적으로 확인하거나 I/O 멀티플렉싱 콜백등이 있음동기 비동기 - 작업 흐름동기 : 명령을 순차적으로 실행하는 것, 즉 요청자가 결과를 직접받는 것비동기 : 명령을 병렬적으로 실행하는 것, 즉 요청의 완료를 콜백으로 받는 것, 블로킹 I/O를 별도의 스레드에서 실행하는 것동기 + 블로킹 = 일반적인 디비 호출등동기 + 논블로킹 = 논블로킹 함수가 -1을 반환했음에도 지속적으로 확인하여 명령이 순차적으로 실행되는 상황비동기 + 블로킹 = 일반적으로 없.. 2026. 3. 6. 컨텍스트 스위칭 출처 쉬운코드 : https://www.youtube.com/watch?v=Xh9Nt7y07FE CPU/코어에서 실행중이던 프로세스나 스레드가 다른 프로세스나 스레드로 교체되는 것컨텍스트 스위칭은 OS커널이 실행한다. 컨텍스트란 프로세스/스레드의 상태를 말함 컨텍스트 스위칭이 필요한이유 : 여러 프로세스와 스레드를 동시에 실행시키기 위해 컨텍스트 스위칭이 발생하는 시점 : 주어진 타임 슬라이스를 다 사용했거나IO작업을 해야하거나다른 리소스를 기다려야하거나 등등의 이유 컨텍스트 스위칭의 과정커널모드로 통제권이 넘어감CPU의 레지스트 상태를 교체 프로세스끼리의 교체시 다시 원래 하던 프로세스를 실행하기위해 레지스터의 상태를 PCB에 저장 스레드끼리의 컨텍스트 스위칭은 메모리를 공유하기 때문에 메모리처리가 필.. 2026. 1. 30. 데드락 데드락이 발생할수있는 조건 4가지 4가지 조건을 다 채워야 발생한다.1. 상호배제 (Mutual exclusion) : 자원은 한 프로세스만 사용해야한다.2. 점유대기 (Hold and wait) : 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용중인 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야한다.3. 비선점 (No preemption) : 다른 프로세스에 할당된 자원을 강제로 빼앗을 수 없다4. 순환 대기 (Circluar wait) : 한 프로세스는 다음 프로세스가 점유한 자원을 대기하고 다음 프로세스는 그 다음 프로세스가 점유한 자원을 대기하고 그 다음 프로세스는 처음 프로세스가 점유한 자원을 대기해야한다. 참고로 레이스 컨디션과 데드락은 다름레이스 컨디션은 타이밍문제데드.. 2025. 12. 15. 이전 1 다음