Buscar

SLIDES DAS AULAS DE SO

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

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando