Process

2023. 11. 24. 18:42ETC/Other

1. Process

일반적으로 디스크에 저장되어있는 프로그램의 실행은 우선 프로그램 자신의 고유한 메모리 공간에 프로그램의 코드가 적재될 것이고 프로세서는 메모리에 적재된 코드 즉, 프로램의 명령어를 하나하나 읽어서 실행하게 된다. 이렇게 실행 중인 상태의 프로그램을 우리는 프로세스(Process) 또는 Task라고 부른다. 

작업관리자

예를 들면 윈도에서 작업 관리자를 켜보면 지금 실행하고 있는 프로그램(프로세스)를 확인할 수가 있다. 

2. Process Memory Structure

프로세스는 실행중인 프로그램으로서 역할을 수행하기 위해서 프로세서를 점유해야한다. 그리고 프로세스는 할당시간과 메모리, 파일, 입출력장치와 같은 자원을 필요로 한다. 그래서 이러한 자원이 할당이 되어야한다. 아래 그림은 프로세스의 메모리 구조를 나타낸 그림이다. 

Process in Memory

text : text section includes program code, the current activity, as represented by the value of the program counter and the contents of the processor's registers
프로세서가 실행하는 코드를 저장하는 영역이다.

data : data section, which contains global variables.
주로 정적 데이터 영역은 변수(전역 및 정적)들을 저장하는 영역이다. 

heap : memory that is dynamically allocated during process run time. 
자유메모리 공간으로 프로세스가 실행중에 동적으로 할당받는 메모리 공간이다. 읽고 쓰기가 가능한 영역이다. 

stack : It contains temporary data( such as function parameters, return addresses, and local variable) 
일시적인 데이터를 보관하는 스택

3. Process Status

프로세스 실행을 하면 프로세스 상태가 여러가지로 변한다. 프로세스는 아래와 같은 상태를 지닌다.

New : The Process is being created. (프로세스가 만들어진 상태) 
Running : Instructions are being executed. ( 명령어들이 실행된 상태)
Waiting : The Process is waiting for some event to occur(such as an I/O completion or reception of a signal)
               프로세서가 어떤 이벤트(입출력 완료 또는 신호)가 일어나기를 기다리는 상태
Ready : The process is waiting to be assigned to a processor.
              프로세서에게 할당되기를 기다리는 상태
Terminated : The process has finished execution.
                     프로세스 실행이 끝난 상태

3.1 Process Control Block 
PCB의 구조는 아래와 같다. Task control block이라고도 불린다.

Process controle block(PCB)

  • 프로그램 상태 
    신규 또는 생성 준비, 실행, 대기, 중단 등의 상태를 표시한다.
  • 프로그램 카운터
    프로세스를 수행하기 위한 다음 명령의 주소를 표시한다.
  • 레지스터 
    누산기, 인덱스 레지스터, 범용 레지스터, 조건 코드 등에 관한 정보를 말하며 컴퓨터 구조에 따라 수나 형태가 변화한다. 인터럽트가 발생하면 프로그램 카운터와 함께 저장되어 뒤에 다시 수행될 때 원상 복구할 수 있도록 한다. 
  • 계정정보 
    프로세스 사용시간, 실제 사용시간, 사용 상한시간, 계정 번호, 작업이나 프로세스 번호 등을 포함한다.
  • 입출력 상태 정보
    특별한 입출력 요구 프로세스에 할당된 입출력 장치, 개발된 파일의 목록 등을 가지고 있다. 
  • 프로세서 스케줄링 정보
    프로세스의 우선순위, 스케줄링 큐에 대한 포인터, 그 외 다르스케줄 매개변수를 가지고 있다.
  • 메모리 관리 정보 
    메모리 관리에 필요한 정보로서 메모리 영역을 정의하는 하한 및 상한 레지스터(경계 레지스터) 또는 페이지 테이블의 정보를 가지고 있다. 

 

참고 : 쉽게 배우는 운영체제

 

쉽게 배우는 운영체제 | 조성호 - 교보문고

쉽게 배우는 운영체제 |

product.kyobobook.co.kr

Operation System Concept

 

운영체제 | Abraham Silberschatz - 교보문고

운영체제 |

product.kyobobook.co.kr