Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estrutura de dados Tipo abstrato de dados (TAD) Sistemas Operacionais Introdução aos Sistemas Operacionais Sistemas Operacionais – O que é um sistema operacional 2 O que é um sistema operacional De acordo com Silberschatz (2000), um sistema operacional é “um programa que atua como intermediário entre o usuário e o hardware de um computador”. A figura 1 ilustra um sistema de computação típico, com sistema operacional encapsulando o hardware. Observe que os programas aplicativos utilizados precisam “passar” pelo sistema operacional para chegar ao hardware. Isso não é uma verdade absoluta sempre, mas em geral é assim que o acesso acontece. Figura 1. Visão geral de um sistema de computação. (Silberschatz, 2000) Na realidade, o sistema operacional é formado por um conjunto de programas, com um papel fundamental em um sistema de computação. De maneira geral, esse software encapsula o hardware sobre o qual está instalado, isolando-o dos softwares aplicativos que estão em execução no hardware. Um dos motivos para que isso aconteça é o sistema operacional ficar responsável pela segurança e gerenciamento de conflitos que podem surgir em um ambiente compartilhado. Curiosidade Sistemas Operacionais – O que é um sistema operacional 3 Há diversos sistemas operacionais sendo executados nos computadores atualmente. Você sabe qual é o sistema operacional mais utilizado hoje? No link abaixo, você pode ver as estatísticas atualizadas com visão mundial, ou aplicar um filtro por país. <http://gs.statcounter.com/>. Acesso em: jul. 2013. 1.1 Responsabilidades de um sistema operacional Para se entender a importância que este software tem, é preciso conhecer as tarefas que são atribuídas a ele. 1.1.1 Gerenciador de recursos Um dos papéis primários de um sistema operacional é servir como um gerente de recursos, controlando o uso do hardware sob o qual ele está instalado. Por meio desta tarefa, o sistema operacional recebe pedidos de aplicativos para acessar determinados recursos, como a memória, e decide se esse recurso será concedido para quem o solicitou. Ao atender uma solicitação, o sistema operacional deve tomar cuidado para que uma aplicação não interfira na execução de outra aplicação. Além disso, o papel de gerente de recursos inclui controlar o tipo (leitura ou escrita) e prioridades de acesso. 1.1.2 Provedor de serviços Analisando o sistema operacional do ponto de vista de uma aplicação ou de um usuário, ele pode ser entendido como um provedor de serviços. Por exemplo, um programa aplicativo pode solicitar ao sistema operacional que grave um determinado arquivo em disco, ou que faça a leitura de um arquivo que está armazenado em disco e o carregue em memória. Diferente do que a maioria dos usuários imagina, não é a própria aplicação que executa as tarefas chamadas de “baixo nível”, ou seja, lê ou grava os arquivos em disco: isso é tarefa desempenhada pelo sistema operacional. 1.1.3 Máquina virtual Sistemas Operacionais – O que é um sistema operacional 4 Uma vez que o sistema operacional pode ser observado como uma camada entre o hardware e a aplicação, ele pode ser entendido como uma máquina virtual. Isso significa que os programas aplicativos não sabem os detalhes do hardware sobre o qual estão de fato executando, uma vez que o sistema operacional irá fornecer os recursos de forma abstrata para a aplicação. Para deixar mais claro, considere que um aplicativo solicita para o Sistema Operacional armazenar um arquivo no seguinte local: “f:\docs\arquivo.txt”. Que tipo de mídia é o local “f”? Pode ser um hard disc (HD) tipo magnético, ou pode ser um pendrive, que é uma memória flash. A maneira como cada um desses dispositivos funciona é muito diferente, mas para a aplicação isso não importa. O sistema operacional fornece uma abstração chamada “f:” Neste exemplo, e é tudo que a aplicação precisa saber. 2.0 Visão geral de hardware Antes de prosseguir, é necessário apresentar algumas informações sobre hardware para explicar como o sistema operacional interagirá com o hardware sobre o qual está executando. Um sistema de computação, de maneira geral, é formado pelos componentes básicos listados a seguir. CPU: Unidade Central de Processamento, também conhecida como processador. É responsável pela execução das instruções e, portanto, é a peça fundamental para o funcionamento do sistema. É por meio da CPU que se tem uma das medidas de desempenho de um sistema. Mecanismos de armazenamento: Entram nesta categoria os mecanismos de armazenamento temporário, como a memória RAM, e persistente, como os discos rígidos (hard disc). Barramentos: São conexões físicas que ligam os diversos componentes dentro da placa do sistema, como ligam a CPU com a memória RAM. Estruturas de entrada e saída (E/S): Componentes que permitem ao usuário interagir com um sistema de computação. Pode-se destacar aqui o teclado, o mouse, e o monitor, como os componentes mais utilizados para realizar estas tarefas. Quando um sistema operacional é projetado e implementado, existem Sistemas Operacionais – O que é um sistema operacional 5 diversos tipos e modelos de hardware disponíveis no mercado. E após a implementação e a venda do sistema operacional, outros dispositivos que são criados. Como a equipe que desenvolve o sistema operacional pode prepará-lo para funcionar com todas as opções disponíveis? Na realidade, ele não “conhece” todo o hardware. Há mais uma camada entre o sistema operacional e o hardware, uma pequena peça de software chamada driver de dispositivo. Ele é responsável por fazer a comunicação entre os diferentes tipos de dispositivos e o sistema operacional. Leitura complementar Para conhecer outros detalhes e componentes de hardware, leia a matéria disponível em: <http://informatica.hsw.uol.com.br/pc.htm>. Acesso em: jul. 2013. Curiosidade A Intel, reconhecida fabricante de processadores, oferece diversos softwares que permitem monitorar e configurar alguns parâmetros dos seus processadores. Para conhecer, acesse: <www.intel.com/support/pt/utilitytools.htm?iid=subhdr-BR+res_toolutil>. Acesso em: jul. 2013. 2.1 Interrupções Uma vez que existem diversos componentes de hardware presentes em um sistema de computação e a que CPU deve coordená-los, deve haver algum tipo de mecanismo para que haja comunicação entre estes componentes e a CPU. Para realizar esta tarefa, um sistema de computação conta com um mecanismo chamado de interrupção. Uma interrupção é um sinal enviado ao processador para indicar que uma ação deve ser tomada para responder a algum evento que aconteceu no sistema. Quando a CPU recebe uma interrupção, ela deve parar o que está fazendo e verificar a interrupção que foi recebida e se tem maior importância do que aquilo que ela estava fazendo. Caso afirmativo, a CPU trata a interrupção para somente depois voltar a sua tarefa inicial. A interrupção pode ser gerada por hardware ou por software. No caso da gerada por hardware, um componente do sistema, como um HD, envia um sinal pelo barramento, indicando que uma leitura ou uma escrita que estava Sistemas Operacionais – O que é um sistema operacional 6 em andamento foi concluída, por exemplo. No caso de uma interrupção por software, temos uma chamada ao sistema (System call) que é a maneira que um programa aplicativo utiliza para fazer solicitações ao sistema operacional, como gravar um arquivoem disco. 2.2 Iniciando o sistema Quando um computador é ligado normalmente se observa alguns leds acendendo, como os do teclado e do HD. Antes de o sistema operacional entrar em funcionamento, existe outro programa que é carregado e iniciado: o bootstrap program ou programa de partida. No início do processo de partida do sistema, é possível verificar o hardware sendo testado e alguns leds piscando indicando testes em dispositivos de entrada e saída e de armazenamento. Depois disso, o bootstrap program assume seu papel de carregar o sistema operacional na memória e iniciar sua execução; então, o sistema operacional se torna o responsável por todos os demais eventos que acontecem no sistema. 3.1 Breve histórico dos sistemas operacionais Vamos aqui resumir os fatos mais importantes que aconteceram nas últimas décadas no cenário da computação e que marcaram a história dos sistemas operacionais ao longo do tempo. Este guia é apenas um breve relato, não pretendendo esgotar o assunto ou cobrir todos os fatos. Na década de 1950, com a criação dos primeiros computadores transistorizados, houve o desenvolvimento dos precursores dos sistemas operacionais que utilizamos hoje. Obviamente, eles eram muito mais simples, com apenas algumas das funções que um sistema operacional moderno contempla. Uma das tarefas era carregar um programa o colocá-lo em execução. Nesse ambiente, somente um programa era carregado de cada vez, e somente após a finalização de um programa é que outro poderia ser executado. Também não havia nesta época a interação com o usuário, com teclado e mouse. Havia uma leitora de cartões e uma impressora para desempenharem o papel dos dispositivos de entrada e saída. Durante a década de 1960, surgiram os computadores que utilizavam circuitos integrados (CIs) e com eles surgiu o conceito de multiprogramação. A ideia básica era manter em memória, não apenas um, mas diversos programas ao mesmo tempo, fazendo com que o tempo ocioso do Sistemas Operacionais – O que é um sistema operacional 7 processador, que ficava parado esperando a conclusão das operações de entrada e saída de dados, fosse então ocupado com o processamento de outra tarefa. Para isso, o sistema operacional passou a dividir a memória em porções, e em cada uma ele alocava um programa e os dados deste programa, e deveria gerenciar estas porções de memória para que um programa não invadisse a área de memória de outro. Ainda durante a década de 1960, outro aspecto muito importante foi o surgimento dos discos magnéticos, que permitiram um grande ganho em velocidade de carregamento de programas e no armazenamento de dados. Obviamente, esta foi mais uma que passou a fazer parte das tarefas dos sistemas operacionais. Foi também durante esta década que o MIT (Massachusetts Institute of Technology), juntamente com a GE (General Eletronics) e o Bell Laboratories, desenvolveu o Multics, um sistema operacional que permitia um único computador ser utilizado por centenas de pessoas, com a tecnologia de tempo compartilhado. Variações desta técnica são utilizadas ainda hoje nos sistemas operacionais modernos, permitindo que várias pessoas, ou programas, possam se conectar a uma máquina e utilizar seus recursos remotamente. Um exemplo disso são os servidores de internet, onde milhares de pessoas se conectam para buscar informações diariamente. Na década de 1970, alguns eventos mudaram o cenário da computação no mundo. O surgimento dos microchips fez com que o preço dos computadores despencasse e tornou possível que fossem comprados por pessoas físicas e não apenas por empresas. Foi também nesta década que as conexões de rede começassem a se difundir e preparar o cenário que temos hoje, com computadores interligados por todo o mundo. Foi na década de 1980 que o famoso empresário Bill Gates da Microsoft inicialmente comercializou o sistema operacional MS-DOS e mais tarde o Windows, dotado de uma interface gráfica, permitindo que pessoas sem conhecimento técnico pudessem operar os computadores de forma mais fácil. O uso de interface gráfica, acompanhada de um mouse, fez com que a utilização dos computadores se popularizasse ainda mais, e tornou a Microsoft uma empresa milionária em pouco tempo. Para terminar nosso breve relato da história dos sistemas operacionais, não poderíamos deixar de citar na década de 1990, o desenvolvimento da Word Wide Web, que definitivamente muda a forma com que nos comunicamos com o mundo e está modificando as relações de comércio e trabalho. Uma grande demanda da chamada computação distribuída tem surgido e os sistemas operacionais mais uma vez são parte integrante desta demanda, gerenciado a comunicação entre os diversos computadores que se interligam nas diversas redes. Sistemas Operacionais – O que é um sistema operacional 8 Leitura complementar A história da evolução dos sistemas operacionais está intimamente ligada à evolução dos computadores. Para saber um pouco mais sobre os primórdios da computação, leia a matéria disponível no link a seguir. <www.tecmundo.com.br/linux/2031-a-historia-dos-sistemas- operacionais.htm>. Acesso em: jul. 2013. 4.0 Tipos de sistemas operacionais Serão abordados aqui quatro tipos de sistemas operacionais, classificados de acordo com a forma com que processam os pedidos e programas em execução no sistema. 4.1.1 Sistemas operacionais em batch Neste tipo de sistema operacional, a ideia básica é submeter uma tarefa ao sistema aguardar até que ela seja concluída, sem que durante esse tempo de espera haja iteração com o computador. Dessa forma, reúnem-se grupos de trabalhos em lotes (batch) e cada trabalho é finalizado antes de iniciar o próximo. 4.1.2 Sistemas operacionais de tempo compartilhado Neste tipo de sistema, diversas tarefas são executadas concorrentemente, ou seja, não é necessário que uma tarefa tenha que esperar até a conclusão de outra para iniciar seu processamento. Como isso é possível? Se estivéssemos em um sistema com múltiplos processadores, poderíamos imaginar que cada tarefa seria executada em um dos processadores. Mas não é esse o caso: mesmo em uma máquina com um único processador disponível, pode-se ter diversas tarefas sendo executadas. Isso é conseguido alternando-se entre as tarefas que estão esperando para executar, em um intervalo de tempo muito pequeno. Para entender esse conceito, considere que em um computador Sistemas Operacionais – O que é um sistema operacional 9 executa um aplicativo de edição de texto, um para tocar música e um navegador de internet. Enquanto o usuário ouve música, ele pode deixar o download de um arquivo e ao mesmo tempo o usuário pode digitar um texto no editor. O que o sistema operacional faz neste caso é alternar entre a execução dos aplicativos, de forma tão rápida, que o usuário não consegue perceber a troca entre os aplicativos. 4.1.3 Sistemas operacionais distribuídos Neste ambiente, um único sistema operacional trata diversas CPUs e memórias, de vários computadores interligados, como recursos que ele administra. Isso é diferente de se interligar diversos computadores, cada um contendo seu próprio sistema operacional local, e que se comunicam, mas não compartilham dos recursos: cada sistema operacional local administra seus próprios recursos. Um sistema operacional distribuído é formado por vários processadores, mas todos eles dispostos na mesma máquina, ou seja, eles estão conectados por um mesmo barramento e não por cabos remotos. Neste cenário, o sistema operacional deve ser capaz dedistribuir os diversos aplicativos entre os processadores, de forma a obter o melhor desempenho possível, não sobrecarregando ou deixando ocioso nenhum dos processadores. 4.1.4 Sistemas operacionais de tempo real Sistemas operacionais de tempo real são construídos para executar em sistemas de missão crítica, nos quais o tempo é um fator principal a ser considerado, e não pode haver atrasos na execução das tarefas. Como exemplos de sistemas deste tipo, considere sistemas de controle de aviões, de braços mecânicos e de temperatura em indústrias, ou ainda sistemas de navegação automáticos, como piloto-automático em carros. Neles, não pode haver demora na resposta do sistema ou um grave acidente poderia acontecer. BIBLIOGRAFIA SILBERSCHATZ, A.; GALIN, P.; GAGNE, G. Sistemas operacionais: Conceitos e aplicações. Rio de Janeiro: Campus, 2000. Sistemas Operacionais – O que é um sistema operacional 10 TANENBAUM, A. S. Sistemas operacionais modernos. São Paulo: Pearson Prentice Hall, 2009. DEITEL, H. M; DEITEL, P. J.; CHOFFNES, D.R. Sistemas operacionais. São Paulo: Pearson Prentice Hall, 2005.
Compartilhar