Qual é o comportamento de troca de contexto no meio do alarme ()?

0

se um processo definir o sinal SIGALARM executando alarm(10) . Significado em 10 segundos o SIGALARM será enviado pelo sistema operacional.

O que acontece se houver um switch de contexto - o sistema ainda enviará o sinal, independentemente da troca de contexto? ou retornará ao processo e esperará até que seja executado (no total) por 10 segundos e só então enviará o sinal?

    
por David8988 13.07.2017 / 20:32

1 resposta

2

alarm() conta o tempo real, o texto no POSIX afirma isso claramente, embora o A página man do Linux não é explícita sobre isso. Portanto, o cronômetro será executado independentemente de o processo estar ou não em execução. Normalmente, o sinal acordaria o processo se estivesse dormindo, mas o sistema operacional ainda pode decidir não executar o processo, se houver outros processos de prioridade mais alta que precisam ser executados.

Há também setitimer() , que pode fornecer um cronômetro que só é executado quando o processo está correndo.

    
por 13.07.2017 / 21:29

Tags