Você está na página 1de 11

3 Perodo SI 2009

SISTEMAS OPERACIONAIS

http://sidneyjunior.host.sk/

SISTEMAS OPERACIONAIS
Atualizado em 15 de maio de 2009

Um sistema de computao constitudo basicamente por hardware e software. O hardware composto por circuitos eletrnicos (processador, memria, portas de entrada e sada, etc.) e perifricos eletropticomecnicos (teclados, mouses, discos rgidos, unidades de disquete, CD, DVD, dispositivos USB, etc.). Por sua vez, o software de aplicao representado por programas destinados ao usurio do sistema e que constituem a razo final de seu uso, como editores de texto, navegadores de internet ou jogos. Entre os aplicativos e o hardware reside uma camada de software multifacetada e complexa, denominada genericamente de sistema operacional. Objetivos Existe uma grande distncia entre os circuitos eletrnicos (dispositivos de hardware) e os programas aplicativos em software. Os circuitos so complexos, acessados atravs de interfaces de baixo nvel (geralmente usando as portas de entrada/sada do processador) e muitas vezes suas caractersticas e seu comportamento dependem da tecnologia usada em sua construo. Por exemplo, a forma de acesso de baixo nvel a discos rgidos IDE difere da forma de acesso a discos SCSI ou leitores de CD. Essa grande diversidade pode ser uma fonte de dores de cabea para o desenvolvedor de aplicativos. Portanto, tornase desejvel oferecer aos programas aplicativos uma forma de acesso homognea aos dispositivos fsicos, que permita abstrair as diferenas tecnolgicas entre eles. O sistema operacional uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usurio final. O sistema operacional uma estrutura de software ampla, muitas vezes complexa, que incorpora aspectos de baixo nvel (Omo programas utilitrios e a prpria interface grfica). Os objetivos bsicos de um sistema operacional podem ser sintetizados em duas palavras-chave: abstrao e gerncia. Abstrao de recursos O acesso aos recursos de hardware de um sistema de computao pode ser trabalhoso e complicado devido s caractersticas especficas de cada dispositivo fsico e a complexidade de sua interface. Por exemplo, a sequncia a seguir apresenta os principais passos envolvidos na abertura de um arquivo (operao open) de um leitor de disquetes: 1 Verificar se os parmetros informados esto corretos (nome do arquivo, identificador do leitor de disquete, buffer de leitura, etc.); 2 Verificar se o leitor de disquetes est disponvel; 3 Verificar se o leitor contem um disquete; 4 Ligar o motor do leitor e aguardar atingir a velocidade de rotao correta; 5 Posicionar a cabea de leitura sobre a trilha onde est a tabela de diretrio;
1

3 Perodo SI 2009

SISTEMAS OPERACIONAIS

http://sidneyjunior.host.sk/

6 Ler a tabela de diretrio e localizar o arquivo ou subdiretrio desejado; 7 Mover a cabea de leitura para a posio do bloco inicial do arquivo; 8 Ler o bloco inicial do arquivo e deposit-lo em um buffer de memria. Assim, o sistema operacional deve definir interfaces abstrais para os recursos do hardware, visando atender os seguintes objetivos: - Promover interfaces de acesso aos dispositivos mais simples de usar que as interfaces de baixo nvel, para simplificar a construo de aplicativos. Por exemplo, para ler dados de um disco rgido uma aplicao uma abstrao chamada arquivo, acessvel atravs de operaes como open, read e close. Caso tivesse de manipular portas de entrada/sada e registradores com comandos para a controladora de disco (sem falar na dificuldade de localizar os dados desejados dentro do disco). - Tornar os aplicativos independentes do hardware. Ao definir uma interface abstrata de acesso a um dispositivo de hardware, o sistema operacional desacopla o hardware dos aplicativos e permite que ambos evoluam de forma mais autnoma. Por exemplo, o cdigo de um editor de textos no deve ser dependente da tecnologia de discos rgidos utilizada no sistema. - Definir interfaces de acesso homogneas para dispositivos com tecnologias distintas. Atravs de suas abstraes, o sistema operacional permite aos aplicativos usar a mesma interface para dispositivos diversos. Por exemplo, um aplicativo acessa dados em disco usando a abstrao de arquivos, sem levar em conta onde esto os dados reais: num disquete, num disco IDE, num disco SCSI, numa mquina fotogrfica digital conectada porta USB, num CD ou num disco remoto compartilhado atravs da rede. Gerncia de recursos Os programas aplicativos usam o hardware para atingir seus objetivos: ler e armazenar dados, editar e imprimir documentos, navegar na internet, tocar msica, etc. Em um sistema com vrias atividades simultneas, podem surgir conflitos no uso do hardware, quando dois ou mais aplicativos precisam dos mesmos recursos para poder executar, cabe ao sistema operacional definir polticas para gerenciar o uso dos recursos de hardware pelos aplicativos, resolver eventuais disputas e conflitos. Algumas situaes onde a gerncia de recursos se faz necessria: - Cada computador possui normalmente s um processador. O uso desse processador deve ser distribudo entre os aplicativos presentes no sistema, de forma que cada um deles possa executar na velocidade adequada para cumprir suas funes sem prejudicar os outros. O mesmo ocorre com a memria RAM, que deve ser distribuda de forma justa entre as aplicaes; - A impressora um recurso cujo acesso deve ser efetuado de forma mutuamente exclusiva (apenas um aplicativo por vez), para no ocorrer mistura de contedo nos documentos impressos. O sistema operacional resolve essa questo definindo uma fila de trabalhos a imprimir, normalmente atendidos de forma seqencial (FIFO);
2

