Capítulo 2 – Histórico
1. Como podemos definir a situação da computação no final da década de 50 em relação
a software, hardware e profissionais.
R:Os hardwares eram muito grandes e caros, os softwares eram rudimentares e na
maioria das vezes lentos, e eram poucos os profissionais que sabiam utilizar os
software e eles faziam apenas funcionais de responder aos programas.
2. Quais eram as dificuldades existentes nesta época? Cite pelo menos três explique
cada um deles.
R: O programador era também o operador do sistema de computação. Devido à escassez
de recursos, a maioria dos sistemas usava um esquema de reserva para alocação de
tempo da máquina.
3. Como era definido o uso dos computadores nesta época? Explique sua resposta.
R: Se você quisesse usar o computador, deveria reservar um horário em uma planilha.
4. Quais possíveis problemas que poderiam ocorrer em função da definição do uso dos
computadores? Explique sua resposta.
R: Supondo que você tivesse reservado 1 hora de tempo de computador para executar um
programa em desenvolvimento. Se você tivesse alguns erros desagradáveis você
provavelmente não terminaria dentro de 1 hora, e deveria juntar seus resultados e liberar a
máquina para a próxima pessoa da fila. Por outro lado, se o seu programa rodasse sem
problemas, você poderia terminar tudo em 35 minutos, e a máquina ficaria ociosa até a
próxima reserva de horário.
5. Como foram tratados estes problemas? Explique sua resposta.
R: pensou-se em algumas soluções para agilizar a tarefa de programação. Leitoras de
cartões, impressoras de linha e fitas magnéticas tornaram-se equipamentos comuns.
Montadores, carregadores e ligadores foram projetados. Bibliotecas de funções comuns
foram criadas para serem copiadas dentro de um novo programa sem a necessidade de
serem reescritas.
6. Qual era o tipo de processamento utilizado nesta época? Explique sua resposta.
R:
7. Por que surgiu a idéia de se criar um sistema operacional, mesmo que bastante
rudimentar? Explique sua resposta.
R: quando um job parava, o operador teria que notar o fato observando no console,
determinar porque o programa parou (término normal ou anormal), listar conteúdos de
memória se necessário e então carregar a leitora de cartões ou de fita de papel com o
próximo job e inicializar o computador novamente. Durante a transição entre os jobs,
novamente a UCP ficava ociosa. Para resolver este problema, foi desenvolvido um
seqüenciador automático de jobs, que consistia em um primeiro sistema operacional
rudimentar.
8. O que é o monitor residente?
R: seqüenciador automático de jobs, que consistia em um primeiro sistema operacional
rudimentar. Sua função era controlar a transferência automática de um job para outro.
9. Explique com suas palavras como funciona o monitor residente.
R: Assim que o computador era ligado, o monitor residente era chamado, e transferia o
controle para um programa. Quando o programa terminava, ele retornava o controle
para o monitor residente, que ia para o próximo programa. Assim, o monitor residente
1
fornecia uma seqüência automática entre programas e jobs.
10. Quais eram os cartões de programas e dados utilizados pelo monitor residente?
R: $JOB; $FTN; $LOAD; $RUN; $END.
11. Qual a finalidade de cada um deles? Explique sua resposta.
R: $JOB - Primeiro cartão, indicando o início de um job; $FTN - Executar o compilador
FORTRAN;$LOAD - Carregar o programa compilado; $RUN - Executar o programa
carregado; $END - Fim do job.
12. O que eram os cartões especiais e qual a sua finalidade? Explique sua resposta.
R: Eram cartões de controle que eram introduzidos entre os cartões de programa e dados
do job a executar. geralmente utilizados para contabilizar o tempo de uso da máquina, para
que seu tempo de processamento pudesse ser cobrado do usuário. Por isso, às vezes
incluíam parâmetros indicando o usuário do job, nome do job, etc.
13. Quais eram as principais deficiências (limitações) do monitor residente? Diga o que ele
não pode atender.
R:
14. Em função de que, alguns problemas existentes no monitor residente puderem ser
minimizados?
R:
15. Como podemos definir a operação off-line? Explique as duas formas de utilização.
R: Era operações em que dispositivos específicos foram desenvolvidos para provocar
saída ou entrada direta de fitas magnéticas. A outra abordagem foi dedicar um pequeno
computador para a tarefa de copiar de e para a fita. O pequeno computador foi um satélite
do computador principal.
16. Qual foi a principal vantagem da operação off-line em relação ao monitor residente?
Explique sua resposta.
R: A principal vantagem da operação off-line foi de que o computador principal não estava
mais restrito pela velocidade das leitoras de cartão e impressoras de linha, e sim pela
velocidade das unidades de fita magnética mais rápidas.
17. Como se deu o ganho real da operação off-line?
R: O ganho real da operação off-line vem da possibilidade de usar múltiplos sistemas
leitora-para-fita e fita-para-impressora para uma mesma UCP. Se a UCP pode processar
com o dobro da velocidade da leitora, então duas leitoras trabalhando simultaneamente
podem produzir fita suficiente para manter a UCP ocupada. Por outro lado, agora há um
atraso mais longo para conseguir executar um job em particular.
18. Como funciona a técnica de buferização? Explique sua resposta.
R: Buferização é o método de sobrepôr E/S de um job com sua própria computação. A
idéia é muito simples. Depois dos dados terem sido lidos e a UCP estar pronta para iniciar
a operação, o dispositivo de entrada é instruído para iniciar a próxima entrada
imediatamente. Dessa forma, a UCP e o dispositivo de entrada de dados ficam ambos
ocupados.
19. Quando a técnica de buferização pode ser inútil? Pense no que é preciso para que ela
exista.
R:
2
20. Quais os problemas que a buferização minimizou e qual ela não resolveu? Explique
sua resposta.
R: Apesar da buferização ser de alguma ajuda, ela raramente é suficiente para manter
a UCP sempre ocupada, já que os dispositivos de E/S costumam ser muito lentos em
relação à UCP.
21. Qual foi o avanço tecnológico que permitiu o desenvolvimento da técnica de spooling?
R: É que em um disco era possível escrever e ler a qualquer momento, enquanto que uma
fita precisava ser escrita até o fim para então ser rebobinada e lida.
22. Como funciona a técnica de spooling? Explique sua resposta.
R: Em um sistema de disco, cartões são diretamente lidos da leitora de cartões para o
disco. Quando um job é executado, o sistema operacional satisfaz seus pedidos por
entrada da leitora de cartões pela leitura do disco. Da mesma forma, quando um job
pede a impressão de uma linha para a impressora, esta é copiada em um buffer do
sistema que é escrito para o disco. Quando a impressora fica disponível, a saída é
realmente impressa.
23. Quais os problemas que o spooling minimizou e qual ele não resolveu? Explique sua
resposta.
R: A diferença entre buferização e spooling é que enquanto a buferização sobrepõe o
processamento de um job com seu próprio E/S, o spooling sobrepõe o E/S de um job
com o processamento de outros jobs. Assim, a técnica spooling é mais vantajosa do que a
buferização. O único efeito colateral é a necessidade de algum espaço em disco para o
spool, além de algumas tabelas em memória.
24. Qual a diferença entre as técnicas de buferização e spooling?
R: A diferença entre buferização e spooling é que enquanto a buferização sobrepõe o
processamento de um job com seu próprio E/S, o spooling sobrepõe o E/S de um job
com o processamento de outros jobs. Assim, a técnica spooling é mais vantajosa do que a
buferização.
25. Qual a finalidade da multiprogramação?
R: A multiprogramação aumenta a utilização de UCP, pois organiza os vários jobs de forma
que a UCP sempre tenha algo para processar.
26. Como funciona a multiprogramação? Explique sua resposta.
R: o sistema operacional escolhe um dos jobs da lista de jobs e começa a executá-lo.
Eventualmente, o job deve esperar por alguma tarefa, como a montagem de uma fita, um
comando digitado pelo teclado, ou mesmo o término de uma operação de E/S. Em um
sistema monoprogramado a UCP permaneceria ociosa. Por outro lado, em um sistema
multiprogramado, o sistema operacional simplesmente troca e executa outro job. Quando
este novo job precisa esperar, a UCP troca para outro job e assim por diante
27. Para que a multiprogramação funcione corretamente, ela precisa de quê? Explique sua
resposta.
R: Sistemas operacionais multiprogramados são bastante sofisticados. Para que vários
jobs estejam prontos para executar, é necessário que todos estejam presentes na memória
RAM da máquina simultaneamente. Isto acarreta em um gerenciamento de memória para
os vários jobs.
28. Qual a finalidade da multitarefa ou tempo compartilhado?
3
R: É uma extensão lógica de multiprogramação. Neste ambiente, múltiplos jobs são
executados simultaneamente, sendo que a UCP atende cada job por um pequeno tempo,
um a um em seqüência.
29. Como funciona a multitarefa ou tempo compartilhado? Explique sua resposta.
R: É fácil de entender como funcionam sistemas de tempo compartilhado quando
comparados com sistemas batch. Neste tipo de sistema operacional, um fluxo de jobs
separados é lido (de uma leitora de cartões, por exemplo), incluindo seus cartões de
controle que predefinem o que faz o job. Quando o job termina, seu resultado normalmente
é impresso, e o próximo job é posto em execução.
30. Qual a diferença entre a multiprogramação e tempo compartilhado? Explique sua
resposta.
R: Multiprogramação a CPU coloca um JOB no estado de bloqueado quando esse JOB necessita de
interação com o usuário (I/O, entrada de dados, etc) e pega um outro JOB da fila para executar e se
esse JOB precisar de interação também ela o coloca em estado de bloqueado e pega outro JOB
Tempo compartilhado a CPU tem um tempo T (tesão) para executar um JOB, quando se passa esse
tempo ela executa um outro JOB em um tempo t (tempo muito muito pequeno) e depois volta
para o processo anterior para executar ele por um outro tempo T.
4
Download

1 Capítulo 2 – Histórico 1. Como podemos definir a situação da