Buscar

hitoria dos sistemas operacionais

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

História dos Sistemas Operacionais
Em que geração foram inseridos os CIs (Circuitos Integrados)?
Resposta correta 
C. Na terceira geração.
A tecnologia LSI (Large-Scale Integration) está presente em que geração?
Você acertou!
D. Quarta geração.
Determine a ordem correta quanto à tecnologia que foi implementada em cada geração:
1) Estavam presentes no hardware engrenagens e válvulas
2) Multiprogramação
3) Computadores pessoais
Você acertou!
B. 1ª geração, 3ª geração, 4ª geração.
Selecione a alternativa que corresponde a uma tecnologia desenvolvida na época da 4ª geração.
Resposta correta
E. Foi na quarta geração que os ambientes gráficos foram criados para os sistemas operacionais.
Dentro do que foi descrito e convencionado na linha do tempo da história evolutiva dos sistemas operacionais, a quarta geração inicia sua contagem em que ano?
Você acertou!
B. 1980.
fundamentos dos sistemas operaconais
Os usuários utilizam diversos programas para a realização de suas tarefas no computador. Dependendo da atividade, o programa precisa ler uma entrada que o usuário digitou no teclado; contudo, a leitura do teclado não pode ser feita diretamente pelo programa, precisando comunicar-se com o sistema operacional. A intermediação do sistema operacional é necessária pelo seguinte motivo:
Resposta correta
C. O programa do usuário roda em modo usuário, não tem nenhuma permissão ou acesso a recursos, exceto por meio do sistema operacional.
Em algumas tarefas, o programa precisa comunicar-se com o sistema operacional para utilização de algum recurso. Essa solicitação enviada pelo programa ao sistema operacional é chamada de:
Resposta correta
B. chamada de sistema. 
Nos primeiros computadores, a programação era feita de modo mecânico, por meio de chaves e interruptores, para a inserção bit a bit dos programas. A criação das linguagens de montagem facilitou muito a programação, pois:
Resposta correta
D. definiu comandos derivados do inglês que eram traduzidos para binário, permitindo o reaproveitamento.
A multiprogramação foi uma técnica muito importante introduzida pelos sistemas operacionais de terceira geração. Assinale a alternativa que mostra um exemplo de estratégia de multiprogramação apresentado pelos sistemas dessa geração:
Você acertou!
B. A divisão da memória entre os programas e o sistema operacional simultaneamente.
Dentre as principais funcionalidades obtidas com a evolução dos sistemas operacionais, o compartilhamento de tempo entre diferentes usuários permite:
Resposta correta
C. compartilhar a utilização da unidade de processamento entre os usuários ativos.
Conceitos de sistemas operacionais
O interpretador de comandos, ou shell do sistema operacional, é um tipo de software de sistema embutido na maioria dos sistemas operacionais, para permitir que usuários possam enviar comandos e receber as respostas de uma forma legível. Utilizando o terminal, usuários com conhecimento mais avançado podem, por exemplo, automatizar tarefas, ou mesmo realizar várias ações de forma mais rápida do que se usassem aplicativos com interface gráfica.
A maioria das ferramentas de auxílio a atividades de desenvolvimento de software oferece, além dos programas com interfaces gráficas, utilitários de linha de comando que podem ser chamados a partir do shell do sistema operacional. Compiladores, ferramentas de controle de versão e clientes de banco de dados, por exemplo, geralmente podem ser acessados com linha de comando.
A possibilidade de aninhar comandos usando o operador | (pipe), levando a saída do programa à esquerda do operador para a entrada do programa à direita também traz grande poder e flexibilidade para usuários de interpretadores de comando. Tudo isso é particularmente importante ao se considerar a tendência atual de infraestrutura como código (infrastructure as code - IaC), na qual se deve permitir criar e configurar ambientes por meio de código e não de atividades manuais.
Você é membro de uma equipe trabalhando com a escrita de código IaC e recebe a tarefa de converter um passo manual, que era necessário ao instalar um sistema em um procedimento automático, usando o interpretador de comandos de sua escolha (como sh ou bash no Linux; no caso do Windows, pode ser usado o cmd ou o PowerShell). O passo manual que deve ser convertido é o seguinte:
a) Escrever no arquivo output.txt a data e a hora atuais, sem apagar o conteúdo que poderia existir anteriormente no arquivo.
b) Escrever no arquivo output.txt a pasta atual, sem apagar o conteúdo que estava presente no arquivo anteriormente.
c) Rodar o comando ping www.google.com (no Windows) ou ping -c 4 www.google.com (no Linux), escrevendo as linhas com o resultado do ping para o arquivo output.txt (dica: no Windows, essas linhas têm a palavra “Resposta”, e no Linux, as linhas têm o texto “64 bytes”), sem apagar o conteúdo que estava presente no arquivo anteriormente.
d) Escrever no arquivo “output.txt” a listagem dos arquivos existentes com a extensão “.jpg” atualmente na pasta (não é um problema que a linha tenha mais informação além do nome dos arquivos, como por exemplo, a data de criação ou seu tamanho), sem apagar o conteúdo que estava presente no arquivo anteriormente.
e) Dentro da pasta atual, criar uma nova pasta com o nome “jpgBackup”
f) Copiar todos os arquivos .jpg da pasta atual para a pasta “jpgBackup”
Padrão de resposta esperado
No Windows (CMD):
date/t >> output.txt (passo a)
time/t >> output.txt (passo a)
echo %cd% >> output.txt (passo b)
ping www.google.com | findstr "Resposta" >> output.txt (passo c)
dir *.jpg | findstr ".jpg" >> output.txt (passo d)
md jpgBackup (passo e)
copy *.jpg jpgBackup\ (passo f)
No Linux (sh/bash):
date >> output.txt (passo a)
pwd >> output.txt (passo b)
ping -c 4 www.google.com | grep "64 bytes" >> output.txt (passo c)
ls -la | grep ".jpg" >> output.txt (passo d)
mkdir jpgBackup (passo e)
cp *.jpg ./jpgBackup/ (passo f)
Uma atividade recorrente em software de aplicação é a leitura e escrita de arquivos. A maioria dos programas irá, em algum momento de seu ciclo de vida, necessitar de dados que estão armazenados em algum dispositivo de memória secundária. Também é comum a necessidade de gravar dados de forma persistente.
Assinale a alternativa que descreve o fluxo seguido por uma aplicação para fazer a gravação ou a leitura de dados em dispositivos de memória secundária.???????
Resposta correta
E. A aplicação dispara uma chamada de sistema, fornecendo ao sistema operacional informações sobre o arquivo que deve ser lido ou escrito.
A linguagem C se provou, nas últimas quatro décadas, muito eficiente para a tarefa de programar sistemas operacionais. Sua leveza, simplicidade e elegância não prejudicam em nada o seu poder de interagir com o computador em baixo nível, ainda que C seja uma linguagem de alto nível.
Quais das características abaixo a linguagem C tem e são interessantes para seu uso no desenvolvimento de sistemas operacionais????????
Resposta correta
B. Ponteiros, tipos e meio de incluir código assembly.
Interpretadores de comando são uma ferramenta utilizada para que usuários possam enviar comandos para o sistema operacional. Esses comandos geralmente irão disparar chamadas de sistema, como por exemplo para a criação de novas pastas e arquivos e iniciar processos para a execução de um programa. Essa ferramenta também pode alterar configurações de sistema e realizar tarefas de manutenção.
Assinale a alternativa correta em relação ao uso de interpretadores de comando.???????
Você acertou!
A São muito usados por usuários mais experientes, que conhecem os comandos, sendo mais ágeis do que o uso de interface gráficas.
O pipe, criado no terminal colocando o caractere “|” entre dois programas, cria uma conexão entre os processos desses programas. Ao enviar o comando “netstat | findstr https” no shell, o sistema criará um processo para executar o programa netstat, outro processo para executar o programa
findstr passando o valor https como argumento. Além disso, criará um “arquivo virtual”, e vai redirecionar a saída do programa netstat para esse arquivo, ao mesmo tempo em que vai configurar esse mesmo arquivo virtual como a entrada para o comando findstr.
Sabendo disso, assinale a alternativa que descreve corretamente qual será a saída desse comando para o terminal do interpretador de comandos.???????
Resposta correta
D. Lista de conexões ativas no computador com a porta https.
 
