Sistemas Operativos

Sistemas Operativos

Origem: Wikipédia, a enciclopédia livre.

Sistema operativo

Origem: Wikipédia, a enciclopédia livre.
 
 

Um sistema operativo (português europeu) ou sistema operacional (português brasileiro) é um programa ou um conjunto de programas cuja função é gerenciar os recursos do sistema (definir qual programa recebe atenção do processador, gerenciar memória, criar um sistema de arquivos, etc.), além de fornecer uma interface entre o computador e o usuário. É o primeiro programa que a máquina executa no momento em que é ligada (num processo chamado de bootstrapping) e, a partir de então, não deixa de funcionar até que o computador seja desligado. O sistema operacional reveza sua execução com a de outros programas, como se estivesse vigiando, controlando e orquestrando todo o processo computacional.

Segundo alguns autores (Silberschatz et al, 2005; Stallings, 2004; Tanenbaum, 1999), existem dois modos distintos de conceituar um sistema operacional:

  • pela perspectiva do usuário ou programador (visão top-down): é uma abstração do hardware, fazendo o papel de intermediário entre o aplicativo (programa) e os componentes físicos do computador (hardware); ou
  • numa visão bottom-up, de baixo para cima: é um gerenciador de recursos, i.e., controla quais aplicações (processos) podem ser executadas, quando, que recursos (memória, disco, periféricos) podem ser utilizados.

A sigla usual para designar esta classe de programas é SO (em português) ou OS (do inglês Operating System).

 

 
 
Interface de uso
Sistema operacional com interface gráfica, no caso, o Linux Ubuntu 11.04 (rodando a interface Unity)

Os sistemas operacionais fornecem abstração de hardware para que seus recursos possam ser usados de maneira correta e padronizada, mas para ser possível operar um computador, é necessário fornecer também uma interface para que o usuário possa desfrutar dos recursos do sistema. Atualmente existem três tipos de interface: GUI (graphical user interface) ou interface gráfica, TUI (text user interface) ou interface textual, e CUI (command-line user interface) ou interface de linha de comando.

 GUI (Graphical user interface)

Nesse tipo de interface, o usuário tem à disposição um ambiente de trabalho composto por menus, ícones, janelas e outros itens. 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.

 TUI (Text user interface)

Aplicativo com interface textual (TUI), rodando no sistema operacional FreeDOS

Assim como na GUI, a TUI também tem à disposição um ambiente de trabalho composto por menus, janelas e botões, porém essas interfaces não têm a capacidade de reproduzir figuras, salvo as que são tratadas como caracteres ASCII. Essa interface, antes da popularização da GUI, tinha um uso difundido em aplicações baseadas no MS-DOS, que, aliás, nas versões mais recentes contava com um gerenciador de programas e arquivos baseado em TUI (o DOS Shell). As TUIs, ao contrário das GUIs, não dependem de um gerenciador de janelas específico para funcionar, podendo mesmo serem inicializadas a partir da linha de comando. Atualmente essa interface é muito rara, praticamente restrita a sistemas implementados na década de 1980 e início da década de 1990.

 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.

 

Um exemplo da linha de comando

Em relação ao seu projeto (arquitetura), segundo Tanenbaum (1999):

  • Núcleo monolítico ou monobloco: o núcleo consiste em um único processo executando numa memória protegida (espaço de núcleo) executando as principais funções. Ex.: MAC OS X, OS/2, Windows, Linux, FreeBSD.
  • Micronúcleo ou modelo cliente-servidor: o núcleo consiste de funções mínimas (comunicação e gerenciamento de processos), e outras funções, como sistemas de arquivos e gerenciamento de memória, são executadas no espaço do usuário como serviços; as aplicações (programas) são os clientes. Ex.: GNU Hurd, Mach.
  • Sistema em camadas: funções do núcleo irão executar em camadas distintas, de acordo com seu nível de privilégio. Ex.: Multics.
  • Monitor de máquinas virtuais: fornece uma abstração do hardware para vários sistemas operacionais. Ex.: VM/370, VMware, Xen.

Quanto ao gerenciamento de processos, pode-se usar a seguinte classificação:

  • Monotarefa: pode-se executar apenas um processo de cada vez Ex.: MS-DOS.
  • Multitarefa: além do próprio SO, vários processos de utilizador (tarefas) estão carregados em memória, sendo que um pode estar ocupando o processador e outros ficam enfileirados, aguardando a sua vez. O compartilhamento de tempo no processador é feito de modo que o usuário tenha a impressão que vários processos estão sendo executados simultaneamente. Cada processo recebe um tempo para ser executado. Ao final desse tempo, outro processo é executado. Essa alternância de processos chama-se concorrência.
  • Multitarefa cooperativa: Executa dois ou mais programas em simultâneo mas o programa que está em primeiro plano tem controlo sobre o processador. Neste caso se este programa falhar bloqueia o computador e tem que ser reiniciado. Exempo de SO: Windows 3.x e versões anteriores ao Mac OS 8.
  • Multitarefa preempetiva: É o processador que controla a execução dos programas, desta forma permite ao sistema operativo recuperar o controlo caso um programa bloqueie. O utilizador perde os trabalhos do programa que falhou mas os restantes programas continuam a trabalhar. Exemplo de SO: Unix; Linux; Windows 95 e superiores; MAC OS 8 e superiores; etc.
  • Elemento de lista com marcas:

