본문 바로가기

Programming/UNIX_linux

운영체제의 구조 ( 스케줄링 )

스케줄링이란 CPU 사용권을 요청하는 프로세스들이 여럿 있을 때 이들 경쟁 관계에 있는 프로세스들 중에서 어떤 프로세스에게 CPU를 할당할 것인가를 결정하는 정책이다. 프로세스 스케줄링에 있어 기준은 공평성과 효율성이다. 특정 프로세스에 대해 자원 할당이 불공평 하게 지연되어서는 안되며 , 스케줄링 과정 자체도 효율적이어야 한다. 스케줄링의 목표는 프로세스의 반응 기간과 단위 시간당 처리량을 늘이는 것이다.

<스케줄링 방식 >

선점형 멀티태스킹에서는 운영체제가 시스템 자원 특히 CPU를 완전히 선점한 상태에서 각 프로세스에게 CPU를 할당한다. 이 경우 보통 10ms 정도의 시간 단위로 CPU를 프로세스별로 돌아가면서 할당

비 선점형 멀티태스킹에서는 운영체제가 아니라 프로그램의 프로세슫르이 CPU를 제각ㄱ ㅣ알아서 사용하고 , 사용하고 나면 운영체제에 반환하는 방식이다. 이 경우는 프로세스가 실행중인 동안 다른 프로세스가 CPU사용권을 가져올 수 없으므로 프로세스에 문제가 생기면 전체 시스템이 불안해진다. 

<스케줄링 알고리즘 >

1. FCFS 방식 - 선입 선출
CPU를 요청하는 순서대로 사용권을 준다 ( QUEUE 사용 )

2. SJF 방식 - 단기작업 우선
소요시간이 짧은 작업 부터 사용권을 준다

3. Priority 방식 - 우선순위
우선순위가 가장 높은 프로세스에게 CPU를 할당하고 우선순위가 동일 한 경우에는 FCFS 방식을 사용.
( 특정 프로세스가 기아상태 - 계속 대기하는 상태 - 에 빠질 수 있는 위험이 있다 )

4. 라운드 로빈 방식
FCFS처럼 순서대로 사용권을 받지마 CPU를 사용하는 시간에 제한을 둔다.

<UNIX시스템의 스케줄링 >

이것도 다음에 .... 귀찮음....

'Programming > UNIX_linux' 카테고리의 다른 글

운영체제의 구조 ( 프로세스 )  (0) 2009.08.14
운영체제의 구조 ( 파일 시스템 )  (0) 2009.08.14
UNIX 의 구성  (0) 2009.08.14
UNIX 운영체제  (0) 2009.08.14
VI 편집기 명령어 정리  (0) 2009.08.13