프로세스 P1이 단일 CPU 만있는 시스템에서 무한 루프로 실행 중입니다. 또한 P2, P3와 같은 다른 프로세스가 있지만 CPU를 얻기 위해 대기 중이지만 P1이 이미 실행 중일 때 대기 큐에 있습니다. 그래서단일 프로세서 시스템에서 무한 루프 실행
int main()
{
while(1);
}
, 최종 결과가 될 것입니다 무엇을 :
프로그램은 무엇인가, 무엇입니까? 시스템 충돌이 발생합니까?
의심스러운 대답은 CPU가 충돌하지 않고 모든 프로세스가 특정 시간 조각을 가지고 있기 때문에 P1의 시간 조각이 만료 된 후 다른 대기 프로세스가 CPU를 확보 할 수 있기 때문입니다.
그러나 커널 (O/S)은 시간 조각이 만료되었는지 확인합니다. 단 하나의 CPU 만 있고 프로세스가 무한 루프에서 실행되고 있기 때문입니다. 왜냐하면 검사를해야한다면 CPU가 필요하기 때문에 CPU는 이미 무한 루프에서 실행중인 프로세스 P1에 의해 점유되어 있기 때문입니다.
이 경우 어떻게됩니까?
인터럽트. 인터럽트의 작동 방식에 대해 알아보십시오. – Gabe
@ 게이브 : 인터럽트가 작동하려면 타이머가 별도의 스레드에서 실행되어야합니다. 그러나 프로세서가 하나뿐이라면 타이머 스레드와 프로세스 스레드가 어떻게 병렬로 실행됩니까? - kingsmasher1 0 초 전 – kingsmasher1
아니요, 타이머 인터럽트는 대개 CPU의 일부가 아닌 다른 칩에서 생성됩니다. – Gabe