Sistemas Operacionais - Introdução. Sistemas Operacionais - Funções. FACENS - Faculdade de Engenharia de Sorocaba



Documentos relacionados
Sistemas Operacionais. Prof. André Y. Kusumoto

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Gerenciamento de memória

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Arquitetura dos Sistemas Operacionais

Introdução à Computação: Sistemas de Computação

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Conceitos Básicos sobre Sistemas Operacionais

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Arquitetura e Organização de Computadores

Estrutura Interna do KernelUNIX Sistema O. Estrutura Interna de Arquivos (1) Estrutura Seqüência. User application. Standard Unix libraries

Introdução à Sistemas Operacionais. Glauber Magalhães Pires

AULA 16 - Sistema de Arquivos

FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado. Memória Armazenamento Sistema de Arquivos

Computador Digital Circuitos de um computador (Hardware)

Sistemas Operacionais 2014 Sistema de E/S. Alexandre Augusto Giron

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Gerência de Memória. Paginação

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Figura 01 Kernel de um Sistema Operacional

SISTEMAS OPERACIONAIS

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

Sistemas Operacionais Gerência de Dispositivos

Introdução aos Sistemas

Sistemas Operacionais

Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais. Prof. Dr. Ruy de Oliveira CEFET-MT

Gerência do Sistema de Arquivos. Adão de Melo Neto

Fundamentos de Sistemas Computacionais Introdução

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Infra-Estrutura de Software. Introdução. (cont.)

Capítulo 4 Gerenciamento de Memória

Arquitetura de Computadores. Sistemas Operacionais IV

Sistemas Operacionais

E/S PROGRAMADA E/S PROGRAMADA E/S USANDO INTERRUPÇÃO

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8 th Edition

Sistemas Operacionais Entrada / Saída. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Sistemas Operacionais I

Sistemas Operativos I

SISTEMAS OPERACIONAIS

Nível do Sistema Operacional

Sistemas Operacionais

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software. Prof. MSc.

Arquitetura de Sistemas Operacionais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Sistemas Operacionais

SISTEMAS OPERACIONAIS

Sistemas Operacionais. Professor Leslier Soares Corrêa

Sistemas Distribuídos Modelo Cliente-Servidor

6 - Gerência de Dispositivos

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.

Capítulo 4 Gerenciamento de Memória

GABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios

Visão Geral de Sistemas Operacionais

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado

Sistemas Operacionais

Sistemas Operacionais

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

Introdução à Engenharia de Computação

ARQUITETURA DE COMPUTADORES

Sistemas Operacionais

Laboratório de Hardware

Arquitetura e Organização de Computadores

REDES DE COMPUTADORES HISTÓRICO E CONCEITOS

Sistemas Operacionais. Prof. André Y. Kusumoto

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Gerenciamento Básico B de Memória Aula 07

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Sistemas de Informação. Sistemas Operacionais 4º Período

Componentes de um Sistema de Operação

Sistema de Arquivos. Sistemas de Arquivos

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

Sistemas Operacionais Arquivos

Capítulo 6. Gerenciamento de Arquivos. 6.1 Arquivos 6.2 Diretórios 6.3 Implementação (6.3.1 a 6.3.6) 6.4 Exemplos

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores

SISTEMAS OPERACIONAIS 2007

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

Montagem e Manutenção. Luís Guilherme A. Pontes

Everson Scherrer Borges João Paulo de Brito Gonçalves

Sistemas Operacionais Conceitos Básicos

Fundamentos de Sistemas Operacionais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Processos e Threads (partes I e II)

BC Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

Sistemas Operacionais

Turno/Horário Noturno PROFESSOR : Salomão Dantas Soares AULA Apostila nº

SISTEMAS OPERACIONAIS

Transcrição:

