프로세스

Woo Yong·2023년 2월 23일
0

정보처리기사 필기

목록 보기
7/11

프로세스 정의

  • 프로세스(Process)는 일반적으로 프로세서(CPU)에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램을 의미하며, 컴퓨터가 작업하는 단위로 작업(Job), 태스크(Task)라고도 한다.
  • 프로세스는 다음과 같이 여러 형태로 정의할 수 있다.
    • PCB(프로세스 제어블록)를 가진 프로그램
    • 실기억장치에 저장된 프로그램
    • 프로세서가 할당되는 실체로서, 디스패치가 가능한 단위
    • 프로시저가 활동 중인 것
    • 비동기적 행위를 일으키는 주체이다. (즉, 요청 작업이 종료될때까지 기다리지 않는다.)
    • 운영체제가 관리하는 실행 단위

프로세스 제어 블록 (PCB)

  • PCB운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳이며, Job Control Block이라고도 불린다.
  • 각 프로세스가 생성될 때마다 고유의 PCB가 생성되며, 프로세스가 소멸되면 PCB도 소멸된다. (즉, 하나의 프로세스에 하나의 PCB가 존재하고 생명주기가 동일하다.)
  • PCB에 저장되는 정보
    • 프로세스의 현재상태
    • 프로세스의 우선순위
    • 프로세스에 할당된 자원에 대한 정보
    • CPU 레지스터 정보
    • 포인터
    • 프로세스 고유 식별자
    • 주기억장치 관리 정보
    • 입출력 상태 정보
    • 계정 정보

프로세스 상태 전이

  • 프로세스 상태 전이는 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미
    프로세스 상태 전이도
  • 위 그림과 같이 프로세스의 상태는 제출, 접수, 준비, 실행, 대기상태로 나눌 수 있으며, 주요 상태는 준비, 실행, 대기이다.

  • 프로세스 상태

    • 준비(Ready State) : 프로세스가 CPU를 할당받기 위해 준비하는 상태
    • 실행상태(Running State) : CPU를 할당받아 실행 중인 상태
    • 대기상태(Blocked State) : 다른 작업이 필요하여, 실행 상태의 프로세스가 종료되기 전에 CPU를 반납하고 작업 완료를 대기하는 상태

  • 프로세스 상태 전이 관련 용어

    • Dispatch ( 준비상태 -> 실행상태 ) : 준비 상태의 프로세스 중에서 할당받아 실행상태로 전이되는 과정
    • Wake Up ( 대기상태 -> 준비상태 ) : 입출력 작업이 완료되어 대기상태에서 준비상태로 전이되는 과정

스레드

  • 스레드(Thread)프로세스 내에서의 작업 단위로서 시스템의 여러자원을 할당받아 실행하는 프로그램의 단위이다.
  • 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상 시킬 수 있다.
  • 한개의 프로세스는 여러개의 스레드를 가질 수 있다. (다중 스레드)
  • 프로세스의 일부 특성을 갖기 때문에 경량 프로세스라고도 불린다.
  • 동일 프로세스 환경에서 서로 독립적인 다중 수행이 가능하다.
  • 스레드의 구분

    • 커널 스레드 : 구현이 쉽지만 속도가 느리다.
    • 사용자 스레드 : 속도는 빠르지만 구현이 어렵다
      • 높은 이식성
      • 오버헤드 감소
  • 스레드 사용 장점

    • 병행성 증진
    • 성능 및 처리율 향상
    • 응답시간의 단축
    • 기억장소의 낭비 감소
    • 프로세스들 간의 통신 향상
profile
Back-End Developer

0개의 댓글