Um sistema operativo ou sistema operacional � um programa ou um conjunto de programas cuja fun�o � servir de interface entre um computador e o usu�rio.
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).
Hist�ria
Na primeira gera�o de computadores (aproximadamente 1945-1955), que eram basicamente constru�dos com v�lvulas e pain�is, os sistemas operacionais n�o existiam. Os programadores, que tamb�m eram os operadores, controlavam o computador por meio de chaves, fios e luzes de aviso.
Na gera�o seguinte (aproximadamente 1955-1965), foram criados os sistemas em lote (batch systems), que permitiram melhor uso dos recursos computacionais. A base do sistema operacional era um programa monitor, usado para enfileirar tarefas (jobs). O usu�rio foi afastado do computador; cada programa era escrito em cart�es perfurados, que por sua vez eram carregados, juntamente com o respectivo compilador (normalmente Fortran ou Cobol), por um operador, que por sua vez usava uma linguagem de controle chamada JCL (job control language).
No in�cio da computa�o os primeiros sistemas operacionais eram �nicos, pois cada mainframe vendido necessitava de um sistema operacional espec�fico. Esse problema era resultado de arquiteturas diferentes e da linguagem de m�quina utilizada. Ap�s essa fase, iniciou-se a pesquisa de sistemas operacionais que automatizassem a troca de tarefas (jobs), pois os sistemas eram monousu�rios e tinham cart�es perfurados como entrada (eliminando, assim, o trabalho de pessoas que eram contratadas apenas para trocar os cart�es perfurados).
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. 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 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 BSD (FreeBSD, NetBSD, OpenBSD, etc.), Linux e at� o Mac OS X (que deriva do Mach e FreeBSD).
Na d�cada de 1970, quando come�aram a aparecer os computadores pessoais, houve a necessidade de um sistema operacional de utiliza�o mais f�cil. Em 1980, 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 $50.000, batizam-no de DOS (Disk Operating System) e vendem licen�as � IBM. O DOS vendeu muitas c�pias, como o sistema operacional padr�o para os computadores pessoais desenvolvidos pela IBM. IBM e Microsoft fariam, ainda, uma parceria para o desenvolvimento de um sistema operacional multitarefa chamado OS/2. Ap�s o fim da breve parceria a IBM seguiu sozinha no desenvolvimento do OS/2.
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.
Vis�o geral
Um sistema operativo pode ser visto como um programa de grande complexidade que � respons�vel por todo o funcionamento de uma m�quina desde o software a todo hardware instalado na m�quina. Todos os processos de um computador est�o por de tr�s de uma programa�o complexa que comanda todas a fun�es que um utilizador imp�e � m�quina. Existem v�rios sistemas operativos; entre eles, os mais utilizados no dia a dia, normalmente utilizados em computadores dom�sticos, s�o o Windows, Linux, OS/2 e Mac OS X.
Um computador com o sistema operativo instalado poder� n�o dar acesso a todo o seu conte�do dependendo do utilizador. Com um sistema operativo, podemos estabelecer permiss�es a v�rios utilizadores que trabalham com este. Existem dois tipos de contas que podem ser criadas num sistema operativo, as contas de Administrador e as contas limitadas. A conta Administrador � uma conta que oferece todo o acesso � m�quina, desde a gest�o de pastas, ficheiros e software de trabalho ou entretenimento ao controlo de todo o seu Hardware instalado. A conta Limitada � uma conta que n�o tem permiss�es para aceder a algumas pastas ou instalar software que seja instalado na raiz do sistema ou ent�o que tenha liga�o com algum Hardware que altere o seu funcionamento normal ou personalizado pelo Administrador. Para que este tipo de conta possa ter acesso a outros conte�dos do disco ou de software, o administrador poder� personalizar a conta oferecendo permiss�es a algumas fun�es do sistema como tamb�m poder� retirar acessos a certas �reas do sistema.
O sistema operativo funciona com a inicia�o de processos que este ir� precisar para funcionar correctamente. Esses processos poder�o ser ficheiros que necessitam de ser frequentemente actualizados, ou ficheiros que processam dados �teis para o sistema. Poderemos ter acesso a v�rios processos do sistema operativo a partir do gestor de tarefas, onde se encontram todos os processos que est�o em funcionamento desde o arranque do sistema operativo at� a sua utiliza�o actual. Pode-se tamb�m visualizar a utiliza�o da mem�ria por cada processo, no caso de o sistema operativo come�ar a mostrar erros ou falhas de acesso a programas tornando-se lento, pode-se verificar no gestor de tarefas qual dos processos estar� bloqueado ou com elevado n�mero de processamento que est� a afectar o funcionamento normal da mem�ria.
Funcionamento
Um sistema operacional possui as seguintes fun�es:
1. gerenciamento de processos;
2. gerenciamento de mem�ria;
3. sistema de arquivos;
4. 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.
S�o utilizados algoritmos para determinar qual processo ser� executado em determinado momento e por quanto tempo.
Os processos podem comunicar-se, isto � conhecido como IPC (Inter-Process Communication). Os mecanismos geralmente utilizados s�o:
� sinais,
� pipes,
� named pipes,
� mem�ria compartilhada,
� soquetes (sockets),
� sem�foros,
� trocas de mensagens.
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:
1. 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);
2. prover prote�o da mem�ria para impedir que um processo utilize um endere�o de mem�ria que n�o lhe perten�a;
3. 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.
Classifica�es
Em rela�o ao seu projeto (arquitetura), segundo Tanenbaum (1999):
� Kernel monol�tico ou monobloco: o kernel consiste em um �nico processo executando numa mem�ria protegida (espa�o do kernel) executando as principais fun�es. Ex.: OS/2, Windows, Linux, FreeBSD.
� Microkernel ou modelo cliente-servidor: o kernel 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 kernel 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 � capacidade de processamento, pode-se usar a seguinte classifica�o:
� Monotarefa: pode-se executar apenas um processo de cada vez Ex.: 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 � distribu�do de modo que o usu�rio tenha a impress�o que v�rios processos est�o sendo executados simultaneamente. Ex: OS/2, Windows, Linux, FreeBSD e o Mac OS X.
� Multiprocessamento: o SO distribui as tarefas entre dois ou mais processadores.
� Multiprograma�o: o SO divide o tempo de processamento entre v�rios processos mantendo o processador sempre ocupado.
Refer�ncias
� 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.
Obtido em "http://pt.wikipedia.org/wiki/Sistema_operativo"
0 comentários:
Enviar um comentário