Cada sistema operacional disponibiliza um conjunto de bibliotecas ou APIs para que desenvolvedores de software criem programas que podem ser executados nesse sistema. Vários métodos destas APIs disparam em algum momento chamadas de sistema.
Assinale a alternativa correta sobre a execução das chamadas de sistema.???????
Resposta correta
A. Aplicações e as próprias APIs rodam em espaço de usuário. Apenas as chamadas de sistema são executadas em espaço de núcleo.
Arquitetura de sistemas operacionais
O desenvolvimento de qualquer software requer um planejamento bem feito, com questões arquiteturais definidas de acordo com os requisitos do sistema. Os sistemas operacionais têm um vasto conjunto de requisitos em comum, devido à sua função principal de gerenciar o hardware do computador e a execução de aplicativos nele. Apesar disso, esse tipo de software tem requisitos ligados ao hardware, ao ambiente de execução e ao tipo de aplicações que nele serão executadas, o que gera diferenças entre os sistemas disponíveis.
Considere a seguinte situação:
Diante do caso apresentado, indique em quais modelos arquiteturais você se baseou e quais são as características deles que fazem com que essa seja uma boa opção para o cenário descrito.
Sua resposta
 por se tratar de um ambiente de pouco recurso, podemos usar uma arquitetura embarcada baseada no kernel do linux, criando um SO leve e compacto para suportar o software que dara os comandos necessarios para nossa aplicação.
 
