SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Sistemas de Entrada/Saída    
                             
        Princípios de Software
  Princípios de Software
                 Tratadores (Manipuladores) de Interrupções
                 Acionadores de Dispositivos (Device Drivers)
                 Subsistema de E/S
                 Operações de E/S
         Ciclo de Operações em uma Requisição de E/S
         Desempenho dos Sistemas de E/S




Eduardo Nicola F. Zagari
                       2
                Sistemas Operacionais -Entrada e Saída
  Conceito chave:
                    o software de E/S deve buscar independência do dispositivo


               Características/objetivos importantes:
                       Uniformidade de nome para os dispositivos (strings/inteiros)
                       Manipulação de erros (devem ser feitas o mais próximo possível do
                            hardware)
                       Transferências síncronas (bloqueantes) e assíncronas
                            (manipuladas por interrupção)
                       Dispositivos compartilhados ou dedicados (possibilidade de
                            deadlock)




Eduardo Nicola F. Zagari
                             3
                 Sistemas Operacionais -Entrada e Saída
Processos



                            Operações de E/S       Independente do
                                                      dispositivo
            Software




                            Subsistema de E/S


                             Device Drivers
                             Manipuladores
                             de Interrupção
                             Controladores         Dependente do
            Hardware




                                                    dispositivo

                              Dispositivos



Eduardo Nicola F. Zagari
                     4
    Sistemas Operacionais -Entrada e Saída
  São eventos “complicados” de se tratar. Assim, devem ser
                   tratadas por uma pequena parte (parte específica) do SO
                       Uma forma de tratá-las isoladamente é bloquear os processos que
                            estiverem aguardando operações de E/S até uma interrupção de
                            “operação completada”
                       A rotina de tratamento desta interrupção libera o processo
                            bloqueado (UP em um semáforo, SIGNAL em um monitor ou envio
                            de uma mensagem)




Eduardo Nicola F. Zagari
                            5
                  Sistemas Operacionais -Entrada e Saída
  Todo código dependente do dispositivo se concentra do
                   acionador (driver) do dispositivo
               Cada acionador manipula um dispositivo ou uma classe de
                   dispositivos semelhantes
                       Acionadores para:
                             fita magnética, 
                             rede,
                             terminais etc
               Função:

             receber comandos gerais (abstratos) sobre acessos aos dispositivos
         e traduzi-los para comandos específicos (executados pelos controladores)




Eduardo Nicola F. Zagari
                        6
            Sistemas Operacionais -Entrada e Saída
  O acionador é a parte do SO que reconhece o hardware, ou
                   seja, sabe quantos registradores um controlador possui, para
                   que eles servem, como são utilizados e quais são seus
                   comandos.
               Devido a dependência entre os acionadores e as chamadas de
                   sistema (system calls), os fabricantes desenvolvem, para um
                   mesmo dispositivo, diferentes acionadores, um para cada SO.
                       Dispositivo adicionado ⇒ acionador deve ser acoplado ao kernel do
                            SO




Eduardo Nicola F. Zagari
                         7
                  Sistemas Operacionais -Entrada e Saída
  Exemplo: leitura de um dado (bloco) em um disco
                                                                                                  disco
          System Call       Ler bloco n   Acionador    Ler bloco no     Controlador
              E/S                          de disco Disco X, Cilindro Y, de disco                 disco
                                                     Trilha W, Setor Z                            disco


               Se acionador estiver desocupado, a requisição é aceita, caso
                   contrário, ele a põe em uma fila de requisições pendentes
               Transcreve a requisição abstrata em ações concretas
                   (comandos). Por exemplo, para um disk driver:
                       informar onde o bloco se encontra no disco
                       verificar se o motor do driver está girando
                       determinar se o braço está no cilindro apropriado etc



Eduardo Nicola F. Zagari
                           8
                     Sistemas Operacionais -Entrada e Saída
  Decididas quais operações realizar e em que ordem, o acionador
             escreve os comandos nos registradores do controlador
                      Alguns controladores aceitam apenas um comando por vez, outros
                            aceitam uma lista deles.
         Após o(s) comando(s) ter(em) sido(s) emitido(s), podem ocorrer
             duas situações
                      o acionador deve se bloquear até que a operação seja completada
                            (requisição bloqueante) 
                             –  no caso da operação ser lenta (envolvendo movimentos
                                mecânicos, como no nosso exemplo)
                      acionador deve aguardar, no caso de operações rápidas
                             –  por exemplo, o deslocamento da tela em terminais requer
                                apenas a escrita de um poucos bytes nos registradores do
                                controlador (microssegundos)

