Process (프로세스)

이유석·2022년 2월 2일
0

CS - Operating System

목록 보기
4/20

Process

정의

  • 실행중인 프로그램 (Program in execution)
  • 동작을 하는 능동적 개체 (Active)
    • 프로그램 : 동작을 하지 않는 정적, 수동적 개체 (Passive)
  • 프로세서 : 하드웨어적인 측면에서 "컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛" 이다.

구성

  • Text Section : 프로그램 코드
  • Data Section : 전역 변수를 저장하는 곳
  • Heap : 런타임에 동적으로 메모리에 할당되는 데이터
  • Stack : 함수가 실행됭 때 일시적으로 생기는 데이터
  • PCB(Process Control Block) : 프로세스의 정보
    • Program Counter : 프로세스가 다음에 수행해야 할 명령어의 주소

상태

  • 프로세스 관리를 위해, 상태를 변화시킨다.
  • 생성 (New)
    • 프로세스가 생성되는 중
  • 준비 (Ready)
    • 프로세스가 설정되어 대기 중. CPU를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태로, CPU가 할당되기를 기다리고 있는 상태. 일반적으로 준비 상태의 프로세스 중 우선순위가 높은 프로세스가 CPU를 할당 받는다.
  • 실행 (Running)
    • 프로세서가 CPU를 차지하여 명령어들이 실행되는 중
  • 대기 (Waiting)
    • 보류(block)라고도 부른다. 프로세스가 입출력 완료, 시그널 수신 등 어떤 사건(Event)의 발생을 기다리고 있는 상태를 말한다.
  • 종료 (Terminated)
    • 프로세스가 실행을 종료


Process Scheduling

  • CPU 의 사용 효율을 최대화 하기 위해, 빠르게 프로세스들을 CPU core 위로 빠르게 전환한다.

  • Queue

    • 프로세스의 스케줄링을 위해 OS가 지원하는 것
    • Linked List 방식으로 관리된다.
    • 종류
      • Job queue : 메인 메모리에 올라가기 위한 프로그램들이 대기하는 곳
      • Ready queue : Main memory에 적재되어, CPU로부터 Resource를 받기 위해 기다리는 곳
      • Device queue : 장치를 사용하기 위해 기다리는 곳
      • Waiting queue : 특정한 event 마다 대기하는 프로세스를 유지시켜주는 곳
  • Scheduler

    • 각 큐마다 다음 차례의 프로세스를 결정하여 줍니다.

Context Switching

  • Dispatch : CPU가 이전의 프로세스 상태를 PCB에 저장하고, 또 다른 프로세스의 정보를 PCB에 읽어 레지스터에 적재(CPU의 할당을 받음)하는 과정
  • CPU resource의 획득과 잃음을 의미한다.

    즉, 프로세스가 Ready → Running, Running → Ready, Running → Waiting처럼 상태 변경 시 발생!

  • Context Switching Overhead : PCB의 정보를 저장하고 로드하는데 드는 비용

Process Control Block (PCB)

  • 프로세스 메타데이터들을 저장해 놓은 곳, 한 PCB 안에는 한 프로세스의 정보가 담김

  • 구성

    • Pointer : 부모 프로세스에 대한 포인터, 자식 프로세스에 대한 포인터, 프로세스가 위치한 메모리 주소에 대한 포인터, 할당된 자원에 대한 포인터 정보
    • Process State : 프로세스의 상태 5가지 중 현재의 상태 정보
    • Process Number(ID) : 프로세스가 생성될 때, 부여받는 프로세스의 고유 식별자
    • Program Counter : 프로세스가 다음에 수행해야 할 명령어의 주소
    • Registers : CPU 내의 누산기, 인덱스 레지스터, 프로그램 카운터 등의 정보
    • 그 외 여러 정보가 있다.
  • 필요한 이유

    • CPU에서는 프로세스의 상태에 따라 교체작업이 이루어진다. (interrupt가 발생해서 할당받은 프로세스가 wating 상태가 되고 다른 프로세스를 running으로 바꿔 올릴 때)

    • 이때, 앞으로 다시 수행할 대기 중인 프로세스에 관한 저장 값을 PCB에 저장해두는 것이다.

  • PCB의 관리 방법

    • Linked List 방식으로 관리된다.

    • PCB List Head에 PCB들이 생성될 때마다 붙게 된다. 주소값으로 연결이 이루어져 있는 연결리스트이기 때문에 삽입 삭제가 용이하다.


Multi Process

  • 하나의 컴퓨터에 여러 CPU 장착 → 하나 이상의 프로세스들을 동시에 처리(병렬)

  • 장점 : 안전성 (메모리 침범 문제를 OS 차원에서 해결)

  • 단점 : 각각 독립된 메모리 영역을 갖고 있어, 작업량이 많을 수록 오버헤드 발생. Context Switching 으로 성능 저하

profile
소통을 중요하게 여기며, 정보의 공유를 통해 완전한 학습을 이루어 냅니다.

0개의 댓글

관련 채용 정보