Anda di halaman 1dari 7

1 ESCOLA DE ENSINO MDIO ALMIRANTE LAMEGO 2 ANO ENSINO MDIO INOVADOR INFORMTICA PROF ROUSEN GODINHO Tipos de Estruturas

de Sistemas Operacionais O que um Sistema Operacional? Como voc viu nas aulas anteriores, o computador composto por dispositivos fsicos tambm chamados de hardware (monitor, processador, memria, HD, placa de rede, placa de vdeo, etc.) e softwares (editores de texto, navegadores de internet, jogos, etc.). Para que voc possa utilizar o computador, por exemplo, acessar o site do Metrpole Digital por um navegador, existe um softwareespecial que serve de intermediador entre os demais programas e hardware. O Sistema Operacional justamente esse programa que vai fazer com que voc possa interagir com o computador. Ao longo da aula, iremos nos referir aos sistemas operacionais atravs da sigla SO, j costumeiramente utilizada.

Figura 1 O Sistema Operacional permite que voc utilize o computador Ento, a coisa funciona assim: um programa consiste em um conjunto de instrues para o computador. Quando voc realiza uma atividade em um dado programa, por exemplo, quando voc solicitar uma impresso atravs de um editor de texto, esse programa se comunica com o Sistema Operacional, o qual o responsvel por repassar o pedido para o computador (hardware), que executar o que foi solicitado impresso do documento. Podemos perceber que o SO funciona como um tradutor, ele traduz o que foi solicitado pelo programa (por exemplo: editor de texto) atravs de comandos em linguagem de mquinapara que o hardware entenda, com isso, o hardware executa a funo e retorna sada desse comando para que o Sistema Operacional novamente traduza de uma forma que o programa entenda e possa repassar para voc. A funo de traduzir as solicitaes dos demais programas e gerenciar o hardware para que ele possa executar tais comandos serve de base para definir o que um Sistema Operacional.

Sistema Operacional (SO) um software que gerencia os recursos de hardware do computador, ao mesmo tempo em que fornece meios para que os demais softwares possam utilizar esses recursos

As duas funes bsicas Como foi dito, os sistemas operacionais possuem duas funes bsicas: (1) gerenciar os recursos

2 dehardware; (2) fornecer meios para que os demais softwares possam utilizar esses recursos. Nas prximas pginas, vamos detalhar cada uma dessas funes.

O Sistema Operacional como gerenciador de recursos Imagine que voc est executando quatro programas, os dois primeiros esto querendo gravar dados no disco rgido (HD - do ingls: Hard Drive) e os dois ltimos necessitam imprimir algo, isso tudo ao mesmo tempo. Algum teria que coordenar o acesso ao disco e impressora, para que nenhum problema ocorra devido ao conflito entre os programas em execuo. Para tal controle, o sistema operacional permite o acesso ordenado a estes recursos (processador, memria, disco rgido e demais elementos de hardware), para que os todos os programas possam ter acesso aos recursos disponveis.

O SO e a mquina virtual De nada adiantaria ser capaz de gerenciar recursos, se os sistemas operacionais no permitissem que outros programas tivessem acesso a esses recursos gerenciados por ele. Para entender melhor, vamos imaginar como seria a vida dos programadores se os sistemas operacionais no existissem... Se no existissem os sistemas operacionais para facilitar a interao entre os demais softwares e os recursos de hardware do computador, um programador precisaria construir seus programas, em uma linguagem que o hardware fosse capaz de entender, ou seja, em linguagem de mquina (sequncias de 0s e 1s) ou at mesmo em microprogramao(1). Em microprogramao, o mais simples comando, como, por exemplo, uma solicitao de leitura ou escrita de um dado em um arquivo, deve especificar o endereo de bloco a ser lido no HD, o nmero de setores por trilha, o modo de leitura/gravao a ser utilizado no disco, o tamanho de intervalo entre os setores, controlar o giro do motor e alm de tratar dos demais parmetros... Podemos perceber que essa tarefa seria praticamente impossvel de ser executada por um programador comum, como eu e voc. justamente esse o objetivo do Sistema Operacional: reduzir a complexidade dessas tarefas, ou melhor, esconder a complexidade dessa tarefa para os programadores comuns. O Sistema Operacional fornece um conjunto de comandos - chamados de sistema (do ingls: system calls) os quais sero usados pelos programadores para se comunicar com os recursos de hardware. Dessa forma, podemos dizer que o sistema operacional fornece uma mquina virtual(2) onde os programadores podem criar aplicativos de forma mais simples, em uma linguagem mais prxima de um idioma falado (na sua grande maioria, o ingls). E apesar do hardware ainda executar apenas comandos em linguagem de mquina, o Sistema Operacional esconde essa complexidade dos programadores, oferecendo a esses o acesso aos recursos de hardware numa linguagem mais prxima possvel humana. (1) Conjunto de comandos que podem ser usados para a comunicao direta com recursos de hardware. (2) Mquina virtual ou estendida uma abstrao criada pelo S.O. que apresenta ao usurio uma mquina mais simples e com as mesmas funes da mquina real.