Eduardo Nicola F. Zagari
                               9
                 Sistemas Operacionais -Entrada e Saída
  Se for o caso, uma vez completada a operação, o controlador
                   gera uma interrupção que ativa o acionador
               O acionador verifica a ocorrência de erros
               Se tudo estiver correto, ele passa as informações (dados lidos)
                   para a camada superior (Subsistema de E/S)
               Finalmente, ele retorna as informações de situação de erro
                   (status)
               Caso haja, pega a próxima requisição; caso contrário, aguarda
                   pela próxima...




Eduardo Nicola F. Zagari
                     10
                Sistemas Operacionais -Entrada e Saída
Eduardo Nicola F. Zagari
   11
   Sistemas Operacionais -Entrada e Saída
Eduardo Nicola F. Zagari
   12
   Sistemas Operacionais -Entrada e Saída
Eduardo Nicola F. Zagari
   13
   Sistemas Operacionais -Entrada e Saída
  É o Software no Nível do Usuário
               A maior parte do software de E/S está embutida no SO
                   (subsistema de E/S)
               Uma pequena porção consiste em rotinas de bibliotecas, ligadas
                   junto com os programas de usuários (ou mesmo em programas
                   inteiros rodando fora do núcleo)
               Chamadas de sistema, incluindo as de E/S, são normalmente
                   feitas por procedimentos de bibliotecas, como as oferecidas
                   pelas linguagens de programação C, Pascal etc




Eduardo Nicola F. Zagari
                     14
                Sistemas Operacionais -Entrada e Saída
  Por isto que os comandos de E/S nestas linguagens independem
                            do ambiente operacional onde se está trabalhando.
                              Por exemplo:


                            bytes_lidos = fread(buffer, tam_item, n_itens, arquivo);


                                –  o procedimento fread será ligado com o programa (fica
                                   contido no código binário presente no espaço do usuário)
                                –  antes de efetuar a chamada de sistema, este procedimento
                                   coloca seus parâmetros nas posições de memória
                                   apropriadas




Eduardo Nicola F. Zagari
                             15
                   Sistemas Operacionais -Entrada e Saída
 Outro exemplo:
                               –  formatação de entradas e saídas são feitas por
                                  procedimentos da biblioteca de E/S padrão:
                                  »  printf,
                                  »  gets etc




                 Estas porções do código, que rodam como parte dos programas
                            do usuário, são parte do Sistema de E/S




Eduardo Nicola F. Zagari
                            16
                   Sistemas Operacionais -Entrada e Saída
  Nem todo software de E/S consiste de procedimentos de
                   bibliotecas
                       Por exemplo, Sistemas de SPOOLING (Simultaneous Peripheral
                            Operation On-Line)
                       Spooling: modo de negociação com os dispositivos dedicados de E/
                            S em sistemas multiprogramados
                              Exemplo: impressora
                                –  Processo abre o arquivo especial da impressora
                                –  Mantém arquivo aberto por horas, sem usá-lo
                                –  Ninguém mais imprime nada...




Eduardo Nicola F. Zagari
                             17
                  Sistemas Operacionais -Entrada e Saída
 Técnica de Spooling
                               –  Cria-se um processo especial, denominado daemon
                                  (servidor), e um diretório especial, chamado diretório de
                                  spool (spooling directory)
                               –  Processo envia arquivo para daemon (isto é, copia o arquivo
                                  no diretório de spool)
                               –  Daemon, que é o único processo que tem permissão para
                                  usar o arquivo especial associado à impressora, transfere os
                                  arquivos do diretório de spool para impressora, um a um
                             Spooling também é usado em outras situações (p. ex., em
                              transferência de mensagens de correio eletrônico)




Eduardo Nicola F. Zagari
                             18
                   Sistemas Operacionais -Entrada e Saída
