0

빨간색으로 처리 스케줄러는 현재 CPU가 처리중인 프로세스를 우선 순위가 높은 프로세스 인 으로 대체합니다. 언제든지 CPU가 우선 순위가 높은 프로세스를 실행 중일 때 스케줄러가 CPU에 우선 순위 프로세스에 대해 알리기 위해 실행중인 프로세서의 경우 하나의 프로세스 만 프로세서에서 실행됩니다.프로세서가 높은 프로세스로 프로세스를 전환하는 방법을 알고 계십니까?

+1

@shekharsuman ** ** 귀하의 답변을 수락하는 포스터는 ** ** 특히 몇 분 밖에 안되는 때가 아닙니다. –

+0

@ ChrisStratton-SORRY! 내 의견을 삭제합니다.하지만 사실, 나는 스택 오버플로에 대한 받아 들여지지 않고 업하지 않은 답변에 실망합니다. 스택 교환 메타 (Stack Exchange Meta)에서 언급 한 바에 따르면 정답과 업보트 모두를 친절하게 받아들입니다. "죄송합니다"라고 대답했지만, 대답이 유일한 응답자라면 내 습관이었습니다! 나는 그것을 처리하려고 노력할 것입니다. –

답변

2

프로세스 스케줄러는하지 않을 경우 현재 실행중인 프로세스가 다음에 실행해야하는 프로세스, 실행하고 계속할지 여부를 결정하기위한 책임 있는 운영 체제의 구성 요소입니다.

스케줄러가 processes을 모니터하고 그들이 사용하는 CPU 시간을 돕기 위해 a programmable interval timer interrupts the processor periodically (typically 50 or 60 times per second). 이 타이머는 운영 체제가 자체 초기화 될 때 프로그래밍됩니다. 각 인터럽트에서 운영 체제의 스케줄러가 실행되어 현재 실행중인 프로세스가 계속 실행되어야하는지 또는 일시 중단되어야하는지, 또 다른 준비된 프로세스가 실행되도록 허용되어야하는지 여부를 결정합니다. 선점 예약에 사용되는 메커니즘입니다.

기본적으로 프로세스 스케줄러는 동일한 주 메모리 인 when active에서 실행되지만 인터럽트에 의해 호출 된 후에 만 ​​활성화됩니다. 그러므로, 그들은 항상 달리는 것은 아닙니다.

BTW, 그 대답은 훌륭한 개념적 질문이었습니다. 귀하의 주제에 대한 최고의 희망.

0

우선 순위가 높은 스레드/프로세스는 인터럽트가 스케줄러가 실행되어 다음에 실행할 스레드 세트를 결정할 때 우선 순위가 낮은 스레드를 선점하며 스케줄러 알고리즘은 우선 순위가 낮은 스레드가 필요하다고 결정합니다 우선 순위가 높은 우선 순위로 대체됩니다. 이미 실행중인 스레드에서

  1. 소프트웨어 인터럽트 (콜)를하고 예를 들어, 스레드의 상태를 변경 :

    인터럽트는 두 가지 종류로 왔습니다. 다른 스레드가 대기중인 이벤트, 뮤텍스 또는 세마포어를 신호로 보내 실행 준비를합니다.

  2. I/O 작업이 완료되었거나 일부 시간 초과 간격이 만료되어 실행중인 스레드 집합을 변경해야하므로 드라이버가 실행되고 종료시 스케줄러를 호출하도록 선택한 하드웨어 인터럽트 (예 : 디스크, NIC, KB, 마우스, 타이머).

+0

보류중인 프로세스에 대한 검사를 계속하는 타이머 인터럽트입니까? – Vasu

+0

@ user2773010 - 예,이 타이머 인터럽트는 실행중인 프로세스를 확인하거나 프로세스 스케줄러에서 예약 할 수 있습니다. –