A multiprogramação permitiu aos usuários de computador a utilização de vários programas ao mesmo tempo, ou melhor, permitiu que os usuários experimentassem a sensação de estar utilizando vários programas ao mesmo tempo. Uma CPU executa apenas um programa de cada vez. Porém como os componentes eletrônicos são mais rápidos do que a capacidade dos humanos em perceber a troca de processos entre a fila de processos prontos e a CPU temos a sensação de estarmos utilizando vários programas ao mesmo tempo. A utilização de ferramentas de busca como o Google de forma maciça pelos usuários de computadores nos permite até criar uma nova denominação, geração Google, onde tudo é acessível, jogos, filmes, textos em geral, etc. Atender as necessidades de processamento desse novo usuário deve exigir mudanças do ambiente computacional. O que deverá acontecer se o grau de multiprogramação for instável.
A - O sistema operacional deverá selecionar os processos que estão prontos para serem executados de forma mais eficiente, reduzindo o tempo de ociosidade da CPU, ou seja, o tempo de latência.
B - O escalonador de CPU deverá selecionar os processos que estão prontos para serem executados de forma mais eficiente, reduzindo o tempo de ociosidade da CPU, ou seja, o tempo de latência.
C - O sistema operacional deve controlar o número de processos na memória. Se o grau de multiprogramação for instável haverá uma quantidade muito grande de processos querendo entrar na memória, e que acarretará um desequilíbrio entre a entrada e a saída de processos da memória.
Justificativa: Esta instabilidade pode fazer com que o sistema operacional perca o controle dos processos e acabe travando por falta de recursos.
D - O sistema operacional deve controlar o número de processos na CPU. Se o grau de multiprogramação for instável haverá uma quantidade muito grande de processos querendo entrar na CPU, o que acarretará um desequilíbrio entre a entrada e a saída de processos da CPU.
E - Os programas deverão adotar uma nova estratégia de programação, ou seja, utilizar threads.
(ENADE 2011 – Ciência da Computação/Sistemas de Informação/Engenharia da Computação – questão 18). Um vendedor de artigos de pesca obteve com um amigo o código executável (já compilado) de um programa que gerencia vendas e faz o controle de estoque, com o intuito de usá-lo em sua loja. Segundo o seu amigo, o referido programa foi compilado em seu sistema computacional pessoal (sistema A) e funciona corretamente. O vendedor constatou que o programa executável também funciona corretamente no sistema computacional de sua loja (sistema B). Considerando a situação relatada, analise as afirmações a seguir.
I. Os computadores poderiam ter quantidades diferentes de núcleos (cores).
II. As chamadas ao sistema (system call) do sistema operacional no sistema A devem ser compatíveis com as do sistema B.
III. O conjunto de instruções do sistema A poderia ser diferente do conjunto de instruções do sistema B.
IV. Se os registradores do sistema A forem de 64 bits, os registradores do sistema B poderiam ser de 32 bits.
É correto o que se afirma em:
A - III, apenas.
B - I e II, apenas.
Justificativa: I é verdadeiro, o controle do número de processadores é de responsabilidade do sistema operacional e o mesmo permitiria o planejamento deste para o melhor aproveitamento de tal característica.
II é verdadeiro pois a incompatibilidade entre chamadas de sistema poderia fazer com que o programa não rodasse de forma equivalente em ambos os sistemas.
C - III e IV, apenas.
D - I, II e IV, apenas.
E - I, II, III e IV.
(ENADE 2011 – Ciência da Computação/Sistemas de Informação/Engenharia da Computação – questão 29). Uma antiga empresa de desenvolvimento de software resolveu atualizar toda sua infraestrutura computacional adquirindo um sistema operacional multitarefa, processadores multi-core (múltiplos núcleos) e o uso de uma linguagem de programação com suporte a threads. O sistema operacional multitarefa de um computador é capaz de executar vários processos (programas) em paralelo. Considerando esses processos implementados com mais de uma thread ( multi-threads), analise as afirmações abaixo.
I. Os ciclos de vida de processos e threads são idênticos.
II. Threads de diferentes processos compartilham memória.
III. Somente processadores multi-core são capazes de executar programas multi-threads.
IV. Em sistemas operacionais multitarefa, threads podem migrar de um processo para outro.
É correto apenas o que se afirma em:
A- I.
Justificativa: pois threads possuem o mesmo ciclo de vida que processos pesados (são criadas, executam e terminam), passando pelos mesmos estados (prontas para executar, bloqueadas, terminadas etc).
B - II.
C - I e III.
D - I e IV.
E - II e IV.
(COMPANHIA DO METROPOLITANO DE SÃO PAULO – METRÔ) Concurso Público para provimento de cargos de Analista Trainee Ciências da Computação - Fevereiro/2008 - Questão 50
A responsabilidade do kernel consiste, tradicionalmente, em abstrair a interface do hardware, permitindo que processos utilizem este recurso concorrentemente, de forma segura e padronizada. Assim, um kernel ou núcleo pode ser considerado o próprio sistema operacional, quando este é definido como um gerenciador de recursos de hardware, que é o caso do sistema operacional aberto Linux. O Linux é um:
A - kernel monolítico híbrido.
Justificativa: No Linux o que o torna modular é o fato de ter drivers na forma de módulos e ter driver build (internos).
B - microkernel monolítico.
C - nanokernel.
D - exokernel híbrido.
E - macrokernel monolítico.