Eduardo Nicola F. Zagari
   19
   Sistemas Operacionais -Entrada e Saída
  Desempenho do Sistema de E/S afeta diretamente o
                   desempenho global do sistema:
                       Uso da CPU na execução do código do acionador do dispositivo
                       Mudanças de contexto devido às interrupções
                       Sobrecarga do barramento da memória durante as cópias de dados
               Um exemplo: o “custo” do tráfego de um caracter pela rede




Eduardo Nicola F. Zagari
                        20
                   Sistemas Operacionais -Entrada e Saída
Eduardo Nicola F. Zagari
   21
   Sistemas Operacionais -Entrada e Saída
  Melhorando o desempenho:
                       Reduzir o número de mudanças de contexto
                       Reduzir o número de cópias de dados entre controlador, núcleo e
                            processo
                       Reduzir a freqüência de interrupções usando grandes
                            transferências, controladores inteligentes e polling (quando viável)
                       Usar DMA para aumentar o “paralelismo”
                       Usar CPU, memória, barramento e dispositivos de E/S de forma
                            balanceada, para evitar gargalos




Eduardo Nicola F. Zagari
                              22
                    Sistemas Operacionais -Entrada e Saída

Más contenido relacionado

La actualidad más candente

Multivector and multiprocessor
Multivector and multiprocessorMultivector and multiprocessor
Multivector and multiprocessor
Kishan Panara
 
Databases: Locking Methods
Databases: Locking MethodsDatabases: Locking Methods
Databases: Locking Methods
Damian T. Gordon
 
11. Storage and File Structure in DBMS
11. Storage and File Structure in DBMS11. Storage and File Structure in DBMS
11. Storage and File Structure in DBMS
koolkampus
 

La actualidad más candente (20)

OS Structure
OS StructureOS Structure
OS Structure
 
Transaction slide
Transaction slideTransaction slide
Transaction slide
 
Transaction Properties in database | ACID Properties
Transaction Properties in database | ACID PropertiesTransaction Properties in database | ACID Properties
Transaction Properties in database | ACID Properties
 
Chapter 10 Operating Systems silberschatz
Chapter 10 Operating Systems silberschatzChapter 10 Operating Systems silberschatz
Chapter 10 Operating Systems silberschatz
 
Database recovery
Database recoveryDatabase recovery
Database recovery
 
DBMS (Deadlock, deadlock prevention, 2phase locking)
DBMS (Deadlock, deadlock prevention, 2phase locking)DBMS (Deadlock, deadlock prevention, 2phase locking)
DBMS (Deadlock, deadlock prevention, 2phase locking)
 