Atividade 1 Destaque alguns programas que fazem parte do Sistema Operacional que voc utiliza indicando o nome e a funcionalidade do mesmo. Por exemplo: O Windows Explorer o programa responsvel por gerenciar meus arquivos e diretrios.

3 Estrutura de um Sistema Operacional

At agora, vimos como os sistemas operacionais se parecem externamente, mas voc sabe como ele internamente? Quais so seus componentes e como eles se organizam? Quais tipos de estruturas foram utilizadas para criar um Sistema Operacional? Voc sabe, por exemplo, como sua casa est estruturada: quantos e quais cmodos tm sua casa (quartos, sala, cozinha etc.), como eles esto dispostos (a cozinha junto com a sala? Os quartos so separados?). Cada estrutura tem suas vantagens e desvantagens, se a cozinha for prxima da sala posso cozinhar e assistir TV ao mesmo tempo, porm, se algum fizer uma vitamina de banana na hora do meu filme favorito, essa estruturao pode no ser to boa assim...

Podemos enxergar um Sistema Operacional, como uma casa, que pode ser estruturada de diferentes formas e cada uma delas ter suas vantagens e desvantagens. Nesta aula, vamos estudar duas estruturas, so elas: (1) Monoltica e (2) Micro-Kernel.

Antes de detalhar cada uma dessas estruturas, precisamos apresentar para voc alguns conceitos bsicos usados em todos os sistemas operacionais, independentemente da sua estrutura. Fazendo uma relao novamente com nossa casa, esses elementos equivaleriam aos tipos de cmodos de nossas casas, todas as casas tm quarto, cozinha, sala, o que varia ser a disposio dos mesmos. Esses elementos so: o kernel (traduzindo do ingls: ncleo), e as system calls (traduzindo do ingls:chamadas de sistema).

Kernel/Ncleo: consiste em um conjunto de procedimentos que oferece servios aos usurios e suas aplicaes. Esse conjunto de rotinas seria corresponde ao crebro do sistema operacional.O kernel responsvel, dentre outras coisas, por gerenciar a memria do seu computador, controlar os dispositivos de entrada e sada, os arquivos e os demais programas que so executados em um computador. Ao longo de todo o curso, detalharemos cada uma dessas tarefas, nesta aula voc no precisa entender o que ser feito em cada uma delas. Citamos aqui apenas para voc saber que o kernel o responsvel. System-calls/Chamadas de sistema: o usurio (ou aplicao), quando deseja solicitar algum servio do Sistema Operacional, realiza uma chamada a um dos procedimentos (ou servios) do sistema.

Figura 2 Estrutura do Sistema Operacional. Fonte: autoria prpria.

NOTA Existem certas chamadas de sistema que no podem ser colocadas diretamente disposio das

4 aplicaes, pois a sua utilizao indevida ocasionaria srios problemas integridade do sistema. Suponha que uma aplicao deseja atualizar um arquivo diretamente no disco. O programa por si s no pode especificar diretamente as instrues que acessam seus dados. Como o disco um recurso compartilhado, sua utilizao dever ser realizada unicamente pelo Sistema Operacional

