Вы находитесь на странице: 1из 11

Pgina 1 de 11

Resumo de Sistemas Operacionais


Autor: Adonai Estrela Medrado (adonaimedrado@hotmail.com) Revisado em 26 de junho de 2010

Construdo tendo como referncia SIMES, Ricardo de Magalhes. Mdulo de Sistemas Operacionais. Vitria: ESAB, 2008. Disponvel apenas para alunos. Este material apenas um resumo disponibilizado para uso acadmico e didtico. Ele no pretende esgotar o assunto ou abord-lo em sua integralidade. A sua utilidade relembrar alguns conceitos e estimular o aprofundamento e a pesquisa. Fundamentos O sistema operacional um software especial que controla recursos compartilhados. Os programas que trabalham sob o sistema operacional utilizam das Chamadas do Sistema (System Calls) para ter acesso a estes recursos. As principais funes de um sistema operacional so 1) tratamento de interrupo (evento inesperado externo ao programa em execuo e independente de instruo sendo executada; sempre so geradas por dispositivos; paralisa momentaneamente a execuo do programa atual); 2) tratamento de exceo (originada por algum programa em execuo; o programa que executou a operao invlida avisado, caso no saiba trat-la o aviso ser encaminhado ao usurio; paralisa momentaneamente a execuo do programa atual); 3) gerenciamento de programas (colocar em execuo, administrar e finalizar programas); 4) gerenciamento de memria RAM (incluindo verificar disponibilidade); 5) gerenciamento de arquivos (controlar a criao, edio e excluso de arquivos); 6) gerenciamento de dispositivos (verificao de utilizao, disponibilidade, liberao, etc.); e 7) suporte a redes (gerenciamento e acesso s redes de computadores). Atualmente passou a ser requisito tambm o sistema de segurana (somente programas permitidos executam; somente usurios permitidos acessam os recursos e informaes). Histria Em 1950 os computadores comearam a utilizar os transistores e o Univac 1103 surge como primeiro computador a utilizar um sistema operacional (SO) o ERA. Em 1976

Pgina 2 de 11 Steve Jobs e Stephan Wozniak inventam o primeiro computador pessoal, o Apple I. Em 1981 a IBM lana o PC (Personal Computer) com o processador Intel i8080. Tambm em 1981 foi desenvolvida a primeira interface grfica pela Xerox, a partir da vrios sistemas grficos foram lanados ainda na dcada de 80. O Apple Macintosh (1984) foi o primeiro computador popular com interface grfica. O Windows comeou seu desenvolvimento em 1983 como apenas um ambiente grfico de operao, funcionando sob o MS-DOS. O Windows 1.0 foi lanado em 1985, em 1987 o Windows 2.0. Estas duas verses no foram muito difundidas, talvez devido s limitaes de hardware da poca. Em 1990 surge a verso 3.0 que se torna padro nas mquinas IBM-PC e compatveis. Ainda nos anos 90 foram lanadas duas frentes de trabalho, uma para servidor e computao profissional (Windows NT Server/Workstation) e outra para usurio domstico (Windows 95). A interface provida pelo Windows 95 era totalmente nova tornando mais fcil a utilizao dos usurios iniciantes. O sistema de arquivos FAT32 veio na segunda verso do Windows 95 (em 1996), o NTFS com o Windows NT. Outro lanamento importante foi o Windows 2000 (em 2000) com melhoria no gerenciamento de processos, memria e dispositivo. O Windows XP lanado em 2001 herda o kernel do Windows 2000. O Windows 2003 e 2008 seguem a linha de servidores, e o Windows Vista e 7 segue a linha sistemas operacionais para uso pessoal com melhora na interface e nas funcionalidades. O Linux comeou seu desenvolvimento em 1991 e recebe apoio de vrias empresas como a IBM, Oracle e Red Hat. Em 1996 foi lanado o Linux Kernel 2 base das distribuies atuais. Uma distribuio um "kit" que contm o SO e um conjunto de ferramentas (ex.: OpenSuse, Debian, Ubuntu, etc). O Linux utilizado em ambientes acadmicos e cientficos, mas comea a ser utilizado em ambientes empresariais e domsticos. Ele adota padres estabelecidos no mercado, dentre eles o POSIX, e bastante utilizado nos servidores para Internet. Classificao Os SOs podem ser classificados de acordo com 1) caractersticas bsicas de arquitetura do sistema (Monoltico, Microkernel ou Hbrido); 2) capacidade de executar tarefas (Monotarefa ou Multitarefa); e 3) quantidade de usurios que podem operar o sistema (Monousurio ou Multiusurio).