Padrão de resposta esperado
Uma abordagem híbrida entre o modelo monolítico e o micronúcleo seria uma opção interessante para o projeto desse sistema.
O computador limitado computacionalmente precisaria de uma arquitetura que prezasse pela performance, algo em que a arquitetura monolítica se destaca.
Caso fosse projetado um micronúcleo com as funcionalidades de sistema que não podem ser afetadas por falhas de outros módulos, e as outras partes do sistema fossem escritas ainda para rodar em espaço de núcleo, mas fora do núcleo do sistema em si o requisito da resistência a falhas seria atendido sem prejudicar tanto a performance.
Esse sistema seria inspirado na arquitetura usada no Windows NT, mas com implementação mais simplificada devido às restrições do hardware.
Sistema monolíticos são caracterizados por não impor uma estrutura fixa para seus componentes, sendo o sistema um grande conjunto de módulos, sem regras que limitem a comunicação entre eles. Sobre a execução de sistemas monolíticos, assinale a alternativa correta:???????
Resposta correta
D. 
O sistema é executado em Espaço de Núcleo, mas suas aplicações são executadas em Espaço de Usuário
 
Ao definir uma arquitetura em camadas, os projetistas de um sistema operacional optam por uma organização mais restrita, com uma definição clara de quais módulos podem ter acesso direto aos outros. Caso uma aplicação necessite de um serviço, de uma funcionalidade do sistema a qual não tem acesso direto, ela deve solicitar o serviço por meio de uma chamada para algum dos módulos com os quais ela pode se comunicar, que irá encaminhar para as camadas inferiores e o processo se repetirá até que a chamada chegue na funcionalidade desejada. Sobre este mecanismo em sistemas em camadas, assinale a alternativa correta:???????
Resposta correta
A. 
Sistemas em camadas são mais lentos, devido à necessidade de repassar as chamadas entre as camadas.
 
