Logo Passei Direto
Buscar

Gerenciamento de entrada e saida aula 11

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

Prévia do material em texto

SISTEMAS 
OPERACIONAIS
Ramiro Córdova 
Júnior 
Gerenciamento 
de entrada e saída
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
 � Definir as características de hardware de entrada e saída.
 � Identificar as características de software de entrada e saída.
 � Reconhecer o conceito de deadlocks.
Introdução
Os recursos de um sistema operacional devem ser gerenciados de modo 
que o sistema funcione da maneira mais eficaz possível. Dentre os diversos 
recursos a serem gerenciados por um sistema operacional, temos os 
dispositivos de entrada e saída, que são indispensáveis na utilização de 
computadores.
Neste capítulo, você vai estudar os conceitos que envolvem o geren-
ciamento dos dispositivos de entrada e saída no contexto de sistemas 
operacionais. Para isso, conhecerá as características de hardware e software 
de entrada e saída e suas relações com o gerenciamento de recursos do 
sistema operacional, assim como reconhecerá o conceito de deadlocks 
e aprenderá como previni-los no desenvolvimento de sistemas.
Hardware de entrada e saída
O hardware de entrada e saída existe para permitir que os computadores 
consigam interagir com o mundo externo e com os dispositivos de memória. 
Também é comum que os dispositivos de entrada e saída sejam chamados 
de periféricos. Esses dispositivos podem ser categorizados em dispositivos 
orientados a bloco e dispositivos orientados a caractere.
Dispositivos de entrada e saída orientados a bloco
Esses dispositivos têm como característica o armazenamento de informações 
utilizando blocos com tamanho fixo, com endereços próprios. As operações 
de leitura ou escrita podem ser realizadas de maneira independente entre os 
blocos. Cada bloco possui seu próprio endereço e um tamanho que pode variar 
entre 512 e 32768 bytes.
Os exemplos mais comuns de dispositivos de entrada e saída orientados 
a bloco são os discos de armazenamento, como CDs, DVDs e pendrives. A 
Figura 1 apresenta o funcionamento de um dispositivo orientado a bloco.
Figura 1. Dispositivo orientado a bloco.
Dispositivos de entrada e saída orientados a caractere
Os dispositivos de entrada e saída orientados a caractere não utilizam a es-
trutura de blocos. Esses dispositivos recebem e enviam fluxo de caracteres 
sem endereçamento e sem realizar operações de posicionamento, limitando-se 
apenas a enviar ou receber uma sequência de caracteres.
Gerenciamento de entrada e saída2
Controladores de dispositivos de entrada e saída
Os chamados controladores de hardware de entrada e saída são componentes 
eletrônicos que atuam como interface de comunicação do dispositivo. Existem 
alguns componentes eletrônicos que podem funcionar como interface de co-
municação para mais de um dispositivo de entrada e saída. Por exemplo, uma 
controladora de discos SATA pode intermediar a comunicação entre diversos 
discos ao mesmo tempo — isso é uma situação corriqueira em computadores 
que possuem mais de um disco instalado. Também é possível utilizar um 
barramento de comunicação entre o processador e a memória para controlar 
um dispositivo de vídeo de alto desempenho, e a esse barramento podem estar 
conectados outros barramentos, como o USB.
A utilização de barramentos com controladores específicos para os dis-
positivos de entrada e saída é bastante comum e tem como objetivo principal 
otimizar a utilização do processador (UCP). Na Figura 2, podemos observar 
um exemplo de barramentos para dispositivos de entrada e saída.
Figura 2. Barramentos para dispositivos de entrada e saída.
Fonte: Produção Virtual (2013, documento on-line).
3Gerenciamento de entrada e saída
Um bom exemplo para o entendimento desse fluxo de informações via 
barramento e controladores de entrada e saída é a realização de uma operação 
de leitura no disco. Inicialmente, é realizada a leitura de uma sequência de bits 
no próprio disco, baseada no esquema de endereçamento do disco (número 
do setor, cilindro, etc.), seguida de um código de correção de erro. Feito isso, 
o controlador transforma o conjunto de bits lidos em um bloco de bytes e 
carrega essa informação em um buffer interno. Após a verificação de erro, o 
bloco pode ser copiado para a memória principal.
Com o objetivo de garantir que não seja necessário que o processador 
tenha que intermediar todas as comunicações com os controladores de dis-
positivos, existe um recurso que permite o acesso direto à memória por parte 
dos controladores. Esse recurso é gerenciado pelo controlador de acesso à 
memória (DMA), que informa a operação a ser realizada e qual endereço do 
controlador deve ser acessado. A Figura 3 apresenta o fluxo de funcionamento 
utilizando o recurso DMA.
Figura 3. Funcionamento do controlador DMA: (1) CPU programa controlador de DMA — o 
que transferir e para onde — e aciona controlador do disco. (2) DMA emite requisição de 
leitura do buffer ao controlador. (3) Dados são transferidos do buffer do controlador para a 
memória. (4) Controlador informa fim da transferência para a memória. (5) Repetem-se os 
passos 2,3 e 4, até que todos os dados tenham sido lidos. (6) DMA envia interrupção à CPU 
indicando o fim da transferência do bloco solicitado.
Fonte: Lima Junior (2010, documento on-line).
Gerenciamento de entrada e saída4
Software de entrada e saída
Uma das atribuições de um sistema operacional é prover serviços relacionados aos 
dispositivos de entrada e saída, ou seja, o código do sistema operacional deve ser 
organizado de forma eficaz, a fim de garantir a performance durante a utilização 
dos dispositivos. O software de entrada e saída é, normalmente, organizado em 
camadas, cada uma com seus níveis. As camadas dos níveis mais baixos ocultam 
algumas particularidades dos dispositivos relacionados às camadas de nível mais 
alto, que procuram abstrair informações para os desenvolvedores. A Figura 4 
apresenta a organização em camadas de software de entrada e saída.
Figura 4. Camadas de software de entrada e saída.
Fonte: Tanenbaum (2004). 
E/S nível de usuário
E/S independente do dispositivo
Hardware
Si
st
em
a 
op
er
ac
io
na
l Softw
are
Driver
SCSI
Driver
EIDE
Driver
rede
Driver
teclado
Driver
�oppy
Interface padrão para drivers de dispositivos (API)
O sistema operacional deve permitir que os programas possam utilizar o 
mesmo código para interagir com diversos dispositivos, como, por exemplo, 
discos rígidos, impressoras, monitores, etc. A independência entre os dispositi-
vos é responsabilidade do sistema operacional, que deve cuidar das diferenças 
entre as operações realizadas entre os dispositivos. A nomeação uniforme 
deve garantir o acesso a arquivos e dispositivos de maneira independente, e 
a comunicação entre eles não deve requerer que haja alterações nos nomes.
A manipulação dos erros deve ocorrer nas camadas mais próximas do 
hardware, de modo que os eles possam ser tratados nas camadas superiores. 
O sistema operacional deve garantir que as operações de entrada e saída sejam 
bloqueantes para os programas a nível de usuário, ou seja, elas só devem 
retornar após serem concluídas. As camadas de software de entrada e saída 
5Gerenciamento de entrada e saída
devem proporcionar a utilização de recursos de modo dedicado ou comparti-
lhado — nesse caso, gerenciando o uso de recursos em comum.
Controladores de dispositivos (drivers)
A camada de drivers é responsável pela parte de código de entrada e saída 
específica para o funcionamento de cada dispositivo. Os drivers fornecem à 
camada superior uma visão uniforme dos dispositivos a partir de uma interface 
de programação única. Por exemplo, um driver de uma controladora de disco 
recebe os pedidos e solicitações de acesso ao disco e realiza a operação levando 
em conta detalhes como setores, trilhas, cilindros e cabeças do disco; porém, 
esses detalhes não retornam, e sim o resultado da operação.
De um modo geral, pode-se dizer que os drivers são tradutores que atuam 
entre a linguagem de máquina e umalinguagem de mais alto nível. Os arquivos 
de drivers são específicos para cada sistema operacional e são constantemente 
atualizados pelos fabricantes de hardware.
Interação entre as camadas
As chamadas funções são o artifício utilizado para permitir a comunicação 
entre as camadas de software de entrada e saída. As interrupções do sistema 
operacional também atuam como auxiliares na interação entre essas camadas. 
A Figura 5 apresenta o funcionamento da comunicação entre as camadas.
Figura 5. Comunicação entre camadas.
Fonte: Adaptada de Guardia e Senger (2015, documento on-line).
Gerenciamento de entrada e saída6
Deadlocks
No que diz respeito a sistemas operacionais, quando várias tarefas concorrem 
para a utilização de um mesmo recurso, ocorrem os chamados deadlocks. 
Nessas situações conflitantes, o sistema entra em modo bloqueante e não 
realiza nenhuma das tarefas.
Os deadlocks devem ocorrer raramente em um sistema operacional; desse 
modo, muitos desenvolvedores adotam como estratégia ignorar o erro e con-
tinuar a execução como se nada tivesse acontecido. Em sistemas que optam 
por tratar dos deadlocks, normalmente, são adotadas tabelas com contagem 
de recursos disponíveis a fim de ordenar a sua utilização.
Um dos prejuízos sérios causados por um deadlock é a alocação desne-
cessária de recursos, que faz com que menos recursos sejam liberados para 
os demais processos. Além disso, podem ser formadas filas de liberação dos 
recursos envolvidos que podem causar instabilidades, como o travamento do 
sistema operacional.
Um dos recursos que pode auxiliar na concepção de sistemas com o objetivo 
de evitar deadlocks é a utilização de diagramas de processos e recursos. A 
Figura 6 apresenta um exemplo de diagrama baseado nas seguintes tabelas de 
alocação de recursos e de requisição de recursos (Quadros 1 e 2).
Figura 6. Diagrama processo x recurso.
Fonte: Jandl Junior (1999, p. 46).
7Gerenciamento de entrada e saída
Recurso Processo
X A
Y B
W C
Z D
Quadro 1. Alocação de recursos
Processo Recurso
A Y
B W
C Z
E W
Quadro 2. Requisição de recursos
É possível perceber, a partir do diagrama de exemplo, que existe uma 
disputa de recursos entre os processos B e E querendo utilizar o recurso de W, 
ou seja, nessa situação, deverá ser dado o tratamento adequado via algoritmo 
para que não ocorra deadlock.
Existem quatro condições para que ocorram deadlocks:
 � Quando cada recurso só pode estar alocado a um único processo em 