Pgina 3 de 11 Um sistema monoltico construdo como uma coleo de rotinas onde cada uma pode chamar qualquer outra. Um sistema microkernel possui separao de funes chamadas Servidores. Um sistema hbrido executa os servidores externos em um modo protegido. Um sistema monotarefa executa uma tarefa de cada vez. Um sistema multitarefa executa vrias tarefas simultaneamente e subdivide-se em 1) sistemas de tempo compartilhado (time sharing systems - divide o tempo do processador em pequenos intervalos - time slice; quem define o tempo de execuo de cada programa o sistema operacional); 2) sistemas de tempo real (tempo de execuo definido pelo prprio programa; o programa fica em execuo durante o tempo que achar necessrio ou at que outro com maior prioridade chegue fila; o conceito de time slice no se aplica). Troca de contexto uma operao que ocorre nos sistemas multitarefa quando se altera o programa que est sendo executado. Um sistema monousurio no faz distino entre os usurios, foi projetado para ser utilizado por um nico usurio. Um sistema multiusurio permite diversos usurios garantindo a separao e no interferncia entre as tarefas de cada um. Processos O processo uma instncia de um programa em execuo. No controle e execuo do processo pelo SO as seguintes informaes necessitam ser armazenadas: 1) cdigo executvel; 2) espao de memria utilizado (com distino entre cdigo, dados e estruturas de controle); 3) descritores do SO (tabela de arquivos, etc.); 4) atributos de segurana; e 5) estado do processo (executando, em espera, aguardando recurso, etc.). H trs tipos bsicos de gerenciadores de processo 1) gerenciador por admisso (gerenciador escolhe qual processo ir executar e quando a depender da sua prioridade; geralmente utilizado em sistemas de tempo real); 2) gerenciador por tempo mdio; e 3) gerenciador despachantes (define os processos a serem executados de acordo com eventos ocorridos no sistema). Os Gerenciadores de Processo possuem algoritmos para garantir a troca de processos de maneira correta e organizada. So exemplos de estratgias utilizadas 1) FIFO (First In First Out) onde um programa abre um canal unidirecional com um segundo e

Pgina 4 de 11 escreve dados que chegaro ao destino na mesma ordem em que foram escritos; 2) PIPES unidirecionais (similar ao FIFO, porm com o controle feito pelo SO e no pelo programa); 3) fila de mensagem - message queue (baseia-se em rea administrada pelo SO para troca de mensagem entre processos); e 4) memria compartilhada (semelhante fila de mensagem, mas o controle feito dentro do programa e no pelo sistema operacional). Threads Threads so linhas de execuo independentes de um processo. Uma thread compartilha os recursos do processo que a criou. Processadores que conseguem lidar simultaneamente com mais de uma threads so caracterizados Multi-Threading ou HiperThreading. Os recursos utilizados para fazer a troca de contexto entre threads so muito menores do que aqueles necessrios para fazer a troca de contexto entre processos. Existem duas formas de troca de contexto das threads 1) preemptiva (controle do sistema operacional; thread pode ser interrompida em momento crtico) e 2) cooperativa (controle da thread; uma thread pode tomar o controle do processador). A realizao de operaes simultneas pelas threads so chamadas de Condio de Corrida ou Condio de Disputa e exigem mecanismos de comunicao e sincronizao que podem ser criados pelo sistema operacional. Comunicao entre Processos e Threads Os sistemas operacionais possuem em sua API um conjunto de funes necessrias para a comunicao entre processos e threads. No Windows as COM (Component Object Model) e recentemente o Windows Communication Foundation, no UNIX POSIX Core Services (para processos) e a POSIX-Thread ou PThread (para threads) e no MacOS X o Core Foundation. Sincronizao A sincronizao dos recursos do computador realizada pelo SO multitarefas e feita tanto para dados (para manter dados em integridade) quanto para processos (evitar conflito na utilizao dos recursos). Os mecanismos para controle de sincronizao, dentre outros, podem ser 1) barreiras (criadas e gerenciadas pelo programa; programa entra em estado de espera at

Pgina 5 de 11 que todos os processos pertencentes ao mesmo programa tambm entrem nesta estado); 2) semforos (podem ser implementados tanto pelo SO quanto pelo programa; consistem em variveis de controle que indicam quantos processos podem compartilhar um recurso); 3) trava simples (impede a utilizao do recurso por outro processo), trava especial (sinaliza quando se tenta utilizar um recurso j em uso) e trava compartilhada (um nico processo recebe permisso de leitura e escrita e os demais somente de leitura). A barreira e o semforo permitem compartilhamento de recurso, a trava simples no. A sincronia exige a existncia de uma instruo capaz de ao mesmo tempo "verificar e, se possvel, travar". Deadlock (Bloqueio) Um bloqueio acontece quando um processo aguarda um recurso que, caso o sistema operacional no intervenha, nunca ser liberado. condio para existncia do Deadlock que apenas o processo que utiliza um recurso seja capaz de liber-lo. So exemplos de estratgias para prevenir Deadlock 1) uso de ordenao por precedncia dos recursos (os recursos devem ser alocados seguindo um ordem); 2) determinao de tempo de alocao; 3) determinao que nenhum processo ter acesso exclusivo aos recursos; e 4) pr-alocao de todos os recursos no incio da execuo do programa. O tratamento do Deadlock pode ser feito com a finalizao dos processos envolvidos e sua subsequnte reinicializao sequncial. Gerenciamento de Memria O gerenciamento de memria tem por objetivo 1) oferecer uma rea de armazenamento para os processos; 2) proteger os processos contra falhas de terceiros; e 3) prover um desempenho satisfatrio aos usurios. Deseja-se tambm compartilhamento de memria entre processos e acesso transparente memria. A memria caracterizada como compartilhada se mais de um programa pode acess-la simultaneamente. A memria compartilhada pode ser criada eletricamente (hardware destinado a este fim; utilizada em supercomputadores) ou logicamente (criada atravs de estruturas de dados especiais). O coletor de lixo um papel incluso em alguns gerenciadores de memria. Sua tarefa identificar dados no mais utilizados na memria e liberar o espao para uso.