A arquitetura de micronúcleo orienta a organização do sistema operacional de forma que apenas as funções de mais baixo nível sejam executadas em Espaço de Núcleo, minimizando o risco de erros críticos durante a execução do sistema. Sobre o relacionamento entre arquitetura de micronúcleo e o modelo cliente-servidor, assinale a alternativa correta:???????
Você acertou!
B. 
Sistemas de micronúcleo usam processos servidores executando em Espaço de Usuário como intermediários para as funcionalidades do sistema. As aplicações são os processos clientes.
Sistemas operacionais de grande porte e com múltiplos usos, como Windows e Linux, executam uma grande quantidade de código em Espaço de Núcleo, uma característica de sistemas monolíticos. Assinale a alternativa que melhor define o motivo dessa decisão de projeto nesses sistemas.???????
Resposta correta
E. 
Com mais funções executando em Espaço de Núcleo, a performance do sistema tende a ser melhor, por necessitar de menos comunicação entre processos.
Considere um sistema operacional que deve permitir a integração de várias peças de hardware de diferentes fabricantes, inclusive componentes que nem existam durante o desenvolvimento do sistema. O ambiente de execução desse sistema não tem uma necessidade de performance ótima, mas é necessário que o sistema seja bastante resistente a erros, não falhando devido a um problema em uma aplicação ou driver isolado. A partir do cenário descrito, assinale a alternativa que descreve o modelo arquitetural mais adequado para um novo sistema que será desenvolvido para esse ambiente.
Resposta correta
C. 
Micronúcleo.
Conceitos de threads
As threads mudaram o funcionamento de diversos programas, permitindo que tarefas independentes possam colaborar entre si, de modo a otimizar a execução das tarefas e facilitar a maneira como cada usuário interage com os programas. A implementação de alguns programas pode não estar utilizando threads, assim, tanto a execução pode ser mais lenta quanto o uso dos recursos pode ser menos eficiente.
Descrição da imagem não disponível
sua resposta
 o desempenho da aplicaçao esta elevando muito o processamento da cpu. nao estava travando, mas o alto nivel de processamento, acaba deixando a cpu um pouco mais lenta que o normal.
fazer um acompanhamento de perto com o cliente, fornecer um suporte mais aprimorado pra tentar suprir suas necessidades.
 
