본문 바로가기
카테고리 없음

8.프로세스와 스케쥴러의 이해

by 인생여희 2021. 1. 19.

프로세스와 스케쥴러의 이해

 

프로세스란?

일반적인 정의 : 메인 메모리로 이동하여 실행중인 프로그램

 

 

프로세스의 범위는?

-메모리 구조 + 레지스터셋

(B프로세스가 실행될때 B 프로세스의 데이터가 전체 레지스터에 채워진다.

이전에 있던 A프로세스는 다른 장소에 저장된다. 컨텍스트 스위칭이라고 한다.)

 

-프로세스 별 독립적인 대상은 프로세스의 범주에 포함시킬 수 있다.

 

 

 

프로세스 스케쥴러란?

 

소프트웨어적으로 구현되어 있는 프로세스이다.

 

기능 : 둘 이상의 프로세스가 적절히 실행되도록 컨트롤 한다.

 

스케쥴링 알고리즘에 따라서 방법이 다양함.

 

 

 

 

프로세스의 상태

 

모든 프로세스는 상태 정보를 지니고 있다.

 

 

Running : CPU에 의해 다른 프로세스가 실행되고 있는 상태. 스케쥴러에의해 Ready상태로 넘어가거나,

Blocked 상태로 넘어갈 수 있다.

 

Ready :  스케쥴러가 나를 선택해주기를 기다리는 상태. 모든 프로세스의 시작 상태. 

스케쥴러는 갑자기 I/O연산(CPU에 도움이 필요하지 않은 연산) 이 일어나는 Running 상태에 있는 다른 프로세스를 Blocked 상태로 만들고, 나를 Running 상태로 만든다.

 

Blocked : I/O연산(파일입출력)은 CPU(연산처리 담당)에 의존적이지 않다. 

그래서 I/O연산이 일어나는 프로세스는 스케쥴러는 해당 프로세스를 Blocked 상태로 만든다.

 

 

 

참고

 

 

컨텍스트 스위칭

 

ALU는 연산을 위해서 레지스터에 의존적이다.

 

현재 프로세스 A가 작동되고 있고, 이후에 프로세스 B가 메모리에서 레지스터로 이동된다. (Running 상태)

 

A프로세스는 스케쥴러에 의해 Ready 상태가 된다. 

 

 

 

 

프로세스 생성 함수

 

 

 

 

 

 

 

참고 

뇌를 자극하는 윈도우즈 시스템 프로그래밍 정리 - 한빛출판네트워크