cgy12306

[OS] 프로세스 본문

운영체제

[OS] 프로세스

cgy12306 2021. 2. 7. 16:45

프로세스

프로세스란 실행 중인 프로그램을 뜻합니다.

 

프로세스는 실행되면서 state가 변합니다. 프로세스의 상태는 부분적으로 그 프로세스의 현재의 활동에 따라서 정의됩니다. 프로세스는 아래의 상태들 중 하나에 있게 됩니다.

  • new : 프로세스 생성 중인 상태
  • running : 명령어 실행 중인 상태
  • wating : 프로세스가 어떤 사건이 일어나기를 기다리는 상태
  • ready : 프로세스가 처리기에 할당되기를 기다리는 상태
  • terminated : 프로세스의 실행이 종료된 상태

 

프로세스 제어 블록(Process Control Block)

PCB는 특정 프로세스와 연관된 여러 정보를 담고 있으며 아래의 정보들을 포함합니다.

  • 프로세스 상태 : 상태는 new, ready, running, waiting, terminated 상태 등을 담고 있습니다.
  • 프로그램 카운터 : 프로그램 카운터는 이 프로세스가 다음에 실행할 명령어의 주소를 가리킵니다.
  • CPU 레지스터 : CPU 레지스터는 컴퓨터의 구조에 따라 다양한 수와 타입을 가집니다. 레지스터는 누산기, 인덱스 레지스터 ,스택 레지스터, 범용 레지스터들과 상태 코드 정보가 포함됩니다. 프로그램 카운터와 함께 이 상태 정보는 나중에 프로세스가 계속 올바르게 실행되도록 하기 위해서 인터럽트 발생 시 저장되어야 합니다.
  • CPU 스케쥴링 정보 : 이 정보는 프로세스 우선순위, 스케쥴 큐에 대한 포인터와 다른 스케쥴 매개변수들을 포합합니다.
  • 메모리 관리 정보 : 이 정보는 운영체제에 의해 사용되는 메모리 시스템에 따라 base 레지스터와 limit 레지스터의 값, 운영체제가 사용하는 메모리 시스템에 따라 페이지 테이블 또는 세그먼트 테이블 등과 같은 정보를 포함합니다.
  • 회계(accounting) 정보 : 이 정보는 CPU 사용 시간과 경과된 실시간, 시간 제한, 계정 번호, job 또는 프로세스 번호 등을 포함합니다.
  • 입출력 상태 정보 : 이 정보는 이 프로세스에게 할당된 입출력 장치들과 열린 파일의 목록 등을 포함합니다.

'운영체제' 카테고리의 다른 글

[OS] CPU 스케줄링  (0) 2021.02.07
[OS] 쓰레드  (0) 2021.02.07
[OS] System call  (0) 2021.02.07
Comments