Sistema operativo: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
acréscimo de aposto |
m |
||
Linha 2:
{{Revisão|data=maio de 2016}}
{{SO}}
'''Sistema''' {{PEPB|operativo|operacional}} ({{lang-en|''Operating System''}} - OS) é um [[Programa de computador|programa]] ou um conjunto de programas cuja função é gerenciar os recursos do sistema (definir qual programa recebe atenção do [[Unidade central de processamento|processador]], gerenciar memória, criar um [[sistema de arquivos]], etc.), fornecendo uma [[interface]] entre o [[computador]] e o [[usuário]]. Embora possa ser executado imediatamente após a máquina ser ligada, a maioria dos computadores pessoais de hoje o executa através de outro programa armazenado em uma memória não-volátil [[ROM]] chamado [[BIOS]] num processo chamado "[[Bootstrapping (estatística)|bootstrapping]]", conceito em inglês usado para designar processos
Segundo Tanenbaum,<ref>{{citar livro|titulo=Operating systems: design and implementation|ultimo=Tanenbaum|primeiro=Andrew S.|editora=Prentice Hall|ano=2006|local=USA|paginas=6|acessodata=}}</ref>
* <u>numa visão de cima para baixo (''top-down'')</u>: é uma abstração do ''[[hardware]]'', fazendo o papel de intermediário entre os programas (''[[software]]'') e os componentes físicos do computador (''hardware''); ou
* <u>numa visão de baixo para cima (''bottom-up'')</u>: é um gerenciador de recursos, i.e., que controla as aplicações ([[processo (informática)|processos]]) a executar, como, quando e com quais recursos (memória, disco, periféricos).
Um sistema operacional é projetado para ocultar as particularidades de ''[[hardware]]'' (ditas "de baixo nível") e, com sua atuação, criar uma máquina abstrata que fornece às aplicações serviços compreensíveis ao usuário (ditas "de alto nível").<ref>{{citar livro|titulo=Operating system design: the XINU approach, Linksys version|ultimo=Comer|primeiro=Douglas|editora=CRC Press|ano=2012|local=New York|paginas=2}}</ref>
== História ==
Linha 22:
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 Electric]] desenvolveram o [[Multics]], cujo objetivo era suportar centenas de usuários. Apesar do fracasso comercial, o Multics serviu como base para o estudo e desenvolvimento de sistemas operacionais. Um dos desenvolvedores do Multics, que trabalhava para a Bell, [[Ken Thompson]], começou a reescrever o Multics num conceito menos ambicioso, criando o Unics (em 1969), que mais tarde passou a chamar-se [[Unix]]. Os sistemas operacionais eram geralmente programados 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 [[Berkeley Software Distribution|BSD]] ([[FreeBSD]], [[NetBSD]], [[OpenBSD]], etc.), [[Linux]] e até o [[Mac OS X]] (que deriva do [[Mach (núcleo)|Mach]] e FreeBSD). O BSD foi lançado em 1977, sendo ele um 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.
Durante a [[década de 1970|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. Quando começaram a aparecer os [[Computador pessoal|computadores pessoais]], houve a necessidade de um sistema operacional de utilização mais fácil. Em [[1980]], [[Bill Gates|William (Bill) Gates]] e seu colega de faculdade, [[Paul Allen]], fundadores da [[Microsoft]], compram o sistema [[QDOS]] ("Quick and Dirty Operating System") de [[Tim Paterson]] por US$ 50
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 núcleo 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.
Linha 44:
Um sistema computacional moderno consiste em um ou mais processadores, memória principal, discos, impressoras, teclado, mouse, monitor, interfaces de rede e outros dispositivos de entrada e saída. Enfim, é um sistema complexo. Se cada programador de aplicações tivesse de entender como tudo isso funciona em detalhes, nenhum código chegaria a ser escrito. Além disso, gerenciar todos esses componentes e usá-los de maneira otimizada é um trabalho extremamente difícil. Por isso, os computadores têm um dispositivo de software denominado sistema operacional, cujo trabalho é fornecer aos programas do usuário um modelo de computador melhor, mais simples e mais limpo e lidar com o gerenciamento de todos os recursos mencionados.<ref>{{citar livro|titulo=Sistemas operacionais modernos|ultimo=Tanenbaum|primeiro=Andrew S.|editora=Pearson Education do Brasil Ltda|ano=2009|local=São Paulo|paginas=}}</ref>
Um dos conceitos mais fundamentais dos Sistemas Operacionais Modernos é a distinção entre o programa e a atividade de executá-lo. O programa é apenas um conjunto estático de diretrizes e sua execução é uma atividade dinâmica.<sup><ref>J. GLENN BROOKSHEAR,CIENCIA DA COMPUTAÇAO: UMA VISAO ABRANGENTE, Bookman, 2005</ref></sup>
Outra das diferenças que podemos observar entre um sistema operacional e aplicações convencionais é a forma com que suas rotinas são processadas em função do tempo. Um sistema operacional não é executado de forma estruturada. Suas rotinas são executadas concorrentemente em função de eventos assíncronos. Em outras palavras, eventos que podem ocorrer a qualquer momento.<ref name="ReferenceA">F. B. Machado; L. P. Maia, Arquitetura de Sistemas Operacionais, LTC, 2007</ref>
Linha 140:
Os sistemas multi-programado para tempo real além de serem sistemas multiprogramados, possuem um tempo de resposta rígido e por isso são muito utilizados no controle de processos. Têm menos time-slice e mais prioridade, ademais, seus processos são ativados por sensores.
A aplicação deste tipo de sistema está em máquinas de usinas, refinarias, tráfego aéreo, etc..
== Interface de uso ==
Linha 173:
* [[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. Exemplo de SO: Windows 3.x e versões anteriores ao Mac OS 8.
* [[Preemptividade|Multitarefa preemptiva]]: É 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 física, o sistema é chamado de Sistema Multiprocessado Fortemente Acoplado. Caso esteja em máquinas diferentes, trata-se de um Sistema Multiprocessado Fracamente Acoplado.
|