3 Perodo SI 2009

SISTEMAS OPERACIONAIS

http://sidneyjunior.host.sk/

- Ataques de negao de servio (DOS-denial of service) so comuns na internet. Eles consistem em usar tcnicas para reforar um servidor de rede a dedicar seus recursos a atender um determinado usurio em detrimento dos demais. Por exemplo, ao abrir 10.000 conexes simultneas em um servidor de e-mail POP3, um atacante pode puxar para si todos os recursos do servidor (processos, conexes de rede, memria e processador), fazendo com que os demais usurios no sejam mais atendidos. Cabe ao sistema operacional do servidor detectar tais situaes e impedir que todos os recursos do sistema sejam monopolizados por um s usurio (ou pequeno grupo). Assim, um sistema operacional visa abstrair o hardware e gerenciar seus recursos, provendo aos aplicativos um ambiente de execuo abstrato, no qual o acesso aos recursos do hardware se faz atravs de interfaces simples, independentes das caractersticas de baixo nvel do hardware, e no qual os conflitos no uso do hardware so minimizados. Tipos de Sistemas Operacionais Os sistemas operacionais podem ser classificados segundo diversos parmetros e perspectivas, como tamanho, velocidade, suporte a recursos especficos, acesso rede, etc. A seguir so apresentados alguns tipos de sistemas operacionais usuais (muitos sistemas operacionais se encaixam bem em mais de uma das categorias apresentadas): Batch (de lote) Os sistemas operacionais mais antigos trabalhavam por lote, ou seja, todos os programas a serem executados eram colocados em uma fila, com seus dados e demais informaes para execuo. O processador recebia um programa aps o outro, processando-os em sequncia, o que permitia um alto grau de utilizao do sistema. Ainda hoje o termo em lote usado para designar um conjunto de comandos que devem ser executados em sequncia, sem interferncia do usurio. De rede Um sistema operacional de rede deve possuir suporte operao em rede, ou seja, a capacidade de oferecer s aplicaes locais recursos que estejam localizados em outros computadores da rede, como arquivos e impressoras. Ele tambm deve disponibilizar seus recursos locais aos demais computadores, de forma controlada. A maioria dos sistemas operacionais atuais oferece esse tipo de funcionalidade. Distribudo Em um sistema operacional distribudo, os recursos de cada mquina esto disponveis globalmente, de forma transparente aos usurios. Ao lanar uma aplicao, o usurio interage com sua janela, mas no sabe onde est executando ou armazenando seus arquivos: o sistema quem decide, de forma transparente. Os sistemas operacionais distribudos j existem h tempos, mas ainda no so uma realidade no mercado. Multiusurio Um sistema operacional multiusurio deve suportar a identificao do dono de cada recurso dentro do sistema (arquivos, processos, reas de memria, conexes de rede) e impor regras de controle de acesso para impedir o uso desses recursos por usurios no autorizados. Essa funcionalidade fundamental para a segurana dos sistemas operacionais de rede e distribudos. Grande parte dos sistemas atuais multiusurio.

3 Perodo SI 2009

SISTEMAS OPERACIONAIS

http://sidneyjunior.host.sk/