Sistemas Operacionais - Introdução Aplicações Compiladores Editores Interpretadores de comando Sistema Operacional Linguagem de Máquina Microarquitetura Dispositivos Físicos Sistemas Operacionais - Funções SO como Máquina Estendida oferece uma máquina virtual mais simples de programar do que o hardware SO como Gerenciador de Recursos fornece uma alocação controlada de processadores, memória e dispositivos de entrada/saída (E/S) Todo computador possui uma camada chamada sistema operacional cujo objetivo é gerenciar todos os dispositivos (processador, memória, disco, impressora, teclado, monitor, etc.) e prover uma interface simples para o usuário manipular o hardware. O sistema operacional é um software que oferece ao programador um ambiente agradável e mais conveniente para trabalhar. A função do sistema operacional pode ser apresentada ao usuário como máquina estendida ou máquina virtual que facilita a programação provendo uma variedade de serviços que os programas podem obter usando instruções especiais (system calls). O sistema operacional também pode ser visto como um gerenciador de vários pedaços de um sistema complexo (processador, memória, relógios, duscis, etc.) e deve decidir quais pedidos podem alocar os recursos para que o sistema possa operar sem conflitos. Profa. Tiemi Christine Sakata 1

História dos Sistemas Operacionais Primeira Geração (1945 55) Válvulas e Painéis de Conectores História dos Sistemas Operacionais Terceira Geração (1965 80) Circuitos Integrados e Multiprogramação Segunda Geração (1955 65) Transistores e Sistema Batch Card reader Tape drive Input tape System tape Output tape Printer Job 3 Job 2 Job 1 Operating system Memory partitions 1401 7094 1401 (a) (b) (c) (d) (e) (f) Quarta Geração (1980 atual) Computadores Pessoais Os primeiros computadores surgiram no início da Segunda Gerra Mundial e eram formados por milhares de válvulas que ocupavam enores áreas. Não existia o conceito de sistemas operacionais e para trabalhar nessas máquinas era necessário um profundo conhecimento do hardware. A criação do transitor permitiu o aumento da velocidade e a confiabilidade do processamento e as memórias tinham maior capacidade permitindo computadores menores. O sistema operacional era bem simples e era armazenado na memória. A multiprogramação compartilha a memória principal e o processador, o que permitiu o aumento da utilização da CPU. O sistema operacional mantém vários jobs na memória ao mesmo tempo e gerencia a execução de cada job. Com a evolução de microprocessadores, surgiram os primeiros microcomputadores, muito mais baratos. Os dois sistemas operacionais que inicialmente dominaram o computador pessoal foram MS-DOS e Unix. O hardware foi ficando cada vez mais sofisticado, com vários processadores exigindo sistemas operacionais com novos mecanismos de controle e sincronismo. A década de 90 foi definitiva para a consolidação de sistemas operacionais baseados em interfaces gráficas. As interfaces são cada vez mais simples e eficiente. Profa. Tiemi Christine Sakata 2

Chamadas do Sistema (System Calls) Porta de entrada para ter acesso ao núcleo do sistema operacional. Gerenciamento de Processos fork, waitpid, exit Gerenciamento de Arquivos open, close, read Gerenciamento de Diretórios mkdir, link, mount Proteção chmod Gerenciamento de Tempo time(&second) Estrutura do Sistema Operacional 1 Monoĺıtico um programa principal que invoca os serviços um conjunto de serviços para executar as chamadas do sistema um conjunto de procedimentos para ajudar as chamadas de serviços. Main procedure Service procedures Utility procedures O usuário solicita um serviço do sistema operacional através do uso das chamadas do sistema. Cada sistema operacional possui seu próprio conjunto de chamadas. Através dos parâmetros fornecidos nas chamadas do sistema, a solicitação é processada e uma resposta é retornada à aplicação. É a organização mais comum. O sistema operacional é escrito como uma coleção de procedimentos, cada um dos quais pode chamar uns aos outros. O programa-objeto do sistema é formado por vários procedimentos que são compilados separadamente e linkados, formando um grande e único executável. Profa. Tiemi Christine Sakata 3

