1. Quais são as duas principais funções de um sistema operacional? R: controlar o hardware e permitir executar os softwares.

Documentos relacionados
Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Sistemas de Entrada e Saída

INTRODUÇÃO. Sistemas Operacionais. Vinícius Pádua

Sistemas Operacionais. Sistema de entrada e Saída

Sistemas Operacionais. Entrada/Saída

Sistemas Operacionais. Interrupção e Exceção

Capítulo 5 Entrada/Saída

Parte I Multiprocessamento

Conceitos. Pedro Cruz. EEL770 Sistemas Operacionais

Barramento. Prof. Leonardo Barreto Campos 1

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Notas da Aula 14 - Fundamentos de Sistemas Operacionais

Aula 03 - Concorrência. por Sediane Carmem Lunardi Hernandes

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 19. Sistema de Entrada/Saída

Organização e Arquitetura de Computadores I

Arquitetura e Organização de Computadores

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

Introdução aos Sistemas Operacionais

Informática I. Aula /09/2006 1

Sistemas de Entrada e Saída

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Estruturas de Sistemas Operacionais

Capítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006

INTRODUÇÃO. Sistemas Operacionais. Vinícius Pádua

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Sistemas Operacionais II Unix: Memória e E/S. Geraldo Braz Junior

Capítulo 5 Entrada/Saída

Conceitos básicos e serviços dos Sistemas Operacionais

Sistemas de Computação O Sistema Operacional Unix

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

Sistemas Operacionais

Computadores e Programação (DCC/UFRJ)

Introdução e Conceitos Básicos

Fundamentos de Sistemas Operacionais

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

SOP - TADS Processos. Revisão Ultima aula

Técnicas Avançadas de Programação

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

SOP - TADS Fundamentos de Sistemas Operacionais

Entrada. Saída. Entrada e Saída. Sistemas Operacionais

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO BACHARELADO EM INFORMÁTICA SISTEMAS OPERACIONAIS I 1 0 SEM/05 Teste 1 Unidade I DURAÇÃO: 50 MINUTOS

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

Capítulo 6 Nível do Sistema Operacional

Sistemas Operacionais. Conceito de Processos

Arquitetura e Organização de Computadores

Gerência de Dispositivos. Adão de Melo Neto

Organização e Arquitetura de Computadores I

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Prof. Kleber R. Rovai

2ª Lista de Exercícios de Arquitetura de Computadores

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

AGT0001 Algoritmos Aula 01 O Computador

Arquitetura e organização de computadores

Sistemas Operacionais. Visão Geral

Gerência de Dispositivos. Adão de Melo Neto

SSC0611 Arquitetura de Computadores

Gerência de Entrada e Saída

Entrada e Saída e Dispositivos

ARQUITETURA DE COMPUTADORES

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Sistemas Operacionais

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13

INTRODUÇÃO. Sistemas Operacionais. Vinícius Pádua

SSC510 Arquitetura de Computadores 1ª AULA

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

Problemas com Entrada e Saída

Sistemas Operacionais

Arquitetura de Sistemas Operacionais

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

MEMÓRIA LÓGICA E FÍSICA (1)

Organização de Sistemas Computacionais Processadores: Organização da CPU

INTRODUÇÃO A SISTEMAS OPERACIONAIS

Sistemas de Entrada e Saída

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO O SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

Sistemas Operacionais II

Sistemas Operacionais

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8th Edition

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

Arquitetura e Organização de Computadores

Sistemas Operacionais

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Cap. 12 Gerência de Dispositivos 1

Introdução à Informática

CONJUNTO DE INSTRUÇÕES

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Transcrição:

PROBLEMAS 1. Quais são as duas principais funções de um sistema operacional? R: controlar o hardware e permitir executar os softwares. 2. O que é multiprogramação? R: A Multiprogramação faz com que a CPU fique com vários programas simultaneamente ativos na memória e permite que um programa seja executado enquanto outro espera por E/S. Ela faz a CPU suportar a execução de múltiplos programas independentes. 3. O que é a técnica de spooling? Você acha que computadores pessoais avançados terão o spooling como uma característica-padrão no futuro? R: É o processo de colocar os dados em uma área de trabalho temporária, buffer, onde um outro programa pode acessar os dados nesta área tardiamente. É útil pois quando se está usando dispositivos de velocidades diferentes, o dispositivo mais lento pode acessar o buffer e não obrigar que o dispositivo mais rápido fique o esperando. Acho que sim, já o fazem. 4. Nos primeiros computadores, todo byte de dados lido ou escrito era diretamente tratado pela CPU (isto é, não havia DMA). Quais as implicações que essa organização tem para a multiprogramação? R: Isto pode trazer perda de desempenho muito grande ao sistema. Já que com a multiprogramação você tem vários processos sendo executados sequencialmente com alternância rápida e constante, se todas operações de dados envolverem E/S, sempre que pelo menos um dos processos estiver executando E/S todos os outros tem de esperar pelo término da operação. 5. Por que o compartilhamento de tempo não foi disseminado na segunda geração de computadores? R: Pois a proteção em hardware só foi largamente empregada a partir da terceira geração. 6. A ideia de família de computadores foi introduzida nos anos 60 com os computadores de grande porte IBM System/360. Essa ideia está morta e sepultada ou ainda vive? R: Esta mais viva do que nunca. Hoje em dia todos (se não todos, em sua maioria esmagadora) os fabricantes lançam suas máquinas em famílias. 7. Uma razão para a demora da adoção das interfaces gráficas GUI era o custo do hardware necessário para supor tá-las. De quanta RAM de vídeo se precisa para suportar uma tela de texto monocromática com 25 linhas x 80 colunas de caracteres? Quanto é necessário para suportar um mapa de bits com l 024 x 768 pixels de 24 bits? Qual é o custo dessa RAM em preços de 1980 (5 dólares/kb)? Quanto custa agora? R: Supondo que cada carácter ocupe 8 bits, temos que para o primeiro se faz necessário 25x80x8 = 16KB. Já para a segunda situação temos 1024x768x24 = 18432KB. No ano de 1980 o custo da primeira seria de 80 dólares e da segunda

de 92162 dólares. Hoje em dia a primeira situação, preço de 0,000026 dólares/kb a primeira solução custa 0,00042 e a segunda 0,48 dólares. 8. Das instruções a seguir, quais só podem ser executadas em modo núcleo? ( a )Desabilite todas as interrupções. ( b )Leia o horário do relógio. ( c ) Altere o horário do relógio. ( d )Altere o mapa de memória. R: Alternativas (a), (c) e (d). Estas alternativas foram escolhidas por eu as considerar perigosas. 9. Relacione algumas diferenças entre os sistemas operacionais de computadores pessoais e os sistemas operacio nais de computadores de grande porte. R: Os sistemas operacionais para computadores de grande porte são sobretudo orientados ao processamento simultâneo de muitos jobs, sendo que na maioria deles é necessária uma quantidade prodigiosa de E/S. Esses sistemas operacionais oferecem normalmente três tipos de serviço: Em lote (batch), processamento de transações e tempo compartilhado. Sistemas em lote são usados para fazer processamento de grandes volumes de dados sem interatividade com o usuário, como por exemplo cálculos do IRPF de todo o Brasil. O processamento de transações administra grandes quantidades de pequenas transações, como verificações em um e-commerce ou um banco. Sistemas de tempo compartilhado permitem que múltiplos usuários remotos executem seus jobs simultaneamente no computador, como em um acesso a um grande banco de dados de um servidor web. 10. Um computador tem um pipeline de quatro estágios. Cada estágio leva o mesmo tempo para fazer seu trabalho digamos, l ns. Quantas instruções por segundo essa máquina pode executar? R: (1/n). Onde n é nano. 11. Um revisor alerta sobre um erro de ortografia no original de um livro-texto sobre sistemas operacionais que está para ser impresso. O livro tem aproximadamente 700 páginas, cada uma com 50 linhas de 80 caracteres. Quanto tempo será preciso para percorrer eletronicamente o texto no caso de a cópia estar em cada um dos níveis de memória da Figura 1.7? Para métodos de armazenamento interno, considere que o tempo de acesso é dado por caractere; para discos, considere que o tempo é por bloco de 1024 caracteres; e, para fitas, que o tempo dado é a partir do início dos dados com acesso subsequente na mesma velocidade que o acesso a disco. R: Multiplicando os números temos que o livro tem 700x50x80=2.8M caracteres. Na memória principal temos um acesso de 2.8M * 10ns = 0,0028s. Em disco ou fitas, temos um acesso por blocos de 1024 caracteres, logo precisamos de pelo menos 2735 acessos o que leva 2735x10ms=27,35s. Como o livro não cabe na cache, tão pouco nos registradores, não faz sentido comparar estes tempos.