Desktop Um sistema operacional de mesa voltado ao atendimento do usurio domstico e corporativo para realizao de atividades corriqueiras como edio de tetos e grficos, navegao na internet e reproduo de mdias simples. Suas principais caractersticas so a interface grfica, o suporte interatividade e a operao em rede. Exemplos de sistemas desktop so o Windows XP, Mac OSX e Linux. Exerccios 6/03 1) O que um S.O.? (ENTREGUE) 2) Qual a funo de um S.O.? (ENTREGUE) 3) Defina abstrao de recursos. (ENTREGUE) 4) Defina gerncia de recursos. (ENTREGUE) 5) Defina: FIFO. (ENTREGUE) 6) Quais so os tipos de S.O.? (ENTREGUE) 7) Quais so as diferenas entre um S.O. Batch e um S.O. Distribudo? (ENTREGUE) 8) Defina um S.O. Desktop. (ENTREGUE)

Servidor Um sistema operacional servidor deve permitir a gesto eficiente de grandes quantidades de recursos (discos, memrias, processadores,etc), impondo prioridades e limites sobre o uso dos recursos pelos usurios e seus aplicativos. Normalmente um Sistema Operacional Servidor tambm tem suporte a rede multiusurios. Embutido Um Sistema Operacional dito embutido (embedded) quando construdo para operar sobre um hardware e com poucos recursos de processamento, armazenamento e energia. Aplicaes tpicas desse tipo aparecem em celulares, controladores industriais, automotivos, eletro-eletrnico, sistemas de alarmes, etc. Tempo Real Ao contrrio da concepo usual, um Sistema Operacional de Tempo Real no precisa ser necessariamente ultra-rpido. Sua caracterstica essencial ter um comportamento temporal previsvel, ou seja, seu tempo de resposta deve ser conhecido no melhor e pior caso de operao. A estrutura de um SO de Tempo Real deve ser construda de forma a minimizar esperas e latncias imprevisveis.

3 Perodo SI 2009

SISTEMAS OPERACIONAIS

http://sidneyjunior.host.sk/

Conceitos de Hardware e Software - Unidades mtricas KB 1024 Bytes MB 1042 KB GB 1024 MB TB 1024 GB Hardware - Processador - Registradores - Memria Principal - Memria Cach - Memria Secundria - Dispositivos de E/S - Barramento - Pipelining

3 Perodo SI 2009

SISTEMAS OPERACIONAIS

http://sidneyjunior.host.sk/

Contexto de software - Caractersticas e limites dos recursos que podem ser alocados pelo processo. - Maior parte das informaes do contexto de software do processo so provenientes de um arquivo so sistema operacional: arquivo de contas. - Composto por trs grupos de informaes sobre processo; - Identificao: cada processo criado pelo SO recebe uma identificao nica (PID) representada por um nmero. - Quotas: limites de cada recurso do sistema que um processo pode alocar; - Privilgios: definem as aes que um processo pode fazer em relao a ele mesmo, aos demais processos e ao SO. Espao de endereamento: - rea de memria pertencente ao processo onde as instrues e os dados do programa so armazenados para execuo. Bloco de controle de processo: - SO mantm todas as informaes sobre contexto de hardware, contexto de software e espao de endereamento de cada processo; Estados do processo: Rodando; Pronto; Bloqueado. Mudana de Estado do Processo - Um processo muda de estado durante seu processamento em funo de eventos originados por ele mesmo (eventos voluntrios) ou pelo SO (eventos involutrios). 1 Rodando - Bloqueado -> Eventos gerados pelo prprio processo. Ex.: Operao E/S. 2 Rodando - Pronto -> Eventos gerados pelo Sistema. Ex.: Trmino do tempo que o processo possui para sua execuo. O processo volta para a fila de pronto onde aguarda nova oportunidade para continuar. 3 Pronto - Rodando -> SO seleciona um processo da fila de prontos para executar. 4 Bloquado - Pronto -> Um processo passa de bloqueado para pronto quando a operao solicitada atendida ou o recurso esperado concedido.
1 3 BLOQUEADO 4 PRONTO 6 RODANDO 2

3 Perodo SI 2009

SISTEMAS OPERACIONAIS

http://sidneyjunior.host.sk/