Estrutura do Sistema Operacional 2 Em Camadas Camada Função 5 Usuário 4 Programas de usuário 3 Gerenciamento de E/S 2 Comunicação operador-processo 1 Gerenciamento de memória 0 Alocação de processador e Multiprogramação Estrutura do Sistema Operacional 3 Máquinas Virtuais cópias exatas do hardware básico executa qualquer sistema operacional mais simples, flexível e fácil de manter Virtual 370s System calls here I/O instructions here CMS CMS CMS Trap here Trap here VM/370 370 Bare hardware Um sistema em camadas divide o sistema operacional em camadas sobrepostas formando uma hierarquia. Cada módulo oferece um conjunto de funções que podem ser utilizadas por outros módulos. Módulos em camadas podem fazer referência apenas a módulos das camadas inferiores. A vantagem desta estrutura é isolar as funções do sistema operacional. Um sistema de tempo compartilhado oferece multiprogramação e uma máquina estendida com interface mais conveniente que o hardware básico. A essência das máquinas virtuais é a separação dessas duas funções. Assim, o coração do sistema, conhecido como monitor de máquina virtual, executa no hardware básico e faz a multiprogramação, oferecendo não apenas uma, mas várias máquinas virtuais à camada superior. Porém, ao contrário de todos os outros sistemas operacionais, essas máquinas não são máquinas estendidas com recursos amigáveis. Em vez disso, elas são cópias exatas do hardware básico, incluindo o modo kernel/usuário, E/S, interrupções, etc. Profa. Tiemi Christine Sakata 4

Estrutura do Sistema Operacional 4 Modelo Cliente-Servidor Client process núcleo mais simples cliente solicita serviços ao servidor comunicação troca de mensagens Client process Process server Terminal server Kernel File server Memory server Client obtains service by sending messages to server processes User mode Kernel mode Processos programa seqüência de instruções processo abstração da execução do programa contexto do programa corrente (status de execução) diretório de trabalho do programa corrente arquivos e diretórios aos quais o programa tem acesso direitos de acesso do programa corrente memória e outros recursos alocados ao processo sistema multiprogramado - pseudoparalelismo O sistema é dividido em processos, cada um responsável por um serviço. O cliente pode ser uma aplicação de usuário ou um outro componente do sistema operacional. A solicitação é feita através de envio de uma mensagem ao servidor, que responde através de uma outra mensagem. A utilização deste modelo permite que os servidores executem em modo usuário, ou seja, não tenham acesso direto ao hardware. Outra vantagem é que este modelo é facilmente adaptável para uso de sistemas distribuídos. Computadores modernos podem fazer várias coisas ao mesmo tempo: executar um programa, ler dados do disco e imprimir dados na tela ou na impressora. Em sistemas multiprogramados, a CPU também pode dividir seu tempo (na ordem de milisegundos) para diversos programas dando ao usuário a impressão de paralelismo (pseudoparalelismo). Um processo é um programa em execução e é a unidade básica de escalonamento do sistema operacional. Um processo é um elemento ativo (altera o seu estado à medida que executa o programa). Profa. Tiemi Christine Sakata 5

One program counter A B C D Process switch Multiprogramação A Four program counters B C D Process D C B A Time (a) (b) (c) (a) memória (b) execução independente (c) execução x tempo Estados do Processo Executando 1 3 2 Bloqueado 4 Pronto 1 Processo bloqueado para entrada 2 Gerenciador desativa um processo 3 Gerenciador ativa outro processo 4 Entrada se torna disponível Todo processo possui um contador de programa lógico que é armazenado na memória. Apenas o contador do processo executado em um determinado instante é carregado no contador de programa real. Podemos notar que em um intervalo todos os processos progrediram, mas em um instante de tempo apenas um processo está realmente sendo executado. O tempo de execução de um processo pode variar de acordo com a forma em que a CPU decide executar os processos. Os processos que requerem tempo crítico necessitam tomar certas medidas especiais para garantir uma resposta esperada. A diferença entre o estado executando e pronto é que o estado executando está utilizando a CPU enquanto que no estado pronto, não há temporariamente CPU disponível para sua execução. Existem métodos para divir o uso da CPU para a execução dos processos prontos. O estado bloqueado não será executado mesmo com CPU disponível. Profa. Tiemi Christine Sakata 6

