Anda di halaman 1dari 21

1 O QUE UM SISTEMA OPERACIONAL.

. Sistema Operacional um programa que atua como um intermedirio entre o usurio (seja ele um usurio "real" ou aplicativo) e o hardware do computador. O Sistema Operacional cria uma camada de abstrao entre o usurio e o hardware facilitando a vida do usurio e tambm possui rotinas (bibliotecas) que gerencia todo o seu hardware. Um Sistema Operacional pode ser definido como um gerenciador dos recursos que compem o computador (processador, memria, I/O, arquivos, etc.). Os problemas centrais que o Sistema Operacional deve resolver so: o compartilhamento ordenado, a proteo dos recursos (do kernel) a serem usados pelas aplicaes do usurio e o interfaceamento entre este e a mquina.

2 O QUE UM KERNEL. O Kernel o software que fornece servios bsicos para todas as outras partes de um SO. De forma mais detalhada, o Ncleo um conjunto de rotinas que oferecem servios aos usurios do sistema e suas aplicaes, bem como a outras rotinas do prprio SO. Um ncleo pode ser contrastado com um interpretador de comandos, conhecido como shell nos sistemas UNIX, o qual no parte do SO mas que desempenha um relevante papel interagindo com comandos do usurio. Dentre as principais funes do Ncleo esto: - tratamento de interrupes; - gerenciamento de processos (criao e destruio de processos; sincronizao e comunicao entre processos, ...); gerenciamento de memria; - gerenciamento do sistema de arquivos; - operaes de E/S. Os servios do Ncleo so solicitados por outras partes do SO ou por aplicaes de usurios, por meio de um conjunto especificado de interfaces de programa (rotinas) conhecidas como Chamadas ao Sistema (System Calls). Sem o Kernel a cada programa novo que se criasse seria necessrio que o programador se preocupasse em escrever as funes de entrada/sada, de impresso, entre outras, em baixo nvel, causando uma duplicao de trabalho e uma perda enorme de tempo. Como o kernel j fornece a interface para que os programas possam acessar os recursos do sistema de um nvel mais alto e de forma transparente, fica resolvido o problema da duplicao do trabalho.Quando h perifricos ou elementos de um sistema computacional que o kernel no cobre, ento se faz necessrio escrever a interface para eles, os chamados drivers. Geralmente, os kernels oferecem uma funo para se executar chamadas de sistema, como por exemplo a ioctl() do Linux. Valendo-se dessa funo,

podem-se escrever rotinas para qualquer perifrico. As responsabilidades do kernel consistem, genericamente, em abstrair interfaces de hardware diversas e gerir os recursos do computador, permitindo que os programas vulgares utilizem estes recursos concorrentemente de forma segura e padronizada, fornecendo a estes uma interface unificada para os diversos componentes do sistema computacional. O kernel deve tambm gerir a entrada e sada, de modo a assegurar que apenas um programa acede a determinado dispositivo a dada altura. Finalmente, o kernel deve disponibilizar aos programas ordinrios, executados em espao do usurio, uma interface uniforme para aceder aos seus servios.

3. A IMPORTNCIA DO KERNEL NO GERENCIAMENTO E ADMINISTRAO DO S.O. Imagine o Kernel como o crebro e o corao de um sistema operacional. Kernel de um sistema operacional entendido como o ncleo deste ou, numa traduo literal, cerne. Ele sozinho no serve para nada, mas sem ele o resto do corpo tambm no vai muito longe. 3.1 CHAMADAS DE SISTEMAS As chamadas ao Sistemas so um mecanismo que tem por objetivo proteger o Ncleo do sistema e de acessar os seus servios. Quando uma aplicao ou um programa deseja utilizar algum servio do Sistema Operacional, realiza a chamada por meio de uma Rotina( procedimento de biblioteca) e essa rotina acessa a System Calls que retorna o dado(objeto, instruo) requerida. Para melhor entendermos, vamos usar de exemplo a System Calls Read( j que quase todos os livros de S.O usam esse exemplo.):para podermos acessar a System Calls Read necessrio fazer uma chamada atravs da rotina da biblioteca, que por ocasio tem o mesmo nome Read.E quem faz essa chamada a biblioteca o programa ou o usurio. Que no caso se o programa escrito em C ficaria assim: contador = read (arquivo,buffer,nbytes) A System Calls aps receber a chamada da biblioteca, vai no lugar alocado e retorna o resultado de nbytes do arquivo ao usurio. Para melhor proteo do ncleo do S.O, existe dois nveis de acesso: um que pode entrar e no Kernel e interagir com ele, tem o poder de comprometer o sistema pois atuam diretamente no hardware. Mas s o S.O, por segurana, tem acesso a esse modo e acesso total de instruo do