Criao e Eliminao de Processos - Ocorre a partir do momento em que o SO adiciona um novo PCB sua estrutura e aloca um espao de endereamento na memria para uso. - Na eliminao do processo, todos os recursos associados ao processo so deslocados e o PCB eliminado pelo SO. - A criao de processos ocorre por diferentes razes: 1 Logon Interativo: processo criado pelo estabelecimento de uma sesso interativa a partir de um terminal; 2 Criao de um outro processo: um processo j existente pode criar outros processos sendo estes independentes ou sub processos; 3 Criao pelo sistema operacional: o SO cria novos processos com intuito de oferecer algum tipo de servio. - Depois de criado, um processo comea a eecutar e faz o seu trabalho. Esse processo cedo ou tarde ir terminar, podendo ser das seguintes formas: - Sada normal (voluntria); - Sada por erro (voluntria); - Erro fatal (involuntria); - Cancelamento por um outro processo (involuntria). Processos independentes, subprocessos, threads - So maneiras diferentes de implementar a concorrncia dentro de uma aplicao, subdividindo-se o cdigo para trabalharem de forma cooperativa. Processos independentes: maneira mais simples de implementar a concorrncia, no existe vnculo do processo criado com o seu criador. Exige a alocao de um PCB prprio. Subprocessos: criados dentro de uma estrutura hierrquica, o processo criador denominado PROCESSO PAI enquanto o novo chamado de PROCESSO FILHO ou SUBPROCESSO. O subprocesso pode criar outras estruturas de subprocessos. Tem como caracterstica a dependncia existente entre o processo criador e o subprocesso. Se o processo pai deixar de existir, os subprocessos so automaticamente eliminados. Threads: tentativa de reduzir o tempo gasto na criao, eliminao e troca de contextos de processos nas aplicaes concorrentes, bem como economizar recursos do sistema. Em um ambiente multithread, um nico processo pode suportar mltiplos threads, cada qual associado a uma parte do cdigo da aplicao.
7

3 Perodo SI 2009

SISTEMAS OPERACIONAIS

http://sidneyjunior.host.sk/

Threads compartilham o processador da mesma maneira que um processo, ou seja, enquanto um thread espera por uma operao de entrada e sada, outro thread pode ser executado. So fluxos de execuo que rodam dentro de um processo. Permitem que mltiplas execues ocorram no mesmo ambiente do processo com um grau de indepncia uma da outra. - Ambiente Monothread Um processo suporta apenas um programa no seu espao de endereamento. Aplicaes concorrentes so implementadas apenas com o uso de mltiplos processos independentes ou subprocessos. A utilizao de subprocessos e processos independentes permite dividir uma aplicao em partes que podem trabalhar de forma concorrente. Problemas neste tipo de implementao: Alto consumo de diversos recursos do sistema Compartilhamento do espao de endereamento. - Multithreads No existe a ideia de programas associados a processos. O processo neste ambiente tem pelo menos thread de execuo, mas pode compartilhar o seu espao de endereamento com inmeros outros threads. De forma simplificada, um thread pode ser definido como uma sub-rotina de um programa que pode ser executada de forma assncrona, ou seja, executada paralelamente ao programa chamador. Desta forma, um ambiente multithread possibilita a execuo concorrente de sub-rotinas dentro de um mesmo processo. No ambiente multithread cada processo pode responder a vrias solicitaes concorrentemente ou mesmo simultaneamente, caso haja mais de um processador. - Threads em modo usurio Threads em modo usurio so implementados pela aplicao e no pelo sistema operacional. Para isso deve existir uma biblioteca de rotinas que possibilite aplicao realizar tarefas como criao/eliminao de threads troca de mensagens e uma poltica de escalonamento. - Threads em modo kernel So implementados diretamente pelo ncleo do sistema operacional, atravs de chamadas as rotinas do sistema que oferecem todas as opes de gerenciamento e sincronizao. O sistema operacional sabe da existncia de cada thread e pode escalon-lo individualmente.
8

3 Perodo SI 2009

SISTEMAS OPERACIONAIS

http://sidneyjunior.host.sk/

- Threads em modo hbrido Combina as vantagens dos threads em modo usurio (TMU) e threads em modo kernel (TMK). Um processo pode ter vrios TMK e por sua vez pode ter vrios TMU. Ncleo do sistema reconhece os TMKs e pode escalon-los individualmente. Um TMU pode ser executado em um TMK e no momento seguinte pode acontecer o contrrio. Modelos de programao Exige que a comunicao e o compartilhamento de recursos entre diversos threads seja feito de forma sincronizada para evitar problemas de inconsistncias e travamentos.

