본문/내용
1. 이벤트의 종류
프로세스가 블록상태에 들어갈 만한 이벤트는 여러 가지가 있다. 블록상태는 프로세스가 실행될 수 없는 상태로, 다양한 이유로 발생할 수 있다. 첫 번째로 입출력(I/O) 요청이 있을 때 프로세스는 블록상태로 전환된다. 프로세스가 파일이나 네트워크 장치와 같은 외부 자원에 접근하기 위해 I/O 작업을 요청하면, 해당 작업이 완료될 때까지 프로세스는 일시적으로 중단된다. 이때, 프로세스는 CPU의 사용권을 포기하고 I/O 장치의 응답을 기다리게 된다. 두 번째로 동기화 관련 이벤트가 있다. 프로세스 간의 상호작용에서 발생하는 컨디션 변수, 세마포어, 뮤텍스 등의 동기화 메커니즘을 사용할 때, 특정 프로세스가 자원을 사용할 수 없는 상황에 처하면 블록상태로 이동하게 된다. 예를 들어, 하나의 프로세스가 공유 자원을 사용하고 있을 때 다른 프로세스가 해당 자원을 요청하면 이미 사용 중인 프로세스가 작업을 끝낼 때까지 대기하게 된다. 세 번째로 자원 부족 상황이 있다. 시스템에서 메모리나 CPU와 같은 자원이 부족할 경우, 프로세스는 추가 자원을 요청하면서 블록상태가 된다. 특히, 메모리 할당 요청이 실패하거나, 필요한 프로세…