컴퓨터 공학 - 프로세스

on under algorithm
1 minute read

프로세스 상태

  • 생성(Created) : 프로그램이 실행되고 프로세스가 생성되면서 실행 가능 상태가 되는 것.
  • 실행 가능(Waiting) : CPU 할당 대기 상태
  • 현재 실행 중인 프로세스의 우선순위와 비교하여 높으면 실행, 낮으면 대기
  • 디스패치(dispatch) : 다음으로 실행될 프로세스에 CPU를 할당하는 것
  • 프리엠션(preemption) : 실행 중이던 프로세스에서 CPU를 해제하는 것
  • 실행(Running) : 프로세스가 운영체제로부터 CPU를 할당받아 실행되는 상태
  • 보류(Blocked) : 프로세스가 I/O작업을 하면 CPU를 해제하고 보류 상태로 변경
  • 그 동안 실행 가능 상태의 프로세스 중 하나가 CPU를 할당받음
  • I/O 작업이 끝나면 실행 가능상태가 되어 기다림
  • 소멸(Terminated) : 프로세스 실행이 완료되어 메인 메모리에서 사라짐

스케줄링(scheduling)

운영체제가 여러 프로세스의 CPU 할당 순서를 결정하는 것

  • 우선순위(Priority) 알고리즘
  • 프로세스에 우선순위를 매겨 우선순위가 높은 프로세스를 먼저 실행
  • 우선 순위가 낮은 프로세스는 계속 CPU를 할당받지 못하는 기아 상태(starvation)이 발생
  • 우선순위가 낮은 프로세스는 일정시간 CPU를 할당받지 못하면 에이징(aging.우선순위를 높임)을 하여 실행
  • 라운드 로빈(Round-Robin) 알고리즘
  • 실행 가능 상태의 프로세스를 순서대로 일정 시간 동안 CPU를 할당
  • 모든 프로세스는 같은 시간을 할당(타임 슬라이스(time slice) 혹은 퀀텀(quantum)이라 부름)
  • 시간이 너무 짧으면 컨텍스트 스위칭이 자주 발생해 시스템이 부담
  • 시간이 너무 길면 멀티태스킹 구현에 문제가 발생
  • FCFS(First Come Fist Served)
  • 먼저 들어온 프로세스를 먼저 실행
  • 비 선점 스케쥴링
  • SJF(Shortest Job First)
  • CPU 할당 시간이 짧은 프로세스를 먼저 실행
  • 할당 시간이 긴 프로세스는 기아 상태에 빠질 수 있음
  • CPU의 실제 할당 시간을 알 수 없기 때문에 예측에 의존해야 함
algorithm
comments powered by Disqus