FCFS Escalonamento de Processos Deadlock Job mais curto primeiro Menor tempo restante primeiro Round Robin Prioridade (múltiplas filas) Cuidado com starvation (a) (b) Quando um programa é multiprogramado, freqüentemente possui vários processos competindo pela CPU ao mesmo tempo. Isso ocorre quando dois ou mais processos estão prontos para serem executados. O escalonamento de processos tem por objetivo instruir a CPU para executar os processos que foram inseridos em uma fila de processos prontos. A parte do sistema operacional que faz a escolha de qual processo executar é chamado de escalonador e o algoritmo usado é chamado de algoritmo de escalonamento. Deadlock - Condições necessárias 1. exclusão mútua: pelo menos um recurso deve ser atribuído a um único processo por vez 2. posse e espera: deve haver um proc. que possui um recurso e espera recursos adicionais 3. não-preempção: recursos não podem ser retirados de forma forçada 4. espera circular: 2 ou mais processos, cada um esperando pelo recurso em posse de outro proc. Profa. Tiemi Christine Sakata 7

Gerência de Memória Alocação de memória: partições fixas Memória grande vetor de palavras (bytes), cada um com seu próprio endereço Multiple input queues Partition 4 700K Partition 4 Multiprogramação compartilhamento de memória Partition 3 400K Single input queue Partition 3 Memória física Partition 2 Partition 2 Memória lógica MMU (Memory Management Unit) Partition 1 Operating system (a) 100K 0 Partition 1 Operating system (b) Na multiprogramação é preciso manter vários processos prontos para execução na memória. A gerência de memória do SO provê os mecanismos necessários para que os diversos processos compartilhem a memória de forma segura e eficiente. A memória física é aquela implementada pelos circuitos integrados de memória. O endereço físico é o que vai para a memória física, ou seja, usado para endereçar os circuitos integrados de memória. O endereço lógico é o endereço gerado pela CPU. A MMU é o componente de hardware que provê mecanismos usados pelo SO para gerenciar a memória. A MMU mapeia os endereços lógicos gerados pelos processos nos correspondentes endereços físicos. A memória principal é dividida em partições: uma para o sistema operacional e outra para os processos do usuário. Como na multiprogramação existem vários processos na memória é necessário encontrar maneiras de alocar os processos que estão na fila de entrada esperando para serem carregados na memória. Um dos métodos mais simples de alocação de memória é dividir a memória em partições de tamanhos fixos. Cada partição pode conter apenas um processo e portanto o grau da multiprogramação está limitado pelo número de partições. Quando um processo termina, a partição fica disponível para outro processo da fila. A fila pode ser construída por partição (o processo fica na fila da menor partição que ele pode ser alocado) e neste caso pode existir partições sem nenhum processo e outras com muitos processos na fila; ou uma fila única para todas as partições onde um processo pequeno pode estar usando uma partição de tamanho grande. Profa. Tiemi Christine Sakata 8

Alocação de memória: part. variáveis Paginação Proc 1-174K Proc 2-98K Proc 3-23K Livre - 80K SO Proc 4-85K Proc 1-174K Proc 4-85K Livre - 13K Proc 3-23K Livre - 80K SO Em geral, existe um conjunto de partições de memórias livres de vários tamanhos. Quando um processo chega é feita uma busca para encontrar uma partição grande o suficiente para o processo. Se a partição é grande demais, ela será dividida em dois e uma parte é devolvida para o conjunto de partições livres. A paginação é um esquema que permite que o espaço de endereçamento físico de um processo seja não contíguo. Esse mecanismo elimina a fragmentação externa e reduz a fragmentação interna. A memória física (sistema) e a memória lógica (processo) são quebradas em blocos de tamanhos fixos e idênticos. Os blocos da memória física são chamados de quadros (frames) e da memória lógica de páginas. O tamanho desses blocos é definido pelo hardware. Cada endereço gerado pela CPU (endereço lógico) é dividido em duas partes: número de página (p) e deslocamento de página (d). O número de página é usado como índice em uma tabela de página. Profa. Tiemi Christine Sakata 9