um determinado instante.
 � Quando um processo além dos recursos já alocados pode estar esperando 
por outros recursos.
 � Quando um recurso não pode ser liberado de um processo só porque 
outros processos desejam o mesmo recurso.
 � Quando um processo pode ter de esperar por um recurso alocado a 
outro processo, e vice-versa. 
Gerenciamento de entrada e saída8
Isso pode ser observado na Figura 7.
Figura 7. Cadeia circular.
Fonte: Jandl Junior (1999, p. 47).
Conforme Tanenbaum (2004), são quatro as possibilidades de tratamento 
que permitem resolver os problemas de deadlocks:
 � Algoritmo do avestruz: consiste em ignorar o problema e conviver com 
a possibilidade de sua ocorrência.
 � Detecção e recuperação: consiste em detectar a ocorrência de um de-
adlock e recuperar o funcionamento por meio de um algoritmo que 
perceba o caminho fechado, gerando um diagrama que permita escolher 
outro caminho.
 � Prevenção dinâmica: a partir da utilização de procedimentos cuidadosos 
na alocação de recursos.
 � Prevenção estrutural: a partir da negação de uma ou mais das 4 possi-
bilidades de ocorrência de deadlock. 
Veja, no Quadro 3, essas quatro condições.
9Gerenciamento de entrada e saída
Fonte: Adaptado de Jandl Junior (1999, p. 48).
Condição Aproximação
Exclusão mútua Colocar todos os recursos 
do sistema em spool
Retenção e espera Exigir a alocação inicial de todos 
os recursos necessários
Sem preemptividade Retirar recursos dos processos
Espera circular Ordenar numericamente os recursos
Quadro 3. Condições para ocorrência de deadlock
GUARDIA, H. C.; SENGER, H. Gerenciamento de Entrada e Saída. 2015. Disponível em: 
<http://livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/2451/1/SO_-_AT2_-_
Subsistemas_de_E-S.pdf>. Acesso em: 31 out. 2018.
JANDL JÚNIOR, P. Notas sobre Sistemas Operacionais. Bragança: Universidade São Fran-
cisco, 1999. Disponível em: <http://mrmsistemas.com.br/mendes/so/Apostila_SO.pdf>. 
Acesso em: 31 out. 2018.
LIMA JUNIOR, L. A. Entrada e saída. 2010. Disponível em: <http://www.ppgia.pucpr.
br/~laplima/ensino/so/materia/05_es.html>. Acesso em: 31 out. 2018.
PRODUÇÃO VIRTUAL. Introdução à computação. 2013. Disponível em: <http://producao.
virtual.ufpb.br/books/camyle/introducao-a-computacao-livro/livro/livro.chunked/
ch01.html>. Acesso em: 31 out. 2018.
TANENBAUM, A. S. Sistemas operacionais modernos. 2. ed. São Paulo: Pearson, 2004.
Leituras recomendadas
AROCA, R. V. Análise de sistemas operacionais de tempo real para aplicações de robótica 
e automação. 2008. 154 f. Dissertação (Mestrado em Engenharia Mecânica) — Uni-
versidade de São Paulo, São Carlos, 2008. Disponível em: <http://www.teses.usp.br/
teses/disponiveis/18/18149/tde-09012009-210323/pt-br.php>. Acesso em: 31 out. 2018.
DUARTE, L. O.; BECCENERI, J. C. Gerenciamento de Entrada e Saída e Escalonamento de 
Disco. São José dos Campos: Instituto Nacional de Pesquisas Espaciais, 2004. Disponí-
vel em: <http://www.professores.ifba.edu.br/antoniocarlos/wordpress/wp-content/
uploads/2013/12/entrada_e_saida.pdf>. Acesso em: 31 out. 2018.
Gerenciamento de entrada e saída10
Conteúdo:

Mais conteúdos dessa disciplina