본문 바로가기
OS

3-1.프로세스

by Backchus 2017. 11. 4.

1. 프로세스

프로세스는 실행중인 프로그램입니다. 하드디스크나 SSD에 저장된 프로그램이 실행을 위해 메모리에 적제되었을 때를 말합니다.

프로그램은 실행파일이 메모리에 적제 되었을때 프로세스가 됩니다.

  • text : text section은 프로그램 값으로 부터 표현되는 현재 활동을 포함하고, 다음으로 실행할 명령어를 가리키고 있는 주소값을 담은 프로그램 카운터와 프로세스의 레지스터에 대한 내용을 포함합니다.
  • stack : stack은 함수의 파라미터값, 리턴 주소값, 지역 변수 등을 포함합니다.
  • data: data section은 전역 변수를 포함합니다.
  • heap: heap은 동적으로 할당된 값을 포함합니다.


2. 프로세스 상태

프로세스를 실행하면서 프로세스의 상태는 바뀌게 되는데 현재 진행 중인 활동에 의해 프로세스는 다음 5가지 상태중 한 상태가 됩니다.

  • New: 프로세스가 생성 되었을때
  • Running: 명령어들이 실행될 때
  • Waiting: 일부 이벤트가 발생하길 기다릴 때
  • Ready: 프로세스가 프로세서에 할당되길 기다릴 때
  • Terminated: 프로세스가 종료 되었을 때 


3. 프로세스 제어 블록(PCB: Process Control Block)

PCB는 프로세스와 관련된 다양한 정보를 저장하고 있습니다.


  • 프로세스의 상태 : 프로세스의 상태는 new, ready, running, waiting, halted 등등으로 나타납니다.
  • 프로그램 카운터 : 프로그램 카운터는 다음에 실행될 명령어를 저장하고 있는 주소를 가리킵니다.
  • CPU 레지스터 : 누산기, 인덱스 레지스터, 스택포인터, 레지스터 등을 포함합니다. 프로그램카운터와 함께 이 상태정보는 인터럽트가 발생할때 저장되어 나중에 프로세스가 계속 실행할 수 있도록 해야 합니다.
  • CPU 스케쥴링 정보 : 프로세스가 실행될 수 있는 우선순위를 저장합니다.
  • 메모리 관리 정보 : 페이지테이블을 저장합니다, 세그먼트 테이블0 
  • 계정 정보: 계정정보는CPU의 실행시간, 시간 제한, 계정 ID, 프로세스의 숫자를 포함합니다.
  • 입출력 상태 정보: 프로세스에 할당된 입출력 장치의 리스트를 포함합니다.


'OS' 카테고리의 다른 글

시스템 구조  (0) 2017.10.25