Segmentação com compactação Memória Virtual sistema operacional 3 Segment 4 (7K) Segment 3 (8K) Segment 2 Segment 1 (8K) Segment 0 Segment 4 (7K) Segment 3 (8K) Segment 2 (3K) Segment 7 Segment 0 (3K) Segment 5 Segment 3 (8K) Segment 2 (3K) Segment 7 Segment 0 (3K) Segment 5 Segment 6 Segment 2 (3K) Segment 7 Segment 0 (10K) Segment 5 Segment 6 Segment 2 Segment 7 Segment 0 carregar M 1 6 i 5 2 quadro livre 4 (a) (b) (c) (d) (e) mem. física Pode-se utilizar o esquema de bit válido/inválido para determinar se uma página está na memória ou não. Se o bit é válido, então a página é legal e está na memória. Se o bit for inválido, a página não é válida ou é válida mas no momento está no disco. Um procedimento simples para tratar a falta de página é descrita a seguir: A segmentação pode causar fragmentação externa já que o tamanho dos segmentos é variável. Neste caso, o processo pode simplesmente ter que esperar até que mais memória se torne disponível, ou a compactação pode ser usada para criar um bloco de memória livre maior. 1. verificação da tabela para determinar se a referência é válida ou inválida. 2. se a referência é inválida, o processo é terminado. Se é válida mas não está na memória, a página deve ser carregada 3. procura de um quadro livre 4. escalonamento de uma operação de disco para ler a página desejada no quadro recém alocado 5. a tabela é modificada indicando que a página está na memória 6. reiniciar a instrução que foi interrompida pela exceção de endereço ilegal. Profa. Tiemi Christine Sakata 10

Sistema de Arquivos User directory A B Root directory C alocação contíua Alocação de blocos A B B B C C B C C User subdirectories C C C C User file Lista ligada de blocos File Allocation Table (FAT) I-node A solução para armazenar a informação em discos é criar arquivos. A informação deve ser persistente, ou seja, um arquivo desaparecerá quando for removida explicitamente. O sistema de arquivos (parte do SO) é responsável pelo modo como arquivos são estruturados, nomeados, acessados, usados, protegidos e implementados. A capacidade dos usuários criar um número arbitrário de subdiretórios propicia uma ferramenta poderosa de estruturação para organizar seu trabalho. Quase todos os modernos sistemas de arquivos são organizados assim. O esquema mais simples de alocação é armazenar cada arquivo em blocos contíguos de disco. O disco é dividido em blocos de mesmo tamanho. Se um arquivo ocupa um bloco e meio, a outra metade do bloco é desperdiçada. Vantagens: simples de implementar e bom desempenho de leitura. Desvantagem: os arquivos não podem crescer e há fragmentação do disco. Os arquivos podem ser mantidos como uma lista encadeada de blocos de disco. A primeira palavra de cada bloco é usada como ponteiro para um próximo. O restante do bloco é usado para dados. Neste método não há fragmentação externa e para manter uma entrada de diretório é suficiente armazenar apenas o endereço em disco do primeiro bloco. Por outro lado, o acesso aleatório é extremamente lento, pois para chegar ao bloco n de um arquivo, o SO, a partir do início, deve ler os n 1 blocos antes dele. Tabela de índice na memória usando essa organização todo bloco fica disponível para dados e o acesso aleatório se torna mais fácil. Para encontrar um bloco de um arquivo, é necessário percorrer o encadeamento, porém, como a tabela está na memória, a localização do bloco pode ser feita rapidamente. A principal desvantagem deste método é que a tabela deve estar na memória o tempo todo. A tabela pode ser alocada em memória paginada, mas mesmo assim, ocuparia muito espaço de memória virtual e de espaço em disco gerando tráfego extra de paginação. O i-node é uma estrutura de dados associado a cada arquivo que relaciona os atributos e os endereços em disco dos blocos de arquivo. Dado o i-node, é possível encontrar todos os blocos do arquivo. A grande vantagem desse esquema é que o i-node só precisa estar na memória quando o arquivo estiver aberto. Profa. Tiemi Christine Sakata 11

