[OS] 프로세스 관리

Jaehyeong Kwon·2022년 4월 30일
0

프로세스란?

프로세스란 디스크에 있는 프로그램이 메인 메모리에 올라와 있는 상태, 실행중인 프로그램을 이야기한다. CPU가 일을 처리할 때 사용하는 단위이다.

시스템에는 많은 프로세스들이 있지만 프로세스들을 처리할 CPU는 제한적이다. CPU를 공유하기 위해 프로세스들은 멈추고 실행되고 반복됩니다.

프로세스 콘테스트란 프로세스가 정지할 때 프로세스의 환경에 대한 상태입니다. 다시 프로세스를 시작하기 위해서는 재읽기를 하여야합니다.

프로세스의 상태와 상태 변환

현대에서 사용되는 멀티 태스킹 시스템에서는 프로세스는 다른 프로세스들과 CPU를 공유하기 위해 여러가지 상태를 가집니다.

  • new : 프로그램이 메모리에 올라와 프로세스가 생성된 상태
  • ready : 작업할 준비를 하고 CPU 할당을 기다리는 상태
  • running : CPU 할당을 받아 명령어가 실행되고 있는 상태
  • waiting : 어떠한 이벤트를 기다리는 상태
  • terminated : 프로세스의 실행이 완료된 상태

프로세스의 생존 주기는 다음과 같다.

PCB(Process Control Block)

모든 프로세스들은 PCB를 가지고 있습니다. PCB란 프로세스에 관한 모든 정보를 가지고 있는 데이터 구조입니다.

  • Process State : 프로세스의 현재 상태
  • Process ID and the Parent Process ID : 프로세스를 관리하고 식별하기 위한 번호
  • CPU registers and PC : 프로세스가 CPU 할당을 넘겨줄 때 당시의 레지스터의 내용과 다음 처리할 명령어의 주소
  • CPU Scheduling Information : 프로세스의 우선 순위와 스케쥴ㄹ이 큐를 위한 포인터
  • Memory Management information : 사용 중인 메모리의 주소와 할당 받은 메모리의 주소
  • Accounting Information : 타임 슬라이스를 위한 CPU 할당
profile
나무와 같이 성장하는 사람

0개의 댓글