프로세스의 개요

꿀떡냠·2024년 5월 13일
  • 프로세스란?
    • 운영체제에서 프로세스는 하나의 작업 단위이다.
    • 프로그램이 실행되면 프로세스가 된다.

프로세스의 개념

  • 프로그램은 저장장치에 저장된 정적인 상태이고, 프로세스는 실행을 위해 메모리에 올라온 동적인 상태이다.

프로그램에서 프로세스로의 전환

  • 운영체제는 프로그램을 메모리의 적당한 위치로 가져온다.
  • 운영체제 메모리 영역에 프로세스 제어블록(PCB)을 생성한다.
  • PCB가 있어야 프로그램이 프로세스로 전환 될 수 있다.
  • 프로세스는 일반 사용자의 사용자 프로세스와 운영체제의 커널 프로세스로 나뉜다.

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

  • 프로세스 구분자 : 각 프로세스를 구분하기 위한 ID 값 (Process Id)
  • 메모리 관련 정보 : 프로세스의 메모리 관련 정보(경계 레지스터, 한계 레지스터)
  • 각종 중간값 : 다음에 작업해야할 명령어 위치가 담긴 PC(Program Counter)

    프로세스와 프로그램의 관계
    프로그램 : 프로세스 - 프로세스 제어 블록
    프로세스 : 프로그램 + 프로세스 제어 블록

프로세스의 상태

프로세스의 네가지 상태

  • 생성상태(Create Status) : 프로세스가 메모리에 올라와 실행 준비를 완료한 상태다. 프로세스 제어 블록이 생성 된다.
  • 준비상태(Ready Status) : 생성된 프로세스가 CPU를 얻을 때까지 기다리는 상태다. CPU가 하나인 컴퓨터는 한번에 한개의 프로세스만 실행이 가능하기 때문에, 프로세스는 자기 실행 순서가 될 때까지 준비상태에서 기다려야한다.
  • 실행상태(Running Status) : 프로세스가 CPU를 얻어 실제 작업을 수행하는 상태이다. 실행 상태에 들어간 프로세스는 일정 시간 동안 CPU를 사용할 권리를 갖는다. 프로세스는 자신의 작업이 끝나면 완료상태가 되고, 작업이 끝나기 전에 할당받은 시간이 종료되면 준비상태로 돌아간다.
  • 완료상태(Terminate Status) : 실행 상태의 프로세스가 주어진 시간동안 작업을 마치면 완료 상태로 진입한다. PCB는 사라진다.
    • CPU 스케줄링
      준비상태에 있는 여러 프로세스중 다음에 실행할 프로세스를 선정한다.
    • 디스패치
      준비상태에 있는 여러 프로세스중 하나를 골라 실행 상태로 바꾸는 작업을 말한다.
    • 타임 슬라이스 or 타임 퀀텀
      프로세스에 배당된 작업 시간을 말한다.
      타임 아웃
      타임 슬라이스동안 작업을 완료하지 못한 경우 다시 준비 상태로 돌아가는 것을 말한다.

프로세스의 다섯가지 상태

  • 대기 상태 : 입출력을 요구한 프로세스가 완료 될때까지 기다리는 상태이다. 입출력 관리자가 입출력을 완료하면 준비 상태로 돌아간다.

휴식상태와 보류 상태

  • 프로세스 활성 상태 : 생성, 준비, 실행, 대기, 완료 상태
  • 휴식 상태
    - 일시적으로 프로세스가 작업을 쉬고 있는 상태
    • 프로세스가 종료된 것 처럼 보이지만 실행을 잠시 멈춘 상태
    • 메모리에 프로세스 및 PCB가 그대로 있음
    • 멈춘 시점부터 재실행 가능
  • 보류 상태
    - 프로세스가 메모리가 아닌 스왑(swap) 영역으로 쫒겨난 상태
    • 보류 상태가 되는 경우
      • 메모리가 꽉 차서 일부 프로세스를 메모리 밖으로 내보낼 때
        • 프로그램에 오류가 있어서 실행을 미루어야 할 때
        • 바이러스와 같이 악의적인 공격을 하는 프로세스라고 판단 될 때
        • 매우 긴 주기로 반복되는 프로세스라 메모리 밖으로 쫒아내도 큰 문제가 없을 때
        • 입출력을 기다리는 프로세스의 입출력이 계속 지연될 때
    • 대게 컴퓨터의 성능을 떨어뜨리거나 실행을 미루어도 큰 지장이 없는 프로세스가 보류 상태가 된다.
    • 보류 상태는 보류 대기 상태와 보류 준비 상태로 구분된다.
      • 보류 대기 상태 : 대기 상태에서 보류상태로 옮겨진 경우
      • 보류 준비 상태 : 준비 상태에서 보류상태로 옮겨진 경우

profile
백엔드 개발자로 살아남기

0개의 댓글