SW Engineering/OS Concept

09_프로세스 개념

SungWookKang 2015. 7. 16. 13:03
반응형

09_프로세스 개념

 

초기의 컴퓨터 시스템은 한 번에 하나의 프로그램만 수행 할 수 있었다. 현대의 컴퓨터 시스템은 메모리에 다수의 프로그램들이 적재되어 병행 수행되는 것을 허용 한다. 이러한 발전은 프로그램을 보다 견고하게 제어하고 보다 구획화 할 것이 필요 했다. 이러한 필요성으로 프로세스 라는 개념이 탄생 하였으며 프로세스는 수행중인 프로그램 이란 뜻을 가지게 되었다. 현대의 컴퓨터에서 프로세스란 시분할 시스템에서 작업의 단위이기도 하다.

 

프로세스는 일괄 처리 시스템 작업이나 시분할 시스템 사용자들의 태스크를 모두 지칭 한다. 또한 프로그램 카운터의 값과 처리기 레지스터의 내용으로 대표되는 현재 활동을 포함 한다.

 

프로세스는 일반 적으로 함수의 매개변수 복귀 주소와 지역 변수와 같은 임시적인 자료를 가지는 프로세스 스택과 전역 변수들을 수록하는 데이터 섹션을 포함한다. 또한 프로세스 실행 중에 동적으로 할당되는 메모리인 힙을 포함 한다.

 

 

 

프로그램 그 자체는 프로세스가 아니다. 프로그램은 명령어 리스트를 내용으로 가진 디스크에 저장된 파일(실행 파일)과 같은 수동적인 존재인 반면 프로세스는 다음에 실행할 명령어를 지정하는 프로그램 카운터와 연관된 자원의 집합을 가진 능동적인 존재이다. 실행 파일이 메모리에 적재 될 때 프로그램은 프로세스가 된다.

 

프로그램 ≠ 프로세스

 

실행 파일이 메모리에 적재되는 일반적인 방식은 실행 파일을 나타내는 아이콘을 더블 클릭하는 방법과 명령어 라인상에서 파일이름 입력하는 방법이다. 이 때 두 프로세스들이 동일한 프로그램에 연관 될 수 있지만 이들은 두 개의 별도의 실행 순서로 간주 된다.

예를 들어 동일한 워드 파일을 각각 실행 할 경우 이들은 각각 별도의 프로세스이며 텍스트 섹션이 동등하다 할지라도 자료, 힙 및 스택 섹션은 다를 수 있다.

 

프로세스는 실행이 되면 그 상태가 변한다. 프로세스의 상태는 현재의 그 상태는 프로세스의 현재 활동을 정의한다. 다음 그림을 통해 프로세스 상태 및 정의를 알아 보자.

  • New : 프로세스가 생성
  • Running : 명령어들이 실행
  • Waiting : 프로시스가 어떤 사건(입/출력 등)이 일어나기를 기다림
  • Ready : 프로세스가 처리기에 할당되기를 기다림
  • Terminated : 프로세스의 실행이 종료

 

 

 

 

각 프로세스는 운영체제에서 프로세스 제어블록(Process Control Blcok : PCB)의 의해 표시 된다. 태스크 제어 블록이라고도 불린다.

  • Process State : 상태는 New, Ready, Running, Waiting(Halted)상태 등이다.
  • Program Counter : 프로그램 카운터는 이 프로세스가 다음에 실행할 명령어의 주소를 가리킨다.
  • Registers : CPU 레지스터는 컴퓨터 구조에 따라 다양한 개수와 유형을 가진다. 레지스터에는 누산기, 색인 레지스터, 스택 레지스터, 범용 레지스터들과 상태코드 정보가 포함 된다/ 프로그램 카운터와 함께 이 상태 정보는 나중에 프로세스가 계속 올바르게 수행되도록 하기 위해서 인터럽트 발생시 저장되어야 한다.
  • CU 스케줄링 정보 : 프로세스 우선순위, 스케줄 큐에 대한 포인터와 다른 스케줄 매개변수들을 포함
  • Memory Limits : 운영체제에 의해 사용되는 메모리 시스템에 따라 베이스 레지스터와 한계 레지스터의 값, 운영체제가 사용하는 메모리 시스템에 따라 페이지 또는 테이블 또는 세그먼트 테이블 등과 같은 정보를 포함 한다.

 

  • Accounting : CPU가 사용된 양과 시간, 시간 제한, 계정번호, 작업 또는 프로세스 번호 등을 포함
  • 입/출력 상태 정보 : 프로세스에 할당된 입/출력 장치들과 열린 파일의 리스트 정보

[프로세스 제어 블록(PCB)]

 

 

[CPU 사이의 프로세스 Switch]

 

 

 

반응형

'SW Engineering > OS Concept' 카테고리의 다른 글

11_프로세스에 대한 연산  (0) 2015.07.16
10_프로세스 스케줄링  (0) 2015.07.16
08_시스템 부트  (0) 2015.07.16
07_가상 머신(Virtual Machine)  (0) 2015.07.16
06_운영체제 구조  (0) 2015.07.16