Porém, caso se tenha uma cache suficientemente grande teríamos um acesso em 1/5 do tempo do acesso pela memória principal, um acesso em 0,000056s. 12. Na Figura l.9, a MMU compara um endereço (virtual) com o conteúdo do registrador-limite, causando uma falha se for muito grande. Um projeto alternativo seria primeiro adicionar o endereço virtual ao conteúdo do registra-dor-base e então comparar o resultado com o endereço (físico) no registrador-limite. Os dois métodos são logicamente equivalentes? E quanto ao desempenho, são equivalentes? R: Lógicamente é equivalente, mas em alguns casos essa soma feita pode ser desnecessária, já que mesmo sem a soma o valor estaria maior do que o registrador-limite. 13. Quando um programa de usuário faz uma chamada ao sistema para ler ou escrever um arquivo em disco, ele fornece uma indicação de qual arquivo ele quer, um ponteiro para o buffer de dados e um contador. O controle então é transferido ao sistema operacional que chama o driver apropriado. Suponha que o driver inicie o disco, termine e só volte quando uma interrupção ocorrer. No caso da leitura do disco, obviamente quem chama deverá ser bloqueado (pois não há dados para ele). E no caso da escrita no disco? Quem chama precisa ser bloqueado aguardando o final da transferência do disco? R: Não necessariamente. A não ser que se queira garantir que a escrita foi feita antes de continuar a execução do processo, quem chama não precisa ser bloqueado. 14. Qual a diferença fundamental entre uma trap e uma interrupção? R: Uma interrupção é geralmente iniciada por um dispositivo de E/S. Faz a CPU parar o que está fazendo, salvar o seu contexto na pilha, tratar a interrupção, resgatar o contexto e continuar a execução. Já uma trap é tipicamente causada por software em condições excepcionais como a divisão por zero ou acesso inválido a memória. Fonte: wiki.answers.com 15. Um computador usa o esquema de realocação da Figura 1.9(a). Um programa tem 10 000 bytes e é carregado no endereço 40 000. Quais são os valores do registradorbase e do registrador-limite de acordo com o esquema descrito no texto? R: O registrador-base 0+40000 = 40 000 e o limite 40000+10000 = 50 000. 16. Por que é necessária uma tabela de processos em sistemas de tempo compartilhado? Essa tabela é essencial também em sistemas de computador pessoal (PC), nos quais existe apenas um processo, que detém o comando de toda a máquina até que ele termine? R: Pois a cada vez que um processo for suspenso para que a execução de outro ocorra, o seu contexto, conjunto de registradores que inclui o contador de programa, o ponteiro para pilha, outros registradores de hardware e todas as demais informações necessárias para executar aquele programa, tem que ser salvo em algum lugar, tabela de processos. Em sistemas com apenas um processo em execução, esta tabela pode ser usada pelo mecanismo de interrupções para poder salvar o contexto do processo e trata-las.

