SóProvas


ID
920113
Banca
FCC
Órgão
DPE-SP
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

Em sistemas com multiprogramação, inicialmente um novo processo é inserido na fila de prontos. Este processo aguarda até ser selecionado para execução ou ser despachado. Uma vez que o processo seja alocado à CPU, eventos podem ocorrer. Analise as afirmativas sobre o processo.

I. pode emitir uma solicitação de I/O e então ser inserido em uma fila de I/O.

II. pode criar um novo subprocesso e esperá-lo terminar.

III. pode ser removido forçosamente da CPU, como resultado de uma interrupção, e ser devolvido à fila de prontos.

Está correto o que se afirma em

Alternativas
Comentários
  • O item III está errado. O correto seria:
    III. pode ser removido forçosamente da CPU, como resultado de uma interrupção, e ser devolvido à fila de BLOQUEADOS
  • Entendo que houve uma pequena confusão no comentário do colega que afirma estar o item III incorreto. A alternativa está correta sim.
    Percebam que são duas situações diferentes. No caso de um processo estar em execução e ser interrompido pelo Sistema Operacional tendo em vista unicamente o fato de que o tempo (quantum) destinado a esse processo terminou, é caso de o processo ser colocado na fila de prontos. Vejam que o processo continua pronto pra executar. Ele não o faz unicamente porque seu pedaço de tempo acabou. O SO dá chance para outro processo, também pronto, utilizar o processador.
    Um processo é colocado na fila de bloqueados quando, ao executar no processador, o processo solicita uma operação de entrada e saída e precisa do retorno dessa operação para poder continuar sua execução. Esse processo não está pronto. Ele está bloqueado, aguardando o resultado da operação E/S.
  • Então o SO programa uma interrupção para realizar a troca de processos??? O que eu aprendi é que quando há uma interrupção, o contexto do processo em execução é salvo, o tratador da interrupção é chamado, e após atentida a interrupção, o processo em execução é retomado. Assim, a proposição III estaria errada...
  • O Guilherme acertou em partes, mas não necessariamente o processo ao ser retirado da execução irá para o estado de bloqueado. Pode ir sim para o estado de pronto.

    Estados e transições possíveis:
    Pronto: Execução Execução: Bloqueado e Pronto Bloqueado: Pronto 
  • Prezados, vamos aos comentários das proposições
    I. pode emitir uma solicitação de I/O e então ser inserido em uma fila de I/O. 
    Proposição correta, um processo em execução pode solicitar algo dos dispositivos de entrada e saída, um HD por exemplo, e ao solicitar ele entrará para uma fila de I/O aguardando sua requisição

    II. pode criar um novo subprocesso e esperá-lo terminar. 

    Proposição correta, segundo Tanenbaum em seu livro, página 52, há quatro eventos principais que fazem com que processos sejam criados :
    1 – Inicio do sistema
    2 – Execução de uma chamada de sistema de criação de processo por um processo em execução
    3 – Uma requisição de usuário para criação de processo
    4 – Inicio de uma tarefa em lote ( batch job )

    III. pode ser removido forçosamente da CPU, como resultado de uma interrupção, e ser devolvido à fila de prontos. 

    Proposição correta, segundo Tanenbaum em seu livro, página 54, é possível sim  um processo em execução voltar para o estado de pronto, essa transição é causada pelo escalonador de processos sem que o processo saiba disso. Essa transição ocorre quando o escalonador decide que o processo em execução já teve tempo suficiente de CPU e é o momento de deixar outro processo ocupar o tempo da CPU.
     
    Portanto, alternativa correta letra E
    Fonte :Tanenbaum, sistemas operacionais modernos, 3º edição
  • Letra E.

    I. pode emitir uma solicitação de I/O e então ser inserido em uma fila de I/O. Certo. Ele sai da execução e  entra para "Em espera" onde será inserido em uma fila de IO. Tbém chamado de "Modo Bloqueado".

    .

    II. pode criar um novo subprocesso e esperá-lo terminar. Certo. Aqui pode ter ocorrido uma questão de prioridade.
    .

    III. pode ser removido forçosamente da CPU, como resultado de uma interrupção, e ser devolvido à fila de prontos. Certo. Aqui acontece a Preempção.

    .

    No "Modo em Execução" o processo pode perder a sua vez com a CPU de duas formas indo para o "Modo Pronto":
    1.  Qdo a sua fatia de tempo de execução atinge seu limite e outro entra no lugar tbém;
    2. Qdo o processo é preemptado e outro entra no lugar dele, ou seja, por questões de prioridade um processo entra na frente do outro.