Process(프로세스)

임채환·2024년 9월 10일

Thread

목록 보기
1/6

Process(프로세스)

  • 프로그램이 실행시킨 인스턴스 즉 실행중인 컴퓨터 프로그램
  • 스커줄링의 대상이 되는 작업(Task)와 같은 용어로 쓰임
  • 프로그램은 일반적으로 보조 기억 장치에 저장된 실행 코드를 뜻하고, 프로세스는 프로그램을 구동하여 프로그램 자체와 프로그램의 상태가 메모리상에서 실행되는 작업 단위를 지칭합니다.
  • 하나의 프로그램을 여러 번 실행하면 프로세스가 메모리 상에서 실행됩니다.
  • 같은 시간에 여러 개의 프로그램을 실행하는 시분할 방식을 멀티 태스킹이라고 하며,대부분의 운영체제는 시분할 방식을 지원합니다.프로세스 관리는 운영체제의 중요합니다.

*comman+스페이스바하고 활성상태보기

Process Scheduling(프로세스 스케줄링)

  • 컴퓨터의 CPU는 한정되어 있고,대부분의 경우 프로세스는 CPU보다 많습니다.
    -CPU 할당 순서 및 방법을 결정하는 일

Process Scheduling 방식

  • Non-preemptive(비 선점형) - 프로세스가 스스로 다음 프로세스에 자리를 넘겨주는 방식
  • Premptive(선점형) - 운영체제가 강제로 프로세스의 사용권을 통제하는 방식

Process Scheduling Algorithm

  • FCFS(First Come First Serve)

CPU에 먼저 도착하는 순서대로 프로세스를 할당하는 방식으로, 각 작업이 종료될 때까지 CPU를 빼앗지 않으므로 Non-preemptive 방식이며, FIFO 방식의 Queue와 동일하게 동작합니다.

  • SJF(Short Job First)

프로세스의 수행 시간이 짧은 순서대로 프로세스를 할당하는 방식으로, 항상 주어진 프로세스에 대해 최소의 평균 대기 시간을 보장합니다. 수행 시간이 긴 프로세스는 계속 뒤로 밀려는 기아(Starvation) 현상이 발생할 수 있으며, 각 프로세스가 얼마나 CPU를 사용할지 모르는 경우 사용하기 어렵습니다.

  • Round Robin

각 프로세스가 동일한 크기의 할당 시간을 갖고 할당 시간이 끝나면 자동으로 선점(Preemptive)당하고, Ready Queue의 제일 뒤로 할당됩니다. n 개의 프로세스가 Ready Queue에 존재하고 할당 시간이 q라면 어떤 프로세스도 (n – 1)q 이상 기다리지 않으므로 기아 현상이 발생하지 않습니다.

  • Priority Processing

특정 기준으로 프로세스에 우선순위를 부여해 우선순위가 제일 높은 프로세스에 CPU를 할당하는 방식의 스케줄링입니다.

우선순위가 낮은 프로세스는 기아 현상이 발생할 수 있는데, 오래 대기한 프로세스의 우선순위를 높이는 에이징 방식으로 해결합니다.

이외에 MLFQ(Multi-Level Feedback Queue), HRN 등 여러 프로세스 스케줄링 기법이 있습니다.

Process 상태변화

디스패치

  • 준비에 있던 프로세스가 CPU를 점유하게 되는 것,즉 준비상태에서 실행 상태로 바뀌는 것

대기(보류)

  • 실행 상태의 프로세스가 허가된 시간을 다 쓰기전에 입출력 동작이 필요한 경우 프로세스는 CPU를 스스로 반납하고 보류 상태로 넘어간다.
    ex) C언어의 scanf함수

대기상태에서 준비 상태로 넘어갔을때는 입력이 됐을때.

시간종료

  • 운영체제는 프로세스가 프로세서를 계속 독점해서 사용하지 못하게 하기위해 clock interrupt를 두어서 프로세스가 일정 시간 동안만(시분할 시스템의 time slice) 프로세스를 점유 할 수 있게 함.

0개의 댓글