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