processador(modo de acesso privilegiado), e outro no privilegiado que no fornece nenhum tipo de perigo pois tem acesso a um nmero reduzido de instruo(modo usurio). Existe tambm um interpretador de comando que extremamente til chamado de Shell.Este programa uma interface primria entre o usurio e o S.O, ele e o ncleo so programas separados que se comunicam atravs de um conjunto de System Calls . Nele o usurio digita um comando e o Shell comunica-se com o ncleo e pede que crie um processo filho. O processo filho executar o comando atravs de uma System Calls . O Shell esperar que o processo filho termine para que possa novamente voltar a estar ativo.Quando o processo filho termina ele atravs de outra System Calls avisa o ncleo, que por sua vez avisa o Shell pra que volte a se ativar. importante verificar que o Shell um programa comum de usurio que no necessita de muitas capacidades para que possa interagir com o programa. Este programa Shell no vem nativo no S.O 3.2 PROCESSOS Processo o conceito central em qualquer sistema operacional, uma abstrao de um programa em execuo, ou seja, o programa o cdigo e o processo a execuo. Todos os computadores modernos podem fazer varias coisas ao mesmo tempo, em quanto executa um programa do usurio, ele pode estar lendo os dados de um disco e tambm enviando algo para ser impresso. Na realidade ele esta executando vrios processos, saltando um a um to rpido que nos da a falsa impresso que esto sendo executados todos ao mesmo tempo, o que chamamos de processos seqenciais. Quando o sistema operacional carregado ele aciona vrios processos, alguns em primeiro plano, que so os que interagem com o usurio, e outros em segundo plano, que so aqueles que esto prontos para serem usados a qualquer momento, como por exemplo, um programa para aceitar mensagens eletrnicas, ele fica inativo a maior parte do dia, mais acionado ao momento que chega uma mensagem. Novos processos so criados de acordo com a necessidade do sistema. O processo em execuo emitir chamadas ao sistema para criar novos processos para ajudar em seu trabalho, esses processos criados chamamos de processos filhos. Na maioria das vezes o processo termina porque j fez seu trabalho, contudo existem algumas condies como: sada normal (voluntria), sada por erro (voluntria), erro fatal (involuntrio) e cancelamento por um outro processo (involuntrio). Em alguns sistemas existe uma hierarquia de processos, quando o processo pai cria um processo filho e esse cria outros processos eles ficam de certa maneira associados, isso observado no Unix,

j o Windows no apresenta nenhum conceito de hierarquia de processos, todos so iguais, a nica diferena que o pai quando criado dado um identificador especial (chamado handle). Existem trs estados dos processos, ele pode estar em execuo (usando realmente a CPU naquele instante), pronto (executvel; temporariamente parado para dar lugar a outro processo), bloqueado (incapaz de executar enquanto um evento externo no ocorrer). Os dos primeiros processos so similares j que eles vo executar, o segundo s que aguarda uma CPU disponvel pra ele, j o terceiro diferente dos demais, pois o processo no pode executar mesmo que a CPU no tenha nada pra fazer. 3.3 THREADS Um processo tem duas partes, ativa (fluxo de controle) e passiva (espao de endereamento), um thread consiste somente do fluxo de controle, chamado tambm de processo leve ou diet. muito mais fcil e rpido criar threads que processos, muitas vezes os processos usam dados compartilhados, e usar vrios threads no mesmo espao de endereamento mais eficiente e mais rpido. Sendo uma linha de execuo a thread pode dividir a si mesma em duas ou mais tarefas que podem ser executadas simultaneamente. O suporte tcnico fornecido pelo prprio sistema operacional (SO), no caso da Kernel-Level Thread (KLT), ou implementada atravs de uma biblioteca de uma determinada linguagem, no caso da User-Level Thread (ULT). Uma thread permite que o usurio de programa, por exemplo, utilize uma funcionalidade do ambiente enquanto outras threads realizam outros clculos e operaes. Os sistemas que suportam apenas uma nica thread de execuo so chamados de monothread e os sistemas que suportam mltiplas threads so chamados de multithread. Para a maioria dos casos as threads no so criadas e executadas eternamente, depois de terminado seu trabalho, a thread termina, e as threads filho tambm terminam, j que as suas tarefas atribudas se completaram. Isso importante porque os filhos compartilham recursos com o pai, e se o pai termina os filhos no tem sua funcionalidade completa j que utilizam algumas variveis do pai. 3.4 MEMRIA Dois mtodos gerais de gerenciamento de memria podem ser usados, dependendo (em parte) dos recursos do hardware disponvel, a estratgia mais simples denominada troca de processos, consiste em trazer totalmente cada processo para a memria, executa-lo durante algum certo tempo, depois

