Sistema operativo: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Jasaete (discussão | contribs)
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 autosustentáveisautossustentáveis, ou seja, capazes de prosseguirem sem ajuda externa. Após executar testes e iniciar os componentes da máquina (monitores, discos, etc), o BIOS procura pelo sistema operacional em alguma unidade de armazenamento, geralmente o Disco Rígido, e a partir daí, o sistema operacional "toma" o controle da máquina. O sistema operacional reveza sua execução com a de outros programas, como se estivesse vigiando, controlando e orquestrando todo o processo computacional.
 
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>, pela perspectiva do usuário ou programador, existem dois modos distintos de conceituar um sistema operacional:
* <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.000, mil batizam-no de [[MS-DOS]] (Microsoft Disk Operating System). O DOS original, de desenvolvimento da IBM, foi o sistema operativo que a IBM apresentou aquando do lançamento do primeiro PC, vendeu muitas cópias, como o sistema operativo nos [[IBM PC|computadores pessoais]] desenvolvidos pela IBM. IBM convidou a Microsoft para uma parceria para o desenvolvimento da versão 2 do [[OS/2|IBM OS/2]], um sistema operacional. Após o fim da breve parceria a IBM seguiu sozinha com o desenvolvimento do OS/2 a que deu o nome de OS/2 Warp, concorrendo diretamente com o MS Windows95Windows 95.
 
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.