A maioria dos autores classifica os sistemas operacionais entre os seguintes tipos: sistemas monotarefa ou multitarefa, sistemas monousuário ou multiusuário, sistemas monoprocessados ou multiprocessados. Em relação a essas classificações, marque a alternativa correta:
Um sistema operacional multitarefa é necessariamente um sistema multiprocessado. Em sistemas operacionais multitarefa monoprocessados a execução de diferentes programas é simultânea. Todo sistema operacional multitarefa é necessariamente um sistema multiusuário. Todo sistema operacional multiusuário é ao mesmo tempo um sistema multitarefa. Um sistema operacional multiprocessado não é necessariamente um sistema multitarefa.
Os sistemas operacionais criam estruturas de controle, chamadas processo, para controlar a execução dos programas, sejam do usuário ou do próprio sistema. Essa estrutura registra informações sobre a situação do processo durante todo seu processamento, sendo uma dessas informações o estado do processo.
O estado de ESPERA representa o processo aguardando o fim da fatia de tempo de um processo em EXECUÇÃO O estado de EXECUÇÃO representa o processo aguardando ser escalonado, ou seja, o processo depende da escolha por parte do sistema operacional para que possa executar seu código (instruções) A transição entre os três estados (PRONTO, ESPERA E EXECUÇÃO) é possível em ambos os sentidos. O escalonador organiza a fila de processos em estado de PRONTO. Para escalonadores preemptivos existe a possibilidade de determinar uma fatia de tempo (time slice) para que o processo se mantenha em estado de EXECUÇÃO, após esse tempo o processo retorna para a fila de PRONTO O escalonador também pode selecionar processo em ESPERA para execução.
Um thread é Fluxo de execução e parte integrante de um processo e o multithreading é a associação de vários fluxos de execução a um único processo.
Thread é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente. Cada thread tem o mesmo contexto de hardware e compartilha o mesmo espaço de memória (endereçado a um mesmo processo-pai), porém o contexto de software é diferente. Um dos benefícios do uso das threads é que quando um thread espera por um recurso, um outro do mesmo grupo pode estar sendo executado.
Exclusão mútua é uma técnica usada em programação concorrente para evitar que dois processos ou threads tenham acesso, simultaneamente, a um recurso compartilhado, acesso esse denominado por REGIÃO CRÍTICA.
Um processo interrompido fora de uma região crítica não pode impedir que outro processo tenha acesso a esta região crítica Não pode haver nem deadlock nem starvation Quando não houver processo executando uma região crítica qualquer processo que solicitar acesso deverá obtê-lo imediatamente É permitido que mais de um processo por vez possa executar uma região crítica Um processo deve permanecer executando uma região crítica por tempo finito