728x90

프로세스
프로그램

- 프로그램

프로그램은 특정 작업을 수행하는 명령어들의 집합체이다. 프로그램은 컴파일 된 결과문뿐만 아니라, 프로그래머가 작성한 소스 코드 까지도 포함한다.

- 프로세스

프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 여러 개의 프로세서를 사용하는 것을 멀티프로세싱이라 하며 같은 시간에 여러 개의 프로그램을 띄우는 시분할 방식을 멀티태스킹이라 한다. 프로세스 관리는 운영 체제의 중요한 부분이다.

프로세스 상태

- 프로세스의 상태

· 생성(create) : 프로세스가 생성되는 중이다.

· 실행(running) : 프로세스가 CPU를 차지하여 명령어들이 실행되고 있다.

· 준비(ready) : 프로세스가 CPU를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태로, CPU가 할당되기를 기다리고 있다. 일반적으로 준비 상태의 프로세스 중 우선순위가 높은 프로세스가 CPU를 할당받는다.

· 대기(waiting) : 보류(block)라고 부르기도 한다. 프로세스가 입출력 완료, 시그널 수신 등 어떤 사건을 기다리고 있는 상태를 말한다.

· 종료(terminated) : 프로세스의 실행이 종료되었다.

 

- 프로세스의 상태전이

· 디스패치(dispatch) : 준비 리스트의 맨 앞에 있던 프로세스가 CPU를 점유하게 되는 것, 즉 준비 상태에서 실행 상태로 바뀌는 것을 디스패치라고 한다.

· 보류(block) : 실행 상태의 프로세스가 허가된 시간을 다 쓰기 전에 입출력 동작을 필요로 하는 경우 프로세스는 CPU를 스스로 반납하고 보류 상태로 넘어간다.

· 깨움(wakeup) : 입출력 작업 종료 등 기다리던 사건이 일어났을 때 보류 상태에서 준비 상태로 넘어가는 과정을 깨움이라 한다.

· 시간제한(timeout) : 운영체제는 프로세스가 프로세서를 계속 독점해서 사용하지 못하게 하기 위해 clock interrupt를 두어서 프로세스가 일정 시간동안만 (시분할 시스템의 time slice) 프로세서를 점유할 수 있게 한다.

+ Recent posts