Ex: OS/2, Windows, Linux, FreeBSD e o Mac OS X. Cabe destacar que processos só podem estar executando simultaneamente caso o sistema seja multiprocessado, já que, em que cada instante de tempo, apenas um processo está em execução em um processador ou núcleo de processamento (core).

  • Multiprocessamento: o SO distribui as tarefas entre dois ou mais processadores. Se os processadores estivem na mesma máquina fisica, o sistema é chamado de Sistema Multiprocessado Fortemente Acoplado. Caso esteja em máquinas diferentes, trata-se de um Sistema Multiprocessado Fracamente Acoplado.

Quanto à quantidade de usuários que podem utilizar o sistema concorrentemente:

 Exemplos de sistemas operacionais ativos

 Para desktop

 Para dispositivos móveis (tablets e smartphones)

 Unix foi o primeiro sistema operacional moderno

Visando o problema da incompatibilidade de SOs de máquinas distintas, um grupo de desenvolvedores da AT&T criaram o Unix em 1969, sendo o primeiro sistema operacional moderno da computação. É possível afirmar que mais de 90 por cento dos SOs atuais foram influenciados de alguma maneira pelo Unix.

Sua primeira versão foi escrita em linguagem Assembly, sendo posteriormente reescrita em C no ano de 1973, linguagem que é utilizada até os dias de hoje. Este sistema introduziu conceitos muito importantes para a computação: portabilidade, multi-usuário, multi-tarefas e compartilhamento de tarefas.

Durante a década de 70, o Unix foi distribuído gratuitamente (incluindo seu código fonte) para universidades e órgãos governamentais norte-americanos, o que conferiu muita popularidade a este sistema. Sua interface era totalmente em modo texto sem interface gráfica.

Em 1977 foi lançado o BSD, sistema operacional fortemente baseado no Unix, focado principalmente para a execução em máquinas específicas de alto desempenho, como o famoso computador VAX, o qual foi uma referência de hardware na época.

 Exemplos de sistemas operacionais importantes que foram descontinuados

Referências

  1. http://www.osdezmais.com/tecnologia/os-10-sistemas-operacionais-mais-usados/
  2. http://www.osdezmais.com/tecnologia/os-10-sistemas-operacionais-mais-usados/
  3. http://www.osdezmais.com/tecnologia/os-10-sistemas-operacionais-mais-usados/
  4. http://www.osdezmais.com/tecnologia/os-10-sistemas-operacionais-mais-usados/
  5. http://www.osdezmais.com/tecnologia/os-10-sistemas-operacionais-mais-usados/
  6. http://www.osdezmais.com/tecnologia/os-10-sistemas-operacionais-mais-usados/
  7. Andrew s. tanenbaum,sistemas operacionais modernos, Pearson
  8. J. GLENN BROOKSHEAR,CIENCIA DA COMPUTAÇAO: UMA VISAO ABRANGENTE, Bookman, 2005
  9. F. B. Machado; L. P. Maia, Arquitetura de Sistemas Operacionais, LTC, 2007
  10. (Sistemas Operacionais - Rômulo Silva de Oliveria, Alexandre Carissimi e Simão Toscani - Série Livros Didáticos - No 11 - Editora Sagra Luzzatto - UFRGS)
  11. F. B. Machado; L. P. Maia, Arquitetura de Sistemas Operacionais, LTC, 2007
  • BACH, Maurice J. The design of the Unix operating system. Upper Saddle River: Prentice Hall. 1990.
  • BOVET Daniel P.; CESATI, Marco. Understanding de Linux kernel. 3.ed. Sebastopol: O'Reilly. 2005.
  • MCKUSICK, Marshall K.; NEVILLE-NEIL, George V. The design and implementation of the FreeBSD operating system. Upper Saddle River: Addison-Wesley. 2004.
  • RUSSINOVITCH, Mark E.; SOLOMON, David A. Microsoft Windows internals. 4.ed. Redmond: Microsoft Press. 2005.
  • SILBERSCHATZ, Avi; GALVIN, Peter B.; GAGNE, Greg. Operating system concepts. 7.ed. Hoboken: Wiley. 2005.
  • STALLINGS, William. Operating systems: internals and design principles. 5.ed. Upper Saddle River: Pearson Prentice Hall. 2004.
  • TANENBAUM, Andrew. Sistemas operacionais modernos. Rio de Janeiro: LTC. 1999.

Mais uma vez informar que todos estes dados foram retirados do wikipédia e ao mesmo tempo abreviados, apenas para se ter uma noção do vasto leque de sistemas operativos existentes assim como alguns já extintos ou obsoletos.

 

Translate to English Translate to Spanish Translate to French Translate to German Google-Translate-Portuguese to Italian Translate to Russian Translate to Chinese Translate to Japanese

Rating: 2.3/5 (145 votos)







Total de visitas: 10302