UNIPLAN - Centro Universitário Planalto do Distrito Federal Nome: Wedson da Silva Melo Turma: CC5P30 (Ciência da Computação)
1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções?
Utilizar um computador sem um sistema operacional seria muito difícil para um usuário pois o mesmo teria que se comunicar diretamente com o hardware. As duas principais funções são: facilidade de acesso aos recursos do sistema e o compartilhamento de recursos de forma organizada e protegida; 2. Explique o conceito de máquina virtual. Qual a grande vantagem em utilizar este conceito?
O conceito de máquina virtual é definido com base nas seguintes propriedades: o efeito demonstrado deve ser o mesmo de que se o software estivesse rodando no hardware real da MV; um conjunto dominante de instruções do processador virtual é executado diretamente no processador da máquina real e o VMM tem controle total sobre os recursos de hardware da máquina real, que não devem ser acessador diretamente pela MV. A principal vantagem e poder criar ou instalar um novo sistema que fica rodando independentemente com recursos emulados pela VM. 3. Defina o conceito de uma máquina de níveis ou camadas.
O computador contem varios níveis ou camadas, possuindo tantos níveis para poder adequar o usuário às suas diversas aplicações. Caso algum usuario estiver trabalhando em um desses niveis sempre e bom que ele conheça o funcionamento das demais para que a interação entre usuário e computador apresenta-se mais simples, confiável e eficiente. 4. Quais os tipos de sistemas operacionais existentes?
Existem os Sistemas Monoprogramáveis, Monoprogramáv eis, Sistemas Multiprogramáveis Multiprogram áveis e Sistemas com Múltiplos Processadores. 5. Por que dizemos que existe uma subutilização de recursos em sistemas monoprogamáveis? monoprogamáveis?
Por executarmos apenas um programa de cada vez, assim fazendo com que outros recursos do computador fiquem sem ser utilizados ou aproveitados para outros programas. 6. Qual a grande diferença entre sistemas monoprogramáveis e sistemas multiprogramáveis?
Os sistemas monoprogramáveis se caracterizam por permitir que o processador, a memória e os periféricos permaneçam exclusivamente dedicados à execução de um único programa. Nos sistemas multiprogramáveis ou multitarefa, os recursos computacionais são compartilhados entre os diversos usuários e aplicações. Enquanto em sistemas monoprogramáveis existe apenas um programa utilizando os recursos disponíveis, nos multiprogramáveis multiprogramáveis várias aplicações aplicações compartilham compartilham os mesmos recursos. 7. Quais as vantagens dos sistemas multiprogramáveis?
As vantagens são: redução do tempo de resposta das aplicações processadas no ambiente e de custos, a partir do compartilhamento dos diversos recursos do sistema entre as diferentes aplicações. 8. Um sistema monousuário pode ser um sistema multiprogramável? Dê um exemplo.
Sim, um usuário pode mexer com o sistema executando diversas aplicações aplicações concorrentemente. concorrentemente. Um bom exemplo e o MS-DOS .
9. Quais são os tipos de sistemas multiprogramáveis?
Os Sistemas Multiprogramaveis são os: Sistemas Batch, Sistemas de Tempo Compartilhado e Sistemas de Tempo Real. 10. O que caracteriza o processamento batch? Quais aplicações podem ser processadas neste tipo de ambiente?
A principal característica e a de não exigir a interação do usuário com a aplicação. Alguns exemplos de aplicações originalmente processadas em batch são programas envolvendo cálculos numéricos, compilações, ordenações, backups e todos aqueles onde não é necessária a interação com o usuário. 11. Como funcionam os sistemas de tempo compartilhado? Quais as vantagens em utilizá-los?
Os sistemas de tempo compartilhado permitem que diversos programas sejam executados a partir da divisão do tempo do processador em pequenos intervalos, denominados fatia de tempo (time-slice). A vantagem e fazer o usuário achar que tem todo o sistema dedicado, exclusivamente, a ele. 12. Qual a grande diferença entre sistemas de tempo compartilhado e tempo real? Quais aplicações são indicadas para sistemas de tempo real?
Nos de tempo Compartilhados temos o fator tempo de resposta já nos sistemas de tempo real, os tempos de resposta devem estar dentro de limites rígidos. Aplicações de controle de processos, como no monitoramento de refinarias de petróleo, controle de tráfego aéreo em geral onde e preciso uma grande precisão de cálculos. 13. O que são sistemas com múltiplos processadores e quais as vantagens em utilizá-los?
Os sistemas com múltiplos processadores possuem duas ou mais UCPs interligadas e trabalhando em conjunto. A vantagem deste tipo de sistema é permitir que vários programas sejam executados ao mesmo tempo ou que um mesmo programa seja subdividido em partes para serem executadas simultaneamente em mais de um processador. 14. Qual a grande diferença entre sistemas fortemente acoplados e fracamente acoplados?
Nos sistemas fortemente acoplados existem vários processadores compartilhando uma única memória física e dispositivos de I/O, sendo gerenciados por apenas um sistema operacional. Os sistemas fracamente acoplados possuem dois ou mais sistemas computacionais conectados através de linhas de comunicação. Cada sistema funciona de forma independente, possuindo seu próprio sistema operacional e gerenciando seus próprios recursos, como UCP, memória e dispositivos de I/O. 15. O que é um sistema SMP? Qual a diferença para um sistema NUMA?
Nos sistemas SMP, o tempo de acesso à memória principal pelos diversos processadores é uniforme. Nos sistemas NUMA, existem diversos conjuntos de processadores e memória principal interconectados, onde o tempo de acesso à memória principal varia em função da sua localização física. 16. O que é um sistema fracamente acoplado? Qual a diferença entre sistemas operacionais de rede e sistemas operacionais distribuídos?
Os sistemas fracamente acoplados possuem dois ou mais sistemas computacionais conectados através de linhas de comunicação. Cada sistema funciona de forma independente, possuindo seu próprio sistema operacional e gerenciando seus próprios recursos, como UCP, memória e dispositivos de I/O. Os sistemas operacionais de rede permitem que um host compartilhe seus recursos, como uma impressora ou diretório, com os demais hosts da rede enquanto que nos sistemas distribuídos, o sistema operacional esconde os detalhes dos hosts individuais e passa a tratá-los como um conjunto único, como se fosse um sistema fortemente acoplado.
17. Quais são as unidades funcionais de um sistema computacional?
O Processador ou Unidade Central de Processamento(UCP), memória principal e dispositivos de I/O. 18. Quais os componentes de um processador e quais são suas funções?
Um processador é composto por uma Unidade de Controle(UC), unidade lógica e aritmética, e registradores. A unidade de controle (UC) é responsável por gerenciar as atividades de todos os componentes do computador, como a gravação de dados em discos ou a busca de instruções na memória. A unidade lógica e aritmética (ULA) é a responsável pela realização de operações lógicas como: testes e comparações; já a aritméticas e responsavel pelas: somas e subtrações. 19. Como a memória principal de um c omputador é organizada?
A memória principal é organizada em células. Que é a menor unidade da memória que pode ser endereçada e tem um tamanho fixo. 20. Descreva os ciclos de leitura e gravação da memória principal.
No ciclo de leitura, a UCP armazena no Memory Address Register (MAR), o endereço da célula a ser lida e gera um sinal de controle para a memória principal, indicando que uma operação de leitura deve ser realizada. O conteúdo da célula, identificada pelo endereço contido no MAR, é transferido para o MBR. E durante o ciclo de gravação, a UCP armazena no MAR, o endereço da célula que será gravada e armazena no MBR, a informação que deverá ser gravada. A UCP gera um sinal de controle para a memória principal, indicando que uma operação de gravação deve ser realizada e a informação contida no MBR é transferida para a célula de memória endereçada pelo MAR. 21. Qual o número máximo de células endereçadas em arquiteturas com MAR de 16, 32 e 64 bits?
MAR=16 bits número máximo de células e de 2 16. MAR=32 bits número máximo de células e de 2 32. MAR=64 bits número máximo de células e de 2 64. 22. O que são memórias voláteis e não-voláteis?
As Memórias voláteis precisam estar sempre energizadas para manter suas informações ou então perdem qualquer informação armazenada nelas como por exemplo a Memoria RAM, o que não acontece com as não voláteis como o HD. 23. Conceitue memória cache e apresente as principais vantagens no seu uso.
A memória cache é uma memória de alta velocidade, com uma pequena capacidade de armazenamento. O propósito do uso da memória cache é minimizar o atraso existente entre a velocidade com que o processador executa instruções e a velocidade com que dados são acessados na memória principal. 24. Qual a importância do principio da localidade na efici ência da memoria cache?
O princípio da localidade consiste no fato de que as referências à memória feitas por um processo não são aleatórias, dado um instante de execução. É muito mais provável que itens de memória que serão acessados, dentro de um período razoável de tempo. 25. Quais os benefícios de uma arquitetura de memoria cache com múltiplos níveis?
Para o cache quanto maior a capacidade, maior a probabilidade de encontrar nele uma cópia do dado que se procura. Por outro lado, quanto maior o cache, maior a latência, pois mais tempo se leva para encontrar alguma coisa que nele esteja armazenada. A solução foi hierarquizar o cache. Criou-se então dois níveis de cache, ambos no interior da UCP, o primeiro um cache pequeno, rapidíssimo, latência curta devido ao menor tamanho, bem junto ao âmago da UCP e o segundo, entre o primeiro e o mundo exterior, um cache bem maior, portanto aumentando a probabilidade de encontrar nele uma cópia do dado desejado, porém de maior latência
26. Quais as diferenças entre a memória principal e a memória secundária?
A memória principal é um dispositivo de armazenamento, onde são armazenados instruções e dados utilizados pelo processador durante a execução de programas, exemplo Memoria RAM. A memória secundária é um dispositivo com maior capacidade de armazenamento, porém com menor velocidade de acesso aos seus dados armazenados, exemplo o HD. 27. Diferencie as funções básicas dos dispositivos de E/S.
Os dispositivos de E/S podem ser divididos em duas categorias: os que são utilizados como memória secundária e os que servem para a interface usuário-máquina. Os dispositivos utilizados como memória secundária caracterizam-se por ter capacidade de armazenamento bastante superior ao da memória principal. Seu custo é relativamente baixo, porém o tempo de acesso à memória secundária é bem superior ao da memória principal. Outros dispositivos têm como finalidade a comunicação usuário-máquina, como teclados, monitores de vídeo, impressoras entre outros. 28. Caracterize os barramentos processador-memória, E/S e backplane.
Os barramentos Processador-Memória são de curta extensão e alta velocidade para que seja otimizada a transferência de informação entre processadores e memórias. Os barramentos de E/S possuem maior extensão, são mais lentos e permitem a conexão de diferentes dispositivos. Enquanto o barramento de backplane tem a função de integrar os dois barramentos. 29. Como a técnica de pipelining melhora o desempenho dos sistemas computacionais?
Deixando que o processador execute múltiplas instruções paralelamente em níveis diferentes. 30. Compare as arquiteturas de processadores RISC e CISC.
A arquitetura RISC (Reduced Instruction Set Computer), é uma linha de arquitetura de computadores que favorece um conjunto simples e pequeno de instruções que levam aproximadamente a mesma quantidade de tempo para serem executadas. A maioria dos microprocessadores modernos são RISCs. O tipo de microprocessador mais utilizado em Desktops, é mais CISC do que RISC. As caraterísticas da arquitetura RISC são: conjunto reduzido e simples de instruções; formatos simples e regulares de instruções; operandos sempre em registros; modos simples de endereçamento à memória; uma operação elementar por ciclo máquina e o uso do pipeline. Já o CISC (Complex Instruction Set Computer) é uma linha de arquitetura de processadores capaz de executar centenas de instruções complexas diferentes sendo, assim, extremamente versátil. Exemplos de processadores CISC são os 386 e os 486 da Intel. Os processadores baseados na computação de conjunto de instruções complexas contêm uma microprogramação, ou seja, um conjunto de códigos de instruções que são gravados no processador, permitindo-lhe receber as instruções dos programas e executá-las, utilizando as instruções contidas na sua microprogramação. 31. Conceitue a técnica de benchmark e como é sua realização.
O Benchmark permite uma análise de desempenho comparativa entre sistemas computacionais. Neste método, um conjunto de programas é executado em cada sistema avaliado e o tempo de execução comparado. A escolha dos programas deve ser criteriosa para refletir os diferentes tipos de aplicação. 32. Por que o código-objeto gerado pelo tradutor ainda não pode ser executado?
Pois ele fica esperando por alguma sub-rotinas externas, pois o tradutor não tem pode associar o programa principal às sub-rotinas chamadas. Esta função é desempenhada através do linker. 33. Por que a execução de programas interpretados é mais lenta que a de programas compilados?
Como não existe a geração de um código executável, as instruções de um programa devem
ser traduzidas toda vez que este for executado. Um exemplo e o java que passa pela VM antes de ser executada pois antes tem que ser interpretada e compilada. 34. Quais as funções do linker?
Seu papel e de resolver todas as referências simbólicas existentes entre os módulos de um programa e reservar memória para sua execução. 35. Qual a principal função do loader?
Buscar na memória principal um programa ou processo para ser executado. 36. Quais as facilidades oferecidas pelo depurador?
O depurador oferece ao usuário recursos de acompanhar a execução de um programa passoa-passo, possibilitar a alteração e visualização do conteúdo de variáveis; implementar pontos de parada dentro do programa. 37. O que é concorrência e como este conceito está presente nos sistemas operacionais multiprogramáveis?
A Concorrência é a responsavel pela implementação dos sistemas operacionais multiprogramáveis onde é possível o processador executar instruções em paralelo com operações de I/O. Isso possibilita a utilização concorrente da UCP por diversos programas sendo implementada de maneira que, quando um programa perde o uso do processador e depois retorna para continuar o processamento, seu estado deve ser idêntico ao do momento em que foi interrompido. 38. Por que o mecanismo de interrupção é fundamental para a implementação da multiprogramação?
Pois ele sincroniza a execução de todas as suas rotinas dentro do sistema operacional e dos programas dos usuários, além de controlar dispositivos. 39. Explique o mecanismo de funcionamento das interrupções.
A interrupção é sempre gerada por algum evento externo ao programa, independe da instrução que está sendo executada. Ao final da execução de cada instrução, a unidade de controle verifica a ocorrência de algum tipo de interrupção. Para que o programa possa posteriormente voltar a ser executado, é necessário que, no momento da interrupção, um conjunto de informações sobre a sua execução seja preservado. Essas informações consistem no conteúdo de registradores, que deverão ser restaurados para a continuação do programa. 40. O que são eventos síncronos e assíncronos? Como estes eventos estão relacionados ao mecanismo de interrupção e exceção?
Um eventos síncronos são resultados direto da execução do programa corrente, onde só podem ocorrer uma único de cada vez. Eventos assíncronos não são relacionados à instrução do programa corrente. Esses eventos, por serem imprevisíveis, podem ocorrer múltiplas vezes, como no caso de diversos dispositivos de E/S informarem ao processador que estão prontos para receber ou transmitir dados. Uma interrupção é um evento assíncrono enquanto uma exceção é um evento síncrono. 41. Dê exemplos de eventos associados ao mecanismo de exceção.
E uma instrução que gere a uma situação de overflow(ultrapassar algum limite) ou uma divisão por zero. 42. Qual a vantagem da E/S controlada por interrupção comparada com a técnica de polling?
Na E/S controlada por interrupção, as operações de E/S podem ser realizadas de uma forma mais eficiente, de usar polling para verificar se o processo já foi concluído, o próprio controlador interrompe o processador para avisar do término da operação para que o processamento permanece livre de outras tarefas.
43. O que é DMA e qual a vantagem desta técnica?
O DMA permite que um bloco de dados seja transferido entre a memória principal e dispositivos de E/S, sem a intervenção do processador, exceto no início e no final da transferência, par que o controlador realiza a transferência entre o periférico e a memória principal, e o processador é somente interrompido no final da operação. 44. Como a técnica de buffering permite aumentar a concorrência em um sistema computacional?
O buffering permite minimizar o problema da disparidade da velocidade de processamento existente entre o processador e os dispositivos de E/S, fazendo com que o processador e dispositivos de E/S fiquem ocupados a maior parte do tempo. 45. Explique o mecanismo de spooling de impressão.
Quando um comando de impressão é executado, as informações que serão impressas são gravadas antes em um arquivo em disco, conhecido como arquivo de spool, liberando imediatamente o programa para outras atividades, para só depois o sistema operacional direcionar o conteúdo do arquivo de spool para a impressora. 46. Em um sistema multiprogramável, seus usuários utilizam o mesmo editor de textos (200 Kb), compilador (300 Kb), software de correio eletrônico (200 Kb) e uma aplicação corporativa (500 Kb). Caso o sistema não implemente reentrância, qual o espaço de memória principal ocupado pelos programas quando 10 usuários estiverem utilizando todas as aplicações simultaneamente? Qual o espaço liberado quando o sistema implementa reentrância em todas as aplicações?
Sem areentrância, cada usuário teria sua cópia do código na memória totalizando 10 x (200 Kb + 300 Kb + 200 Kb + 500 Kb) = 12.000 Kb. Já com a reentrância implementada, apenas uma cópia do código seria necessária na memória principal (200 Kb + 300 Kb + 200 Kb + 500 Kb) totalizando 1.200 Kb. Um total de 10.800 Kb seriam liberados da memória principal. 47. Por que a questão da proteção torna-se fundamental em ambientes multiprogramáveis?
Pois com o compartilhamento de recursos do computador devemos ter uma preocupação em garantir a confiabilidade e a integridade dos programas e dados dos usuários, além do próprio sistema operacional. 48. O que é o núcleo do sistema e quais são suas principais funções?
São um conjunto de rotinas que oferece serviços aos usuários, suas aplicações, além do próprio sistema operacional. As principais funções do núcleo encontradas na maioria dos sistemas comerciais são: tratamento de interrupções e exceções; criação e eliminação de processos e threads; sincronização e comunicação entre processos e threads; escalonamento e controle dos processos e threads; gerência de memória; gerência do sistema de arquivos; gerência de dispositivos de E/S; suporte à redes locais e distribuídas; contabilização do uso do sistema; auditoria e segurança do sistema. 49. O que é uma system call e qual sua importância para a segurança do sistema? Como as system calls são utilizadas por um programa?
As system calls podem ser entendidas como uma porta de entrada para o acesso ao núcleo do sistema operacional e a seus serviços. Através dos parâmetros fornecidos na system call, a solicitação é processada e uma resposta é retornada a aplicação juntamente com um estado de conclusão indicando se houve algum erro. 50. O que são instruções privilegiadas e não-privilegiadas? Qual a relação dessas instruções com os modos de acesso?
As Instruções privilegiadas são instruções que só devem ser executadas pelo sistema operacional ou sob sua supervisão, impedindo, assim, a ocorrência de problemas de segurança e integridade do sistema. As instruções não-privilegiadas não oferecem risco ao sistema. Quando o processador trabalha no modo usuário, uma aplicação só pode executar instruções não-
privilegiadas, tendo acesso a um número reduzido de instruções, enquanto no modo kernel ou supervisor a aplicação pode ter acesso ao conjunto total de instruções do processador. 51. Quais das instruções a seguir devem ser executas apenas em modo kernel? Desabilitar todas as interrupções, consultar a data e hora do sistema, alterar a data e hora do sistema, alterar informações residentes no núcleo do sistema, somar duas variáveis declaradas dentro do programa, realizar um desvio para uma instrução dentro do próprio programa e acessar diretamente posições no disco.
Desabilitar todas as interrupções, alterar a data e hora do sistema, alterar informações residentes no núcleo do sistema e acessar diretamente posições no disco. 52. Explique como funciona a mudança de modos de acesso e dê um exemplo de como um programa faz uso desse mecanismo.
Quando um programa necessita executar uma instrução privilegiada, a solicitação deve ser realizada através de uma chamada a uma system call, que altera o modo de acesso do processador do modo usuário para o modo kernel. Ao término da execução da rotina do sistema, o modo de acesso retorna para o modo usuário. 53. Como o kernel do sistema operacional pode ser protegido pelo mecanismo de modos de acesso?
Através do modo de acesso de uma aplicação determinado por um conjunto de bits localizado no registrador de status do processador ou PSW. Através desse registrador, o hardware verifica se a instrução pode ou não ser executada pela aplicação, possibilitando proteger o kernel do sistema operacional de um acesso indevido. 54. Compare as arquiteturas monolítica e de camadas. Quais as vantagens e desvantagens de cada arquitetura?
A arquitetura monolítica pode ser comparada com uma aplicação formada por vários módulos que são compilados separadamente e depois linkados, formando um grande e único programa executável. Na arquitetura de camadas, o sistema é dividido em níveis sobrepostos. A vantagem da estruturação em camadas é isolar as funções do sistema operacional, facilitando sua manutenção e depuração, além de criar uma hierarquia de níveis de modos de acesso, protegendo as camadas mais internas. Uma desvantagem para o modelo de camadas é o desempenho. Cada nova camada implica em uma mudança no modo de acesso. 55. Quais as vantagens do modelo de máquina virtual?
Permitir a convivência de sistemas operacionais diferentes no mesmo computador, assim criando um isolamento total entre cada VM, oferecendo segurança para cada máquina virtual. 56. Como funciona o modelo cliente-servidor na arquitetura microkernel? Quais suas vantagens e desvantagens dessa arquitetura?
Sempre que uma aplicação deseja algum serviço, é realizada uma solicitação ao processo responsável. Neste caso, a aplicação que solicita o serviço é chamada de cliente, enquanto o processo que responde à solicitação é chamado de servidor. Um cliente, que pode ser uma aplicação de um usuário ou um outro componente do sistema operacional, solicita um serviço enviando uma mensagem para o servidor. O servidor responde ao cliente através de uma outra mensagem. A utilização deste modelo permite que os servidores executem em modo usuário, ou seja, não tenham acesso direto a certos componentes do sistema. Apenas o núcleo do sistema, responsável pela comunicação entre clientes e servidores, executa no modo kernel. Como conseqüência, se ocorrer um erro em um servidor, este poderá parar, mas o sistema não ficará inteiramente comprometido, aumentando assim a sua disponibilidade. Outra vantagem é que a arquitetura microkernel permite isolar as funções do sistema operacional por diversos processos servidores pequenos e dedicados a serviços específicos, tornado o núcleo menor, mais fácil de depurar e, conseqüentemente, aumentando sua confiabilidade. Na arquitetura microkernel, o sistema operacional passa a ser de mais fácil manutenção, flexível e de maior portabilidade. Apesar de todas as vantagens deste modelo, sua implementação, na prática, é muito difícil. Primeiro existe o problema de desempenho,
devido a necessidade de mudança de modo de acesso a cada comunicação entre clientes e servidores. Outro problema é que certas funções do sistema operacional exigem acesso direto ao hardware, como operações de E/S. 57. Por que a utilização da programação orientada a objetos é um caminho natural para o projeto de sistemas operacionais?
Pois traz uma serie de benefícios como: melhoria na organização das funções e recursos do sistema; redução no tempo de desenvolvimento; maior facilidade na manutenção e extensão do sistema; facilidade de implementação do modelo de computação distribuída.