Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

28/8/2014 Sistemas Operacionais Modernos - Soluções
http://solsomod.blogspot.com.br/ 1/4
Sistemas Operacionais Modernos - Soluções
TERÇA-FEIRA, 10 DE AGOSTO DE 2010
Postado por Julio Rodrigues às 17:35 0 comentários 
Capítulo 1, Questões 26~29. Finaliza este capítulo. Considerações
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?
S. 
(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.
S. http://ftp.gnu.org/gnu/bash/
28#.
S. Este problema é um experimento. Não há nada para ser respondido.
29#.
S. Este problema é um experimento. Não há nada para ser respondido.
Esta ultima parte foi bastante medíocre, não sei o que o autor tinha em mente quando a fez. As primeiras 25 questões foram
muito úteis para assimilação do conteúdo.
*: Representam uma grande dúvida minha e precisam ser revisadas.
**: Aparentemente, este problema não pode ser resolvido usando-se o conteúdo deste capítulo. Logo, usei o que tinha para
raciocinar e supor esta resposta.
*erro: Questão com possível erro.
!: Pergunta interessante.
*!: Pergunta interessante mas que tenho dúvida.
$: Pergunta com opiniões muito pessoais do autor e que foram comentadas por mim.
#: Considero este problema muito grande, mal explicado, ou fora de contexto.
Recomende isto no Google
Capítulo 1, Questões 21~25
21. Qual é a diferença essencial entre arquivos especiais de bloco e arquivos especiais de caractere?
S. 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?
S. 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?
S. 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ê?
S. É 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.
▼ 2010 (8)
▼ Ago (8)
Capítulo 1,
Questões
26~29.
Finaliza este
capítulo...
Capítulo 1,
Questões
21~25
Questões que
precisam de
revisão
Capítulo 1,
Questões
16~20
Capítulo 1,
Questões
11~15
Capítulo 1,
Questões
6~10
Capítulo 1,
Questões
1~5
Introdução ao
Conteúdo do
Blog
ARQUIVO DO BLOG
0 mais Próximo blog» drearyflower@gmail.com Painel Sair
28/8/2014 Sistemas Operacionais Modernos - Soluções
http://solsomod.blogspot.com.br/ 2/4
Postado por Julio Rodrigues às 16:11 0 comentários 
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?
S. 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.
!: Pergunta interessante.
*!: Pergunta interessante mas que tenho dúvida.
$: Pergunta com opiniões muito pessoais do autor e que foram comentadas por mim.
Recomende isto no Google
Postado por Julio Rodrigues às 15:42 0 comentários 
Questões que precisam de revisão
De modo a centralizar e facilitar a revisão de questões, todas as questões que contém um * vão ser listadas aqui até que sejam
corrigidas ou revisadas.
Capítulo 1:
4, 8, 12, 20, 22
Recomende isto no Google
Postado por Julio Rodrigues às 15:05 0 comentários 
Capítulo 1, Questões 16~20
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?
S. 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 é?
S. 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.
S. 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ê?
S. 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*erro. 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?
S. 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.
*erro: Questãoaparentemente com erro.
Recomende isto no Google
Capítulo 1, Questões 11~15
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 subsequentes
na mesma velocidade que o acesso a disco.
S. 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 1.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 registrador-base e então
comparar o resultado com o endereço (físico) no registrador-limite. Os dois métodos são lógicamente equivalentes? E quanto
ao desempenho, são equivalentes?
S. 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.
28/8/2014 Sistemas Operacionais Modernos - Soluções
http://solsomod.blogspot.com.br/ 3/4
Postado por Julio Rodrigues às 13:57 0 comentários 
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?
S. 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?
S. 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 registrador-base e do registrador-limite de acordo com o esquema descrito no texto?
S. O registrador-base 0+40000 = 40 000 e o limite 40000+10000 = 50 000.
Recomende isto no Google
Postado por Julio Rodrigues às 01:09 1 comentários 
Capítulo 1, Questões 6~10
6. A ideia da família de computadores foi introduzida nos anos 60 com os computadores de grande porte IBM System/360. Esta
ideia esta morta e sepultada ou ainda vive?
S. 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 suporta-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 1024 x 768 pixels de 24 bits? Qual é o custo dessa RAM em preços
de 1980 (5 dólares/KB)? Quanto custa agora?
S. 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
S. 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 operacionais de
computadores de grande porte.
S. 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,
1ns. Quantas instruções por segundo essa máquina pode executar?
S. (1/n). Onde n é nano.
** Aparentemente, este problema não pode ser resolvido usando-se o conteúdo deste capítulo. Logo, usei o que tinha para
raciocinar e supor esta resposta.
Recomende isto no Google
SEGUNDA-FEIRA, 9 DE AGOSTO DE 2010
Capítulo 1, Questões 1~5
1. Quais são as duas principais funções de um sistema operacional?
S. Gerenciar os recursos da máquina e prover uma interface simples com o hardware.
2. O que é multiprogramação?
S. Consiste em manter vários jobs na memória, executando um pouco de cada em determinados intervalos de tempo. Técnica
que visa manter a CPU ocupada o maior tempo possível, visto que em muitas aplicações, como as de processamento de dados
comerciais, o desempenho é nivelado pela E/S (I/O Bound), chegando inclusive a ocupar 80~90 por cento do tempo total de
execução.
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?
S. É 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?
28/8/2014 Sistemas Operacionais Modernos - Soluções
http://solsomod.blogspot.com.br/ 4/4Postagens mais antigasInício
Assinar: Postagens (Atom)
Postado por Julio Rodrigues às 23:21 2 comentários 
S. 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?
S. Pois a proteção em hardware só foi largamente empregada a partir da terceira geração.
* Questões marcadas com estrela representam uma grande dúvida minha e precisam ser revisadas.
Recomende isto no Google
Julio Rodrigues
Estudante de Ciência da Computação da Universidade Federal do Espírito Santo.
Visualizar meu perfil completo
QUEM SOU EU
Tecnologia do Blogger.

Mais conteúdos dessa disciplina