프로세스 Process

실행 중인 프로그램을 바로 프로세스라고 한다.

프로그램은 실행이 되기 전까지는 그저 보조기억정치에 있는 데이터 덩어리일 뿐이다. 하지만 보조기억 장치에 있는 그 데이터 덩어리를 주기억장치에 올리고 , 실행하는 순간 비로소 프로그램이 프로세스가 된다. 그리고 해당 과정을 프로세스를 생성한다 라고 한다.

백 , 포 그라운드 프로세스

사용자가 볼 수 있는 공간에서 실행되는 프로세스도 있지만 , 보이지 않는 공간에서 실행되는 프로세스도 존재한다.

사용자가 보는 앞에서 실행되는 프로세스를 바로 포그라운드 프로세스 Foreground process 라고 하고 사용자가 보지 못하는 뒤편에서 실행되는 프로세스라는 점에서 백그라운드 프로세스 Background process 라고 한다.

백그라운드 프로세스의 종류

백그라운드 프로세스라고 해서 이들이 다 사용자와 상호작용하지 않는 것은 아니다 , 백그라운드 프로세스들 중에서 사용자와 직접 상호작용할 수 있는 백그라운드 프로세스도 존재한다.

그리고 상호작용하지 않고 그저 묵묵히 정해진 일만 수행하는 백그라운드 프로세스도 있는데 , 이들을 유닉스에서는 데몬 Daemon 이라고 부르고 , 윈도우에서는 서비스 Service 라고 부른다.

PCB Process Control Block

모든 프로세스들은 서로 실행하기 위해 CPU 가 필요하지만 , CPU 의 자원은 한정되어 있다.

그렇기 때문에 한정된 시간만큼만 CPU 자원을 사용하고 타이머 인터럽트가 발생하면 자신의 차례를 양보하고 다음 차례가 올 때까지 기다린다.

그래서 운영체제는 그 실행 서순을 관리하고 CPU 를 비롯한 자원 배분을 위해서 프로세스 제어 블록 Process Control Block 을 이용한다.

PCB 가 뭔데?

PCB 는 커널 영역에 생성이 되며 , 수 많은 프로세스들 사이에서 PCB 를 활용해서 서로를 식별하고 처리를 하는 정보를 판단한다.

PCB 는 프로세스 생성 시에 만들어지고 실행이 끝나면 폐기 된다고 한다. 이 말은 즉슨 ‘새로운 프로세스가 생성’ 의 의미는 ‘운영체제가 새로운 PCB를 생성’ 과 같다. 그리고 ‘프로세스가 종료되었다’ 이 말은 ‘운영체제가 해당 PCB 를 폐기했다’ 와 같다.

PCB 가 갖는 대표적인 정보들

PCB 에 담기는 정보는 운영체제마다 차이가 있지만 , 대표적인 정보는 아래와 같다고 한다.

Process ID

프로세스 ID 는 특정 프로세스를 식별하기 위해 부여하는 고유한 번호이다.