프로세스 개요

2강. 프로세스 개요

프로세스 개요에 대해 알아보자.

주요 용어

  • 프로세스: 실행 중인 프로그램, CPU, 메모리, 입출력장치, 파일 등
    실행에 필요한 자원을 할당받아 동작한다.

  • 프로세스 제어 블록(PCB): 프로세스 상태, 프로세스 번호, 프로그램 카운터, 레지스터 등
    프로세스를 관리하기 위한 정보를 포함하는 자료구조

  • 스케줄러: 각 프로세스들이 CPU, 메모리, 입출력장치, 파일 등과 같은 자원을 공유할 때,
    시스템 내에서 프로세스의 실행 순서나 일정을 조정해주는 관리자

  • 독립적 프로세스: 시스템에서 실행 중인 다른 프로세스의 영향을 받지도 않고 주지도 않는 프로세스

  • 유기적 프로세스: 시스템에서 실행 중인 다른 프로세스의 영향을 주고받으며 동작하는 프로세스

  • 쓰레드: 프로세스 내에서의 다중처리를 위하여 제안된 개념으로
    실행 단위를 프로세스에서 한 단계 낮추어 규정한 것으로 제어의 흐름을 의미 한다.
    • 디스패칭의 단위로 경량 프로세스라고도 함

  • 디스패처: 준비상태에 있는 프로세스를 실행상태로 전이시키는 작업을 수행하는 운영체제 내의 모듈

  • 선점 스케줄링 정책: 진행 중인 작업에 인터럽트를 걸고 다른 작업에 CPU를 할당하는 스케줄링 전략

  • 비선점 스케줄링 정책: 일단 프로세스가 CPU를 할당받아 실행이 시작되면,
    프로세스 자체가 I/O 인터럽트를 걸거나 프로세스를 종료할 때까지 실행상태에 있게 하는 스케줄링 전략

  • 문맥 교환: CPU가 현재 실행하고 있는 프로세스의 문맥(상태)을 프로세스 제어 블록(PCB)에 저장하고, 다음 프로세스의 PCB로부터 문맥을 복원하는 작업

정리하기

  • 프로세스는 생성, 준비, 실행, 대기, 종료의 다섯 상태 중 하나로 존재하며,
    CPU의 스케줄링, I/O 대기 등에 따라 준비, 실행, 대기 등으로 상태가 변화되며 동작한다.

  • 프로세스 제어 블록(PCB)은 프로세스를 명시해 주는 다양한 내용을 포함하고 있다.

  • 쓰레드란 하나의 프로그램 내에서 제어의 단일 순차적 흐름으로 정의되며,
    하나의 쓰레그 내에서는 하나의 실행점만이 존재하며, 각 쓰레드는 수행에 필요한 최소한의 정보만으로 구성된다.

  • 하나의 프로세스 내에는 하나 이상의 쓰레드가 있을 수 있어 쓰레드를 생성하여
    프로세스 내에서 다중처리를 할 수 있다.

  • 프로세스의 스케줄링을 위해 상위단계, 하위단계 및 중간단계 스케줄러가 사용된다.

  • 스케줄링 기법 중 어떤 프로세스도 CPU를 빼앗길 수 없는 경우비선점이라 하며,
    그렇지 않은 경우선점이라고 한다.