Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
AULAS/Capítulo 2.pdf CapCapíítulo 2: Estruturas de Sistema Operacionaltulo 2: Estruturas de Sistema Operacional 2.2 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2005. Esse apresentação foi modificada por Cristiaino Costa (cac@unisinos.br). Basicamente, os slides originais foram traduzidos para o Português do Brasil. É possível acessar os slides originais em http://www.os-book.com Essa versão pode ser obtida em http://www.inf.unisinos.br/~cac The slides and figures in this presentation are copyright Silberschatz, Galvin and Gagne, 2005. This presentation has been modified by Cristiano Costa (cac@unisinos.br). Basically it was translated to Brazilian Portuguese. You can access the original slides at http://www.os-book.com This version could be downloaded at http://www.inf.unisinos.br/~cac Sobre a apresentaSobre a apresentaçção (ão (AboutAbout thethe slides)slides) 2.3 Silberschatz, Galvin and Gagne ©2005Operating System Concepts CapCapíítulo 2: Estruturas de Sistema Operacionaltulo 2: Estruturas de Sistema Operacional � Serviços do Sistema Operacional � Interface com o Usuário de Sistema Operacional � Chamadas de Sistema � Tipos de Chamadas de Sistema � Programas de Sistema � Projeto e Implementação de Sistema Operacional � Estruturas de Sistema Operacional � Máquinas Virtuais � Geração de Sistema Operacional � Inicialização do Sistema (Boot) 2.4 Silberschatz, Galvin and Gagne ©2005Operating System Concepts ObjetivosObjetivos � Descrever os serviços que um sistema operacional fornece aos usuários, processos e outros sistemas � Discutir as várias formas de estruturar um sistema operacional � Explicar como sistemas operacionais são instalados e customizados e como é o processo de inicialização (boot) 2.5 Silberschatz, Galvin and Gagne ©2005Operating System Concepts ServiServiçços do Sistema Operacionalos do Sistema Operacional � Um conjunto de serviços do sistema operacional fornece funções que são úteis ao usuário: � Interface com o Usuário – Quase todos os sistemas operacionais possuem uma interface com o usuário (UI) � Varia entre Interface de Linha de Comando (CLI), Interface Gráfica (GUI – Graphical User Interface), Batch (em lote) � Execução de Programas – O sistema deve estar apto a carregar um programa na memória e executá-lo, terminar a execução, seja normalmente ou de forma anormal (indicando o erro) � Operações de E/S – Um programa em execução pode requisitar E/S, o que poderá envolver um arquivo ou um dispositivo de E/S. � Manipulação de Sistemas de Arquivos – O sistema de arquivo é de especial interesse. Obviamente, programas necessitam ler e escrever arquivos e diretórios, criar e deletar, procurar, listar informações de arquivos e gerenciar permissões. 2.6 Silberschatz, Galvin and Gagne ©2005Operating System Concepts ServiServiçços do Sistema Operacional (Cont.)os do Sistema Operacional (Cont.) � Um conjunto de serviços do sistema operacional fornece funções que são úteis ao usuário (Cont): � Comunicações – Processos podem trocar informações, no mesmo computador ou entre computadores conectados em rede �Comunicação pode ser via memória compartilhada ou através sistema de troca de mensagens (pacotes movidos pelo SO) � Detecção de Erro – SO precisa estar constantemente informado de possíveis erros � Pode ocorrer na CPU e no hardware de memória, em dispositivos de E/S, no programa do usuário � Para cada tipo de erro, SO deve realizar a ação apropriada para garantir a computação correta e consistente � Facilidades de depuração (debugging) podem aumentar a eficiência com que usuários e programadores usam o sistema 2.7 Silberschatz, Galvin and Gagne ©2005Operating System Concepts ServiServiçços do Sistema Operacional (Cont.)os do Sistema Operacional (Cont.) � Outro conjunto de funções do SO existe para garantir a operação eficiente do próprio sistema através do compartilhamento de recursos � Alocação de Recursos – Quando múltiplos usuários ou múltiplos jobs executam concorrentemente, recursos devem ser alocados para cada um deles � Muitos tipos de recursos – Alguns (como ciclos de CPU, memória principal, e armazenamento de arquivos) deve possuir código especial de alocação, outros (como os dispositivos de E/S) devem possuir requisições gerais e código liberado. � Contabilização (Accounting) – Manter o registro da quantidade de uso dos recursos pelos usuários e dos tipos de recursos empregados � Proteção e Segurança – Os donos das informações armazenadas em um sistema computacional multi-usuário ou em rede podem querer controlar o uso da informação, processos concorrentes não devem interferir uns nos outros � Proteção envolve garantir que todo acesso aos recursos do sistema é controlado � Segurança no sistema contra estranhos requer autenticação de usuários e até mesmo defesa contra tentativas de acesso inválidas de dispositivos de E/S externos � Se um sistema está protegido e seguro, precauções devem ser estabelecidas nele. Uma corrente é tão forte quanto o seu link mais fraco. 2.8 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Interface com o UsuInterface com o Usuáário de SO rio de SO -- CLICLI CLI (Command Line Interface – Interface de Linha de Comando) permite a entrada de comandos diretos � Algumas vezes implementada no kernel, outras por programas de sistemas � Algumas vezes várias alternativas implementadas – shells � Basicamente obtém um comando do usuário e o executa – Algumas vezes comandos internos, Algumas vezes somente nomes de programas (externos) » No último caso, a adição de novas características não requer modificação do shell 2.9 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Interface com o UsuInterface com o Usuáário de SO rio de SO -- GUIGUI � GUI – Graphical User Interface (Interface Gráfica com o Usuário) � Interface com área de trabalho amigável (User-friendly desktop) � Normalmente mouse, teclado e monitor � Ícones representando arquivos, programas, ações, etc. � Cliques no mouse em objetos da interface causam ações variadas (obter informações, opções, funções de execução, abertura de diretório – conhecido como pasta) � Inventado no Xerox PARC � Muitos sistemas hoje incluem tanto interface CLI como GUI � Microsoft Windows é GUI com CLI “command” shell � Apple Mac OS X tem a interface “Aqua” GUI com um kernel UNIX abaixo e shells disponíveis � Solaris é CLI com interfaces GUI opcionais (Java Desktop, KDE) 2.10 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Chamadas de SistemaChamadas de Sistema � Interface de programação aos serviços fornecidos pelo SO � Tipicamente escritos em uma linguagem de alto nível (C or C++) � Geralmente acessada por programas via uma API (Application Program Interface) do que diretamente pelo uso de chamadas de sistema � Três APIs mais comuns são Win32 API para Windows, POSIX API para sistemas baseados em POSIX (incluindo virtualmente todas as versões de UNIX, Linux, e Mac OS X), e Java API para a máquina virtual Java (JVM) � Por que utilizar APIs ao invés das chamadas de sistemas? (Observe que nomes de chamadas de sistemas utilizadas neste texto são genéricas) 2.11 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Exemplos de Chamadas de SistemaExemplos de Chamadas de Sistema � Seqüência de chamadas de sistema para copiar o conteúdo de um arquivo em outro 2.12 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Exemplo de API PadrãoExemplo de API Padrão � Considere a função ReadFile() na � Win32 API— una função para ler de um arquivo � Uma descrição dos parâmetros passados para ReadFile() � HANDLE file—o arquivo a ser lido � LPVOID buffer—um buffer no qual os dados serão lidos � DWORD bytesToRead—o número de bytes a ser lido para o buffer � LPDWORD bytesRead—o número de bytes lidos durante a última leitura � LPOVERLAPPED ovl—indidica se E/S sobreposto está sendo utilizado 2.13 Silberschatz, Galvin and Gagne ©2005Operating System Concepts ImplementaImplementaçção de Chamadas de Sistemaão de Chamadas de Sistema � Tipicamente, um número é associado com cada chamada de sistemas � A interface das chamadas de sistemas mantém uma tabela indexada de acordo com esses números � A interface das chamadas de sistemas evoca a chamada de sistemas pretendida no kernel do SO e retorna o status e quaisquer valores de retorno � O chamador não precisa saber nada sobre a implementação da chamada de sistemas � Só precisa obedecer a API e entender o que o SO irá realizar em resposta a chamada � Grande parte dos detalhes da interface do SO são escondidas dos programadores pela API �Gerenciado pela biblioteca de suporte a execução (conjunto de funções construídas em bibliotecas incluídas com o compilador) 2.14 Silberschatz, Galvin and Gagne ©2005Operating System Concepts API API –– Chamadas de Sistema Chamadas de Sistema –– RelaRelaçção com SOão com SO 2.15 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Exemplo de Biblioteca C PadrãoExemplo de Biblioteca C Padrão � Programa em C evocando a chamada de biblioteca printf(), que executa a chamada de sistemas write() 2.16 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Passagem de Passagem de ParametrosParametros nas Chamadas de Sistemanas Chamadas de Sistema � Seguidamente, mais informações são necessárias do que a simples identificação da chamada de sistemas desejada � O tipo exato e conjunto de informações varia de acordo com o SO e com a chamada � Três métodos gerais sáo usados para passar parâmetros ao SO � Mais simples: passar parâmetros em registradores � em alguns casos, pode existir mais parâmetros que registradores � Parâmetros armazenados em um bloco, ou tabela, na memória, e o endereço do bloco é passado como parâmetro em um registrador � Essa aboragem é utilizada pelo Linux e Solaris � Parâmetros colocados na pilha (empilhados / push) pelo programa e removidos (desempilhados / pop) desta pelo sistema operacional � Métodos de bloco e pilha não limitam o número ou tamanho dos parâmetros que estão sendo passados 2.17 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Passagem de Passagem de ParametrosParametros via Tabelavia Tabela 2.18 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Tipos de Chamadas de SistemaTipos de Chamadas de Sistema � Controle de processos � Gerenciamento de Arquivos � Gerenciamento de Dispositivos � Manutenção de Informações � Comunicações 2.19 Silberschatz, Galvin and Gagne ©2005Operating System Concepts execuexecuçção do MSão do MS--DOSDOS (a) Na carga do sistema (b) executando um programa 2.20 Silberschatz, Galvin and Gagne ©2005Operating System Concepts FreeBSDFreeBSD Executando VExecutando Váários Programasrios Programas 2.21 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Programas de SistemasProgramas de Sistemas � Programas de sistemas fornecem um ambiente conveniente para o desenvolvimento e execução de programas. Eles podem ser divididos em: � Manipulação de Arquivos � Informações (status) � Modificação de Arquivos � Suporte a Linguagens de Programação � Execução e carga de programas � Comunicações � Programas Aplicativos � Grande parte da visão do usuário de um sistema operacional é definida pelos programas de sistemas, e não pelas chamadas de sistemas 2.22 Silberschatz, Galvin and Gagne ©2005Operating System Concepts SolarisSolaris 10 10 dtracedtrace Seguindo Chamada de SistemasSeguindo Chamada de Sistemas 2.23 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Programas de SistemasProgramas de Sistemas � Fornecem um ambiente conveniente para desenvolvimento e execução de programas � Alguns deles são simples interfaces com o usuário para chamadas de sistemas; outros são consideravelmente mais complexos � Gerenciamento de Arquivos - Criar, deletar, copiar, renomear, imprimir, dump, listar, e manipular genericamente arquivos e diretórios � Status de informação � Alguns pedem ao sistema informações - data, hora, quantidade de memória disponível, espaço em disco, número de usuários � Outros fornecem informações detalhadas de desempenho, depuração e registros (logging) � Tipicamente, estes programas formatam e direcionam a saída para um terminal ou outro dispositivo de saída � Alguns sistemas implementam um registro- usado para armazenar e obter informações de configuração 2.24 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Programas de Sistemas (cont.)Programas de Sistemas (cont.) � Modificação de Arquivos � Editores de texto para criar e modificar arquivos � Comandos especiais para procurar conteúdos em arquivos e realizar transformações de texto � Suporte a Linguagens de Programação- Compiladores, montadores, depuradores e interpretadores algumas vezes fornecidos � Carga e execução de programas- Carregadores absolutos, relocadores, ligadores, carregadores de overlay, depuradores para linguagens de alto nível e de máquina � Comunicações- Fornecer mecanismos para criar conexões virtuais entre processos, usuários e sistemas computacionais � Permitir aos usuários enviar mensagens de uma tela para outra, navegar em páginas web, enviar mensagens de correio eletrônico, efetuar login remoto, transferir arquivos de uma máquina para outra 2.25 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Projeto e ImplementaProjeto e Implementaçção de Sistema Operacionalão de Sistema Operacional � Projeto e Implementação de SO não é um problema “solucionável”, entretanto algumas aproximações mostraram sucesso � Estrutura interna de diferentes Sistemas Operacionais podem variar muito � O começo é definir objetivos e especificações � Afetado pela escolha do hardware, tipo de sistema � Objetivos do Usuário e do Sistema � Objetivos do Usuário – o sistema operacional deve ser conveniente ao uso, fácil de aprender, confiável, seguro e rápido � Objetivos do Sistema – o sistema operacional deve ser fácil de projetar, implementar e manter; bem como ser flexível, confiável, livre de erros e eficiente 2.26 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Projeto e ImplementaProjeto e Implementaçção de Sistema Operacional (Cont.)ão de Sistema Operacional (Cont.) � Princípio importante para separar Política: O que será feito? Mecanismo: Como será feito? � Mecanismos determinam como fazer algo, políticas decidem o que será feito � A separação de política e mecanismo é um princípio muito importante. É possível obter máxima flexibilidade se decisões políticas possam ser realizadas posteriormente 2.27 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Estrutura Simples Estrutura Simples � MS-DOS – escrito para fornecer a maior funcionalidade no menor espaço � Não é dividido em módulos � Apesar do MS-DOS ter alguma estrutura, sua interface e seus níveis de funcionalidade não são bem separados 2.28 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Estrutura em Camadas do MSEstrutura em Camadas do MS--DOSDOS 2.29 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Estrutura em CamadasEstrutura em Camadas � Um sistema operacional é dividido em um número de camadas (ou níveis), casa uma construída no topo das camadas abaixo. A camada mais inferior (camada 0) é o hardware; A camada de mais alto nível(camada N) é a interface com o usuário. � Com modularidade, camadas são selecionadas de forma que cada uma use as funções (operações) e serviços somente das camadas de mais baixo nível. 2.30 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Sistema Operacional em CamadasSistema Operacional em Camadas 2.31 Silberschatz, Galvin and Gagne ©2005Operating System Concepts UNIXUNIX � UNIX – limitado pela funcionalidade do hardware, o sistema operacional UNIX original tinha estrutura limitada. O SO UNIX consiste de duas partes separáveis � Programas de Sistemas � O kernel �Consite de tudo abaixo da interface de chamadas de sistemas e acima do hardware físico � Fornece o sistema de arquivos, escalonamento da CPU, gerência de memória e outras funções do sistema operacional; um grande número de funções para um nível 2.32 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Estrutura do Sistema UNIXEstrutura do Sistema UNIX 2.33 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Estrutura Estrutura MicrokernelMicrokernel � Move tanto quanto possível do kernel para o espaço do “usuário” � Comunicação ocorre entre módulos em nível usuário usando troca de mensagens (message passing) � Benefícios: � Facilidade de estender um microkernel � Facilidade de portar o sistema operacional para novas arquiteturas � Mais confiabilidade (menos código está executando em modo kernel) � Mais seguro � Desvantagem: � Sobrecarga causada pela comunicação entre o modo usuário e o modo kernel 2.34 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Estrutura do Mac OS XEstrutura do Mac OS X 2.35 Silberschatz, Galvin and Gagne ©2005Operating System Concepts MMóódulosdulos � Grande parte dos sistemas operacionais modernos implementam módulos no kernel � Usa a abordagem orientada a objetos � Cada componente chave é separado � Cada módulo se comunica com outra através de interfaces conhecidas � Cada módulo é carregado no kernel quando necessário � Resumindo, similar à estrutura em camadas porém mais flexível 2.36 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Estrutura Modular do Estrutura Modular do SolarisSolaris 2.37 Silberschatz, Galvin and Gagne ©2005Operating System Concepts MMááquinas Virtuaisquinas Virtuais � Uma máquina virtual leva a abordagem em camadas ao extremo, para a sua conclusão lógica. Ela trata o hardware e o kernel do sistema operacional como se ambos fossem hardware. � Uma máquina virtual fornece uma interface idêntica a do puro hardware abaixo. � O sistema operacional cria a ilusão de múltiplos processos, cada um executando em seu próprio processador com sua própria memória (virtual). 2.38 Silberschatz, Galvin and Gagne ©2005Operating System Concepts MMááquinas Virtuais (Cont.)quinas Virtuais (Cont.) � Os recursos do hardware são compartilhados para criar as máquinas virtuais. � Escalonamento de CPU pode criar a aparência que o usuário possui seu próprio processador. � Sistema de Arquivos e Spooling podem fornecer leitores de cartões e impressoras de linha ambos virtuais. � Um termal de usuário normal e time-sharing serve como o console do operador da máquina virtual. 2.39 Silberschatz, Galvin and Gagne ©2005Operating System Concepts MMááquinas Virtuais (Cont.)quinas Virtuais (Cont.) (a) Nonvirtual machine (b) virtual machine Non-virtual Machine Virtual Machine 2.40 Silberschatz, Galvin and Gagne ©2005Operating System Concepts MMááquinas Virtuais quinas Virtuais (Cont.)(Cont.) � O conceito de máquina virtual fornece proteção completa dos recursos do sistema uma vez que cada máquina virtual está isolada de todas as outras. Esta isolação, entretanto, não permite compartilhamento direto de recursos. � Um sistema máquina virtual é o ambiente perfeito para pesquisa e desenvolvimento de sistemas operacionais. Desenvolvimento de sistema é feito na máquina virtual, ao invés do hardware físico e então na atrapalha o desenvolvimento normal do sistema. � O conceito de máquina virtual é difícil de implementar devido ao trabalho necessário para fornecer um duplicação exata da máquina física. 2.41 Silberschatz, Galvin and Gagne ©2005Operating System Concepts Arquitetura Arquitetura VMwareVMware 2.42 Silberschatz, Galvin and Gagne ©2005Operating System Concepts A MA Mááquina Virtual Java quina Virtual Java –– JVMJVM 2.43 Silberschatz, Galvin and Gagne ©2005Operating System Concepts GeraGeraçção de Sistema Operacionalão de Sistema Operacional � Sistemas Operacionais são projetados para executar em qualquer uma máquina de uma determinada classe; o sistema deve ser configurado para cada computador específico. � Programas SYSGEN obtém informações a respeito da configuração específica do hardware. � Booting – iniciar um computador carregando o kernel. � Bootstrap program – código armazenado em ROM que é capaz de localizar o kernel, carregá-lo na memória e iniciar sua execução. 2.44 Silberschatz, Galvin and Gagne ©2005Operating System Concepts InicializaInicializaçção do Sistema ão do Sistema –– BootBoot � Sistema operacional deve estar disponível ao hardware de maneira que este possa iniciá-lo � Pequena porção de código – bootstrap loader, localiza o kernel, carrega ele na memória e o inicia � Algumas vezes processo em dois passos no qual bloco de boot em localização fixa carrega o bootstrap loader � Quando o sistema é inicializado, execução começa em uma localização fixa de memória � Firmware usada para armazenar código de boot inicial Fim do CapFim do Capíítulo 2tulo 2 AULAS/ch12.pdf Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Chapter 12: Mass-Storage Systems 12.2 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Chapter 12: Mass-Storage Systems Overview of Mass Storage Structure Disk Structure Disk Attachment Disk Scheduling Disk Management Swap-Space Management RAID Structure Stable-Storage Implementation Tertiary Storage Devices 12.3 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Overview of Mass Storage Structure Magnetic disks provide bulk of secondary storage of modern computers Drives rotate at 60 to 250 times per second Transfer rate is rate at which data flow between drive and computer Positioning time (random-access time) is time to move disk arm to desired cylinder (seek time) and time for desired sector to rotate under the disk head (rotational latency) Head crash results from disk head making contact with the disk surface That’s bad Disks can be removable Drive attached to computer via I/O bus Busses vary, including EIDE, ATA, SATA, USB, Fibre Channel, SCSI, SAS, Firewire Host controller in computer uses bus to talk to disk controller built into drive or storage array 12.4 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Magnetic Disks Platters range from .85” to 14” (historically) Commonly 3.5”, 2.5”, and 1.8” Range from 30GB to 3TB per drive Performance Transfer Rate – theoretical – 6 Gb/sec Effective Transfer Rate – real – 1Gb/sec Seek time from 3ms to 12ms – 9ms common for desktop drives Average seek time measured or calculated based on 1/3 of tracks Latency based on spindle speed 1/(RPM * 60) Average latency = ½ latency (From Wikipedia) 12.5 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Magnetic Disk Performance Access Latency = Average access time = average seek time + average latency For fastest disk 3ms + 2ms = 5ms For slow disk 9ms + 5.56ms = 14.56ms Average I/O time = average access time + (amount to transfer / transfer rate) + controller overhead For example to transfer a 4KB block on a 7200 RPM disk with a 5ms average seek time, 1Gb/sec transfer rate with a .1ms controller overhead = 5ms + 4.17ms + 4KB / 1Gb/sec + 0.1ms = 9.27ms + 4 / 131072 sec = 9.27ms + .12ms = 9.39ms 12.6 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Moving-head Disk Mechanism 12.7 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Disk Structure Disk drives are addressed as large 1-dimensional arrays of logical blocks, where the logical block is the smallest unit of transfer The 1-dimensional array of logical blocks is mapped into the sectors of the disk sequentially Sector 0 is the first sector of the first track on the outermost cylinder Mapping proceeds in order through that track, then the rest of the tracks in that cylinder, and then through the rest of the cylinders from outermost to innermost Logical to physical address should be easy Except for bad sectors Non-constant # of sectors per track via constant angular velocity 12.8 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Disk Attachment Host-attached storage accessed through I/O ports talking to I/O busses SCSI itself is a bus, up to 16 devices on one cable, SCSI initiator requests operation and SCSI targets perform tasks Each target can have up to 8 logical units (disks attached to device controller) FC is high-speed serial architecture Can be switched fabric with 24-bit address space – the basis of storage area networks (SANs) in which many hosts attach to many storage units I/O directed to bus ID, device ID, logical unit (LUN) 12.9 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Storage Array Can just attach disks, or arrays of disks Storage Array has controller(s), provides features to attached host(s) Ports to connect hosts to array Memory, controlling software (sometimes NVRAM, etc) A few to thousands of disks RAID, hot spares, hot swap (discussed later) Shared storage -> more efficiency Features found in some file systems Snaphots, clones, thin provisioning, replication, deduplication, etc 12.10 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Storage Area Network Common in large storage environments Multiple hosts attached to multiple storage arrays - flexible 12.11 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Storage Area Network (Cont.) Vantagens Permite aumentar a capacidade de armazenamento, pois múltiplos servidores podem compartilhar a reserva de crescimento Acesso rápido a informação Permite aos servidores fazerem o boot diretamente pelo SAN, permitindo a rápida substituição de servidores defeituosos – aumentando assim a disponibilidade do sistema, tão almejada nos dias de hoje Permite o processo de recuperação de dados, pois o SAN pode replicar dados de vários servidores para uma área de armazenamento secundária. Aumenta a disponibilidade do sistema ao balancear a carga da rede, permitindo transferências de rápidas de grandes volumes de dados, reduz também a latência de I/O Desvantagens Elevado custo de implementação e de gestão Falta de um “standard”, para a sua implementação é necessário vários produtos de software e de hardware de diferentes vendedores, o que complica e aumenta o custo da implementação. 12.12 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Network-Attached Storage O NAS, é um dispositivo dedicado ao armazenamento de ficheiros dentro de uma rede disponibilizando o acesso aos dados aos clientes dessa rede. Basicamente o NAS é um computador conectado á rede com o objetivo e funcionalidade única de fornecer serviços de armazenamento de dados a outros dispositivos de rede. Network-attached storage (NAS) is storage made available over a network rather than over a local connection (such as a bus) Remotely attaching to file systems NFS and CIFS are common protocols Implemented via remote procedure calls (RPCs) between host and storage over typically TCP or UDP on IP network iSCSI protocol uses IP network to carry the SCSI protocol Remotely attaching to devices (blocks) 12.13 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Network-Attached Storage cont Vantagens Melhora o desempenho dos outros servidores na rede, pois o compartilhamento de ficheiros é feito exclusivamente pelo NAS, poupando trabalho aos outros servidores Permite aumentar a disponibilidade de dados usando clustering e RAID Promove a heterogeneidade, permitindo o acesso a clientes usando diferentes SO’s e arquitecturas Baixo custo, tanto de implementação como de gestão Desvantagens A principal desvantagem é o facto do NAS estar limitado pelo hardware, isto é, existe um limite de carga ate onde o servidor pode ser sujeito, quando atingir esse nível limitado pelo hardware, por exemplo pelo CPU, o NAS fica comprometido. Este problema em um sistema de servidores seria facilmente solucionado adicionando um servidor no cluster, enquanto que no NAS não é possível Uso intensivo do NAS diminui a performance da rede, prejudicando o resto dos clientes da rede É um sistema de armazenamento partilhado, o administrador tem que definir quotas para os utilizadores 12.14 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Disk Scheduling The operating system is responsible for using hardware efficiently — for the disk drives, this means having a fast access time and disk bandwidth Minimize seek time Seek time seek distance Disk bandwidth is the total number of bytes transferred, divided by the total time between the first request for service and the completion of the last transfer 12.15 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Disk Scheduling (Cont.) There are many sources of disk I/O request OS System processes Users processes I/O request includes input or output mode, disk address, memory address, number of sectors to transfer OS maintains queue of requests, per disk or device Idle disk can immediately work on I/O request, busy disk means work must queue Optimization algorithms only make sense when a queue exists Note that drive controllers have small buffers and can manage a queue of I/O requests (of varying “depth”) Several algorithms exist to schedule the servicing of disk I/O requests The analysis is true for one or many platters We illustrate scheduling algorithms with a request queue (0-199) 98, 183, 37, 122, 14, 124, 65, 67 Head pointer 53 12.16 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition FCFS Illustration shows total head movement of 640 cylinders 12.17 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition SSTF Shortest Seek Time First selects the request with the minimum seek time from the current head position SSTF scheduling is a form of SJF scheduling; may cause starvation of some requests Illustration shows total head movement of 236 cylinders 12.18 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition SSTF (Cont.) 12.19 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition SCAN The disk arm starts at one end of the disk, and moves toward the other end, servicing requests until it gets to the other end of the disk, where the head movement is reversed and servicing continues. SCAN algorithm Sometimes called the elevator algorithm Illustration shows total head movement of 208 cylinders But note that if requests are uniformly dense, largest density at other end of disk and those wait the longest 12.20 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition SCAN (Cont.) 12.21 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition C-SCAN Provides a more uniform wait time than SCAN The head moves from one end of the disk to the other, servicing requests as it goes When it reaches the other end, however, it immediately returns to the beginning of the disk, without servicing any requests on the return trip Treats the cylinders as a circular list that wraps around from the last cylinder to the first one Total number of cylinders? 12.22 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition C-SCAN (Cont.) 12.23 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition C-LOOK LOOK a version of SCAN, C-LOOK a version of C-SCAN Arm only goes as far as the last request in each direction, then reverses direction immediately, without first going all the way to the end of the disk Total number of cylinders? 12.24 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition C-LOOK (Cont.) 12.25 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Selecting a Disk-Scheduling Algorithm SSTF is common and has a natural appeal SCAN and C-SCAN perform better for systems that place a heavy load on the disk Less starvation Performance depends on the number and types of requests Requests for disk service can be influenced by the file-allocation method And metadata layout The disk-scheduling algorithm should be written as a separate module of the operating system, allowing it to be replaced with a different algorithm if necessary Either SSTF or LOOK is a reasonable choice for the default algorithm What about rotational latency? Difficult for OS to calculate How does disk-based queuing effect OS queue ordering efforts? 12.26 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Disk Management Low-level formatting, or physical formatting — Dividing a disk into sectors that the disk controller can read and write Each sector can hold header information, plus data, plus error correction code (ECC) Usually 512 bytes of data but can be selectable To use a disk to hold files, the operating system still needs to record its own data structures on the disk Partition the disk into one or more groups of cylinders, each treated as a logical disk Logical formatting or “making a file system” To increase efficiency most file systems group blocks into clusters Disk I/O done in blocks File I/O done in clusters Boot block initializes system The bootstrap is stored in ROM Bootstrap loader program stored in boot blocks of boot partition Methods such as sector sparing used to handle bad blocks 12.27 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Booting from a Disk in Windows 2000 12.28 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Swap-Space Management Swap-space — Virtual memory uses disk space as an extension of main memory Less common now due to memory capacity increases Swap-space can be carved out of the normal file system, or, more commonly, it can be in a separate disk partition (raw) Swap-space management 4.3BSD allocates swap space when process starts; holds text segment (the program) and data segment Kernel uses swap maps to track swap-space use Solaris 2 allocates swap space only when a dirty page is forced out of physical memory, not when the virtual memory page is first created File data written to swap space until write to file system requested Other dirty pages go to swap space due to no other home Text segment pages thrown out and reread from the file system as needed What if a system runs out of swap space? Some systems allow multiple swap spaces 12.29 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Data Structures for Swapping on Linux Systems 12.30 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition RAID Structure RAID – multiple disk drives provides reliability via redundancy Increases the mean time to failure Frequently combined with NVRAM to improve write performance RAID is arranged into six different levels 12.31 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition RAID (Cont.) Several improvements in disk-use techniques involve the use of multiple disks working cooperatively Disk striping uses a group of disks as one storage unit RAID schemes improve performance and improve the reliability of the storage system by storing redundant data Mirroring or shadowing (RAID 1) keeps duplicate of each disk Striped mirrors (RAID 1+0) or mirrored stripes (RAID 0+1) provides high performance and high reliability Block interleaved parity (RAID 4, 5, 6) uses much less redundancy RAID within a storage array can still fail if the array fails, so automatic replication of the data between arrays is common Frequently, a small number of hot-spare disks are left unallocated, automatically replacing a failed disk and having data rebuilt onto them 12.32 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition RAID Levels 12.33 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition RAID (0 + 1) and (1 + 0) 12.34 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition WORM Disks The data on read-write disks can be modified over and over WORM (“Write Once, Read Many Times”) disks can be written only once Thin aluminum film sandwiched between two glass or plastic platters To write a bit, the drive uses a laser light to burn a small hole through the aluminum; information can be destroyed by not altered Very durable and reliable Read-only disks, such ad CD-ROM and DVD, com from the factory with the data pre-recorded 12.35 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Hierarchical Storage Management (HSM) A hierarchical storage system extends the storage hierarchy beyond primary memory and secondary storage to incorporate tertiary storage — usually implemented as a jukebox of tapes or removable disks. Usually incorporate tertiary storage by extending the file system Small and frequently used files remain on disk Large, old, inactive files are archived to the jukebox HSM is usually found in supercomputing centers and other large installations that have enormous volumes of data. 12.36 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Speed Two aspects of speed in tertiary storage are bandwidth and latency. Bandwidth is measured in bytes per second. Sustained bandwidth – average data rate during a large transfer; # of bytes/transfer time Data rate when the data stream is actually flowing Effective bandwidth – average over the entire I/O time, including seek() or locate(), and cartridge switching Drive’s overall data rate 12.37 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Speed (Cont.) Access latency – amount of time needed to locate data Access time for a disk – move the arm to the selected cylinder and wait for the rotational latency; < 35 milliseconds Access on tape requires winding the tape reels until the selected block reaches the tape head; tens or hundreds of seconds Generally say that random access within a tape cartridge is about a thousand times slower than random access on disk The low cost of tertiary storage is a result of having many cheap cartridges share a few expensive drives A removable library is best devoted to the storage of infrequently used data, because the library can only satisfy a relatively small number of I/O requests per hour 12.38 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Cost Main memory is much more expensive than disk storage The cost per megabyte of hard disk storage is competitive with magnetic tape if only one tape is used per drive The cheapest tape drives and the cheapest disk drives have had about the same storage capacity over the years Tertiary storage gives a cost savings only when the number of cartridges is considerably larger than the number of drives 12.39 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Price per Megabyte of DRAM From 1981 to 2004 12.40 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Price per Megabyte of Magnetic Hard Disk From 1981 to 2004 12.41 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Price per Megabyte of a Tape Drive From 1984-2000 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition End of Chapter 12 AULAS/ch13br [Modo de Compatibilidade].pdf Capítulo 13: Sistemas de E/S Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2009. Esse apresentação foi modificada por Cristiano Costa (cac@unisinos.br). Basicamente, os slides originais foram traduzidos para o Português do Brasil. É possível acessar os slides originais em http://www.os-book.com Essa versão pode ser obtida em http://www.inf.unisinos.br/~cac 13.2 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition The slides and figures in this presentation are copyright Silberschatz, Galvin and Gagne, 2009. This presentation has been modified by Cristiano Costa (cac@unisinos.br). Basically it was translated to Brazilian Portuguese. You can access the original slides at http://www.os-book.com This version could be downloaded at http://www.inf.unisinos.br/~cac Capítulo 13: Sistema de E/S Hardware de E/S Interface de E/S do Aplicativo Subsistema de E/S do Kernel Transformando Requisições de E/S para Operações de Hardware Fluxos (Streams) Desempenho 13.3 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Objetivos Explorar a estrutura de um subsistema de E/S de um Sistema Operacional Discutir os princípios de E/S de hardware e sua complexidade Fornecer detalhes dos aspectos de desempenho do hardware e software de E/S 13.4 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Hardware de E/S Variedade incrível de dispositivos de E/S Conceitos Comuns Porta Barramento (encadeado / daisy chain ou acesso direto compartilhado) Controlador (host adapter) 13.5 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Instruções de E/S controlam dispositivos Dispositivos tem endereços, usados por Instruções diretas de E/S E/S Mapeado na memória Uma estrutura típica do Barramento do PC 13.6 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Localização de Portas de Dispositivos de E/S nos PCs (parcial) 13.7 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Polling (Sondagem) Determina o estado de dispositivos Pronto para receber comandos Ocupado Erro Ciclo de Espera Ocupada para esperar por E/S do dispositivo 13.8 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Ciclo de Espera Ocupada para esperar por E/S do dispositivo Interrupções Linha de Requisição de Interrupção da CPU ativada por dispositivos de E/S Manipulador de Interrupção (Interrupt handler) recebe interrupções Mascaramento para ignorar ou atrasar algumas interrupções 13.9 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Vetor de Interrupção redireciona interrupção para manipulador correspondente Baseado em prioridade Algumas sem mascaramento Mecanismo de interrupção também usado para exceções Ciclo de E/S dirigido por Interrupção 13.10 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Tabela de Eventos do Processador Intel Pentium 13.11 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Acesso Direto a Memória Usado para evitar E/S programável para um grande movimento de dados Necessita de controladora de DMA Bi-passa CPU para transferir dados diretamente entre o dispositivo de E/S e a memória 13.12 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition E/S e a memória Seis passos para realizar transferência DMA 13.13 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Interface de E/S da Aplicação Chamadas de sistema de E/S encapsulam comportamentos de dispositivos em classes genéricas Camada de driver de dispositivo esconde diferenças entre controladoras de E/S do kernel Dispositivos variam em diversas dimensões Fluxo de Caracteres ou bloco Acesso seqüencial ou aleatório 13.14 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Acesso seqüencial ou aleatório Compartilhável ou dedicado Velocidade de Operação Leitura/escrita, somente leitura, or somente escrita Estrutura de E/S do Kernel 13.15 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Características de Dispositivos de E/S 13.16 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Dispositivos de Bloco e Caractere Dispositivos de Bloco incluem drives de disco Comandos incluem read, write, seek Acesso de E/S bruto (raw) ou por sistema de arquivos Acesso de arquivos mapeados na memória possível Dispositivos Caractere incluem teclado, mouse, porta serial Comandos incluem 13.17 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Comandos incluem get, put Bibliotecas em camadas acima permitem edição em linha Dispositivos de Rede Variam suficientemente de bloco e caractere para ter sua própria interfacee Unix e Windows NT/9x/2000 incluem interface socket Separa protocolo de rede de operação em rede Inclui funcionalidade select Abordagens variam muito (pipes, FIFOs, streams, queues, mailboxes) 13.18 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Abordagens variam muito (pipes, FIFOs, streams, queues, mailboxes) Clocks e Timers Fornece a hora atual, tempo decorrido, cronômetro Timer de Intervalo Programável usado para cronometrar tempo, interrupções periódicas ioctl (no UNIX) cobre aspectos particulares de E/S tais como clocks e timers 13.19 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition E/S Bloqueante e Não-bloqueante Bloqueante - processo suspendido até o E/S completar Fácil de usar e entender Insuficiente para algumas necessidades Não-bloqueante - chamada de E/S retorna tão logo possível Interface com Usuário, copia de dados (E/S bufferizado) Implementado via multi-threading 13.20 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Implementado via multi-threading Retorna rápido com contagem de bytes lido ou escrito Asíncrono - processo executa enquanto E/S executa Difícil de Usar Subsistema de E/S sinaliza processos quando E/S completa Dois Métodos de E/S 13.21 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Synchronous Asynchronous Subsistema de E/S do Kernel Escalonamento Algumas requisições de E/S são ordenadas por fila de cada dispositivo Alguns SOs tentam justiça Bufferização - armazena dado na memória enquanto está transferindo entre dispositivos Para lidar com diferença de velocidade entre dispositivos 13.22 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Para lidar com diferença de velocidade entre dispositivos Para lidar com a diferença de tamanho da transferência Para manter a “semântica da cópia” Tabela de Status de Dispositivos 13.23 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Taxas de Transferência de Dispositivos na Sun Enterprise 6000 13.24 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Subsistema de E/S do Kernel Caching - memória rápida mantém cópia dos dados Sempre somente uma cópia Chave para o desempenho Spooling - guarda saida para um dispositivo Se dispositivo pode atender somente uma requisição por vez Ex.: impressão 13.25 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Ex.: impressão Reserva de Dispositivo - fornece acesso exclusivo para um dispositivo Chamada de Sistemas para alocação e desalocação Cuidadar com possíveis impasses (deadlocks) Manipulação de Erros SO pode recuperar de uma leitura de disco, disponibilidade de dispositivo, falhas transientes de escrita Grande parte retornam um número de erro ou código quando a requisição de E/S falha Rastros (logs) de erros de sistemas armazenam relatórios de problemas 13.26 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Proteção de E/S Processo do usuário pode acidentalmente ou propositalmente tentar interromper a operação normal via instruções ilegais de E/S Todas as instruções de E/S são definidas como privilegiadas E/S deve ser realizado por chamadas de sistemas Mapeamento de memória e localização em memória de portas de E/S devem ser protegidos também 13.27 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Uso de uma Chamada de Sistema para Realizar E/S 13.28 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Estruturas de Dados do Kernel O Kernel mantém informações de estado para componentes de E/S, incluindo tabelas de arquivos abertos, conexões de rede, estados de dispositivos de caractere Estruturas de dados muito, muito complexas para rastrear buffers, alocações de memória, blocos modificados (“dirty”) 13.29 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Alguns usam métodos orientados a objetos e troca de mensagens para implementar E/S Estrutura de E/S do Kernel UNIX 13.30 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Requisições de E/s para Operações de HW Considere a leitura de um arquivo do disco por um processo: Determinar dispositivo que detém o arquivo Traduzir nome para representação no dispositivo Ler dados fisicamente do disco no buffer Tornar dados disponíveis para processo requisitante Retornar controle ao processo 13.31 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Retornar controle ao processo Ciclo de Vida de um Requisição de E/S 13.32 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Fluxos (STREAMS) STREAM – um canal de comunicação bi-direcional (full-duplex) entre um processo em nível de usuário e um dispositivo no Unix System V e posterior Uma STREAM consiste de: - Stream head interfaceia com o processo do usuário - Driver end interfaceia com o dispositivo 13.33 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition - Driver end interfaceia com o dispositivo - zero ou mais módulos STREAM entre eles. Cada módulo contém uma fila de leitura e uma fila de escrita Troca de mensagem é usada para comunicar entre filas A Estrutura de uma STREAM 13.34 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Desempenho E/S é um fator importante no desempenho do sistema: Demanda CPU para executar driver de dispositivo, código de E/S do kernel Trocas de Contextos devido a interrupções Copias de dados Tráfego de Rede especialmente estressante 13.35 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Tráfego de Rede especialmente estressante Comunicações entre Computadores 13.36 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Melhorando Desempenho Reduzir o número de trocas de contexto Reduzir a cópia de dados Reduzir interrupções através do uso de transferências maiores, controladores inteligentes, polling 13.37 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition User DMA Equalizar desempenho de CPU, memoria, barramento e E/S para maior vazão Progressão da Funcionalidade de Dispositivos 13.38 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Fim do Capítulo 13 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition AULAS/ch10br [Modo de Compatibilidade].pdf Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Capítulo 10: Interface de Sistemas de Arquivos 10.2 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2009. Esse apresentação foi modificada por Cristiano Costa (cac@unisinos.br). Basicamente, os slides originais foram traduzidos para o Português do Brasil. É possível acessar os slides originais em http://www.os-book.com Essa versão pode ser obtida em http://www.inf.unisinos.br/~cac The slides and figures in this presentation are copyright Silberschatz, Galvin and Gagne, 2009. This presentation has been modified by Cristiano Costa (cac@unisinos.br). Basically it was translated to Brazilian Portuguese. You can access the original slides at http://www.os-book.com This version could be downloaded at http://www.inf.unisinos.br/~cac 10.3 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Capítulo 10: Interface de Sistemas de Arquivos Conceito de Arquivo Métodos de Acesso Estrutura de Diretórios Montagem de Sistema de Arquivos Compartilhamento de Arquivos Proteção 10.4 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Objetivos Explicar a função de sistemas de arquivos Descrever a interface para sistemas de arquivos Discutir questões de projeto de sistemas de arquivos, incluindo métodos de acesso, compartilhamento de arquivos, travamento (lock) de arquivos e estruturas de diretórios Explorar a proteção de sistemas de arquivos 10.5 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Conceito de Arquivo Espaço de endereçamento lógico contíguo Tipos: Dados numérico caractere binário Programa 10.6 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Estrutura de Arquivos Nenhuma - seqüência de palavras, bytes Estrutura de registro simples Linhas Tamanho fixo Tamanho variável Estruturas Complexas Documentos formatados Arquivo de carga relocável Pode simular os dois últimos com o primeiro método inserindo caracteres especiais de controle. Quem decide: Sistema Operacional Programa 10.7 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Atributos de Arquivos Nome – única informação mantida em uma forma legível para o usuário. Identificador – identificador único (número) do arquivo pelo sistema de arquivos Tipo – necessária para sistemas que suportam diferentes tipos de arquivos. Localização – ponteiro para a posição do arquivo no dispositivo. Tamanho – tamanho atual do arquivo. Proteção – controla quem pode ler, escrever e executar. Hora, data, e identificação do usuário – dados para proteção, segurança e monitoração de uso. Informações sobre os arquivos são mantidas nas estruturas de diretórios, as quais são armazenadas no disco. 10.8 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Operações sobre Arquivos Arquivo é um tipo de dados abstrato Criar (create) Escrever (write) Ler (read) Reposicionamento de um arquivo (seek) Excluir (delete) Truncamento (truncate) Abrir[Fi] (open[Fi]) – procura na estrutura de diretório do disco pela entrada Fi, e move o conteúdo da entrada para a memória. Fechar[Fi] (close[Fi]) – move o conteúdo da entrada Fi na memória para a estrutura de diretório no disco. 10.9 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Arquivos Abertos Alguns dados são necessários para gerenciar arquivos abertos: Ponteiro de Arquivo: ponteiro para a última localização de leitura/escrita, por processo que tem um arquivo aberto Contador de arquivos abertos: contador do número de vezes que um arquivo é aberto - para permitir a remoção dos dados da tabela de arquivos abertos quando o último processo fechar o arquivo Localização no disco do arquivo: cache dos dados acessados Direitos de acesso: informações de modo de acesso por processo 10.10 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Travamento (Lock) de Arquivos Abertos Fornecido por alguns sistemas operacionais e sistemas de arquivos Media o acesso a um arquivo Mandatário ou consultivo: Mandatário – acesso é negado dependendo das travas mantidas e requeridas Consultivo – processos podem buscar por status das travas e decidir o que fazer 10.11 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Tipos de Arquivos – Nome, Extensão 10.12 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Métodos de Acesso Acesso Sequencial read next write next reset no read after last write (rewrite) Acesso Direto read n write n position to n read next write next rewrite n n = número do bloco relativo 10.13 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Acesso Sequencial a Arquivos 10.14 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Simulação de Acesso Sequencial em Acesso Direto 10.15 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Exemplo de Índice e Arquivos Relativos 10.16 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Estrutura de Diretório Uma coleção de nodos contendo informações sobre todos arquivos. F 1 F 2 F 3 F 4 F n Diretório Arquivos Tanto a estrutura de diretórios quando de arquivos residem no disco Cópias de segurança dessas duas estruturas são mantidas em fitas 10.17 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Estrutura de Disco Disco pode ser dividido em partitições Discos ou partições podem ser protegidas por RAID contra falhas Disco ou partição pode ser usada raw – sem um sistemas de arquivo, ou formatada com um sistema de arquivo Partições são conhecidas também como minidiscos ou slices Entidade que contém um sistema de arquivos é conhecido como volume Cada volume contendo um sistema de arquivos também mantém as informações deste em diretório do dispositivo ou índice do volume Assim como sistemas de arquivos de propósito geral existem muitos sistemas de arquivos de propósito específico, frequentemente todos dentro do mesmo sistema operacional ou computador 10.18 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Uma Organização típica de Sistemas de Arquivos 10.19 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Operações Realizadas em um Diretório Procurar por um arquivo Criar um Arquivo Excluir um Arquivo Listar um diretório Alterar o nome de um arquivo Percorrer o Sistema de Arquivos 10.20 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Organizar o Diretório (Logicamente) para obter Eficiência – localizar um arquivo rapidamente. Nomeação – conveniência para usuários. Dois usuários podem ter o mesmo nome para arquivos diferentes. O mesmo arquivo pode ter vários nomes diferentes. Agrupamento – agrupamento lógico de arquivos por propriedades (ex.: todos programas em Java, todos jogos, …) 10.21 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Diretório de um Nível Um único diretório para todos usuários Problema de nomeação Problema de agrupamento 10.22 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Diretório de dois Níveis Diretórios separados para cada usuário • Caminho (Path name) • Pode ter o mesmo nome de arquivo para diferentes usuários • Procura eficiente • Sem capacidade de agrupamento 10.23 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Diretório com Estrutura de Árvore 10.24 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Diretório com Estrutura de Árvore (Cont) Procura eficiente Capacidade de Agrupamento Diretório Corrente (diretório de trabalho) cd /spell/mail/prog type list 10.25 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Diretório com Estrutura de Árvore (Cont) Caminho absoluto ou relativo Criação de arquivos novos é feita no diretório corrente. Apagar um arquivo rm <file-name> Criação de novos subdiretórios é feita no diretório corrente. mkdir <dir-name> Exemplo: se o diretório corrente é /spell/mail mkdir count mail prog copy prt exp count Apagar “mail” apaga toda a subárvore com a raiz “mail” 10.26 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Diretórios com Estrutura de Grafo Acíclico Possui subdiretórios e arquivos compartilhados 10.27 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Diretórios com Grafo Acíclico (Cont.) Dois nomes diferentes (aliasing) Se dict apaga list ponteiro perigoso. Soluções: Lista de referências a arquivos, então só podemos apagar todas as referências. Tamanho variável dos registros é um problema. Lista de referências a arquivos, usando uma organização encadeada. Contador do número de referências (Entry-hold-count). Tipo de entrada de novo diretório Link – outro nome (ponteiro) para um arquivo existente Resolver o link – seguir o ponteiro para localizar o arquivo 10.28 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Diretórios com Estrutura de Grafo Geral 10.29 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Diretórios com Grafo Geral (Cont.) Como garantir a não ocorrência de ciclos? Permitir ligações para arquivos e não para subdiretórios. Coletor de Lixo (Garbage collection). Toda vez que uma nova ligação é adicionada usar um algoritmo de detecção de ciclo para determinar se é possível a ligação. 10.30 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Montagem de Sistemas de Arquivos Um sistema de arquivos deve ser montado (mount) antes de ser acessado Um sistema de arquivos não montado (ex. Fig. 11- 11(b)) é montado em um ponto de montagem (mount point) 10.31 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition (a) Existente (b) Partição não montada 10.32 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Ponto de Montagem 10.33 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Compartilhamento de Arquivos Compartilhamento de arquivos em sistemas multi-usuários é desejável Compartilhamento pode ser feita por um mecanismo de proteção Em sistemas distribuídos, arquivos podem ser compartilhados pela rede Network File System (NFS) é um método comum de compartilhamento de arquivos distribuídos 10.34 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Compartilhamento de Arquivos – Vários Usuários User IDs identificam os usuários, possibilitando permissões e proteções por usuário Group IDs permitem usuários estarem em grupos, possibilitando diretos de acessos por grupo 10.35 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Compartilhamento de Arquivos – Sistemas de Arquivos Remotos (Remote File Systems) Usa a rede para permitir acesso a arquivos entre sistemas Manualmente via programas como FTP Automaticamente, usando sistemas de arquivos distribuídos Semi-automaticamente via web modelo Cliente-servidor permite clientes montar sistemas de arquivos remotos de servidores Servidor pode atender múltiplos clientes Identificação do Cliente e usuário no cliente é insegura ou complicada NFS é o protocolo padrão cliente-servidor no UNIX para compartilhamento de arquivos CIFS é o protocolo padrão no Windows Chamadas ao sistemas de arquivo convencionais são traduzidas em chamadas remotas Sistemas distribuídos de Informações (distributed naming services) como LDAP, DNS, NIS, Active Directory implementam acesso unificado a informações necessárias para uso remoto 10.36 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Compartilhamento de Arquivos Modos de Falhas Sistemas de arquivos remotos adicionam novos modos de falhas, devido a falhas de rede e de servidor Recuperação de falhas pode envolver informações de estados sobre o status de cada requisição remota Protocolos sem estados (stateless) como o NFS incluem todas as informações em cada requisição, permitindo recuperação fácil ao custo de menor segurança 10.37 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Compartilhamento de Arquivos Semântica de Consistência Semântica de consistência especifica como múltiplos usuários estão acessando um arquivo compartilhado simultaneamente Similar aos algortimos de sincronização de processos do Cap. 7 Tendem a ser menos complexos devido ao E/S de disco e a latência de rede (para sistemas de arquivos remotos) Andrew File System (AFS) implementa semântica de compartilhamento complexa para arquivos remotos Unix file system (UFS) implementa: Escritas para um arquivo aberto são visíveis imediatamente para outros usuários do mesmo arquivo Ponteiro para arquivo compartilhado permite múltiplos usuários ler e escrever concorrentemente AFS tem semântica de sessão Escritas só são visíveis em sessões que começam após o arquivo ter sido fechado 10.38 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Proteção Dono/Criador do arquivo deve estar apto a controlar: O que pode ser feito Por quem Tipos de Acesso Leitura Escrita Execução Adição (Append) Exclusão Listagem 10.39 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Listas de Acesso e Grupos Modos de acesso: leitura (read), escrita(write), execução (execute) Três classes de usuários RWX a) acesso de dono (owner) 7 1 1 1 RWX b) acesso de grupo (group) 6 1 1 0 RWX c) acesso público (public) 1 0 0 1 Peça para o administrador criar um grupo (nome único), digamos G, e adicionar alguns usuários ao grupo. Para um arquivo ou subdiretório particular (digamos game), defina um acesso apropriado. owner group public chmod 761 game Associe um grupo a um arquivo chgrp G game 10.40 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Gerencimaneto da Lista de Controle de Acesso no Windows XP 10.41 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Um exemplo de Listagem de Diretório no Unix Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Fim do Capítulo 10 AULAS/ch7br [Modo de Compatibilidade].pdf Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Capítulo 7: Deadlocks 7.2 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2009. Esse apresentação foi modificada por Cristiano Costa (cac@unisinos.br). Basicamente, os slides originais foram traduzidos para o Português do Brasil. É possível acessar os slides originais em http://www.os-book.com Essa versão pode ser obtida em http://www.inf.unisinos.br/~cac The slides and figures in this presentation are copyright Silberschatz, Galvin and Gagne, 2009. This presentation has been modified by Cristiano Costa (cac@unisinos.br). Basically it was translated to Brazilian Portuguese. You can access the original slides at http://www.os-book.com This version could be downloaded at http://www.inf.unisinos.br/~cac 7.3 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Capítulo 7: Deadlock (Deadlocks) O Problema do Deadlock Modelo de Sistema Caracterização de Deadlock Métodos para Manipular Impasses Prevenção de Deadlock Evitar Ocorrência de Deadlock Detecção de Deadlock Recuperação de Situação de Deadlock 7.4 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Objetivos do Capítulo Desenvolver a descrição de um Deadlock, o qual impede um conjunto de processos concorrentes de completar suas tarefas Apresentar alguns métodos diferentes para prevenir ou evitar impasses em um sistema computacional. 7.5 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition O Problema do Deadlock Um conjunto de processos bloqueados cada um detendo um recurso e esperando para adquirir um recurso detido por outro processo no conjunto. Exemplo Sistema tem 2 unidades de disco. P1 e P2 detêm uma unidade de disco e necessitam de outra. Exemplo semáforos A e B, iniciados em 1 P0 P1 wait (A); wait(B) wait (B); wait(A) 7.6 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Exemplo do Cruzamento da Ponte Tráfego somente em uma direção. Cada seção da ponte pode ser vista como um recurso. Se ocorre um Deadlock, ele pode ser resolvido se um carro retorna de ré (preempta recurso e desfaz operação - rollback). Vários carros podem ter que retornar (dar ré) na ocorrência de Deadlock. Starvation (abandono) é possível. Nota – maioria dos SOs não previne ou trata Deadlocks 7.7 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Modelo de Sistemas Tipos de Recursos R1, R2, . . ., Rm ciclos de CPU, espaços de memória, dispositivos de E/S Cada tipo de recurso Ri tem Wi instâncias. Cada processo utiliza um recurso da seguinte forma: requisição uso liberação 7.8 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Caracterização de Deadlock Exclusão Mútua: somente um processo de cada vez pode usar um recurso. Posse e Espera: um processo que está usando pelo menos um recurso e esperando que outros recursos, que estão nesse instante sendo usados por outros processos, sejam alocados para seu uso. Inexistência de preempção: um recurso só pode ser liberado voluntariamente pelo processo ao qual está alocado depois que o processo terminar de usá-lo. Espera circular: deve existir um conjunto {P0, P1, …, P0} de processos em espera, tal que P0 esteja esperando por um recurso alocado a P1, P1 que esteja esperando por um recurso alocado a P2, …, Pn–1 que esteja esperando por um recurso alocada a Pn, e P0 esteja esperando por um recurso alocado a P0. Deadlock pode ocorrer se quatro condições são satisfeitas simultaneamente. 7.9 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Grafo de Alocação de Recursos V está particionado em dois tipos: P = {P1, P2, …, Pn}, conjunto que consiste de todos os processos no sistema. R = {R1, R2, …, Rm}, conjunto que consiste de todos os tipos de recursos do sistema. Arco de requisição – arco dirigido P1 Rj Arco de alocação – arco dirigido Rj Pi Um conjunto de vértices V e de arcos (edges) E. 7.10 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Grafo de Alocação de Recursos (Cont.) Processos Tipo de Recurso com 4 instâncias Pi solicita uma instância de Rj Pi tem alocado uma instância de Rj Pi Pi Rj Rj 7.11 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Exemplo de Grafo de Alocação de Recursos 7.12 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Grafo de Alocação de Recursos com Deadlock 7.13 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Grafo de Alocação de Recursos com um Ciclo, Mas sem Deadlock 7.14 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Fatos Básicos Se um grafo não contém ciclos não há Deadlock. Se um grafo contém um ciclo Se existe somente uma instância por tipo de recurso, então há Deadlock. Se existem várias instâncias por tipo de recurso, ocorre a possibilidade de Deadlock. 7.15 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Métodos de Tratar Impasses Garantir que o sistema nunca entrará em estado de Deadlock. Permitir ao sistema entrar em estado de Deadlock e então recuperar. Ignorar o problema e fingir que Deadlock nunca ocorrem no sistema; usado pela maior parte dos sistemas operacionais, incluindo o UNIX. 7.16 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Prevenção de Deadlock Exclusão mútua – não é necessária para recursos compartilháveis; deve ocorrer para recursos não compartilháveis. Posse e Espera – deve garantir que sempre que um processo requerer um recurso, ele não esteja de posse de nenhum outro recurso. Exigir que um processo faça a requisição de recursos e tenha todos os recursos alocados antes do início da execução, ou permitir que processos façam requisição de recursos somente quando não possuírem nenhum. Baixa utilização de recursos; possibilidade de abandono (starvation). Restringir as formas em que as requisições podem ser feitas. 7.17 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition Prevenção de Deadlock (Cont.) Inexistência de Preempção – Se um processo que está detendo algum recurso requerer outro recurso que não pode ser imediatamente alocado a ele, então todos os recursos correntemente alocados a este processo são liberados. Recursos preemptados são
Compartilhar