Padrão de resposta esperado
a) A aplicação apresenta alto uso da unidade de processamento somente na segunda etapa de funcionamento da ferramenta (processamento de dados), enquanto na primeira e terceira etapas a unidade de processamento é pouco usada, ficando praticamente ociosa. Desse modo, é possível concluir que a aplicação certamente não está travando.
b)O problema de desempenho pode ser resolvido pela utilização de threads. Atualmente, a aplicação está lenta devido ao fato de executar as análises de modo sequencial. A aplicação pode ser dividida em três threads: a primeira é responsável pela leitura dos arquivos, a segunda pelo processamento e a terceira pelo armazenamento. Desse modo, quando a análise atual entrar na etapa de processamento, a leitura dos dados para a próxima análise já pode ser iniciada; os dados já estarão prontos para quando a próxima análise entrar na etapa de processamento, não causando nenhuma espera. Assim, de modo análogo em relação às etapas de processamento e armazenamento.
As threads podem ter seu estado de execução alterado entre pronto, bloqueado, em execução e finalizado, em decorrência de diversos eventos.
Considerando que uma thread foi implementada utilizando a linguagem de programação Java, quando uma thread chama o método yield(), qual transição de estado acontece????????
Resposta correta
D. O estado passa de “em execução” para “pronto”.
Uma ferramenta de edição de texto provê algumas funcionalidades para auxiliar no trabalho dos seus usuários. Após a inicialização da ferramenta, esta inicia a:
1. ler a entrada
do teclado e representar o texto em tela;
2. verificar a ortografia do texto conforme um conjunto de normas;
3. verificar e atualizar a estilização do texto;
4. executar salvamentos periódicos como backup.
Considerando que cada funcionalidade descrita acima é executa por uma thread exclusiva, quantas threads são necessárias para a execução descrita da ferramenta?
Resposta correta
C. 5 threads.
João e Matheus estão desenvolvendo uma ferramenta para um trabalho de faculdade. Ambos concordam que o desempenho é um fator muito importante e, para isso, pretendem adotar alguma estratégia que permita executar tarefas simultaneamente. Existem duas propostas atualmente:
1. Implementar a ferramenta utilizando três processos separados com uma thread cada.
2. Implementar a ferramenta utilizando um processo com três threads.
A dupla está dividida nas opiniões, Matheus é favorável à segunda proposta, contudo, João ainda não concorda. 
Qual argumento Matheus poderia apresentar para tornar a segunda proposta vencedora?
Resposta correta
C. A aplicação tem muitas operações de entrada/saída de dados.
A implementação de threads no espaço do usuário é uma das estratégias de implementação existentes para utilização de threads em sistemas operacionais. Como qualquer estratégia, pode ter pontos positivos e negativos.
Assinale uma vantagem dessa estratégia.
Você acertou!
D. Permite a implementação de threads no espaço do usuário (de modo interno ao processo)???????, mesmo em sistemas monoprogramados cujo núcleo não tem suporte a ???????threads.
Uma das principais vantagens do uso threads em relação aos processos consiste na possibilidade de compartilhamento de recursos entre diferentes linhas de execução. Contudo, as threads devem armazenar informações que sejam somente suas.
Assinale a alternativa na qual as informações listadas somente pertençam às threads.
Você acertou!
A. Contador de programa e estado de execução.
Conceituação e gerenciamento de processos
Gerenciadores de tarefa são aplicações que permitem que os usuários de um sistema operacional visualizem o andamento dos processos em execução. Sistemas operacionais com foco em usuários comuns, como Windows e Ubuntu Linux, possuem gerenciadores de tarefa gráficos, com interfaces de uso simples e com destaque para as principais informações necessárias para o entendimento do funcionamento do sistema, como uso de CPU, Memória, Disco e Rede de cada processo. A análise destes valores é importante para profissionais de TI ao realizar análises de performance de sistemas, redes ou aplicações. Também são disponibilizadas ferramentas de linha de comando com o mesmo objetivo, como o tasklist (Windows) e o top (Linux e outras variações de Unix), que geralmente são preferidas por profissionais mais experientes. Muitos problemas podem ser indicados pelo adequado acompanhamento dos valores disponíveis nestas aplicações.
Considere a situação a seguir:
Para compreender o que está acontecendo em ambos os computadores e identificar o problema que está ocorrendo na aplicação, responda as questões a seguir:
a) Com base nas observações do gerenciador de tarefas e nos conhecimentos adquiridos sobre processos e seus estados, este problema pode ser causado por um excesso de chamadas de E/S realizadas pela aplicação? Justifique sua resposta.
b) Por que em um dos computadores o consumo de CPU chega a 100% e inviabiliza o uso da interface gráfica do sistema operacional, e no outro computador a mesma aplicação aparenta usar menos processamento e o sistema continua usável, ainda que a aplicação em si esteja quase travada?
c) Qual tipo de erro, a nível de código, pode estar causando este problema? Justifique sua resposta.
Padrão de resposta esperado
a) Já que o gerenciador de tarefas está mostrando que o processo está sendo executado, seu estado não está sendo bloqueado. Isso indica que a aplicação está realizando muitos processamentos, mas não há muita espera por resposta de dispositivos de Entrada e Saída. Com base nessas observações, é possível afirmar que o excesso de chamadas de E/S não é responsável pelo problema da aplicação.
b) O computador que chega a 100% de uso da CPU só tem um núcleo. Como apenas um processo por núcleo pode ser executado de cada vez, e o processo da aplicação está consumindo muitos ciclos de processamento, não está deixando tempo livre para que outros processos que precisam rodar no sistema operacional, inclusive os que gerenciam a própria interface gráfica do sistema operacional, tenham sua vez. O outro computador tem quatro núcleos, então o processo da aplicação está consumindo quase 100% de um único núcleo, mas ainda há três que podem executar outros processos, logo, do total de ciclos disponíveis na máquina, o processo da aplicação está consumindo no máximo 25%.
c) Como o processo executa sem parar, chegando a travar um computador com um único núcleo, e mesmo no outro ele não termina e a possibilidade de ser um problema de E/S foi excluída, os desenvolvedores devem suspeitar de problemas em laços que por algum motivo não estejam sendo terminados, entrando numa situação de loop infinito.
Se a aplicação está sendo desenvolvida em uma linguagem cujo compilador efetue otimização de chamada de cauda, o problema também pode ser em uma recursão efetuada no fim do próprio método, já que este tipo de otimização removeria a possibilidade de ocorrer um erro de estouro de pilha e permitiria que a aplicação, ao executar, tivesse o comportamento observado.
Programas com interface de linha de comando (command line interface - CLI), apesar de não intuitivos para usuários normais de computadores, são populares entre programadores devido à sua praticidade e agilidade quando o utilizador conhece seus comandos e atalhos. Estes programas são muito dependentes de entrada do usuário, podendo solicitar que seu utilizador digite comandos para poder efetuar seu trabalho.
Assinale a alternativa correta sobre o estado no qual o processo de um programa CLI se encontra enquanto aguarda que seu utilizador digite um comando:
Resposta correta
C. Bloqueado ou Espera.
 
