-
프로세스는 일생 동안 다양한 스케줄링 큐 사이를 이주한다.
운영 체제는 스케줄링 목적을 위해서 프로세스들을 큐에서 선택해야 한다.
선택 절차는 스케줄러에 의해 수행된다.
스케줄러의 종류
단기 스케줄러 (CPU 스케줄러) : 실행 준비가 완료되어 있는 프로세스들 중에서 선택하여 이들 중 하나에게 CPU를 할당한다.
단기 스케줄링은 자주 수행되므로 속도가 빨라야 한다.
장기 스케줄러 (작업 스케줄러) : 디스크 상의 프로세스를 선택하여 메모리에 적재한다.단기 스케줄링에 비해 가끔 실행된다.
장기 스케줄러는 다중 프로그램의 정도를 제어한다.
대부분의 프로세스들은 입출력 중심 또는 CPU 중심으로 구분된다.
입출력 중심 프로세스 : 연산보다 입 출력 수행에 더 많은 시간을 소요하는 프로세스
CPU 중심 프로세스 : 연산에 시간을 더 소요하여 입출력 요청을 드물게 발생시키는 프로세스
스케줄러는 입 출력 중심 과 CPU 중심 프로세스들이 적절히 혼합되도록 선택하는 것이 중요하다.
시분할 시스템과 같은 일부 운영체제들은 추가로 중간 수준의 스케줄링을 도입한다.
중기 스케줄러의 핵심 아이디어는 메모리에서 CPU를 위해 경쟁하는 프로세스들을 제거하여 다중 프로그래밍의 정도를 완화시키는 것이다.
제거된 프로세스들은 차후에 다시 메모리로 불려와 중단 되었던 지점부터 실행을 재개한다.
이러한 기법을 스와핑이라고 한다.
문맥교환
인터럽트가 발생하면 시스템은 인터럽트 처리가 끝난 후 문맥을 복구할 수 있도록 문맥을 저장해야 할 필요가 있다.
문맥은 프로세스의 PCB에 표현되고 CPU 레지스터의 값, 프로세스 상태, 메모리 관리 정보 등을 포함한다.
CPU를 다른 프로세스로 교환하기 위해서 이전 프로세스 상태를 보관하고 새로운 프로세스의 보관된 상태를 복구하는 작업을 문맥 교환 이라고 한다.
문맥 교환이 진행되는 동안 시스템은 작업을 할 수 없기 때문에 문맥 교환 시간은 순수한 오버헤드 이다.
'운영체제 > 프로세스' 카테고리의 다른 글
클라이언트 서버 환경에서 통신 (0) 2018.02.03 프로세스간 통신 (0) 2018.02.03 프로세스에 대한 연산 (0) 2018.02.03 프로세스 스케줄링 (0) 2018.02.03 프로세스 개념 (0) 2018.02.03 댓글