Pgina 6 de 11 Memria Virtual O mecanismo de memria virtual torna o uso da memria principal mais eficiente. Ele cria um ambiente de memria contnua a partir de um ambiente de memria fragmentada, podendo utilizar dispositivos de armazenamento para salvamento temporrio. Sua implementao depende do modo de endereamento de memria utilizado pelo processador. Nos processadores da famlia Intel este recurso j est presente desde o 80286 lanado em 1982. A Microsoft utiliza este modelo a partir do Windows 3. Neste mecanismo chama-se pgina uma rea contnua de dados. O tamanho da pgina varia de acordo com a quantidade de memria do computador, mas geralmente de pelo menos 2 kilobytes. A tabela de paginao pode ser nica para o sistema ou especfica para cada aplicao e mapeia o endereo de memria virtual aos endereos fsicos. Chama-se paginao a tcnica utilizada para transferncia de dados inativos da memria principal para a secundria (Page-Out) e transferncia de dados ativos de volta para a memria principal (Page-In). Na recolocao de uma pgina na memria principal necessrio fazer a atualizao do mapeamento. Chama-se Page Fault (Falha de Pgina) a deteco pelo gerenciador de memria que uma informao requisitada no est na memria principal. Uma Page Swap (Troca de Pgina) ocorre quando, por falta de espao livre na memria principal, uma pgina tem que ser transferida para a memria secundria para que outra seja colocada na memria principal; geralmente a pgina candidata para Swap a menos utilizada. Alguns pginas no podem ser removidas da memria principal a exemplo daquelas que armazenam 1) a tabela de paginao; 2) rotinas de tratamento de interrupo; e 3) informaes manipuladas pelos dispositivos com recurso de acesso direto memria (DMA). Segmentao da Memria O mecanismo de segmentao da memria particiona a memria em segmentos de dados. Cada segmento possui uma localizao fsica, uma permisso de acesso, um tamanho e um identificador dependendo da implementao pode existir ainda um indicador de se a pgina est na memria principal ou na memria secundria. O processo s acessa o segmento que tiver permisso, caso tente fazer um acesso no permitido ele ser negado e ser gerado um aviso de erro. Este mecanismo precisa ser viabilizado por