A diferença entre programa e processo é essencial para compreender como um sistema operacional executa suas atividades. Enquanto um programa é a implementação de um algoritmo para completar uma tarefa, um processo é a representação da execução deste algoritmo por um computador. Sabendo disso, assinale a alternativa que contém apenas elementos da tabela de processo:???????
Resposta correta
A. Contador de programa; ponteiros para base e topo da pilha; valores dos registradores; e estado do processo.
 
O modelo de processo é uma característica bastante importante para sistemas operacionais modernos. A partir deste modelo, é definido como um sistema específico irá executar os programas que seus usuários desejarem. O modelo de processos de um computador multiprogramado permite que vários programas estejam em execução em um determinado momento, passando para o usuário a impressão de que o computador está fazendo todas as atividades simultaneamente. Considerando um computador com apenas um núcleo de processamento e três programas sendo executados, cada um com seu processo sendo gerenciado pelo sistema operacional, assinale a alternativa correta.????
esposta correta
D. Um dos processos está sendo executado e os outros dois estão prontos ou bloqueados. Todos os três processos têm registros na tabela de processos.
Frequentemente, programadores têm a necessidade de iniciar novos programas a partir do software que estão criando. Isto pode servir para facilitar o desenvolvimento de uma determinada funcionalidade, efetuar ajustes de configuração ou aproveitar um software já existente que não fornece APIs para acesso às suas funcionalidades na linguagem usada pelo programador.
Assinale a alternativa correta em relação a como um programador usando Java, C# ou Python deve efetuar a criação de um novo processo em um programa que será executado
em um sistema operacional moderno.???????
Resposta correta
E. Utilizar métodos, funções ou classes de bibliotecas que abstraem as chamadas de sistema e efetuam a criação do processo de acordo com o sistema operacional em execução.
 
Aplicações desenvolvidas para uso em servidores Web devem ser projetadas tendo em mente que em vários momentos este servidor receberá um grande número de requisições paralelas. Software de servidores Web, como o Apache, possuem configurações para que cada nova requisição recebida dispare a criação de um novo processo independente para tratá-la. Um Administrador de Sistemas está analisando um problema em que um servidor Web com baixo uso de processador e bastante memória disponível não está sendo capaz de atender todas as requisições. Ao listar os processos que estão sendo executados, há centenas de processos do servidor Web, mas nenhum usando recursos da CPU. Assinale uma alternativa que contém uma explicação possível para o problema em questão.?????
Resposta correta
A. Os processos do servidor Web estão todos bloqueados, devido à escassez de banda de E/S com o disco rígido do servidor.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando