(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
 

by 민트앤라떼 2011. 9. 27. 10:04