본문 바로가기

System

프로세스 관리(Process Management)

프로세스

레지스터, 스택, 포인터, 실행중인 프로그램, 데이터 등의 집합체이다. 프로그램과 프로세스의 차이점은 현재 메모리에 적재되어 있는지이다. 즉, 아직 메모리에 적재되지 않고 보조기억장치에 존재하는 데이터의 경우는 프로그램이다. 여기서 해당 프로그램이 메모리에 적재되면 프로세스가 된다. 프로세서에 의해 수행되는 프로그램의 단위로 현재 실행 주잉거나 곧 실행 가능한 PCB(Process Control Block)를 가진 프로그램이다.

자원 할당을 위한 기본 구분 단위로 사용된다.

스레드(Thread)

제어의 흐름을 의미한다. 프로세스에서 실행의 개념만 분리한 것이다. 프로세스의 구성을 크게 두 가지로 나눌 때 제어의 흐름 부분과 실행 부분으로 나눌 수 있다 이때, 스레드는 실행부분을 의미한다. 해당 실행 부분의 기본 단위가 스레드이다.

CPU를 이용하는 기본 작업 단위이다.

 

프로세스 상태전이(Process State Transition)

운영체제-프로세스의 실행 제어, 정보 유지를 담당한다. 프로세스의 실행에 따른 메모리 할당 등을 진행하는 과정이다. 상태 전이를 위해 OS는 스캐줄러를 이용한다. 

프로세스 상태 전이도(Process State Transition Diagram)

프로세스가 실행되면 모든 프로세스는 준비 상태의 준비 큐에 들어간다. 준비 큐의 프로세스는 CPU 스케줄링 알고리즘에 의해서 CPU를 점유하게 되고 프로세스를 실행한다. CPU에서 실행 중인 프로세스가 Timeout이 되면 다시 준비 큐의 뒤로 들어가고 CPU를 점유할 때까지 대기한다. 만약 실행 중인 프로세스가 디스크 입출력과 같은 작업이 발생하면 대기 상태가 되고 입출력을 수행한다. 입출력이 완료되면 다시 프로세스는 준비 상태로 들어가 대기하게 된다. 이렇게 프로세스가 CPU를 점유하는 과정을 프로세스 상태전이라고 한다.

상태 변환 용어

  • Admit : [생성 → 준비] 준비 큐가 비어있을 때 작업 스케줄러에 의해서 실행된다.
  • Dispatch : [준비 실행] 준비 큐에 있는 하나의 프로세스를 선택하여 CPU 점유를 시작한다. 프로세스 스케줄러가 담당한다.
  • Timer Run out : [실행 준비] CPU를 점유중인 프로세스가 할당된 시간을 모두 사용하여 타임아웃이 된 경우에 발생한다. CPU 스케줄링 정책에 따라 우선순위가 높은 프로세스로 점유권이 양보 되는데 운영 체제 자체의 CPU 서비스 요청 시 전이된다.
  • Blocked : [실행 → 슬립](대기) CPU를 할당 받은 프로세스가 I/O 요구, 다른 자원 요구 등 CPU 이외의 서비스를 원할 때 발생한다.
  • Wake up : [슬립 준비](대기) 대기 중이던 사건의 처리가 끝났을 때 발생한다.
  • Release : [실행 → 종료] 프로세스의 정상/비정상 종료 시 발생한다.

 

문맥 교환(Context Switching)

CPU가 이전의 프로세스 상태를 PCB에 보관하고 다른 프로세스의 상태 정보를 PCB에서 읽어서 레지스터에 적재하는 것이다. 프로세스의 Dispatch, Timer Run out, Blocked, Wake up 등으로 상태가 변경될 때 발생한다. 문맥 교환은 자원을 최대로 활용하는 멀티 프로그래밍 환경에서 이루어지며 병행 처리를 수행한다.

 

PCB(Proccess Control Block)

운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 공간이다. 프로세스의 상태 정보를 저장한다. 프로세스의 상태 관리와 문맥 교환때문에 필요하다. PCB는 프로세스 생성 시 만들어지고 주기억장치(RAM)에서 유지된다. PCB에 유지되는 정보는 다음과 같다.

  • PID : 프로세스 고유의 번호
  • 포인터 : 다음 실행될 프로세스의 포인터
  • 상태 : 준비, 대기, 실행 등의 상태
  • Register save area : 레지스터 관련 정보
  • Priority : 스케줄링 및 프로세스 우선순위
  • Account : CPU 사용시간, 실제 사용된 시간
  • Memory Pointers : 메모리 관련 정보
  • 입출력 상태 정보
  • 할당된 자원 정보

 

반응형

'System' 카테고리의 다른 글

리눅스 구조  (0) 2021.01.04
CPU 스케줄링 기법  (0) 2021.01.03
운영체제(OS-Operating System)  (0) 2021.01.03
DMA(Direct Memory Access)  (0) 2021.01.02
메모리 시스템(Memory System)  (0) 2021.01.02