Exerccios 8/5/9 1) Compare os pacotes de threads em modo kernel e modo usurio. Threads em modo usurio so implementados pela aplicao e no pelo sistema operacional. J os threads em modo kernel so implementados diretamente pelo ncleo do sistema operacional 2) Quais os problemas de aplicaes concorrentes desenvolvidas em ambientes monothreads. Os principais problemas de aplicaes concorrentes desenvolvidas em ambientes monothreads so o alto consumo de diversos recursos do sistema e o compartilhamento do espao de endereamento. 3) Como uma aplicao pode implementar concorrncia em ambiente monothread? Podem implementar apenas com o uso de mltiplos processos independentes ou subprocessos.

Sincronizao e comunicao entre processos - Em um sistema multiprogramvel e com apenas um processador, os processos alternam sua execuo segundo critrios de escalonamento de processos estebelecidos pelo SO. Em sistemas com mltiplos processadores, a possibilidade o paralelismo na execuo de instrues somente estende as vantagens que a programao concorrente proporciona. Exerccios 14/05/09 1) Defina concorrncia. Concorrncia quando o processador executa instrues em paralelo permitindo que diversas tarefas possam ser executadas simultaneamente. 2) O que arquitetura monoltica?
9

3 Perodo SI 2009

SISTEMAS OPERACIONAIS

http://sidneyjunior.host.sk/

Arquitetura monoltica uma aplicao formada por diversos mdulos que quando linkados, formam um programa executvel. 3) Defina threads. So fluxos de execuo que rodam dentro de um processador permitindo que mltiplas execues ocorram no mesmo ambiente do processo com um grau de independncia uma da outra. 4) Qual a diferena entre ambiente monothread e ambiente multithread? Monothread quando um processo suporta apenas um programa no seu espao de endereamento e o ambiente multithread quando um nico processo pode suportar mltiplos threads. 5) Explique o conceito de mquina virtual. Mquina virtual cria um nvel intermedirio entre o hardware e o sistema operacional criando diversas mquinas virtuais. Especificao de concorrncia em programas - Existem vrias notaes utilizadas para especificar a concottncia em programas (as partes de um programa que devem ser executadas concorrentemente). Tcnicas mais recentes tentam expressar a concorrncia no cdigo dos programas de uma forma mais clara e estruturada. Problemas de compartilhamento de recursos - Para a compreenso de como a sincronizao entre processos concorrentes, fundamental para a confiabilidade dos sistemas multiprogramveis. Um problema pode ser analisado a partir do programa conta_corrente, que atualiza o saldo bancrio de um cliente aps um lanamento de dbito ou crdito no arquivo de contas corrente arq_contas. Nestes arquivos so armazenados os saldos de todos os correntistas do banco. - O programa l o registro do cliente no arquivo (reg_cliente), l o valor a ser depositado ou retirado (valor_dep_ret) e, em seguida, atualiza o saldo no arquivo contas. Considerando processos concorrentes pertencentes a dois funcionrios do banco que atualizam o saldo de um mesmo cliente simultaneamente, a situao de compartilhamento de recurso pode ser analisada. O processo do primeiro funcionrio (caixa 1) l o registro do cliente que est sendo atualizado, para realizar outro lanamento dessa vez de crditos. program conta_corrente; begin read(arq_contas, reg_cliente); readln(valor_dep_ret); reg_cliente.saldo:= reg_cliente.saldo+valor_dep_ret; write(arq_contas, reg_clientes); end. Excluso mtua

10

3 Perodo SI 2009

SISTEMAS OPERACIONAIS

http://sidneyjunior.host.sk/

- Forma de se ter certeza de que, se um processo estiver usando uma varivel ou arquivo compartilhado, os demais sero impedidos de fazer a mesma coisa. - As partes do programa cujo processamento pode levar a ocorrncia de condies de corrida, so denominadas condies crticas, evitando-se que dois processos estejam processando suas sees crticas ao mesmo tempo, evitaria a ocorrncia de condies de corrida. Condies de corrida necessariamente tambm evitar outras situaes indesejadas: 1 Nenhum processo que esteja fora de sua regio crtica pode bloquear a execuo de outro processo. 2 Nenhum processo pode esperar indefinidamente para entrar em sua regio crtica.

11

Você também pode gostar