17. Há alguma razão para se querer montar um sistema de arquivos em um diretório não vazio? Se há, qual é? R: Sim, impossibilitar o uso dos arquivos que estavam no diretório antes do novo sistema ser montado. 18. Para cada uma das seguintes chamadas ao sistema, dê uma condição que faça com que elas falhem: fork, exec e unlink. R:. fork - falta de memória para criação do processo filho na memória. exec - número de parâmetros inválidos, e, unlink - i-número de arquivo inexistente. 19. count = write(fd, buffer, nbytes); essa chamada pode retornar algum valor em count que seja diferente de nbytes? Em caso afirmativo, por quê? R: Sim, essa chamada pode retornar algum valor diferente de nbytes. Principalmente por dois motivos, um final de arquivo foi encontrado antes, ou o arquivo não pôde ser lido. 20. Um arquivo cujo descritor é fd contém a seguinte sequencia de bytes: 3, 1, 4, 5, 9, 2, 6, 5, 3, 5. São executadas as seguintes chamadas ao sistema: lseek(fd, 3, SEEK_SET); fork(fd, &buffer, 4); onde a chamada lseek faz uma busca ao byte 3 do arquivo. O que o buffer contém ao final da leitura? R:. Não consegui encontrar em lugar algum, nem mesmo em http://www.opengroup.org/onlinepubs/9699919799/functions/fork.html alguma função fork contendo parâmetros. 21. Qual é a diferença essencial entre arquivos especiais de bloco e arquivos especiais de caractere? R: Arquivos especiais de bloco são usados para modelar dispositivos que fornecessem endereçamento aleatório, como discos. Já os arquivos especiais de caracteres são usados para modelar dispositivos que utilizem acesso serial aos dados, como modens e impressoras. 22. No exemplo dado na Figura 1.17, o procedimento de biblioteca é denominado read e a própria chamada ao sistema é denominada read. É essencial que ambos tenham o mesmo nome? Em caso negativo, qual é o mais importante? R: Não é necessários que ambos tenham o mesmo nome. A segunda pergunta é ambígua, pode estar se referindo a importância do procedimento ou a importância do nome do procedimento. O nome do procedimento não é importante de forma alguma, funcionalmente falando. A chamada ao sistema é mais importante que a chamada da biblioteca. Já que sem a chamada do sistema, nenhuma biblioteca pode fazer tal chamada, o que não é verdade para o contrário. O programa pode sim fazer uma chamada direta ao sistema. 23. O modelo cliente-servidor é muito usado em sistemas distribuídos. Ele pode também ser utilizado em sistemas de um único computador?

R: Pode sim, e esta é a tendência atual dos sistemas operacionais. Fazendo isto, busca-se um micronúcleo mínimo, muito mais fácil de gerenciar. Uma outra vantagem deste sistema é o desacoplamento dos serviços oferecidos pelo sistema, caso algum dos serviços falhe, por exemplo o sistema de arquivos, isto não vai comprometer o funcionamento da máquina como um todo. 24. Para um programador, uma chamada ao sistema se parece com qualquer outra chamada um procedimento de biblioteca. É importante que um programador saiba quais procedimentos de biblioteca resultam em chamadas ao sistema? Sob quais circunstâncias e por quê? R: É muito importante sobre a questão do desempenho. Chamadas ao sistema requerem desvio de fluxo e tratamento das chamadas que trazem consigo armazenamento e resgate de contexto, coisas que tomam tempo. 25. A Figura 1.23 mostra que várias chamadas ao sistema em Unix não têm equivalentes na API do Win32. Para cada chamada relacionada que não tenha equivalente Win32, quais são as consequências para o programador em converter um programa Unix para executar no Windows? R: Essa pergunta é capciosa. De certa forma este livro quer sempre que pode mostrar que o Unix é melhor que o Windows, a pergunta poderia ter sido feita ao contrário para mostrar superioridade do Windows sobre o Unix. A resposta para a pergunta é óbvia, ele deve procurar procedimentos com funcionalidades similares aos do Unix, ou com mesmo efeito para o usuário final. 26. Eis algumas questões para praticar conversão de unidades. (a) Quanto dura um microano em segundos? (b) Micrômetros são chamados de mícrons. Qual o tamanho de um gigamícron? (c) Quanto bytes há em 1 TB de memória? (d) A massa da Terra é de seis mil yottagramas. Qual é esse peso em quilogramas? R: (a) 31.536 (b) 9-6 = 3. 1 quilômetro (c) 1.099.511.627.776 bytes (d) 24-3 = 1.000.000.000.000.000.000.000 quilogramas. 27 Escreva um shell que seja similar ao da Figura 1.19, mas que contenha código suficiente e que realmente funcione para que seja possível testa-lo. Você pode também adicionar alguns aspectos, como redirecionamento de entrada e saída, pipes e jobs em background. R: http://ftp.gnu.org/gnu/bash/