Pgina 7 de 11 hardware via Unidade de Gerenciamento de Memria (Memory Management Unit, MMU) que faz a mediao de todo o processo sendo que os processos no acessam diretamente a rea de memria do computador. Solicitaes que no sejam permitidas no sero atendidas pela MMU e geraro um erro que ser passado ao processo. Um processo pode permitir que outros processos alm dele acessem a um segmento. possvel uma combinao entre os mecanismos de paginao e segmentao (cada segmento pode ser dividido em pginas). Driver Um driver de dispositivo um conjunto de instrues especficas para tratamento de um dispositivo que depende diretamente do sistema operacional. Funcionam em duas camadas: comandos lgicos (acessveis a todos os programas) e comandos fsicos (utilizados pelo driver para executar os comandos lgicos solicitados no dispositivo). Podem existir drivers genricos, mas geralmente no so capazes de utilizar todos os recursos fornecidos por um dispositivo. O firmware um pequeno programa que se encontra nos circuitos eletrnicos de um dispositivo. Alguns firmwares podem funcionar como drivers, mas necessitam antes serem carregados na memria. Sistema de Arquivos Um sistema de arquivos define a maneira como os dados sero gravados e gerenciados nos dispositivos de armazenamento acessados pelo computador. Os sistemas de arquivos trabalham com blocos de dados. Cada bloco de dado contm uma parte do dado que forma o arquivo. Geralmente um arquivo tem propriedades associadas como modo de acesso (leitura, escrita, execuo), data da criao, data de alterao, nome e extenso. O conjunto de propriedades disponveis depende do sistema de arquivos. Os diretrios so utilizados pelo usurio para organizar os arquivos. A tabela de arquivos utilizada pelo Sistema Gerenciador de Arquivos para guardar a organizao fsica dos arquivos.

Pgina 8 de 11 Existem dois tipos de sistemas de arquivos 1) sistemas de disco (funciona em uma unidade de armazenamento) e 2) sistema de arquivo em rede (armazenamento feito em outro computador da rede). O NTFS um sistema de arquivos de disco que utiliza estrutura de rvore B+ e que foi desenhada para minimizar a fragmentao. A Tabela de Arquivos do NTFS chama-se Tabela Mestre de Arquivos. Todas as informaes relativas ao arquivo, inclusive seu contedo so tratados como metadados. Os meta-arquivos auxiliam na organizao dos metadados. Arquivos pequenos (<800 bytes) no criptografados ou comprimidos so armazenados na prpria Tabela Mestre e so denominados arquivos residentes. O NTFS permite 1) nome alternativo; 2) cota de armazenamento; 3) pontos de montagem; 4) ponto de juno; 5) ligao entre arquivos; 5) gerenciamento hierrquico do armazenamento; 6) controle de verso dos arquivos (via shadow copy); 7) compresso de arquivos; 8) armazenagem unificada de arquivos (mltiplas cpias de um mesmo arquivo so armazenadas uma nica vez com referncias mltiplas na tabela mestre); e 9) criptografia. Outro sistema de arquivos de disco o Linux Extented File System que na sua verso 2 (conhecida como ext2 e desenvolvida em 1993) pode gerenciar tamanho mximo de 4 TB. Em 2001 foi desenvolvido o ext3 com Journaling (otimiza operaes de busca e proteo contra falhas no sistema). Em 2006 surge o ext4 aumentando o tamanho mximo do disco para 1 EB. Os ext2, 3 e 4 separam explicitamente as propriedades do arquivo (inode) do dado. O Journaling tem uma estrutura semelhante a uma rvore-B+. O ext3 possui as seguintes caractersticas 1) definio padro dos atributos de um arquivo; 2) definio padro do grupo de usurio a um diretrio; 3) definio do tamanho da unidade bsica de informao na criao do arquivo; 4) checagem da integridade do sistema de arquivos em momentos definidos. Sistema Operacional de Rede Um sistema operacional de redes de computadores faz o gerenciamento da rede de comunicao e dos recursos disponveis na rede (ex.: Windows 2008 Server). Em termos gerais ele deve prover 1) suporte protocolos de comunicao em rede; 2) mecanismos de segurana; 3) gerenciamento de arquivos distribudos; 4) gerenciamento de dispositivos distribudos; 5) gerenciamento de usurios.

