컴퓨터 공학 - 프로세스
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의 실제 할당 시간을 알 수 없기 때문에 예측에 의존해야 함
I feedback.
Let me know what you think of this article in the comment section below!
Let me know what you think of this article in the comment section below!
comments powered by Disqus