Brenda Costa de Lima
Sistemas Operacionai s
ÍNDICE • • • • •
Introdução de sistemas operacionais A espinha dorsal do sistema operacional História O que um sistema operacional faz? Funcionamento (Gerenciamento de processos; Gerenciamento de memória; Sistema de arquivos) • Quais são os tipos de sistemas operacionais? • Interface de uso • Bibliografia
Introdução de sistemas operacionais • Recentemente começaram a surgir sistemas operacionais para pequenos computadores. Se você gosta de investigar os dispositivos eletrônicos, vai descobrir que existem sistemas operacionais em dispositivos que usamos todos os dias, de celulares a pontos de acesso sem fios. Os computadores utilizados nestes pequenos dispositivos se tornaram tão poderosos que hoje eles podem até rodar um sistema operacional e aplicativos. Um computador de um celular moderno é mais poderoso do que um computador de mesa há 20 anos. Esta evolução é coerente e faz parte de um processo de desenvolvimento natural.
A espinha dorsal do sistema operacional O sistema operacional cria a possibilidade de: • realizar uma variedade de tarefas; • interagir com os usuários de forma complexa; • acompanhar as necessidades que mudam com o tempo. Todos os computadores de mesa têm sistemas operacionais. Os mais comuns são os da família Windows, da Microsoft, o OS X, sistema operacional do Macintosh desenvolvido pela Apple, o Linux, sistema operacional desenvolvido por Linus Torvalds e pela comunidade de desenvolvedores de software open source, e a família UNIX de sistemas operacionais (que foram desenvolvidos por uma série de pessoas, empresas e colaboradores).
História • Um dos primeiros sistemas operacionais de propósito geral foi o CTSS, desenvolvido no MIT. Após o CTSS, o MIT, os laboratórios Bell da AT&T e a General Eletric desenvolveram o Multics, cujo objetivo era suportar centenas de usuários. Os sistemas operacionais eram geralmente programandos em assembly, até mesmo o Unix em seu início. Então, Dennis Ritchie (também da Bell) criou a linguagem C a partir da linguagem B, que havia sido criada por Thompson. Finalmente, Thompson e Ritchie reescreveram o Unix em C. O Unix criou um ecossistema de versões, onde destacam-se: System V e derivados (HP-UX, AIX); família BSC (FreeBSD, NetBSD, OpenBSD, etc.), Linux e até o Mac OS X (que deriva do Mach e FreeBSD). No começo da década de 1990, um estudante de computação finlandês postou um comentário numa lista de discussão da Usenet dizendo que estava desenvolvendo um kernel de sistema operacional e perguntou se alguém gostaria de auxiliá-lo na tarefa. Este estudante chamava-se Linus Torvalds e o primeiro passo em direção ao tão conhecido Linux foi dado naquele momento.
O que um sistema operacional faz? No nível mais simples, o sistema operacional realiza duas tarefas: • Gerencia os recursos de hardware e software do sistema. Em um computador de mesa, esses recursos incluem o processador, a memória, o espaço em disco etc. Em um telefone celular, o sistema operacional gerencia o teclado, a tela, a agenda, a bateria e a conexão de rede; • Proporciona uma maneira estável e consistente para lidar com o hardware, sem ter de conhecer todos os detalhes do hardware. Mesmo que um computador seja único, um sistema operacional assegura que os aplicativos continuem funcionando após as atualizações de hardware. Isso acontece porque é o sistema operacional, e não o aplicativo, que gerencia o hardware e a distribuição dos seus recursos. Um dos desafios do desenvolvedor de sistemas operacionais é criar um sistema flexível o suficiente para reconhecer hardwares de milhares de fabricantes diferentes.
Funcionamento Um sistema operacional possui as seguintes funções: • gerenciamento de processos; • gerenciamento de memória; • sistema de arquivos; • entrada e saída de dados.
• Gerenciamento de processos • O sistema operacional multitarefa é preparado para dar ao usuário a ilusão que o número de processos em execução simultânea no computador é maior que o número de processadores instalados. Cada processo recebe uma fatia do tempo e a alternância entre vários processos é tão rápida que o usuário pensa que sua execução é simultânea. • O sistema operacional, normalmente, deve possibilitar o multiprocessamento (SMP ou NUMA). Neste caso, processos diferentes e threads podem ser executados em diferentes processadores. Para essa tarefa, ele deve ser reentrante e interrompível, o que significa que pode ser interrompido no meio da execução de uma tarefa.
• Gerenciamento de memória O sistema operacional tem acesso completo à memória do sistema e deve permitir que os processos dos usuários tenham acesso seguro à memória quando o requisitam. Vários sistemas operacionais usam memória virtual, que possui 3 funções básicas: • assegurar que cada processo tenha seu próprio espaço de endereçamento, começando em zero, para evitar ou resolver o problema de relocação (Tanenbaum, 1999); • prover proteção da memória para impedir que um processo utilize um endereço de memória que não lhe pertença; • possibilitar que uma aplicação utilize mais memória do que a fisicamente existente.
• Sistema de arquivos A memória principal do computador é volátil, e seu tamanho é limitado pelo custo do hardware. Assim, os usuários necessitam de algum método para armazenar e recuperar informações de modo permanente. Um arquivo é um conjunto de bytes, normalmente armazenado em um dispositivo periférico não volátil (p.ex., disco), que pode ser lido e gravado por um ou mais processos. O sistema de arquivos é a estrutura que permite o gerenciamento de arquivos—criação, destruição, leitura, gravação, controle de acesso, etc.
Quais são os tipos de sistemas operacionais? •
Existem 4 tipos básicos de sistemas operacionais. Eles são divididos em grupos relacionados com o tipo de computador que controlam e o tipo de aplicativos que suportam. Estas são as categorias mais abrangentes:
• Sistema operacional de tempo real • É utilizado para controlar máquinas, instrumentos científicos e sistemas industriais. Geralmente um RTOS não tem uma interface para o usuário muito simples e não é destinado para o usuário final, desde que o sistema é entregue como uma "caixa selada". A função do RTOS é gerenciar os recursos do computador para que uma operação específica seja sempre executada durante um mesmo período de tempo.
• Monousuário monotarefa; Monousuário multitarefa • Monotarefa: O sistema operacional foi criado para que um único usuário possa fazer uma coisa por vez. O Palm OS dos computadores Palm é um bom exemplo de um moderno sistema operacional monousuário e monotarefa. • Multitarefa: Este tipo de sistema operacional é o mais utilizado em computadores de mesa e laptops. As plataformas Microsoft Windows e Apple MacOS são exemplos de sistemas operacionais que permitem que um único usuário utilize diversos programas ao mesmo tempo. Por exemplo, é perfeitamente possível para um usuário de Windows escrever uma nota em um processador de texto ao mesmo tempo em que faz download de um arquivo da Internet e imprime um e-mail.
• •
Multiusuário
Um sistema operacional multiusuário permite que diversos usuários utilizem simultaneamente os recursos do computador. O sistema operacional deve se certificar de que as solicitações de vários usuários estejam balanceadas. Cada um dos programas utilizados deve dispor de recursos suficientes e separados, de forma que o problema de um usuário não afete toda a comunidade de usuários. Unix, VMS e sistemas operacionais mainframe como o MVS são exemplos de sistemas operacionais multiusuário.
Interface de uso
• GUI (Graphical user interface) • Nesse tipo de interface, o usuário tem a disposição um ambiente de trabalho composto por menus, ícones, janelas e outros itens disponíveis. O usuário interage com esse tipo de interface usando o mouse, podendo também usar o teclado e teclas de atalho. É possível fazer todo tipo de tarefa usando interface gráfica, como edição de vídeos e imagens, sendo somente alguns tipos muito específicos de tarefas que se saem melhor em linha de comando. Acrescentar facilidade de uso e agilidade é o objetivo da GUI, tendo a desvantagem de consumir muito mais memória que interfaces de linha de comando. Em sistemas unix-likes, existe a possibilidade de escolher o gerenciador de janelas a utilizar, aumentando em muito a liberdade de escolha do ambiente.
• CUI (Command-line user interface) • Além da interface gráfica, existe a interface de linha de comando, que funciona basicamente com a digitação de comandos, sendo nesse relativamente pouco interativa. Os comandos digitados são interpretados por um interpretador de comandos, conhecidos também por shells, bastante comuns em sistemas unix-likes. Um exemplo de interpretador de comandos seria o Bash. Usada geralmente por usuários avançados e em atividades específicas, como gerenciamento remoto, utiliza poucos recursos de hardware em comparação a interface gráfica. Nesse tipo de ambiente, raramente se usa o mouse, embora seja possível através do uso da biblioteca ncurses no desenvolvimento dos softwares.
Bibliografia • • • • • • •
Introdução de sistemas operacionais http://informatica.hsw.uol.com.br A espinha dorsal do Sistema Operacional http://informatica.hsw.uol.com.br/ História http://pt.wikipedia.org O que um sistema operacional faz? http://informatica.hsw.uol.com.br Funcionamento http://pt.wikipedia.org Quais são os tipos de sistemas operacionais? http://informatica.hsw.uol.com.br Interface de Uso http://pt.wikipedia.org