프로세스와 스레드

프로세스 컴퓨터에서 실행 중인 프로그램의 인스턴스, 프로그램이 메모리에 올라가면 프로세스가 된다. 프로세스의 상태 운영체제마다 세부 상태는 다르지만, 기본적인 5상태 모델은 다음과 같다. 생성(New): 프로세스가 만들어지는 중인 상태 준비(Ready): 실행에 필요한 자원을 갖추고 CPU 할당을 기다리는 상태 실행(Running): CPU에서 명령을 실행하고 있는 상태 대기(Waiting, Blocked): I/O 완료나 이벤트 발생을 기다리는 상태 종료(Terminated): 실행이 끝난 상태 CPU 스케줄러가 준비 상태의 프로세스를 선택하면 실행 상태로 이동한다. 할당 시간이 끝나거나 선점되면 다시 준비 상태가 되고, I/O를 요청하면 대기 상태로 이동한다. 기다리던 작업이 완료되면 다시 준비 상태로 돌아간다. ...

January 12, 2025

OS. Deadlock

데드락 두 개 이상의 프로세스나 스레드가 서로 상대방이 점유하고 있는 자원을 기다리며, 서로 무한히 기다리는 상태에 빠지는 현상 데드락의 발생 조건 다음 네 가지 Coffman 조건이 동시에 성립할 때 데드락이 발생할 수 있다. 각 조건은 데드락의 필요 조건이지만, 네 조건이 성립한다고 해서 모든 실행에서 반드시 데드락이 발생하는 것은 아니다. 상호 배제(Mutual Exclusion) 한 번에 하나의 작업만 사용할 수 있는 자원이 존재하는 상태다. 점유 대기(Hold and Wait) 작업이 하나 이상의 자원을 이미 보유한 상태에서 다른 작업이 가진 추가 자원을 기다리는 상태다. ...

January 12, 2025

OS. Context Switching

컨텍스트 스위칭 CPU가 현재 실행 중인 프로세스나 스레드를 중단하고, 다른 프로세스나 스레드를 실행하는 과정. 멀티 태스킹 환경에서 하나의 CPU가 여러 작업을 번갈아 가며 처리할 수 있게 만들어 준다. 언제 발생하나? CPU 스케줄러가 다른 작업을 선택했을 때(그러면 다른 프로세스를 써야하니까) 실행 중인 작업이 블로킹 되었을때 (I/ O같은게 들어왔다거나 할 때) 과정 현재 작업(프로세스, 스레드)의 컨텍스트를 저장한다. 다음에 실행할 작업의 컨텍스트를 복원한다. CPU가 새로운 작업을 실행한다. 코스트 컨텍스트 스위칭을 할 때, 상태를 저장하고 로드하는 과정에서 메모리 접근, 레지스터 저장, 복원과 같은 작업 때문에 시간과 자원을 사용하게 된다. ...

January 12, 2025