[운영체제/OS] 프로세스
프로세스(Process)
파일로 작성된 프로그램은 로더에 의해 주기억 장치에 상주되어 CPU에 의해서 처리된다. 이 때, 주기억 장치에 상주된 프로그램이 CPU에 의해서 처리되는 상태를 프로세스
라고 한다
- CPU에 의해서 현재 실행되고 있는 프로그램
PCB
(Process Control Block, 프로세스 제어 블록)의 존재로서 명시되는 것- 프로세서가 할당되는 개체로서 디스패치가 가능한 단위
- 지정된 결과를 얻기 위한 일련의 계통적 동작
- 목적 또는 결과에 따라 발생하는 사건들의 과정
- 비동기적 행위를 일으키는 주체
- 프로시저가 활동 중인 상태를 의미
- 실행 중인 프로시저의 제어 궤적
- CPU가 할당되는 실체
- 운영체제가 관리하는 최소 단위의 작업
비동기적 행위 : 다중 프로그래밍 방식에서 CPU가 하나의 프로그램만을 연속적으로 처리하지 않고, 여러 프로그램의 일부분을 반복적으로 실행하고 중단하는 행위
프로세스의 상태전이도
프로세스 상태
-
New(생성)
프로세스가 막 생성된 상태 - Ready(준비)
프로세스가 처리기를 사용하고 있지는 않지만 언제든 사용할 수 있는 상태를 의미- 프로세스가 처리기의 배정을 기다리고 있는 상태
- 다른 프로세스 실행을 위해서 일시적으로 정지해있는 상태
- CPU에 의해 처리되기 위해 주기억 장치에 존재하는 상태
-
Running(실행)
프로세스가 CPU를 차지하고 있는 상태 또는 프로세스의 명령이 실행되고 있는 상태를 의미 - Block(Wait, 대기/보류)
프로세스가 어떤 사건이 일어나기를 기다리고 있는 상태- 처리 속도가 느린 I/O 작업 중인 상태
- 외부적인 사건이 생길 때까지 실행할 수 없는 상태
-
Blocked Suspended
프로세스가 대기 상태에서 기억 장치를 잃은 상태 -
Suspended Ready
프로세스가 기억장치를 제외한 다른 모든 필요한 자원을 보유한 상태 - Exit(Terminated)
프로세스의 실행을 완료되고 할당된 CPU를 반납한 상태
프로세스 상태 변화
-
Dispatch(디스패치, 준비실행)
준비 상태에 있는 여러 프로세스 중 프로세스를 선정하여 CPU를 할당하는 시점 -
Timer Run Out(할당 시간 종료, 실행준비)
할당된 시간만큼 CPU를 사용하고 준비 상태로 변하는 시점. 상태 변이 원인이 외부에 있어 외부 인터럽트에 의해 할당 시간이 종료 -
I/O 발생(Block, 실행대기)
프로세스가 CPU 사용 중에 I/O 행위가 필요하여 대기 상태로 이동하는 시점 -
Wake up(대기준비)
I/O 작업이 완료되거나 자원이 할당되어 다시 준비 상태로 이동하는 시점 -
Suspended(Swap-Out, 대기지연준비)
준비/대기 상태에서 기억 장치를 반납하고 지연 준비 상태로 전이 -
Resume(Swap-In, 지연 준비대기)
지연 준비/지연 대기 상태에서 기억 장치를 할당받아 준비(대기) 상태로 전이
프로세스 스케줄링
-
Long-Term(
장기
스케줄러, Job Scheduler)
디스크에서 하나의 프로그램을 가져와 커널에 등록하면 프로세스가 되는데 이 때, 보조기억장치에서 어떤 프로그램을 가져와(Load) 커널(Job Queue)에 등록할 지 결정하는 역할을 수행 -
Middle-Term(
중기
스케줄러)
메모리에 적재된 프로세스의 수를 동적으로 조절하기 위해 추가된 스케줄러만약 메모리에 많은 수의 프로세스가 적재되어 프로세스 당 보유하고 있는 메모리량이 극도로 적어지게 되면 CPU 수행에 당장 필요한 프로세스의 주소 공간 조차도 메모리에 올려놓기 힘든 상황이 발생할 수 있다. 이 때, 디스크 I/O가 수시로 발생하게 되어 시스템의 성능이 심각하게 저하될 수 있다
이런 경우에, 메모리를 올라와 있는 프로세스 중 일부로부터 메모리를 여유공간을 마련하기 위해 프로세스를 통째로 빼앗아 그 내용을 디스크의 스왑 영역에 저장한다(Swap-Out)
-
Short-Term(
단기
스케줄러, CPU scheduler)
준비 상태의 프로세스 중에서 어떤 프로세스를 다음 번에 실행 상태로 만들 것인지를 결정하는 역할을 수행(메모리에 있는 프로그램들 중 어떤 프로세스를 CPU에 할당할 지 결정)시분할 시스템에서 타이머 인터럽트가 발생하면 단기 스케줄러가 호출된다
스풀(Spool, Simultaneous Peripheral Operation On-Line)
프로그램과 이를 이용하는 I/O 장치와의 속도 차를 극복하기 위한 장치로 대부분의 하드 디스크가 중재(프린트 작업에서도 사용)
버퍼링(Buffering)
CPU와 I/O 장치와의 속도 차이를 줄이기 위해 메모리가 중재
버퍼링은 한 레코드를 미리 읽어 CPU에 저장해 두고 CPU가 필요한 레코드를 일기 위해 기다리는 일이 없도록 한다
댓글남기기