devolve-lo ao disco. Outra estratgia seria a memria virtual, que permite que programas possam ser executados mesmo que estejam apenas parcialmente carregados na memria principal. Memria virtual uma extenso da memria Ram, a juno da memria principal com a secundaria, quanto menos memria tiver o computador mais ele necessitara da virtual. A idia bsica por traz desse conceito que o tamanho total do programa, ou seja, seu cdigo mais seus dados e a pilha, podem exceder na quantidade de memria fsica disponvel para ele. O sistema operacional mantm as partes ativas do programa na memria e o restante no disco. Como por exemplo, um programa de 16MB que pode ser executado com apenas 4MB, mantendo os 4MB ativo na memria a cada instante, com partes do programa sendo dinamicamente carregadas na memria ou removidas dela de acordo com a necessidade. A memria virtual tambm possvel em um sistema com multiprogramao, com pedaos e partes de diferentes programas simultaneamente na memria. Se um programa estiver esperando por outra parte de si prprio ser carregada na memria, ele estar conseqentemente esperando por E/S, e no estar apto a ser executado, de modo que a CPU poder ser entregue a outro processo. 3.5 DISPOSITIVOS DE E/S Uma das principais funes do sistema operacional gerenciar os dispositivos de entrada e sada (E/S), cuja transferncia de dados entre o mundo externo e a memria possibilitada atravs do uso desses dispositivos. Eles so conectados ao conjunto memria e processador por portas de E/S de dados, atravs das quais ocorre a transferncia. Basicamente os dispositivos de E/S podem ser divididos em duas categorias: Dispositivos de blocos a transferncia de dados executada usando-se o mtodo de acesso direto memria (DMA). O hardware deve estar equipado com uma unidade de controle prpria, que ser responsvel por coordenar a transferncia dos dados entre posies especficas da memria e a porta de E/S de dados. Dispositivos de caractere envia ou recebe um fluxo de caracteres. Para cada palavra lida, por exemplo, necessrio que seja executada pelo processador, uma instruo de leitura da porta e outra destinada a fazer com que o processador armazene a palavra na memria Um dispositivo conectado ao computador atravs de um componente de hardware denominado interface. Essa por sua vez interconectada aos barramentos internos do comutador.