As instrues que tm o poder de comprometer o sistema so conhecidas como instrues privilegiadas, enquanto as instrues no-privilegiadas so as que no oferecem perigo ao sistema.Para que uma aplicao possa acessar uma instruo privilegiada, o processador implementa o mecanismo de modo de acesso. Existem basicamente dois modos de acesso implementados pelo processador: Modo usurio e Modo Kernel. Quando um processador trabalha no modo usurio, basicamente a aplicao s pode acessar as instrues no privilegiadas, enquanto no modo Kernel a aplicao pode ter acesso ao conjunto total de instrues do processador. O mecanismo de modos de acesso tambm fornece proteo ao prprio ncleo do sistema. Suponha que um programa tenha acesso a reas de memria onde est o Sistema Operacional. Qualquer programador mal intencionado ou um erro de programao poderia gravar nessa rea, violando o sistema. Com o mecanismo de modos de acesso, para uma aplicao escrever na rea de memria do Sistema Operacional, o programa deve estar sendo executado no modo Kernel.

Atividade 2 O que o ncleo de um Sistema Operacional e o que so chamados de sistema? Voc consegue perceber alguma relao entre eles? Qual?

Sistemas monolticos Agora que voc tem uma ideia sobre o kernel e as chamadas ao sistema, podemos descrever alguns tipos de estrutura e mostrar suas principais caractersticas. Como vimos, o Sistema Operacional um conjunto de procedimentos que pode ser solicitado atravs das chamadas de sistema. No modelo monoltico, no h estruturao visvel, como o prprio nome diz (mono=um), o SO consiste em um conjunto de procedimentos independentes, que pode chamar uns aos outros e que so combinados em um nico programa para formar o kernel (ncleo) do Sistema Operacional(3). Fazendo o nosso paralelo com uma casa, um sistema operacional monoltico seria equivalente a um kitnet todos os cmodos (procedimentos) acomodados em um s lugar (programa). Veja a figura 2.

(3) Os procedimentos so ligados em um grande programa atravs de um linker - um programa que junta arquivos compilados separadamente em um nico arquivo executvel.

Figura 2 - Um Kitnet equivale a um sistema monoltico. Fonte: <http://www.novocampeche.com.br/imagens/kitnet3.jpg>. Acesso em: 11 de Maio de 2010.

Quando um programa realiza uma chamada de sistema, na verdade ele est solicitando a execuo de um dos procedimentos do Sistema Operacional, assim, dizemos que o computador est saindo do modo usurio para o modo kernel, pois o controle passa a ser do Sistema Operacional (veja a Figura 3).

Figura 3 - Quando uma aplicao realiza uma chamada de sistema seu computador passa do modo usurio para o modo kernel. Fonte: autoria prpria. Um programa em execuo conhecido como processo, ento, durante toda esta disciplina, estaremos mencionando o termo processo como referncia a um software aplicativo. Em um computador com um nico processador (CPU), o Sistema Operacional responsvel por gerenciar os processos, ou seja, permitir que os processos compartilhem o processador, conforme ilustra a Figura 4.

Figura 4 - Processos compartilhando um nico processador Fonte: autoria prpria.

Isso permite que um nico usurio utilize diversos programas ao mesmo tempo. Por exemplo, perfeitamente possvel para um usurio do Windows escrever uma nota em um processador de texto, ao mesmo tempo em que faz download de um arquivo da Internet, visualiza uma foto e manda um e-mail conforme ilustrado na Figura 5.

6
Figura 5 - Vrios programas sendo executados aparentemente ao mesmo tempo todos eles na verdade esto compartilhando um nico processador. Fonte: http://i.ytimg.com/vi/lfuoak9iYaE/10.jpg. Aceso em: 14 de Dez. de 2009.

