프로세스는 무엇일까?

지수 🤓·2020년 5월 25일
0

개념 정리

목록 보기
14/17
post-thumbnail
post-custom-banner

프로세스란?

프로그램이 메모리에 적재되면 프로세스가 된다. 실행 중인 프로그램

운영체제로부터 주소 공간, 파일, 메모리 등을 할당받으며 이것들을 총칭하여 프로세스라고 한다.

CPU는 한 순간에 하나의 프로세스만 실행할 수 있는데 빠르게 프로세스를 교체하고 있기 때문에 동시에 실행되는 것 처럼 느낀다.

프로세스 제어 블록PCB

프로세스에 대한 정보는 프로세스 제어 블록(PCB, Process Control Block)에 저장된다.
운영체제는 프로세스를 관리하기 위해 프로세스의 생성과 동시에 고유한 PCB 를 생성한다.

프로세스는 CPU 를 할당받아 작업을 처리하다가도 프로세스 전환이 발생하면 진행하던 작업을 저장하고 CPU 를 반환해야 하는데, 이때 작업의 진행 상황을 모두 PCB 에 저장하게 된다. 그리고 다시 CPU 를 할당받게 되면 PCB 에 저장되어있던 내용을 불러와 이전에 종료됐던 시점부터 다시 작업을 수행한다.

PCB 에 저장되는 정보

  • 프로세스 식별자(Process ID, PID) : 프로세스 식별번호
  • 프로세스 상태 : new, ready, running, waiting, terminated 등의 상태를 저장
  • 프로그램 카운터 : 프로세스가 다음에 실행할 명령어의 주소
  • CPU 레지스터
  • CPU 스케쥴링 정보 : 프로세스의 우선순위, 스케줄 큐에 대한 포인터 등
  • 메모리 관리 정보 : 페이지 테이블 또는 세그먼트 테이블 등과 같은 정보를 포함
  • 입출력 상태 정보 : 프로세스에 할당된 입출력 장치들과 열린 파일 목록
  • 어카운팅 정보 : 사용된 CPU 시간, 시간제한, 계정번호 등

프로세스 관리

운영체제는 프로세스의 상태를 실행, 준비, 블록 상태로 나눈다.

사용자가 프로그램을 실행하면 프로세스가 생성되고 준비리스트에 추가된다. 그 다음 CPU를 할당받으면서 실행 상태가 된다.
이 과정을 디스패칭이라고 하고 디스패처가 이 일을 수행한다.

연산을 하고 CPU를 반납하게 된다. 작업이 끝나지 않으면 다시 준비상태로 돌아간다.

출처1
출처2

profile
Backend Junior Developer
post-custom-banner

0개의 댓글