Para cuidar das diversidades de operaes de cada perifrico, as interfaces empregam no seu projeto um outro componente, o controlador, ou seja, um processador projetado especificamente para realizar uma funo, como por exemplo, controlar um disco rgido. A funo bsica de um controlador implementar um conjunto de comandos para o seu dispositivo. O controlador vai traduzir cada ordem colocada no registrador de comando em uma seqncia especfica de acionamentos eletrnicos, eltricos e mecnicos que iro realizar a operao solicitada. Mas cada tipo de perifrico necessita de um controlador diferente. Os dispositivos de entrada permitem ao usurio do computador introduzir dados, comandos e programas na CPU. O dispositivo mais comum o teclado, utilizado na interao direta dos usurios com o computador. O princpio de operao do teclado simples: gerar um smbolo para cada tecla pressionada. Ele pode ser visto com uma matriz de x linhas e Y colunas nas quais entram em contato quando uma tecla pressionada. O teclado identifica a linha e a coluna associadas a essa tecla e gera um cdigo denominado scan code (cdigo de varredura) o qual colocado no registrador de dados da interface do teclado. Outros dispositivos de entrada so as canetas ticas, que transmitem informaes grficas da mesa digitalizadora at o computador. O joystick o mouse, que converte o movimento fsico em movimento dentro de uma tela de computador. J os dispositivos de sada permitem ao usurio ver o resultados dos clculos ou das manipulaes dos dados do computador, fazendo uma comunicao no sentido do computador para o usurio. O monitor um dos dispositivos de sada de um computador que serve de interface ao usurio, na medida em que permite a visualizao interao dos dados disponveis. A impressora um perifrico que, quando conectado a um computador ou uma rede tem a funo de dispositivo de sada imprimindo textos grficos ou qualquer outro resultado de uma aplicao. A interao entre a CPU e a interface (controlador), para realizar operaes de E/S, pode acontecer de trs maneiras diferentes: E/S programada, via interrupes e acesso direto memria (DMA). 3.5.1 E/S PROGRAMADA Essa tcnica usada quando no h sistema de interrupo (nos computadores antigos era assim, hoje a tcnica s usada em mquinas simples) Com esta tcnica, toda interao entre CPU e o controlador de responsabilidade do programador. O ciclo de funcionamento baseado no envio de um comando ao controlar e na espera de sua realizao. Por exemplo, o processador envia um comando de leitura ao ccontrolador e, em seguida, fica testando continuamente (em busy loop) o

registrador de estado para verificar se o dado solicitado j est disponvel. Em caso afirmativo, o proicessador efetua a leitura. O problema desse mtodo que as operaes de E/S so muitos lentas em comparao com as operaes de clculo. Utilizar continuamente o processador para verificar o andamento de uma operao de E/S representa um desperdcio muito grande de tempo de clculo. 3.5.2 COMUNICAO VIA INTERRUPO Nessa situao, o processador responsvel via software apenas por iniciar uma operao de E/S enviando comandos interface. Aps, o processador passa a executar outra tarefa, e o controlador, a operao de E/S. Quando a operao termina, o controlador interrompe o processador, provocando a execuo do tratador de interrupo, o qual ir acionar o driver do dispositivo. 3.5.3 ACESSO DIRETO MEMRIA A tcnica de DMA baseia-se no emprego de um hardware especial, o controlador de DMA, para realizar a transferncia de dados entre um dispositivo e a memria. Para tanto, o controlador de DMA possui a capacidade de acessar diretamente a memria, sendo ento conectado fisicamente ao barramento de dados e de endereos do computador. O controlador de DMA possui internamente uma srie de registradores utilizados pela CPU par programar a transferncia de dados. Existe um par de registradores para o armazenamento dos endereos fonte e destino da transferncia, um registrador que determina quantos bytes devem ser transferidos, um registrador de comando e um de estado. Aps acionar o DMA, o processador pode se dedicar a outra tarefa. No trmino da transferncia, o controlador de DMA sinaliza o processador atravs de uma interrupo de hardware. A tcnica de DMA mais eficiente que as discutidas anteriormente quando a operao de E/S envolve a leitura (ou escrita) de muitos dados como uma leitura de disco ou a recepo de uma mensagem em uma rede local.

4 TIPOS DE KERNEIS 4.1 KERNEIS MONOLTICOS So mais simples de se fazer e mais da metade dos grandes sistemas usam sua arquitetura. Mesmo com essas e tantas outras qualidades, os kerneis monolticos tem seus problemas, e por isso se procura outros meios de se criar um kernel, dentre os mais famosos, se destaca o microkernel. Abaixo vai uma pequena lista de problemas dos kerneis monolticos em geral:

Escrever para o "espao do sistema" difcil, j que voc no pode usar a maioria das bibliotecas existentes, como a GlibC ou a libC5; complexo "debugar" ( extremamente difcil de se usar um debugger em nvel de fonte, como o GDB); Graas s duas primeiras desvantagens, o kernel se torna mais suscetvel a bugs; Reiniciar o computador necessrio freqentemente (principalmente quando necessrio atualizar o kernel ou adicionar novas funes ao mesmo); Bugs tendem a ser mais danosos, j que como todas as funes do kernel tm todos os privilgios, um bug em uma funo capaz de afetar reas, mesmo que sem nenhuma relao direta.

Apesar disso, os SOs Monolticos ainda conseguem atrair a ateno de desenvolvedores devido a uma complexidade menor do que Sistemas que possuem um microkernel. Tanto que o Linux hoje uma realidade, sendo um SO bastante usado em servidores em empresas e ambientes acadmicos. 4.2 MICROKERNEL um termo usado para caracterizar o sistema cujas funcionalidades do sistema saram do kernel e foram para servidores, que se comunicam com um ncleo mnimo, usando o mnimo possvel o "espao do sistema" (nesse local o programa tem acesso todas as instrues e a todo o hardware) e deixando o mximo de recursos rodando no "espao do usurio" (no espao do usurio, o software sofre algumas restries, no podendo acessar alguns hardwares, nem tem acesso a todas as instrues). A maioria dos microkerneis de hoje so mono-servidores, ou seja, possuem apenas um programa no espao do usurio fazendo todas as funes do kernel. Isso d um pouco mais de segurana, j que o cdigo no tem acesso direto ao hardware e permite que o mesmo seja portado para outras arquiteturas mais facilmente, mesmo assim isso no faz com que eles no sejam muito

diferentes dos kerneis monolticos atuais. Os Sistemas que possuem um microkernel, possuem casos de sucesso como o exemplo do sistema QNX, usado em sistemas de braos de robs nos nibus Espaciais. Alguns desenvolvedores afirmam que o microkernel podem ser mais rpidos e mais fceis de atualizar e modificar que os sistemas de Kernel monoltico como Linux. Porm, uma outra corrente de desenvolvedores incluindo naturalmente o Linus Torvalds, argumentam que apesar de a princpio um microkernel ser mais simples (j que o Kernel inclui apenas os componentes mais bsicos, o restante so todos mdulos separados), pois lidar com a troca de dados entre os vrios componentes muito mais complicado do que simplesmente agrupar todos num kernel monoltico. No seu livro "Just For Fun" (S por Prazer, editora Campus) o Linus dedica vrias passagens a defender esta idia. Chegando classificar a idia de um microkernel como "uma estupidez". 4.3 KERNEL HBRIDO um kernel compacto, com apenas as funes principais e alguns servios no essenciais, que se comunica com mdulos "servidores", por exemplo o servio de impresso. Se o servio de impresso d erro o SO continua em p, pois so separados. O desempenho mais contido pois o Kernel tem que se comunicar com os "servidores" via mensagens, ou seja, so outros processos. 4.4 KERNEL SPACE. o modo protegido, onde rodam os servios/servidores/mdulos essenciais. No caso dos Microkernels eles so o mnimo possvel, no caso dos monolticos, vrios servios. Qualquer problema no kernel space pode derrubar o sistema, por isso os defensores dos micro-kernis acreditam que uma abordagem simples no kernel aumenta a estabilidade e confiabilidade do sistema, j que qualquer servio problemtico pode ser desativado, reinicializado, substitudo ou atualizado sem precisar rebootar o sistema. Por outro lado, o fato de poucos servios estarem dentro do kernel, normalmente gera uma latncia (lag, delay, etc) que era a crtica principal aos micro-kernis. 4.5 SISTEMAS OPERACIONAIS E SEUS TIPOS DE KERNEL Kernel Monoltico: BSD; Linux; MS-DOS e derivados, incluindo Windows 95, Windows 98 e Windows ME; Solaris. Microkernel: Hurd; Minix; QNX. Kernel Hbrido: Windows NT; Windows XP. MacOS.