{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end
 
Multivector and multiprocessor
Multivector and multiprocessorMultivector and multiprocessor
Multivector and multiprocessor
 
Disk scheduling algorithms
Disk scheduling algorithms Disk scheduling algorithms
Disk scheduling algorithms
 
Recovery techniques
Recovery techniquesRecovery techniques
Recovery techniques
 
Monolithic kernel
Monolithic kernelMonolithic kernel
Monolithic kernel
 
Databases: Locking Methods
Databases: Locking MethodsDatabases: Locking Methods
Databases: Locking Methods
 
Less08 users
Less08 usersLess08 users
Less08 users
 
Aula 06 comandos linux
Aula 06   comandos linuxAula 06   comandos linux
Aula 06 comandos linux
 
Chapter 9 Operating Systems silberschatz
Chapter 9 Operating Systems silberschatzChapter 9 Operating Systems silberschatz
Chapter 9 Operating Systems silberschatz
 
Deadlock in Operating System
Deadlock in Operating SystemDeadlock in Operating System
Deadlock in Operating System
 
Page Replacement
Page ReplacementPage Replacement
Page Replacement
 
Introduction to Hadoop
Introduction to HadoopIntroduction to Hadoop
Introduction to Hadoop
 
11. Storage and File Structure in DBMS
11. Storage and File Structure in DBMS11. Storage and File Structure in DBMS
11. Storage and File Structure in DBMS
 
Database language
Database languageDatabase language
Database language
 

Destacado

Dispositivos e periféricos vera cymbron
Dispositivos e periféricos   vera cymbronDispositivos e periféricos   vera cymbron
Dispositivos e periféricos vera cymbron
cymbron
 
Arquitetura Interna do Computador
Arquitetura Interna do ComputadorArquitetura Interna do Computador
Arquitetura Interna do Computador
Sara Gonçalves
 
periféricos de entrada, saída e mistos
periféricos de entrada, saída e mistosperiféricos de entrada, saída e mistos
periféricos de entrada, saída e mistos
Raquel Guimaraes
 

Destacado (20)

SO-02 Processos
SO-02 ProcessosSO-02 Processos
SO-02 Processos
 
Gerência de Armazenamento: Sistemas de Entrada e Saída
Gerência de Armazenamento: Sistemas de Entrada e SaídaGerência de Armazenamento: Sistemas de Entrada e Saída
Gerência de Armazenamento: Sistemas de Entrada e Saída
 
io
ioio
io
 
SO-09 Entrada e Saída: Hardware
SO-09 Entrada e Saída: HardwareSO-09 Entrada e Saída: Hardware
SO-09 Entrada e Saída: Hardware
 
Dispositivos de entrada e saída
Dispositivos de entrada e saídaDispositivos de entrada e saída
Dispositivos de entrada e saída
 
Dispositivos de Entrada e Saída de dados
Dispositivos de Entrada e Saída de dadosDispositivos de Entrada e Saída de dados
Dispositivos de Entrada e Saída de dados
 
Trabalho sobre periféricos de entrada, saída, entrada e de entrada saída
Trabalho sobre periféricos de entrada, saída, entrada e de entrada saídaTrabalho sobre periféricos de entrada, saída, entrada e de entrada saída
Trabalho sobre periféricos de entrada, saída, entrada e de entrada saída
 
CAPITULO 1 : PREANBULO POLITICO-METODOLOGICO. ¿COMPRENDER LOS MEDIOS O LA COM...
CAPITULO 1 : PREANBULO POLITICO-METODOLOGICO. ¿COMPRENDER LOS MEDIOS O LA COM...CAPITULO 1 : PREANBULO POLITICO-METODOLOGICO. ¿COMPRENDER LOS MEDIOS O LA COM...
CAPITULO 1 : PREANBULO POLITICO-METODOLOGICO. ¿COMPRENDER LOS MEDIOS O LA COM...
 
Dispositivos perifericos
Dispositivos perifericosDispositivos perifericos
Dispositivos perifericos
 
Revisão de Dispositivos periféricos, tipo de computadores e hardware.
Revisão de Dispositivos periféricos, tipo de computadores e hardware.Revisão de Dispositivos periféricos, tipo de computadores e hardware.
Revisão de Dispositivos periféricos, tipo de computadores e hardware.
 
SO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de ProcessosSO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de Processos
 
Dispositivos e periféricos vera cymbron
Dispositivos e periféricos   vera cymbronDispositivos e periféricos   vera cymbron
Dispositivos e periféricos vera cymbron
 
Periféricos de Saída
Periféricos de SaídaPeriféricos de Saída
Periféricos de Saída
 
Dispositivos [Entrada E SaíDa]
Dispositivos [Entrada E SaíDa]Dispositivos [Entrada E SaíDa]
Dispositivos [Entrada E SaíDa]
 
Arquitetura Interna do Computador
Arquitetura Interna do ComputadorArquitetura Interna do Computador
Arquitetura Interna do Computador
 
ICC-06 Periféricos - Introdução
ICC-06 Periféricos - IntroduçãoICC-06 Periféricos - Introdução
ICC-06 Periféricos - Introdução
 
Transmissão serial e paralela
Transmissão serial e paralelaTransmissão serial e paralela
Transmissão serial e paralela
 
Gerência de Dispositivos
Gerência de DispositivosGerência de Dispositivos
Gerência de Dispositivos
 
Perifericos de entrada e saida
Perifericos de entrada e saidaPerifericos de entrada e saida
Perifericos de entrada e saida
 
periféricos de entrada, saída e mistos
periféricos de entrada, saída e mistosperiféricos de entrada, saída e mistos
periféricos de entrada, saída e mistos
 

Similar a SO-10 Entrada e Saída: Software

Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saída
Computação Depressão
 
parte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdfparte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdf
AriclenesKinkela
 
Sistemas Operacionais - 2º unidade - Tiago Falcão
Sistemas Operacionais - 2º unidade - Tiago FalcãoSistemas Operacionais - 2º unidade - Tiago Falcão
Sistemas Operacionais - 2º unidade - Tiago Falcão
Camila Seródio
 
18.ago esmeralda 15.00_321_cpfl paulista
18.ago esmeralda 15.00_321_cpfl paulista18.ago esmeralda 15.00_321_cpfl paulista
18.ago esmeralda 15.00_321_cpfl paulista
itgfiles
 
Clp completa
Clp completaClp completa
Clp completa
panelada
 
Teste modulo7 imei carlos dias
Teste modulo7 imei carlos diasTeste modulo7 imei carlos dias
Teste modulo7 imei carlos dias
Paulo Nogueira
 
Windows7educacao brz-web
Windows7educacao brz-webWindows7educacao brz-web
Windows7educacao brz-web
Patibcosta
 

Similar a SO-10 Entrada e Saída: Software (20)

Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saída
 
Entrada Saida
Entrada SaidaEntrada Saida
Entrada Saida
 
SO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisSO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas Operacionais
 
cpu.pdf
cpu.pdfcpu.pdf
cpu.pdf
 
parte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdfparte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdf
 
Sistemas Operacionais - 2º unidade - Tiago Falcão
Sistemas Operacionais - 2º unidade - Tiago FalcãoSistemas Operacionais - 2º unidade - Tiago Falcão
Sistemas Operacionais - 2º unidade - Tiago Falcão
 
Entrada e saida cap 05 (iii unidade)
Entrada e saida  cap 05 (iii unidade)Entrada e saida  cap 05 (iii unidade)
Entrada e saida cap 05 (iii unidade)
 
18.ago esmeralda 15.00_321_cpfl paulista
18.ago esmeralda 15.00_321_cpfl paulista18.ago esmeralda 15.00_321_cpfl paulista
18.ago esmeralda 15.00_321_cpfl paulista
 
M1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxM1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptx
 
sistemas operativos.ppt
sistemas operativos.pptsistemas operativos.ppt
sistemas operativos.ppt
 
Hardware parte1
Hardware parte1Hardware parte1
Hardware parte1
 
Hardware parte1
Hardware parte1Hardware parte1
Hardware parte1
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Aula01a_Introducao_Microcontroladores
Aula01a_Introducao_MicrocontroladoresAula01a_Introducao_Microcontroladores
Aula01a_Introducao_Microcontroladores
 
Clp completa
Clp completaClp completa
Clp completa
 
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
 
Teste modulo7 imei carlos dias
Teste modulo7 imei carlos diasTeste modulo7 imei carlos dias
Teste modulo7 imei carlos dias
 
Exer ic prova
Exer ic provaExer ic prova
Exer ic prova
 
A unidade central de processamento - o que acontece dentro do computador
A unidade central de processamento - o que acontece dentro do computadorA unidade central de processamento - o que acontece dentro do computador
A unidade central de processamento - o que acontece dentro do computador
 
Windows7educacao brz-web
Windows7educacao brz-webWindows7educacao brz-web
Windows7educacao brz-web
 

Más de Eduardo Nicola F. Zagari

Más de Eduardo Nicola F. Zagari (20)

Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
 
Uma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDBUma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDB
 
Introdução à Linguagem Ruby
Introdução à Linguagem RubyIntrodução à Linguagem Ruby
Introdução à Linguagem Ruby
 
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes Linux
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo Real
 
Módulo de Estudos em Tempo Real
Módulo de Estudos em Tempo RealMódulo de Estudos em Tempo Real
Módulo de Estudos em Tempo Real
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
 
Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - Proxy
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - Facade
 
Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - Adaptador
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - Singleton
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory Method
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract Factory
 
Padrões-07 - Padrões Criacionais
Padrões-07 - Padrões CriacionaisPadrões-07 - Padrões Criacionais
Padrões-07 - Padrões Criacionais
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVC
 

Último

Último (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

SO-10 Entrada e Saída: Software

  • 1. Sistemas de Entrada/Saída Princípios de Software
  • 2.   Princípios de Software   Tratadores (Manipuladores) de Interrupções   Acionadores de Dispositivos (Device Drivers)   Subsistema de E/S   Operações de E/S   Ciclo de Operações em uma Requisição de E/S   Desempenho dos Sistemas de E/S Eduardo Nicola F. Zagari 2 Sistemas Operacionais -Entrada e Saída
  • 3.   Conceito chave: o software de E/S deve buscar independência do dispositivo   Características/objetivos importantes:   Uniformidade de nome para os dispositivos (strings/inteiros)   Manipulação de erros (devem ser feitas o mais próximo possível do hardware)   Transferências síncronas (bloqueantes) e assíncronas (manipuladas por interrupção)   Dispositivos compartilhados ou dedicados (possibilidade de deadlock) Eduardo Nicola F. Zagari 3 Sistemas Operacionais -Entrada e Saída
  • 4. Processos Operações de E/S Independente do dispositivo Software Subsistema de E/S Device Drivers Manipuladores de Interrupção Controladores Dependente do Hardware dispositivo Dispositivos Eduardo Nicola F. Zagari 4 Sistemas Operacionais -Entrada e Saída
  • 5.   São eventos “complicados” de se tratar. Assim, devem ser tratadas por uma pequena parte (parte específica) do SO   Uma forma de tratá-las isoladamente é bloquear os processos que estiverem aguardando operações de E/S até uma interrupção de “operação completada”   A rotina de tratamento desta interrupção libera o processo bloqueado (UP em um semáforo, SIGNAL em um monitor ou envio de uma mensagem) Eduardo Nicola F. Zagari 5 Sistemas Operacionais -Entrada e Saída
  • 6.   Todo código dependente do dispositivo se concentra do acionador (driver) do dispositivo   Cada acionador manipula um dispositivo ou uma classe de dispositivos semelhantes   Acionadores para:  fita magnética,  rede,  terminais etc   Função: receber comandos gerais (abstratos) sobre acessos aos dispositivos e traduzi-los para comandos específicos (executados pelos controladores) Eduardo Nicola F. Zagari 6 Sistemas Operacionais -Entrada e Saída
  • 7.   O acionador é a parte do SO que reconhece o hardware, ou seja, sabe quantos registradores um controlador possui, para que eles servem, como são utilizados e quais são seus comandos.   Devido a dependência entre os acionadores e as chamadas de sistema (system calls), os fabricantes desenvolvem, para um mesmo dispositivo, diferentes acionadores, um para cada SO.   Dispositivo adicionado ⇒ acionador deve ser acoplado ao kernel do SO Eduardo Nicola F. Zagari 7 Sistemas Operacionais -Entrada e Saída
  • 8.   Exemplo: leitura de um dado (bloco) em um disco disco System Call Ler bloco n Acionador Ler bloco no Controlador E/S de disco Disco X, Cilindro Y, de disco disco Trilha W, Setor Z disco   Se acionador estiver desocupado, a requisição é aceita, caso contrário, ele a põe em uma fila de requisições pendentes   Transcreve a requisição abstrata em ações concretas (comandos). Por exemplo, para um disk driver:   informar onde o bloco se encontra no disco   verificar se o motor do driver está girando   determinar se o braço está no cilindro apropriado etc Eduardo Nicola F. Zagari 8 Sistemas Operacionais -Entrada e Saída
  • 9.   Decididas quais operações realizar e em que ordem, o acionador escreve os comandos nos registradores do controlador  Alguns controladores aceitam apenas um comando por vez, outros aceitam uma lista deles.   Após o(s) comando(s) ter(em) sido(s) emitido(s), podem ocorrer duas situações  o acionador deve se bloquear até que a operação seja completada (requisição bloqueante) –  no caso da operação ser lenta (envolvendo movimentos mecânicos, como no nosso exemplo)  acionador deve aguardar, no caso de operações rápidas –  por exemplo, o deslocamento da tela em terminais requer apenas a escrita de um poucos bytes nos registradores do controlador (microssegundos) Eduardo Nicola F. Zagari 9 Sistemas Operacionais -Entrada e Saída
  • 10.   Se for o caso, uma vez completada a operação, o controlador gera uma interrupção que ativa o acionador   O acionador verifica a ocorrência de erros   Se tudo estiver correto, ele passa as informações (dados lidos) para a camada superior (Subsistema de E/S)   Finalmente, ele retorna as informações de situação de erro (status)   Caso haja, pega a próxima requisição; caso contrário, aguarda pela próxima... Eduardo Nicola F. Zagari 10 Sistemas Operacionais -Entrada e Saída
  • 11. Eduardo Nicola F. Zagari 11 Sistemas Operacionais -Entrada e Saída
  • 12. Eduardo Nicola F. Zagari 12 Sistemas Operacionais -Entrada e Saída
  • 13. Eduardo Nicola F. Zagari 13 Sistemas Operacionais -Entrada e Saída
  • 14.   É o Software no Nível do Usuário   A maior parte do software de E/S está embutida no SO (subsistema de E/S)   Uma pequena porção consiste em rotinas de bibliotecas, ligadas junto com os programas de usuários (ou mesmo em programas inteiros rodando fora do núcleo)   Chamadas de sistema, incluindo as de E/S, são normalmente feitas por procedimentos de bibliotecas, como as oferecidas pelas linguagens de programação C, Pascal etc Eduardo Nicola F. Zagari 14 Sistemas Operacionais -Entrada e Saída
  • 15.   Por isto que os comandos de E/S nestas linguagens independem do ambiente operacional onde se está trabalhando.  Por exemplo: bytes_lidos = fread(buffer, tam_item, n_itens, arquivo); –  o procedimento fread será ligado com o programa (fica contido no código binário presente no espaço do usuário) –  antes de efetuar a chamada de sistema, este procedimento coloca seus parâmetros nas posições de memória apropriadas Eduardo Nicola F. Zagari 15 Sistemas Operacionais -Entrada e Saída
  • 16.  Outro exemplo: –  formatação de entradas e saídas são feitas por procedimentos da biblioteca de E/S padrão: »  printf, »  gets etc Estas porções do código, que rodam como parte dos programas do usuário, são parte do Sistema de E/S Eduardo Nicola F. Zagari 16 Sistemas Operacionais -Entrada e Saída
  • 17.   Nem todo software de E/S consiste de procedimentos de bibliotecas   Por exemplo, Sistemas de SPOOLING (Simultaneous Peripheral Operation On-Line)   Spooling: modo de negociação com os dispositivos dedicados de E/ S em sistemas multiprogramados  Exemplo: impressora –  Processo abre o arquivo especial da impressora –  Mantém arquivo aberto por horas, sem usá-lo –  Ninguém mais imprime nada... Eduardo Nicola F. Zagari 17 Sistemas Operacionais -Entrada e Saída
  • 18.  Técnica de Spooling –  Cria-se um processo especial, denominado daemon (servidor), e um diretório especial, chamado diretório de spool (spooling directory) –  Processo envia arquivo para daemon (isto é, copia o arquivo no diretório de spool) –  Daemon, que é o único processo que tem permissão para usar o arquivo especial associado à impressora, transfere os arquivos do diretório de spool para impressora, um a um  Spooling também é usado em outras situações (p. ex., em transferência de mensagens de correio eletrônico) Eduardo Nicola F. Zagari 18 Sistemas Operacionais -Entrada e Saída
  • 19. Eduardo Nicola F. Zagari 19 Sistemas Operacionais -Entrada e Saída
  • 20.   Desempenho do Sistema de E/S afeta diretamente o desempenho global do sistema:   Uso da CPU na execução do código do acionador do dispositivo   Mudanças de contexto devido às interrupções   Sobrecarga do barramento da memória durante as cópias de dados   Um exemplo: o “custo” do tráfego de um caracter pela rede Eduardo Nicola F. Zagari 20 Sistemas Operacionais -Entrada e Saída
  • 21. Eduardo Nicola F. Zagari 21 Sistemas Operacionais -Entrada e Saída
  • 22.   Melhorando o desempenho:   Reduzir o número de mudanças de contexto   Reduzir o número de cópias de dados entre controlador, núcleo e processo   Reduzir a freqüência de interrupções usando grandes transferências, controladores inteligentes e polling (quando viável)   Usar DMA para aumentar o “paralelismo”   Usar CPU, memória, barramento e dispositivos de E/S de forma balanceada, para evitar gargalos Eduardo Nicola F. Zagari 22 Sistemas Operacionais -Entrada e Saída