Baixe o app para aproveitar ainda mais
Prévia do material em texto
DATA CONTEUDO 26/fev APRESENTAÇÃO DA MATÉRIA E EMENTA 05/mar FERIADO CARNAVAL 12/mar sincronização de processos, gerenciamento de memória, memória virtual, escalonamento de processos, monoprocessamento e multiprocessamento. Gerenciamento de arquivos. Técnicas de e/s. Métodos de acesso. Arquitetura de sistemas cliente-servidor. Análise de desempenho. Sistemas operacionais distribuídos. Instalação e configuração de sistemas operacionais. 19/mar VISITA OPERADORA VIVO - SISTEMAS OPERACIONAIS PROPRIETÁRIOS 26/mar PROVA TEÓRICA 02/abr LABORATÓRIO 09/abr LABORATÓRIO 16/abr PROVA LABORATÓRIO 23/abr Prova de reposição 30/abr AVALIAÇÃO FINAL Plano de Ensino EMENTA Histórico e evolução, tipos de sistemas operacionais, conceitos de processos. Concorrência. Noções de sincronização de processos, gerenciamento de memória, memória virtual, escalonamento de processos, monoprocessamento e multiprocessamento. Gerenciamento de arquivos. Técnicas de e/s. Métodos de acesso. Arquitetura de sistemas cliente-servidor. Análise de desempenho. Sistemas operacionais distribuídos. Instalação e configuração de sistemas operacionais. Plano de Ensino OBJETIVOS O objetivo desta unidade de aprendizagem é trabalhar conceitos básicos sobre sistemas operacionais a fim de que o aluno se familiarize com a instalação e configuração de sistemas operacionais. Plano de Ensino HABILIDADES Conhecer os principais tipos de sistemas operacionais. Instalar, gerenciar e manter sistemas operacionais. Plano de Ensino METODOLOGIA DO DESENVOLVIMENTO Conteúdos: Sistemas operacionais: conceitos básicos, características de um sistemaoperacional, instalação e configuração de sistemas operacionais tipo windows e linux. Atividades formativas: instalação de sistemas operacionais Windows e Linux manutenção de sistemas operacionais Windows e Linux gerenciamento de sistemas operacionais Windows e Linux Ambiente de aprendizagem: Apresentações Biblioteca presencial e virtual Software Laboratório de informática Plano de Ensino AVALIAÇÃO De acordo com o Regimento Geral da UNISUL, Art. 89, o processo deavaliação do estudante será realizado por disciplina ou unidade deaprendizagem, com base nas competências por ele desenvolvidas e nafrequência. § 1º O aproveitamento será verificado através do desempenhoprogressivo do estudante, frente aos objetivos propostos no Plano deEnsino. § 2º Será considerado aprovado o estudante que obtiver frequênciaigual ou superior a 75% (setenta e cinco por cento) e aproveitamentoigual ou superior a: a) sete (7,0) numa escala de zero a dez (0 a 10), resultante do processoavaliativo, desenvolvido durante o ciclo letivo; b) seis (6,0) numa escala de zero a dez (0 a 10), quando submetido auma avaliação final por não ter alcançado o previsto na alínea "a" desteparágrafo. Plano de Ensino INSTRUMENTOS E CRITÉRIOS DE AVALIAÇÃO Instrumento de avaliação: Prova Prova de laboratório Critérios de avaliação: Clareza e objetividade, demonstração de conhecimento suficiente, capacidade desistematização das ideias, ausência de dispersão ou de redundância das informações, observância das regras da norma culta,pertinência das conclusões estabelecidas. Média semestral: A média do semestre será computada por: MF = (R / N) em que R = média aritmética da(s) prova(s) de laboratório e avaliação teórica das atividadesrealizadas em aula N = Número de laboratório e/ou avaliações teóricas MF = média final Observação: de acordo com a dinâmica da aula, poderemos utilizar métodos diferentes deavaliação. Plano de Ensino BIBLIOGRAFIA BÁSICA COMER, Douglas. Redes de computadores e internet:abrange transmissão de dados, ligação inter-redes, web e aplicações. 4. ed. Porto Alegre: Bookman, 2007. x, 632 p. + 1CD-ROM ISBN 9788560031368. SHAY, William A. Sistemas operacionais. São Paulo:Makron Books, 1996. xxi, 758 p. ISBN 85-346-0382-0. TANENBAUM, Andrew S. Sistemas operacionaismodernos. 3. ed. São Paulo: Pearson Prentice Hall, 2009.xvi, 653 p. ISBN 9788576052371. Plano de Ensino COMPLEMENTAR CERUTTI, Fernando Antônio. Comunicação de dados e redes de computadoes:livro didático. 3. ed. rev. e atual. Palhoça: UnisulVirtual, 2007. 313 p. COMER, Douglas. Interligação em rede com TCP/IP: volume I, princípios,protocolos e arquitetura. Rio de Janeiro: Campus, 2006. 435 p. ISBN 9788535220179. RTI : REDES, TELECOM E INSTALAÇÕES. São Paulo: Aranda,2001-. Mensal.ISSN 1808-3544. Disponível em : <http://www.arandanet.com.br>. Acesso em : 15 mar. 2002. STALLINGS, William. Data and computer communications. 7th ed. NewJersey: Prentice-Hall, 2004. xxi, 847 p. ISBN 0131006819. THOMAS, Thomas M. Segurança de redes: primeiros passos. Rio de Janeiro:Ciência Moderna, 2007. 395 p. ISBN 9788573936186. Plano de Ensino INFORMAÇÕES COMPLEMENTARES Prova de segunda chamada: O pedido de realização de prova de 2ª chamada deverá ser feito no protocolo acadêmico em prazo de até 48h úteis após a realização da respectiva prova de 1ª chamada. O deferimento do pedido cabe a coordenação do curso que utilizará critérios determinados pela gerência acadêmica em consonância com o Regimento Geral da UNISUL. OBS.: O professor destinará apenas uma data no calendário da disciplina para realização de prova de segunda chamada. Histórico e Evolução A Primeira Geração (1945-1955): Válvulas e Plugs Após muitos esforços mal sucedidos de se construir computadores digitaisantes da 2 Guerra mundial, em torno da metade da década de 1940 alguns sucessosforam obtidos na construção de máquinas de cálculo empregando-seválvulas e relés. Estas máquinas eram enormes, ocupando salas comracks que abrigavam dezenas de milhares de válvulas (e consumiamquantidades imensas de energia). Naquela época, um pequeno grupo de pessoas projetava, construia,programava, operava e mantinha cada máquina. Toda programação erafeita absolutamente em linguagem de máquina, muitas vezesinterligando plugs para controlar funções básicas da máquina.Linguagens de programação eram desconhecidas; sistemasoperacionais idem. Por volta de 1950 foram introduzidos os cartõesperfurados aumentando a facilidade de programação. Histórico e Evolução A Segunda Geração (1955-1965): Transistores e Processamento em Batch A introdução do transistor mudou radicalmente o quadro. Computadores tornaram-se confiáveis edifundidos (com a fabricação em série), sendo empregados em atividades múltiplas. Pela primeira vez, houve uma separação clara entre projetistas, construtores, operadores,programadores e pessoal de manutenção. Entretanto, dado seu custo ainda elevado, somente corporações e universidades de porte detinham recursos e infra-estrutura para empregar os computadores desta geração. Estas máquinas eram acondicionadas em salas especiais com pessoal especializado para sua operação. Para executar um job (programa), o programador produzia um conjunto de cartões perfurados (um cartão por comando do programa), e o entregava ao operador que dava entrada do programa no computador. Quando o computador completava o trabalho, o operador devolvia os cartões com a impressão dos resultados ao programador. A maioria dos computadores de 2ª geração foram utilizados para cálculos científicos e de engenharia. Estes sistemas eram largamente programados em FORTRAN e ASSEMBLY. Sistemas operacionais típicos2 eram o FMS (Fortran Monitor Systems) e o IBSYS (IBM's Operating Systems). Histórico e Evolução A Terceira Geração (1965-1980): Circuitos Integrados e Multiprogramação No início dos anos 60, a maioria dos fabricantes de computadores mantinham duas linhas distintas e incompatíveis de produtos. De um lado, havia os computadores científicos que eram usados para cálculos numéricos nas ciências e na engenharia. Do outro, haviam os computadores comerciais que executavamtarefas como ordenação de dados e impressão de relatórios, sendo utilizados principalmente por instituições financeiras. Histórico e Evolução A Quarta Geração (1980-): Computadores Pessoais e Estações deTrabalho Com o desenvolvimento de circuitos integrados em larga escala (LSI),chips contendo milhares de transistores em um centímetro quadradode silício, surgiu a era dos computadores pessoais e estações detrabalho. Enquanto os minicomputadores atendiam companhias euniversidades, os computadores pessoais e estações de trabalhopassaram a atender usuários individualmente. O aumento do potencial destas máquinas criou um vastíssimo mercadode software a elas dirigido. Como requisito básico, estes produtos (tantoaplicativos quanto o próprio sistema operacional) necessitavam seramigáveis, visando usuários sem conhecimento aprofundado decomputadores e sem intenção de estudar muito para utilizá-los. Esta foicertamente a maior mudança em relação ao OS/360 que era tãoobscuro que diversos livros foram escritos sobre ele. Dois sistemas operacionais tem dominado o mercado: MS-DOS (seguidodo MS-Windows) para os computadores pessoais e UNIX (com suasvárias vertentes) para as estações de trabalho. Histórico e Evolução http://www.tecmundo.com.br/s istema-operacional/2031-a- historia-dos-sistemas- operacionais-infografico-.htm Tipos de sistemas operacionais Tipos de sistemas operacionais Tipos de sistemas operacionais Tipos de sistemas operacionais Tipos de sistemas operacionais Um sistema operacional multiusuário permite que diversos usuários utilizem simultaneamente os recursos do computador. O sistema operacional deve se certificar de que as solicitações de vários usuários estejam balanceadas. Cada um dos programas utilizados deve dispor de recursos suficientes e separados, de forma que o problema de um usuário não afete toda a comunidade de usuários. Unix, Linux, VMS e sistemas operacionais mainframe como o MVS são exemplos de sistemas operacionais multiusuário. Tipo de Sistemas Operacionais Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais monousuário, monotarefa. O sistema operacional foicriado para que um único usuário possa fazer uma coisa porvez. O Palm OS dos computadores Palm é um bomexemplo de um moderno sistema operacional monousuárioe monotarefa. monousuário, multitarefa. Este tipo de sistemaoperacional é o mais utilizado em computadores de mesa elaptops. As plataformas Microsoft Windows e AppleMacOS são exemplos de sistemas operacionais quepermitem que um único usuário utilize diversos programasao mesmo tempo. Por exemplo, é perfeitamente possívelpara um usuário de Windows escrever uma nota em umprocessador de texto ao mesmo tempo em que fazdownload de um arquivo da Internet e imprime um e-mail. Conceitos de processos Um sistema operacional não executa somente os programas quepodemos ver. Imagine que os aplicativos que você roda reúnemdiversas instruções e comandos, porém, são os processos queefetivamente executam esses comandos. Isso significa que umúnico aplicativo pode ter vários processos relacionados a ele. Porexemplo, o navegador Google Chrome, que executa uma novatarefa a cada aba aberta. Essa medida permite que cada aba sejagerenciada individualmente e, mesmo que uma trave, as outrascontinuam trabalhando normalmente. Simplificando, os processos representam tarefas em execução,mas nem todas têm relação direta com algum aplicativo. Muitasdelas são executadas em pano de fundo e mantêm o sistematrabalhando - gerenciando redes, memória, disco, checagemantivírus, etc. Logo, podemos definir processos como softwaresque executam alguma ação e que podem ser controlados dealguma maneira, seja pelo usuário, pelo aplicativocorrespondente ou pelo sistema operacional. Concorrência INTERRUPÇÃO A interrupção foi o conceito que tornou possível a implementação da concorrência nos computadores, sendo o fundamento básico dos sistemas multiprogramáveis. É pelo mecanismo de interrupção que o sistema operacional sincroniza a execução de todas as suas rotinas e dos programas dos usuários, além dos dispositivos. É sempre gerada por algum evento externo ao programa. Concorrência Ao final da execução de cada instrução, a unidade decontrole verifica a ocorrência de algum tipo deinterrupção. Neste caso, o programa em execução éinterrompido e o controle desviado para uma rotinaresponsável por tratar o evento ocorrido, denominadarotina de tratamento de exceções. Para que o programa possa voltar a ser executado, oconteúdo dos registradores deve ser preservado a fimde que possa ser restaurado para a continuação doprograma. Para cada tipo de interrupção existe uma rotina detratamento associada. No momento da ocorrência deuma interrupção, o processador deve saber para qualrotina desviará o fluxo de execução. Noções de sincronização de processos. Processos não foram projetados para trabalhar emconjunto. Seus resultados independem das ações de outrosprocessos. Mas para gerar seus resultados eles necessitamde recursos do sitema operacional, como todos os outrosprocessos. Em programação concorrente, não é possível determinarquando e em que ordem os eventos irão ocorrer. Com issotorna-se difícil compartilhar recursos globais e alocarrecursos. Portanto é necessário um mecanismo paramanter a consistência dos dados. Corrupção dos dados: ocorre quando dois processos têmacesso a uma mesma estrutura de dados. Precisa-se de umprocesso de sincronização para que sempre o dadoescritos/lidos sejam os corretos. Noções de sincronização de processos. Como temos vários processos em ação paralelamente (concorrência), temos uma disputa pelos poucos recursos do sistema. Essa disputa pode levar a problemas de acesso indevido (exclusão mútua), starvation e deadlock. A sincronização dos processos serve para evitar essa disputa pelos recursos, também conhecida como “Condição de Corrida (Race Condition)”. Técnicas como Exclusão Mútua, Busy Wait e semáforo são utilizadas para garantir a sincronização de forma correta. Essas técnicas serão abordadas com mais detalhes ao longo do trabalho. Sincronização de Processos Exclusão Mútua Algoritmos de exclusão mútua são usados em programação concorrentepara evitar que um recurso em comum seja utilizado simultaneamente,como variáveis globais, por pedaços de código chamados seções críticas.Exemplos destes recursos são flags, contadores e queues, usados paracomunicação entre códigos que são executados concorrentes, comouma aplicação e seus tratadores de interrupção. Estes problemas sãorealmente sérios porque as threads podem ser paradas e recomeçadas aqualquer hora. Para ilustrar, suponha uma parte de código que está mudando um dadopor vários passos do programa, quando uma outra thread ativada porum imprevisível evento, inicia sua execução. Se esta segunda thread lereste dado, durante o processo de escrita, isto leva a um inconsistente eimprevisível estado. Se a segunda thread tentar sobrescrever o dado, oestado possivelmente não poderá ser recuperado. Estas seções críticasde código acessando dados compartilhados devem ser protegidas, paraque outros processos que tentem acessar estes dados não possam serexecutados até o final de sua utilização pelo processo “dono”. Sincronização de Processos Busy-waiting: Utilizando-se, por exemplo, uma variável compartilhada cujovalor pode ser manipulado (modificado e testado/test-and-set)através de uma primitiva indivisível, cria-se um modo simplespara a sincronização de processos concorrentes. Um processoquerendo entrar em uma região crítica deve executar estaprimitiva continuamente até conseguir permissão de entrada.São gastos ciclos de CPU enquanto se está testando a variável,caracterizando este método de sincronização como um exemplode busy-waiting, ou espera ocupada. Busy-waiting possui várias desvantagens,como por exemplo, ogasto supérfluo de CPU. Além disso, programas utilizando taisprimitivas são difíceis de entender, depurar e provar que estãocorretos, em virtude de serem implementados em baixo nível. Sincronização de Processos Semáforos Um semáforo é uma estrutura de dados que consiste em umnúmero inteiro e em uma fila que armazena descritores detarefas. O conceito de semáforos consiste na colocação deproteções em torno do código que acessa esta estruturapara oferecer acesso limitado aos dados. Em geral, aestrutura de dados é uma fila, funcionando em regime deprimeiro a entrar, primeiro a sair. O semáforo tem umavariável especial protegida (ou tipo abstrato de dados) quetem como função o controle de acesso a recursoscompartilhados (por exemplo, um espaço dearmazenamento) num ambiente multitarefa. A invençãodesse tipo de variável é atribuída a Edsger Dijkstra, em 1965e foi utilizado inicialmente no sistema operacional THEOS. Gerenciamento de memória Gerenciamento de memória Memória virtual Memória virtual Escalonamento de processos Escalonamento de processos Monoprocessamento Monoprocessamento Multiprocessamento Multiprocessamento Gerenciamento de arquivos A forma como a controladora vê os dados armazenados nos discos magnéticos pode ser bem diferente da forma como vê o sistema operacional. Enquanto a controladora enxerga as trilhas, setores e cilindros e se esforça para localizálas nos discos magnéticos usando as marcações servo, o sistema operacional enxerga apenas uma longa lista de endereços, chamados de clusters ou blocos. Quando ele precisa de um determinado arquivo, ele não se preocupa em tentar descobrir em qual trilha e setor ele está armazenado. Ele apenas envia o endereço do bloco que deve ser lido e a controladora se encarrega do restante. O fato da controladora "esconder" as informações sobre a organização interna dos discos, é o que faz com que os sistemas operacionais sejam compatíveis com todos os HDs do mercado, sem que seja necessário instalar drivers completos para cada um. Quando acontece de uma versão antiga do Windows, ou de alguma distribuição Linux não detectar seu HD durante a instalação, quase sempre o problema é causado pela falta de drivers para a interface IDE ou a controladora SATA do chipset da placa mãe, e não para o HD em si. A primeira versão do Windows XP, por exemplo, não oferecia suporte nativo à maioria das controladoras SATA, de forma que você precisava fornecer um disquete com drivers durante a instalação. Gerenciamento de arquivos Pode ser definido como o conjunto de estruturas lógicas que permitem ao sistema operacional organizar e otimizar o acesso ao HD. Conforme cresce a capacidade dos discos e aumenta o volume de arquivos e acessos, esta tarefa torna-se mais e mais complicada, exigindo o uso de sistemas de arquivos cada vez mais complexos e robustos. Existem diversos sistemas de arquivos diferentes, que vão desde sistemas simples como o FAT16, que utilizamos em cartões de memória, até sistemas como o NTFS, EXT3 e ReiserFS, que incorporam recursos muito mais avançados. Gerenciamento de arquivos A formatação do HD é feita em duas etapas. A primeira é o particionamento, onde você define em quantas partições o HD será dividido e o tamanho de cada uma. Mesmo que você não pretenda instalar dois sistemas em dual boot, é sempre interessante dividir o HD em duas partições, uma menor, para o sistema 0peracional, e outra maior, englobando o restante do disco para armazenar seus arquivos. Com isso, você pode reinstalar o sistema quantas vezes precisar, sem o risco de perder junto todos os seus arquivos. Técnicas de entrada e saída Métodos de acesso Arquitetura de sistemas cliente- servidor Arquitetura de sistemas cliente- servidor O modelo cliente-servidor, em computação, é uma estrutura deaplicação distribuída que distribui as tarefas e cargas de trabalhoentre os fornecedores de um recurso ou serviço, designadoscomo servidores, e os requerentes dos serviços, designados comoclientes. Geralmente os clientes e servidores comunicam através de umarede de computadores em computadores distintos, mas tanto ocliente quanto o servidor podem residir no mesmo computador. Um servidor é um host que está executando um ou mais serviçosou programas que compartilham recursos com os clientes. Umcliente não compartilha qualquer de seus recursos, mas solicitaum conteúdo ou função do servidor. Os clientes iniciam sessõesde comunicação com os servidores que aguardam requisições deentrada. Arquitetura de sistemas cliente- servidor A característica do modelo cliente-servidor, descreve a relação deprogramas numa aplicação. O componente de servidor fornece umafunção ou serviço a um ou mais clientes, que iniciam os pedidos deserviço. Funcionalidades como a troca de e-mail, acesso à internet ou acesso aum banco de dados, são construídos com base no modelo cliente-servidor. Por exemplo, um navegador web é um programa cliente, emexecução no computador do usuário, que acede às informaçõesarmazenadas num servidor web na internet. Usuários de serviçosbancários, acedendo do seu computador, usam um cliente web paraenviar uma solicitação para um servidor web num banco. Esseprograma pode, por sua vez, encaminhar o pedido para o seu próprioprograma de banco de dados do cliente que envia uma solicitação paraum servidor de banco de dados noutro computador do banco pararecuperar as informações da conta. O saldo é devolvido ao cliente debanco de dados do banco, que por sua vez, serve de volta ao clientenavegador exibindo os resultados para o usuário. Arquitetura de sistemas cliente- servidor O modelo cliente-servidor, tornou-se uma das idéias centrais de computação de rede. Muitos aplicativos de negócios, a serem escritos hoje, utilizam o modelo cliente-servidor. Cada instância de software do cliente pode enviar requisições a vários servidores. Por sua vez, os servidores podem aceitar esses pedidos, processá-los e retornar as informações solicitadas para o cliente. Embora este conceito possa ser aplicado por uma variedade de razões e para diversos tipos de aplicações, a arquitetura permanece fundamentalmente a mesma. Arquitetura de sistemas cliente- servidor Características do Cliente • Inicia pedidos para servidores; • Espera por respostas; • Recebe respostas; • Utiliza recursos da rede. Características do Servidor • Sempre espera por um pedido de um cliente; • Atende os pedidos e, em seguida, responde aos clientescom os dados solicitados; • Pode se comunicar com outros servidores para atender umasolicitação específica do cliente; • Fornece recursos de rede. Arquitetura de sistemas cliente- servidor Vantagens Na maioria dos casos, a arquitetura cliente-servidor permite queos papéis e responsabilidades de um sistema de computaçãopossam ser distribuídos entre vários computadoresindependentes que são conhecidos por si só através de uma rede.Isso cria uma vantagem adicional para essa arquitetura: maiorfacilidade de manutenção. Por exemplo, é possível substituir,reparar, atualizar ou mesmo realocar um servidor de seusclientes, enquanto continuam a ser a consciência e não afetadopor essa mudança; Todos os dados são armazenados nos servidores, que geralmentepossuem controles de segurança muito maiores do que a maioriados clientes. Os servidores podem controlar melhor o acesso arecursos, para garantir que apenas os clientes com credenciaisválidas possam aceder e alterar os dados. Arquitetura de sistemas cliente- servidor Desvantagens Clientes podem solicitar serviços, mas não podem oferecê-los para outros. Sobrecarregando o servidor, pois mais clientes mais informação que precisara de mais e mais banda; Um servidor poderá ficar sobrecarregado caso receba mais solicitações simultâneas dos clientes do que pode suportar.Sistemas operacionais distribuídos Bibliografia Básica COMER, Douglas. Redes de computadores e internet: abrange transmissão de dados, ligação inter-redes, web e aplicações. 4. ed. Porto Alegre: Bookman, 2007. x, 632 p. + 1 CD-ROM ISBN 9788560031368. SHAY, William A. Sistemas operacionais. São Paulo: Makron Books, 1996. xxi, 758 p. ISBN 85-346-0382-0. TANENBAUM, Andrew S. Sistemas operacionais modernos. 3. ed. São Paulo: Pearson Prentice Hall, 2009. xvi, 653 p. ISBN 9788576052371. Apostilas para estudo Disponibilizadas na internet em servidores de arquivos (Dropbox), o link será enviado por email aos alunos Link de apoio para instalação do linux e windows > http://www.youtube.com/watch?v=Y3OLWVov7Fc
Compartilhar