5 FUNCIONAMENTO DO KERNEL Em relao sua capacidade de processamento, o kernel pode ser classificado em: 5.1 MONOTAREFA (MONOPROGRAMVEIS). Permite a realizao de apenas uma tarefa de cada vez. Um dos mais famosos sistemas operacionais monotarefa o MS-DOS. Nesses sistemas, enquanto o programa aguarda a ocorrncia de um evento qualquer, o processador ficar ocioso (idle); a memria ficar subutilizada, caso o programa no a ocupe totalmente e os perifricos tambm ficaro ociosos se no utilizados. Os processos so executados em seqncia e um s inicia aps o trmino do anterior. 5.2 MULTITAREFA (MULTIPROGRAMVEIS). Se caracterizam por permitir que vrios programas (tarefas) residam simultaneamente na memria e concorram pelo uso dos recursos disponveis (apenas um programa detm, num determinado instante, o controle da CPU). So muito mais complexos e eficientes que os sistemas monotarefa. Nesses sistemas, enquanto uma tarefa aguarda a ocorrncia de um evento externo a CPU, esta pode atender outra tarefa qualquer, que esteja em condies de ser executada. O sistema operacional se encarrega de gerenciar o acesso concorrente das diversas tarefas aos diversos recursos, de forma ordenada e protegida. 5.2.1 MULTIPROCESSAMENTO (MULTIPROGRAMAO). O multiprocessamento pode ser obtido pela configurao de mltiplos processadores que compartilham de uma mesma memria primria (fortemente acoplados) ou de mltiplos computadores independentes do tipo sistemas em rede e sistemas distribudos (fracamente acoplados), onde cada um tem seus prprios recursos. Os sistemas multiprocessados permitem que vrios programas sejam executados em paralelo (granularidade grossa), ou que um programa tenha duas ou mais de suas instrues executadas em paralelo (granularidade fina). Existem dois tipos de kernel multitarefa: 5.2.2 MULTITAREFA PREEMPTIVA. Nesse sistema h uma democratizao dentro do processador. O kernel mantm em memria um registro de todos os processos em execuo. A esse registro d-se o nome de rvore de processos, em virtude da estrutura de dados interna ser geralmente uma rvore. Entre outros atributos, essa rvore inclui uma informao prioridade (chamada nice nos sistemas Unix-like e simplesmente Priority nos Windows NT), com a qual o kernel calcula o tempo de CPU que deve dar a cada

processo; quando esse tempo acaba, o kernel tira o controle da CPU do processo e o fornece ao processo que vem a seguir na fila. Quando a fila acaba, o kernel volta o controle da CPU ao primeiro processo, fechando assim o ciclo. 5.2.3 MULTITAREFA DE COOPERAO. No h muita diferena comparada ao outro sistema. O que difere que neste caso, o uso ou no da proteo de memria. Atualmente a maioria os sistemas utiliza a multitarefa de antecipao. Em certos casos, o kernel no antecipvel, obrigando a utilizao desse mtodo para permitir a multitarefa enquanto o processo executa uma chamada de sistema. 5.3 WINDOWS E LINUX. O Windows foi desenhado para realizar multitarefas preemptivas. Cada linha de processo passa a ter direito a uma parte do tempo do processador. A durao da fatia de tempo depende do sistema operacional e do processador. De qualquer maneira, como as fatias de tempo so muito pequenas (aproximadamente 20 milisegundos), o processamento de mltiplas linhas de processo d a impresso de ser simultneo. Para o usurio, a vantagem de um sistema multitarefa est no fato de poder usar vrios aplicativos que trabalhem simultaneamente. Para o programador tambm existem vantagens. Ele pode criar aplicativos que utilizem mais de um processo, cada um deles com uma ou mais linhas de processo. O Linux um sistema operacional multiusurio, multitarefa e multiprocessado, de livre distribuio, baseado no sistema operacional UNIX. Ser multiusurio significa que posssvel vrias pessoas utilizarem o mesmo computador ao mesmo tempo, atravs de conexes remotas ou de terminais. O Linux um sistema multitarefa, pois capaz de executar diversos programas ou servios ao mesmo tempo, ou seja, possvel rodar simultaneamente um servidor web, um servidor de e-mail e um banco de dados. Ele tambm um sistema multiprocessado, pois ele pode ser instalado em mquinas com mais de um processador e capaz de utilizar de maneira inteligente esses vrios processadores, de maneira a obter o melhor desempenho possvel.