Micro-Kernel Gerenciar processos, memria, arquivos, dispositivos de entrada e sada...so algumas das responsabilidade de um Sistema Operacional, todas essas responsabilidades tornam esse tipo de programa muito complexo. Por isso, tendncia dos sistemas operacionais modernos tornarem o seu ncleo cada vez mais simples. Para isso, todos os tipos de estruturao do Sistema Operacional vm sendo propostos, dentre elas podemos citar a estrutura conhecida como micro-kernel. Esse modelo procura dividir as diferentes atividades do Sistema Operacional em servios, so elas: (1) servios de arquivo, (2) servios de criao de processos, (3) servios de memria, deixando o kernel do sistema operacional com menos responsabilidades. O kernel, nesse caso, tem o papel de gerenciar as requisies a esses servios.

Figura 6 - Estrutura de um Sistema Operacional baseada em micro-kernel. Fonte: autoria prpria.

Monoltico X Micro-Kernel Para ilustrar as diferenas entre as estruturas apresentadas, vamos comparar o Sistema Operacional com uma empresa. Existem empresas onde todos os funcionrios trabalham juntos e, para qualquer, solicitao, basta se comunicar diretamente com o funcionrio responsvel, dessa forma, agiliza-se a comunicao interna. Essa organizao se assemelha com a estrutura monoltica. Mas, muitas empresas procuram uma estrutura mais organizada, para isso, elas dividem seus diversos setores (financeiro, recursos humanos, departamento pessoal, diretoria, centro de tecnologia) em salas distintas e as solicitaes s podem ser encaminhadas aos setores atravs de chamados registrados e no direta a um funcionrio. Apesar de aumentar o tempo nas comunicaes internas, mais fcil de gerenciar as solicitaes e os trabalhos de cada setor, parecido com a estrutura do modelo micro-kernel. A Figura 7 mostra uma organizao onde funcionrios trabalham juntos, nessa empresa a comunicao bem mais rpida e efetiva do que numa empresa onde as pessoas trabalham em escritrios individuais. Todavia, tambm existem algumas complicaes em se trabalhar na mesma sala... Pense um pouco em quais seriam.

Figura 7 Ambiente de trabalho compartilhado. Fonte: <http://www.proarts.com.br/proarq/portfolio/363x269/complex2.jpg>. Acesso em: 14 de Dez. de 2009.

Mas, ento, qual seria a melhor escolha? Um kernel monoltico ou um micro-kernel? Essa uma pergunta difcil que gera discusses entre os defensores de cada uma dessas estruturas e at os maiores especialistas em SO entram em debates sobre essa questo. Por isso, muitos Sistemas Operacionais buscam um meio termo entre essas estruturas, pois, apesar de serem construdos como um conjunto de mdulos de servios externos ao kernel, esses mesmos mdulos podem operar com privilgios totais (modo kernel), a fim de melhorar o desempenho geral do sistema. Exemplos de SO hbridos so as verses recentes do Windows.

Atividade 3 1. O que um sistema monoltico? 2. O micro-kernel divide as diferentes atividades do SO em servios. Quais so esses servios?

Leitura Complementar O site <www.youtube.com.br> possui diversos links que apresentam os principais recursos de diversos SO, destacamos o vdeo sobre os recursos de uma distribuio do Linux. Procure pelo vdeo: Linux na prtica do desktop, uso bsico. O link direto : <http://www.youtube.com/watch?v=a-kut4lgzdw&feature=playerembedded>. Na Internet, existem diversos links que mostram o famoso debate entre Linus e Tanenbaum sobre o kernel, monoltico x microkernel. Destacamos o link abaixo que apresenta trechos traduzidos e comentrios sobre o debate: <http://falcon-dark.blogspot.com/2005/09/quando-o-professor-est-errado-e-o.html>.

Resumo Nesta aula, voc aprendeu os principais tipos de estrutura de Sistemas Operacionais, apresentando suas caractersticas e funcionalidades. Voc viu novos termos, como o kernel, e o conceito de processos para auxiliar no entendimento das funes bsicas de um Sistema Operacional. Voc tambm aprendeu um pouco mais sobre as diferenas entre sistemas monolticos x micro-kernel.

Autoavaliao 1 Defina, com suas palavras, quais as principais responsabilidades de um Sistema Operacional. 2 O que so chamadas de sistema e qual a relao delas com o kernel? 3 Quais os principais tipos de estrutura de Sistemas Operacionais?