Pgina 9 de 11 H sistemas operacionais de rede especializados que funcionam em dispositivos especficos como, por exemplo, o Cisco IOS que funciona em roteadores. Gerenciamento de Usurio Para efetuar o gerenciamento de usurios deve ser possvel definir: 1) mecanismos de proteo das informaes, 2) quem e quando poder utilizar o computador; e 3) que recursos podero ser utilizados por cada usurio. Autenticao o processo de confirmar a identidade do usurio e sua permisso para realizar uma tarefa. Permisso um conjunto de regras que define como o usurio pode utilizar os recursos do computador. Facilita-se o gerenciamento de usurio a partir da criao de grupos de usurio, definindo-se permisses para os grupos. Active Directory O Active Directory baseado no LDAP1 e tem por objetivo fornecer uma forma centralizada de autenticao e autorizao de servios. Ele permite definir polticas de instalao e atualizao de programas. Sua estrutura mais alta a Floresta. Cada Floresta possui uma ou mais rvores. Cada rvore possui um ou mais Domnios. Os Domnios podem agrupar seus objetos em Unidades Organizacionais facilitando o gerenciamento. Os usurios so registrados no Domnio. As informaes do Active Directory so armazenadas em um ou mais Controladores de Domnio, cada um com sua cpia do diretrio que dever ser sincronizada em caso de alterao. Para que um usurio de um Domnio tenha acesso aos recursos de outro Domnio deve-se utilizar um Relacionamento de Confiana. Por padro um Domnio j tem um relacionamento de confiana com todos os Domnios da sua rvore. Os Relacionamento de Confiana podem ser 1) de direo nica (de A para B, mas no de B para A); 2) de direo dupla. Alm disto, as seguintes denominaes so utilizadas 1) domnio confivel (tem usurios confiveis); 2) domnio confiante (permite acesso de usurios confiveis); 3) relacionamento transitivo (estendvel a outros Domnios Confiveis da rvore); 4) relacionamento explcito (relacionamento criado pelo

Um LDAP (Lightweight Directory Access Protocol) composto por objetos abstratos que representam recursos (computadores, impressoras, arquivos, etc.) e usurios de uma rede de computadores. Dentre outras operaes ao se conectar a um servidor LDAP possvel 1) fazer buscas no diretrio; 2) adicionar, modificar e apagar objetos; 3) requerer canal de comunicao seguro.

Pgina 10 de 11 administrador); 5) relacionamento cruzado (entre Domnios de rvores diferentes); 6) Floresta Confivel (relacionamento feito diretamente na raiz, propaga-se entre todos os objetos do diretrio). Segurana A segurana depende dos mecanismos de segurana oferecidos pelos sistemas e da configurao. Na dcada de 1970 foi especificado um sistema de segurana por encomenda da Agencia de Segurana dos EUA. Ele foi denominado de Modelo Bell-LaPadula (MBL) e influencia at hoje os desenhos dos sistemas, porm no foi construdo como proposto, pois seus vrios mecanismos de segurana impunham srias restries de desempenho. Algumas estratgias dos sistemas de segurana envolvem: 1) executar apenas programas testados; e 2) executar qualquer programa e verificar as operaes realizadas. Um mecanismo til colocar em nveis diferentes o cdigo do sistema operacional e o cdigo do usurio. Protees de hardware tambm so utilizadas. Outros mecanismos e tcnicas incluem 1) firewall; 2) criptografia; 3) cpia de segurana dos dados; e 4) programa antivrus. A manuteno da segurana deve ser garantida pelo uso e atualizao constante dos mecanismos de segurana por parte do usurio/administrador. Sistemas Embutidos Os sistemas embutidos por se destinarem a uma funo especfica e dedicada so sistemas reduzidos que incluem o dispositivo eletrnico a ser utilizado. Geralmente tm tamanho menor (se comparados aos sistemas no embutidos) e so otimizados para a funo que ir desempenhar. Exemplo de sistemas operacionais para sistemas embutidos so LiMO, Windows Mobile e Symbian. Mquina Virtual Uma mquina virtual uma mquina real construda logicamente. Podem ser divididas em duas categorias: Mquinas Virtuais Completas (simula toda a estrutura de um computador real; permite a instalao de um SO; ex.: aquela criada pelo Virtual PC) e Mquinas Virtuais Binrias (para execuo de programa especfico; ex.: aquela criada pela Java Virtual Machine). A mquina que est servindo de base para a mquina virtual chamada de Sistema Hospedeiro (Host), a mquina virtual o Sistema Convidado (Guest).

Pgina 11 de 11 Em qualquer dos casos, o sistema operacional hospedeiro responsvel por gerenciar apenas os recursos do processo que gera o ambiente virtual. Sistema Operacional para Internet Um sistema operacional para Internet fornece via Internet o mesmo conjunto de servios de um sistema operacional convencional. Algumas tentativas de desenvolver este conceito foram: WebOS (hoje Hyperoffice), YouOS, Desktop Two, G.ho.st (hoje utilizando o conceito de nuvem) e EyeOS. Computador de Alto Desempenho Um computador de alto desempenho (supercomputador) aquele capaz de resolver um problema que no pode ser resolvido em tempo satisfatrio por um computador de pequeno porte. Os supercomputadores podem ser divididos em dois tipos 1) sistemas com mltiplos processadores e 2) sistemas com mltiplos computadores (Cluster Grid). A otimizao e desenho de um sistema operacional para um computador de alto desempenho depende da sua finalidade e da sua arquitetura.

Вам также может понравиться