PARTICULARIDADES DO GERENCIAMENTO DOS SISTEMAS WINDOWS 2000 E 6.1 DIFERENAS BSICAS.

LINUX. O linux deriva de um sistema chamado Minix, que por sua vez derivado do Unix, por isso podese dizer que o Linux um Unix mais incrementado, e seus mtodos de gerenciamento do sistema so muito parecidos, cerca de 80% de cerca das 150 chamadas ao sistema do Linux so copias idnticas de alguma verso do Unix. Pelo Linux ser chamado de open sourse e de ser gratuito, existem varias empresas distribuindo muitas verses do Linux modificado para atender certas necessidades, diferentemente do Windows que distribudo somente pela Microsoft, apesar de existirem varias verses, essas so mais padronizadas pelo ano ou modelo, como Windows 98 ou Windows XP, apesar da Microsoft recentemente lanar varias verses de seu novo sistema operacional, o Windows Vista, para atender necessidades de diferentes usurios (pode se dizer que a Microsoft tentou copiar isso do Linux), praticamente o mesmo sistema operacional mas as verses variam pela funo do preo X recursos. Outra diferena entre os dois tipos de sistema sua complexidade, o Linux pode ter em media cerca de 700 mil linhas em seu cdigo fonte, enquanto a exemplo do Windows 2000 tem mais de 29 milhes dessas linhas, isso se deve muito pela sua interface sofisticada, seus recursos de compatibilidade nativa com muitos hardwares e de suas opes de regionalidade, isso torna o Windows um sistema operacional muito complexo, diferente do Linux que prima pela simplicidade de sua interface por linhas de comando. Cada um desses sistemas operacionais tem suas propostas e particularidades, nesse capitulo vamos procurar entender como cada um realiza as operaes de gerenciamento de processos, da memria e dos dispositivos de I/O (E/S). 6.2 GERENCIAMENTO DE PROCESSOS O gerenciamento de processos so muito similares entre Windows e Linux, e so explicados no primeiro capitulo desse trabalho, ambos so multiprocessados (realizam mais de um processo ao mesmo tempo), o que difere mais so os nomes das funes que executam os processos, como por exemplo, para se dar inicio a um processo se cria uma chamada ao sistema, que no Linux a chamada Fork, enquanto no Windows existem as funes da API WIN32, nela a chamada para a criao de um processo se chama CreateProcess.

Obviamente o Windows por ser um sistema operacional bem mais complexo, a funo CreateProcess da API WIN32 possui um esquema muito mais complicado de execuo que o Fork do Linux. Em ambos os sistemas, as threads so responsveis pelo controle e execuo dos processos, algumas diferenas entre eles de que como cada sistema gerencia uma thread ou um conjunto de threads que no Linux as threads so consideradas threads do ncleo e seu escalonamento se d nas prprias threads, nela que existem os valores que denotam sua prioridade, no Windows as threads so geralmente executadas no modo usurio, mas migram para o modo ncleo quando h necessidade. 6.3 GERENCIAMENTO DE MEMRIA Ambos os sistemas (Windows e Linux) usam a memria virtual por meio de pginas, essas paginas ficam na memria virtual (criada a partir da memria fsica do HD) para ser carregada na memria principal (memria ram). Assim o sistema operacional consegue executar um programa co o tamanho maior que a memria principal do computador, por exemplo, um programa de 256M pode ser executado em uma maquina de apenas 128M, o sistema cria na memria principal paginas que esto sendo usadas pelo programa, mas deixa preparada na memria virtual outras paginas que possivelmente sero chamadas para memria principal pelo programa em execuo. Uma diferena entre os dois sistemas o tamanho e qual maneira ser usada essa funo da memria virtual em uma mquina padro 32 bits. No Linux, cada processo dispe de 3GB de espao na memria virtual, mas o ncleo do Kernel fica totalmente residente na memria principal, o restante dessa memria fica destinada para as paginas do usurio, cach de blocos usadas pelos arquivos, cach de paginao e outros propsitos. No Windows 2000 o processo dispe de 4GB de espao na memria virtual, ele utiliza um sistema complexo para utilizao desse espao para um melhor desempenho, tambm permite que um processo gerencie explicitamente essa memria atravs da API WIN32. Tanto Linux e Windows 2000 utilizam algoritmos para substituio de paginas, essa funo essencial para que haja pagina livre para serem usadas, como para exclurem paginas que no sero mais utilizadas no processo. No Windows 2000 pode ocorrer conflitos nesse sistema de paginas, tamanha a complexidade que esse gerenciador trabalha, por isso alem desses algoritmos o Windows utiliza heursticas

