한 걸음씩..

프로세스[1] - 프로세스 개념 본문

잡다한 공부방

프로세스[1] - 프로세스 개념

반엘 2013. 7. 15. 10:58

Process 개념


 1. 초기 컴퓨터 시스템 : 한번에 하나의 프로그램만 수행하도록 허용

 2. 근대 컴퓨터 시스템 : 메모리에 다수의 프로그램들이 적재되어 병행 수행되는 것을 허용

 3. 프로세스란 실행중인 프로그램이다. 프로그램 카운터의 값과 처리기 레지스터의 내용으로 대표되는 현재 활동을 포함한다.

 4. 프로세스는 일반적으로 메서드의 매개 변수, 복귀 주소와 로컬 변수와 같은 임시적인 자료를 가지는 프로세스 스택과 전역 변수들을 수록하는 데이터 섹션을 포함한다.


Process State


 1. New : 프로세스 생성 중

 2. Running : 명령어들이 실행되고 있음

 3. Waiting : 프로세스가 어떤 사건(입/출력 완료 또는 시그널 수신) 이 일어나기를 기다림

 4. Ready : 프로세스가 처리기에 할당되기를 기다림

 5. Terminated : 프로세스 실행 종료


Process Control Block

프로세스 제어 블록은 특정 프로세스와 연관된 여러 정보를 수록하며, 다음과 같은 것들을 포함한다.

 1. 프로세스 상태 : New, Ready, Running, Waiting 또는 정지(halted)

 2. 프로그램 카운터 : 이 프로세스가 다음에 실행할 명령어의 주소를 가리킨다.

 3. CPU 레지스터들 : 컴퓨터 구조에 따라 다양한 수와 타입을 가진다. 레지스터에는 누산기, 인덱스 레지스터, 스택  레지스터, 범용 레지스터들과 상태 코드 정보가 포함된다. 프로그램 카운터와 함께 이 상태 정보는, 나중에 프로세스가 계속 올바르게 수행 되도록 하기 위해서, 인터럽트 발생 시 저장되어야 한다.

 4. CPU스케줄링 정보 : 프로세스 우선순위, 스케줄 큐에 대한 포인터와 다른 스케줄 매개 변수들을 포함한다.

 5. 메모리 관리 정보 : 기준(base) 레지스터와 한계(limit) 레지스터의 값, 운영 체제가 사용하는 메모리 시스템에 따라 페이지 테이블 또는 세그먼트 테이블 등과 같은 정보를 포함한다.

 6. 회계(accounting) 정보 : CPU가 사용된 양과 사용된 실시간, 시간 제한, 계정 번호, 잡(job) 또는 프로세스 번호 등을 포함한다.

 7. 입/출력 상태 정보 : 이 프로세스에 할당된 입/출력 장치들과 열린 파일의 목록 등을 포함한다.