글
(1) 스케줄링
: 실행큐에 들어있는 실행 가능한 태스크 중 한 태스크에게 CPU를 할당해주는 것.
○ 스케줄링 정책 : 실행큐에서 언제, 어떻게 태스크를 선택할 것인가?
- FIFO (first in first out)
- SJF (shorest job first)
- 우선순위
- 라운드 로빈 : 대기하고 있는 순서대로 선택하되 타임 슬라이스(퀀텀)라는 제한된 프로세스 시간 안에서만 수행한다.
자신의 타임퀀텀이 만료될 때까지 작업을 마치지 못하면, 준비큐의 맨 뒤로 들어가 다시 차례를 기다린다.
○ 스케줄링이 필요한 경우
- 태스크가 자신의 타임퀀텀을 모두 사용한 경우
- 태스크가 필요로 하는 자원을 사용할 수 없게 되어 대기 상태로 전환 시
- 시스템콜을 처리하고 커널모드에서 사용자 모드로 돌아갈 때
(2) 시그널
: 커널 또는 사용자 태스크에서 특정한 이벤트를 다른 태스크에게 비동기적으로 통보하는 메커니즘.
(태스크간의 통신 기법으로 시그널, FIFO, 파이프가 있다.)
○ 시그널 목록은 /usr/include/asm/signal.h에 있다. 콘솔에서는 kill -l 로 확인 가능하다.
ex) kill -9 1234 : 1234태스크에 9번, 즉 SIGKELL을 시그널로 보낸다.(강제종료 시그널)
○ 시그널의 동작
- 시그널 전송
- 시그널 수신
- 시그널 처리
※ 출처 : http://idkkangjs.blog.me/30091117058
'L inux > Kernel' 카테고리의 다른 글
메모리 관리 - 가상메모리 & 물리메모리 (0) | 2011.09.27 |
---|---|
메모리 관리 - 이해와 기법 (0) | 2011.09.27 |
프로세스 - 상태와 전이 (0) | 2011.09.27 |
프로세스 - 생성과 소멸 (0) | 2011.09.26 |
프로세스 - Task 자료 구조체 (0) | 2011.09.26 |
RECENT COMMENT