Back-End/백엔드 관련 정리

[백엔드 과정][자바 기초] - 프로세스

얄루몬 2022. 9. 6. 15:40


프로세스

프로세스

  • 실행 중에 있는 프로그램을 의미한다.
  • 스케줄링의 대상이 되는 작업과 같은 의미로 쓰인다.
  • 하드 디스크의 프로그램 실행 시 실행을 위해서 메모리 할당이 이루어지고 할당된 메모리 공간으로 바이너리 코드가 올라간다.
    • 이순간부터 프로세스라고 부른다.

프로세스 스케줄링

  • 컴퓨터의 CPU는 한정적이고 대부분의 경우 프로세스가 CPU보다 많다.
    • 물리적 연산장치 - 프로세서
    • 논리적 연산장치 - 프로세스
  • 스케줄링
    • CPU 할당 순서 및 방법을 결정하는 일을 스케줄링이라고 한다.
    • 스케줄링에 따른 분류
      • 선점형(Preemptive)
        • 선점이란? 컴퓨터의 자원을 우선적으로 차지할 수 있는 권한을 뜻한다.
        • 이때 선점권은 실행 중에 있는 프로세스가 아닌 대기중인 프로세스가 갖는다.
        • 다만, 일정 조건이 맞는다면 선점권을 사용해서 가져올 수 있다.(특정 리소스 사용 중이 아닐때 등..)
        • 일반적인 운영체제에서 사용한다.
      • 비선점(Non - Preemptive)
        • 비선점의 경우프로세스가 자발적으로 자원을 반납하기 전까지는 CPU 사용권이 넘어가지 않는다.
        • 일반적인 Realtime Os에서 사용한다.
        • Real-time Os란? 실시간 응용 프로그램을 위해 개발된 운영 체제로 운영체제의 기능 중 CPU 시간 관리 부분에 초점을 맞춰 설계됐다.(주어진 작업을 정해놓은 시간 안에 완료하는 것을 의미한다.)
    • 일정한 기준인 알고리즘을 통해서 스케줄링은 정해진다.
      • FCFS
      • SJF
      • HRN
      • Priority Scheduling
      • Round Robin Scheduling

프로세스 상태 변화

  • New: 프로세스 생성(실행전)
  • Ready: 프로세스(논리적)가 프로세서(물리적)에서 실행되기 위해 대기중인 상태
  • Running: 프로세스가 실행되고 있는 상태
  • Blocked(Wait): 프로세스가 특정 자원이나 이벤트를 기다리는 상태
  • Terminated: 프로세스가 실행을 완료한 상태

프로세스와 쓰레드

  • 하나의 프로세스는 여러 개의 쓰레드로 구성이 가능하다.
  • 하나의 프로세스를 구성하는 쓰레드는 프로세스에 할당된 메모리와 자원을 구성한다.
  • 각 쓰레드별로 Stack과 Register를 가지고 있다.
  • 한 번에 하나의 쓰레드만 실행이 가능하다.