complexas, hipteses, precedentes histricos, princpios bsicos e ajustes de parmetros pelo administrador, tudo para resolver esse conflito. 6.4 DISPOSITIVOS DE E/S, NOS SISTEMAS WINDOWS E LINUX. Os dispositivos de entrada e sada no Linux so bastante simples, e podem ser ocasionados com a mesma chamada read e write usadas em arquivos comuns, mas algum dispositivo pode exigir que seja feita uma chamada especial, algo especifico para o dispositivo, como por exemplo, ajustar a velocidade para um terminal. Existe tambm no Linux a implementao por driver dos dispositivos, geralmente esses drivers so disponibilizados pelos fabricantes, mas tambm existe a possibilidade desse driver ser criado por algum usurrio avanado, j que este no muito complexo. No Windows 2000 o gerenciamento de dispositivos de E/S est intimamente ligado com o gerenciador Plug and Play (Plugue e Use). Quando conectamos algum dispositivo como PC card, PCI, USB, IEEE134, o Windows consegue detectar qual dispositivo foi conectado e procura um driver compatvel ajustando os parmetros, tudo automaticamente. Quando o sistema no consegue encontrar um driver compatvel ele ento solicita ao usurio que insira um disco com o driver ou que faa uma busca na internet, por exemplo, uma placa de vdeo logo aps ser intalada, e o sistema iniciado, o Windows a detecta e a configura com parmetros para que se possa utiliza-la, mas pede que voc instale o driver especifico para que todos seus recursos sejam liberados. Outra responsabilidade do gerenciamento de E/S do Windows sua interface grfica muito avanada, e que por si s j um dispositivo de entrada e sada de informaes. Para gerenciar esse dispositivo grfico o Windows utilizada chamadas para API WIN32.

7 CONCLUSO: ENTENDENDO E UTILIZANDO AS MELHORES PRATICAS.

Esse trabalho foi realizado para que possamos compreender um pouco desse universo que o gerenciamento de um sistema operacional, e a partir desse conhecimento entender o porque da utilizao de diferentes sistemas operacionais para diferentes situaes e necessidades. Com esses conhecimentos fica mais fcil entender porque o Linux preterido pelas grandes empresas para gerenciar seus servidores, pois ele um sistema mais simples e que isso o torna mais estvel, mais gerencivel, confivel e que um usurio mais avanado consegue entender seus processos e customiza-los atendendo s necessidades de cada situao. Tambm fcil entender porque sua comunidade cresce mundialmente por entusiastas em T.I., por ter um cdigo fonte menor ele de mais fcil compreenso por estudantes e pra quem est comeando a se aventurar na programao de S.O., por ser um software livre, seu cdigo fonte pode ser copiado e modificado depois distribudo, sem os riscos de sofrer penas legais. J o Windows domina quando o assunto usurios mais casuais, com sua interface bem amigvel e intuitiva conquistou milhes de usurios com facilidades como o plug and play, mas que para isso paga um alto preo por essas qualidades, pois trabalha com o kernel muito complexo e em virtude disso muitas vezes instvel, propicio a bugs, sendo alvo de muitas criticas e comentrios sarcsticos de usurios. Sabendo da proposta de cada tipo de S.O. que poderemos indicar corretamente o sistema para atender a necessidade de trabalhos futuros. REFERENCIAS BIBLIOGRFICAS: Apostila da Universidade de Brs Cubas Sistemas Operacionais . Consulta em 20 de fevereiro de 2007; www.guiadohardware.com.br - O Sistema Linux. Consulta em 25 de fevereiro de 2007; www.guiadohardware.com.br - Kernel. Consulta em 25 de fevereiro de 2007; www.wikipdia.com.br - Kernel. Consulta em 28 de Fevereiro de 2007;

Anda mungkin juga menyukai