프로세스란?


일반인 : 실행중인 프로그램


개발자 : 메모리 구조(OS에 의해 할당되는 메인 메모리의 리소스 뿐 아니라 가상 메모리의 리소스까지 포함), 실행중인 프로그램에 독립적인 레지스터 Set, etc


요즘 프로세스는 컨텍스트 스위칭을 피하기 위해 레지스터 Set을 여러개 만들어 스위칭에 의한 오버헤드를 피하고 있다.




스케줄러 : 운영체제에서 제공해주는 소프트웨어 장치(혹은 블럭)


공평한 스케줄링 알고리즘도 큰 이슈중 하나다



Running 상태 : CPU에 의해 실행중인 상태

Ready 상태 : 스케줄러에 의해 선택되길 기다리는 상태, 실행 준비는 다 끝난 상태

Blocked 상태 : 연산중에서 ALU(CPU)에 의존적인 연산이 있고, I/O연산처럼 의존적이지 않은 연산이 있다. Running상태는 CPU 연산이 진행되는 중이고, Blocked 상태는 현재 I/O 연산중인 프로세스를 뜻한다.

I/O연산이 끝나면 Blocked 상태가 끝나고 Ready 상태로 변한다.




컨텍스트 스위칭은 일반적으로 멀티태스킹 환경에서 1초에도 수십번씩 한다.

+ Recent posts