Entrada/Saída Acesso Direto à Memória (DMA) emitir comandos para os dispositivos Drive interceptar interrupções e tratar erros fornecer interface entre os dispositivos e o restante do sistema CPU 1. CPU programs DMA the DMA controller controller Address Count Control 4. Ack Disk controller Buffer Main memory interfaces padronizadas x variedade de dispositivos Interrupt when done 2. DMA requests transfer to memory 3. Data transferred Bus Uma das principais funções de um computador é solucionar problemas. Para tanto, é necessário que algum tipo de mecanismo exista para que possamos informar esse problema ao computador e recuperar sua solução. Esse mecanismo constitui o que denominamos de dispositivos de entrada e saída (E/S) de um computador. Alguns desses dispositivos são para a comunicação do homem com o computador (teclado, mouse, monitor de vídeo, etc.), outros são para a comunicação entre computadores (modem, placa de rede, etc.) e temos também os dispositivos para armazenar informações (disquetes, fita, disco rígido, CD-ROM, etc.). A tecnologia de E/S apresenta duas tendências conflitantes. Por um lado, há uma crescente padronização de interfaces de software e hardware. Por outro lado, há uma variedade cada vez maior de dispositivos de E/S. Para um dispositivo que realiza grandes transferências de dados (disco) parece desperdício usar um processador caro de uso geral para fornecer ao registrador do controlador, 1 byte de cada vez. Muitos computadores passam parte desse trabalho para um processador especial chamado controlador de acesso direto (DMA). O DMA deve pode acessar diretamente a memória e está conectado fisicamente ao barramento de dados e de endereços do computador. Para começar uma transferência DMA, a CPU programa o controlador de DMA inserindo valores em seus registradores. O DMA inicia a transferência emitindo pelo barramento uma requisição de leitura para o controlador de disco. Normalmente o endereço de memória para onde escrever está nas linhas do barramento. Quando a escrita está completa, o controlador de disco envia um sinal de confirmação para o DMA. Profa. Tiemi Christine Sakata 12

I/O request Camadas do Sistema E/S Layer User processes Device-independent software Device drivers I/O reply I/O functions Make I/O call; format I/O; spooling Naming, protection, blocking, buffering, allocation Set up device registers; check status O que foi visto História dos Sistemas Operacionais Processos Deadlock Gerência de Memória memória virtual Interrupt handlers Hardware Wake up driver when I/O completed Perform I/O operation Sistema de Arquivos Gerência de E/S O software de E/S é normalmente organizado em quatro camadas. Cada camada tem sua função bem definida para executar e uma interface também bem definida para as camadas adjacentes. A funcionalidade e as interfaces diferem de um sistema para outro. Quando, por exemplo, o programa do usuário tenta ler um bloco de um arquivo, o SO é requisitado para realizar a chamada. O software independente de dispositivo procura pelo bloco na cache do buffer. Se o bloco requisitado não está lá, ele chama o driver do dispositivo para emitir uma requisição a fim de que o hardware o obtenha do disco. Quando o disco termina, o hardware gera uma interrupção. O tratador de interrupção é executado para descobrir o que aconteceu, isto é, qual dispositivo está requerendo atenção naquele momento. Ele então obtém o status do dispositivo e acorda o processo que estava dormindo para finalizar a requisição de E/S. Referências Andrew S. Tanenbaum. Modern Operating Systems. Prentice Hall. 2001 Segunda edição Abraham Silberschatz, Peter Galvin e Greg Gagne. Sistemas Operacionais. Editora Campus, 2000 Profa. Tiemi Christine Sakata 13