프로세스

yshjft·2021년 12월 28일
0

운영체제

목록 보기
2/8

프로세스란(process)?

프로세스는 실행 중인 프로그램으로 디스크로 부터 메모리에 적재되어 시스템 자원을 할당 받을 수 있는 것을 의미한다. 할당 받는 시스템 자원으로는 CPU 시간, 운영되기 위해 필요한 주소 공간, Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역 등을 할당 받을 수 있다.

  • Code: 프로세스가 실행할 코드가 기계어 상태로 저장되어 있다.
  • Data: 전역 변수들이 저장되어 있다.
  • Stack: 함수 안에서 선언된 지역변수, 매개 변수 등과 같은 임시 자료(함수 호출 완료시 제거됨)들이 저장되어 있다.
  • Heap: 필요할 때 마다 동적으로 할당되는 메모리 영역이다.

그림에서 확인할 수 있듯이 프로세스는 각각 독립되어 있어 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 만약 접근을 원한다면 프로세스간 통신(IPC, Inter-process communication)을 사용해야한다.

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

PCB는 특정 프로세스에 대한 중요한 정보를 저장하고 있는 운여체제 자료구조로서 프로세를 관리하기 위해 프로세스의 생성과 동시에 생성된다. 프로세스 전환시 CPU를 반환할 때 작업의 진행 상황을 저장하기 위해 PCB를 사용하며 이후 CPU를 다시 할당 받았을 때 PCB에 저장된 작업 상황을 가져와 작업을 이어 나간다.

프로세스 상태

  • new
    프로세스 생성

  • terminated
    프로세스 종료

  • running
    프로세스 수행 중

  • waiting
    I/O나 다른 이벤트가 발생하기를 기다리는 중. 현재 프로세스가 수행을 하지 못하고 다른 작업을 기디리는 중이므로 CPU를 낭비하지 않기 위해 다른 ready 상태의 프로세스를 수행하게된다.

  • Ready
    작업 기다리는 것이 끝나고 다시 프로세스를 수행할 수 있는 상태가 되었다.(running으로 갈 준비 완료)

참고

profile
꾸준히 나아가자 🐢

0개의 댓글