You are on page 1of 148

Fundamentos de Sistema

Operacionais

APRESENTAÇÃO
Jowâner Araujo
S.O.

Jowâner Araújo
Professor do CEFET-BA
Analista de Sistemas desde 1992
Especialização pelo LASID (UFBA) em Sistemas Distribuídos
Especialização em Administração Empresarial (CETEAD)
Mestrado em Redes de Computadores
Linha de Pesquisa – Descoberta do Conhecimento em Base de Dados
S.O.

Assuntos a Abordar
Sistemas Operacionais
 Definição, Características
Gerência de Processos
Gerência de Memória
Sistemas Distribuídos
Proteção e Segurança
S.O.

Sistemas Operacionais
Definição
 Programa Intermediário entre p usuário e o computador
Objetivo
 Tornar o uso do computador Conveniente e eficiente
S.O.

Compilador Montador Editor de Texto Banco de Dados

Programas de Sistema e Aplicativos


Sistemas Operacionais
Hardware
S.O.

Sistemas Operacionais (Gerenciador de Recurso)


Hardware – Parte Física do Computador
 Recursos Básicos (C.P.U. – Memória – Dispositivos de I/O)


S.O.

Sistemas Operacionais
Sistema em Lote (Batch)
 Primeiros Computadores (leitores de cartões e unidade de fitas)
 S.O. bem Simples – Controla um Job por vez


Computador
Job em Execução

JOB 13
2
S.O.
Sistemas Operacionais
Sistema em Lote (Batch)
 Primeiros Computadores (Unidades de disco)
 S.O. + Desenvolvido – Escalonador de Job -Controla + de 1 um Job por
vez . Job só executa quando um outro libera a C.P.U para executar
alguma interação com Dispositivos de I/O – Por exemplo

Computador
Job em Execução
JOB 1

JOB 2

JOB 3
S.O.
Sistemas Operacionais
Sistema em Tempo Compartilhado
 Primeiros Computadores (Unidades de disco)
 S.O. + Desenvolvido – Escalonador de Job com Multitarefa ou Tempo
Compartilhado. -Controla + de 1 um Job por vez . Cada Job tem uma
parcela de tempo de utilização da C.P.U. Por exemplo – Vários Job
Interagindo com o usuário

Computador
Job em Execução
JOB 1 JOB 2 JOB 3
S.O.
Sistemas Operacionais
Sistemas Paralelos
 +1 de Processador
 Sistemas Fortemente Acoplados (tightly Coupled)
 Compartilhamento de Memória, Dispositivo de Entrada e Saída
 OBS : Gasta-se tempo coordenando a ação dos Processadores
S.O.
Sistemas Operacionais
Sistemas Paralelos
 Simétrico

Computador

S.O S.O S.O

C.P.U C.P.U C.P.U


S.O.
Sistemas Operacionais
Sistemas Paralelos
 Assimétrico

Computador
S.O

C.P.U - Mestre

C.P.U C.P.U C.P.U


S.O.
Sistemas Operacionais
Sistemas de Tempo Real
 Requisito de Tempo Real Rígido

 Sistema de Tempo Real Crítico – Atraso de tempo Limitado, garantindo


execução das tarefas críticas – Controle Industrial e Robótica

 Sistema de Tempo Real Não-Crítico – Uma tarefa recebe prioridade de


execução em relação as outras – Multimídia, Realidade Virtual,
Exploração Submarina
S.O.
Sistemas Operacionais
Sistemas Distribuído

Computador
Computador

Servidor
Cliente
S.O.
Sistemas Operacionais
Estruturas de Sistema de Computação

CPU Controladora Controladora Controladora de


de Disco de Impressora Unidade de Fita

Barramento

Controladora de Memória

Memória
S.O.
Sistemas Operacionais
Estruturas de Sistema de Computação
 Boot – Processo de Carga
 Interrupções
 Hardware (Teclar)
 Software (divisão por Zero)
S.O.
Sistemas Operacionais
Estruturas de Sistema de Computação
 Interrupções I/O
Síncrona Assíncrona

Processo Solicitante Processo Solicitante


Usuário

Usuário
Esperando
Drive do Dispositivo Drive do Dispositivo
Rotina de Tratamento Rotina de Tratamento
de Interrupção de Interrupção
Kernel

Kernel
Hardware Hardware
Transferência Transferência
de Dados de Dados
S.O.
Sistemas Operacionais
Estruturas de Sistema de Computação
 Problema – Diferença de velocidade entre C.P.U. e dispositivos de I/O
 Polling – Verificação constante do término de uma operação de I/O pela C.P.U..
Transferência Byte a Byte
 Desvantagem – Desperdiça o recurso C.P.U. nas constantes verificação

 Estrutura DMA (Direct Memory Access) – Transferência por bloco (conjunto de


Bytes) entre o Buffer e a C.P.U., empregando uma controladora (C.P.U. especifica)
 Vantagem – Utiliza o esquema de interrupção da C.P.U. quando a operação for concluida
S.O.
Sistemas Operacionais
Estruturas de Sistema de Computação
 Estrutura de Armazenamento
 Memória Principal
 Memória Secundária

 Características
 Velocidade
 Custo
 Tamanho
 Volatilidade
S.O.
Sistemas Operacionais
Estruturas de Sistema de Computação
 Memória Principal
 Área de trabalho

 I/O mapeada em memória


Área de Memória reservada para os dispositivos

 Baseada em Interrupção
Quando o dispositivo terminar a sua execução, aciona a C.P.U.

 Memória Cache – Memória utilizada para compatibilizar a diferença entre C.P.U. e Memória

Memória Cache C.P.U.


S.O.
Sistemas Operacionais
Estruturas de Sistema de Computação
 Memória Secundária
 Discos Magnéticos
 Lâmina – Forma plana circular feito um C.D.
 Trilhas – Ranhuras Circulares nas lâminas
 Cilindros - Conjunto de Trilhas
 Setor –Porção de uma área de um disco

 Fitas Magnéticas
 Leitura Seqüencial
 Utilizada para Backup
S.O.
Sistemas Operacionais
Estruturas de Sistema de Computação
 Hierarquia de Armazenamento

Registradores

Cache

Memória Principal

Disco Eletrônico

Disco Magnético

Disco Ótico

Fitas Magnéticas
S.O.
Sistemas Operacionais
Estruturas de Sistema de Computação
 Proteção – Consiste em impedir que um processo interfira em um outro
 Operação em Modo Dual
 Modo Usuário – executa programa do usuário
 Modo Monitor (Supervisor, Sistema ou Privilegiada) – Executa instruções do
S.O. ou operações privilegiadas (Gravar em disco)

 Proteção I/O – Instruções de I/O através do S.O.


 Proteção de Memória – Vetor de Memória e lmitação do espaço de memória por
processo
 Proteção de C.P.U. – Evita que um processo se apodere da C.P.U. indefinidamente.
Emprega-se a fatia de Tempo Time-Slice
S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Componentes do Sistema
 Gerência de Processos
 Gerência da Memória Principal
 Gerência de Arquivos
 Gerência do Sistema I/O
 Gerência de Armazenamento Secundário
 Redes
 Sistema de Proteção
 Sistema de Interpretador de Comandos
S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Componentes do Sistema
 Gerência de Processos
 Processo – Entidade Ativa – Programa em execução
 Atividades
 Criar e excluir processos de usuários e de sistema
 Suspender e retomar processos
 Fornecer mecanismo para a sincronização de processos
 Fornecer mecanismo para a comunicação de processos
 Fornecer mecanismo para o tratamento de deadlocks

 Gerência da Memória Principal


 Manter registro das partes da memória que estão sendo usadas no momento e
por quem
 Decidir que processos deverão ser carregados na memória quando houver
espaço disponível
 Alocar e desalocar espaço na memória, conforme necessário
S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Componentes do Sistema
 Gerência de Arquivos
 Criar e excluir Arquivos
 Criar e excluir diretórios
 Fornecer suporte a primitivas para manipular arquivos e diretórios
 Mapear arquivos no armazenamento secundários estáveis (não-estáveis)

 Gerência do Sistema de I/O


 Um componente de gerência de que incluir buffering, armazenamento em
Cache e Spooling
 Interface geral do driver de dispositivo
 Drivers para dispositivos de Hardware específicos

 Gerência de Armazenamento Secundário


 Gerência de Espaço Livre
 Alocação de Espaço (Armazenamento)
 Escalonamento de disco
S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Componentes do Sistema
 Rede
 Recursos que permitam a comunicação entre sistema computacionais
separados
 FTP, http

 Sistema de Proteção
 Evitar que um processo interfira em um outro processo

 Sistema Interpretador de Comandos


 Interface entre o usuário e o Kernel, através das Instruções
 Ex: de Instruções
 Criação e Gerência de processo
 Tratamento de I/O
 Gerência de Armazenamento secundário
 Gerência de Memória Principal
 Acesso a sistema de Arquivo
 Proteção e redes
S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Serviços de Sistema Operacionais
 Serviços de Auxilio ao Programador
 Execução de programa
 Operações de I/O
 Manipulação do Sistema de Arquivos
 Comunicação
 Detecção de Erros

 Serviços de garantia e eficiência das operações


 Alocação de Recursos
 Contabilização
 Proteção e Segurança
S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Chamadas ao Sistema
 Interface entre um processo e o S.O.
 Linguagens de Programação com métodos “nativos”
 APi (windows)
 Grupos de Chamadas
 Controle de Processo
 Manipulação de Arquivos
 Manipulação de Dispositivos
 Manutenção de Informações
 Comunicações
S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Chamadas ao Sistema
 Controle de Processo
 End, abort, Load, execute, Create process, Terminate process, get proccess
attribute, set proccess attributes, wait for time, wait event, signal event, allocate
and free memory

 Gerência de arquivos
 Create file, delete file, open, close, read, write, reposition, get file attribute, set
file attributes

 Gerência de dispositivos
 Request device, release device, read, write, reposition, get device attribute, set
device attributes, logically attach or detach attributes

 Manutenção de Informações
 Get time or date, set time or date, get system data, set system data, get process.
File, or device attributes, set processo, file, or device attributtes

 Comunicações
 Create, delete comunication cooncetion, send, receive messages, transfer
status informaion, attach or detach remote device
S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Programas de Sistema (categorias)
 Gerência de Arquivos
 Informações de Status
 Modificação de Arquivo
 Suporte à Linguagem de Programação
 Carregamento e Execução de Programas
 Comunicação
S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Estrutura do Sistema
 Estrutura Simples
 Abordagem em Camadas
 Microkernels
S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Estrutura do Sistema
 Estrutura Simples (Monolítico – MS-DOS)

Programas Aplicativos

Programa de Sistema Residente

Drivers de Dispositivo
do MS-DOS

Drivers de Dispositivo BIOS em ROM


S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Estrutura do Sistema
 Estrutura Abordagem em Camadas
(os usuários)
Shells e Comandos
Compiladores e Interpretadores
Biblioteca do sistema
Interface de Chamada ao Sistema para o Kernel
Tratamento de Sinal Sistema de Arquivos Swapping Escalonamento de CPU
de Terminal Sistema Sistema de I/O de Bloco Substituição de Página
de I/O de Caracteres Drivers de Disco e Fita Paginação por Demanda
Memória Virtual

Interface do Kernel com o Hardware


Controladoras de terminal Controladoras de dispositivo Controladoras de Memória
Terminais Disco e Fitas Memória Física
S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Estrutura do Sistema
 Microkernel

Aplicação Aplicação Aplicação

Interface de Programação de Aplicações Extensão API

Subsistema Subsistema Subsistema

Gerência de Memória
Kernel Alocação de Tarefas
do Sistema Gerência de Dispositivos

Driver de Dispositivo Driver de Dispositivo Driver de Dispositivo


S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Máquina Virtual

Arquivos .class Arquivos .class


Carregador
do Programa Java da API Java
de Classes

Interpretador
Java

Sistema Host
S.O.
Sistemas Operacionais
Estruturas de Sistema Operacionais
 Máquina Virtual

Programa Java Programa Java Programa Java


Maquina Virtual Maquina Virtual Maquina Virtual
Windows Unix Chip Java
Hardware Hardware Hardware
S.O.
Processo
 Um programa em execução

 Estado do Processo
 Novo: O processo está sendo criado
 Em execução: as instruções estão sendo executadas
 Em Espera:o processo está esperando a ocorrência de algum evento
 Conclusão de Operação I/O ou recepção de um sinal
 Pronto:o processo está esperando para ser atribuído a um processador
 Encerrado:o processo terminou sua execução
S.O.
Processo
 Um programa em execução

 Estado do Processo

novo aceito saída Encerrado


interrupção

pronto Em Execução

Escolha do escalonador

Conclusão de I/O ou evento Espera por I/O ou evento

Em Espera
S.O.
Processo
 Bloco de Controle de Processo (PCB)
 Repositório de informações que variam de processo a processo
 Composição
 Estado do Processo
 Contador de Programa
 Registradores de C.P.U.
 Informações de Escalonamento de C.P.U.
 Informações de Gerência de Memória
 Informações de Contabilização
 Informações de status de I/O
S.O.
Processo
 Bloco de Controle de Processo (PCB)
 Repositório de informações que variam de processo a processo
 Composição

Ponteiro Estado do Processo


Número do Processo
Contador do Programa
Registradores
Limite de Memória
Lista de Arquivos Abertos
.
.
.
S.O.
Processo
 Troca de Contexto
Processo P0 Sistema Operacional Processo P1

Executando ‘ Interrupção ou Chamada ao Sistema

Salvar Estado no PCB0


Inativo

Recarregar Estado do PCB1

Inativo ou ‘’
Ocioso
Executando
Interrupção ou Chamada ao Sistema

Salvar Estado no PCB1

Inativo

Recarregar Estado do PCB0


Executando
S.O.
Processo
 Threads - Fluxo de Execução

Disparar Thread0

Disparar Thread1

Processo
Threads0

Threads1
S.O.
Filas de Escalonamento

Cabeçalho da Fila
PCB 7 PCB 2
Fila de Inicio
Processo Prontos fim Registradores Registradores
. .
. .
Unidade de Fita Inicio
Magnético 0 fim

PCB 3 PCB 6
Disco Inicio
Unidade 0 fim Registradores Registradores
. .
. .
S.O.
Filas do Escalonamento de Processos

fila de
CPU
Processos Prontos

I/O Fila de I/O Pedido de I/O

Fatia de
Tempo Expira

Filho
Cria um Processo
Executa Filho

Ocorre Espera por uma


Interrupção Interrupção
S.O.
Escalonadores
 Escalonador de Longo Prazo
 Escalonador de Job – Seleciona o Processo desse Conjunto e os Carrega na
Memória para Execução

 Escalonador de Curto Prazo


 Escalonador de CPU – Seleciona dentre os Processos que estão Prontos para
Execução e aloca a CPU a um deles
S.O.
Escalonador de Médio Prazo
 Pode ser vantajoso remover processos da memória (e da disputa ativa por CPU) e,
assim, reduzir o grau de multiprogramação
 Swapping (troca)
Swap Out
Swap in Processos Trocados
Parcialmente Executados

Fila de
CPU fim
Processos Prontos

Filas de
I/O Espera de I/O
S.O.
Criação de Processos –
 Possibilidades em termos de execução durante a criação de um
processo
 Pai continua executar de forma concorrente com os filhos
 Pai espera até que alguns ou todos os filhos tenham terminado

 Possibilidades em termos de espaço de endereçamento durante a


criação de um processo
 Processo filho duplicata do Pai
 Processo filho tem um programa carregado nele

 Termino de um Processo Filho


 Filho excedeu seu uso de alguns dos recursos que foram alocados
 A tarefa atribuída ao filho não é mais exigida
 Pai está saindo e o S.O não permite que tenha filho sem pai
S.O.
Criação de Processos – EX: Árvore de Processos de um Sistema UNIX

Raiz

pagedaemon Swapper Init

Usuário 1 Usuário 2 Usuário 3


S.O.
Processos Cooperativos
 Processo que afeta ou pode ser afetado por um outro processo
 Causas
 Compartilhamento das Informações
 Velocidade de Computação através de criação de subtarefa
 Modularidade – Construções de Sistema, dividindo funções em processos threads separadas
 Conveniência – Necessidade do usuário em ter vários módulos

Produtor Consumidor
Buffer
S.O.
Sistema de Troca de Mensagens

Comunicação
Processo P Processo Q

 Modelos de Comunicação
 Nomeação

Processo Q
Processo P
Comunicação Direta

Receive(P,message)
Send(Q, message)

Processo P
Comunicação Indireta Processo Q

Correio
Send(Q, message)
Compartilhado Receive(P,message)
S.O.
Sistema de Troca de Mensagens
 Modelos de Comunicação
 Sincronização

 Envio Bloqueante – Processo de Envio é Bloqueado até que a mensagem seja


recebida pelo processo receptor ou caixa do correio

 Envio Não-Bloqueante – Processo de Envio envia a mensagem e retorna a operação

 Recepção Bloqueante – O receptor é Bloqueado até que a mensagem esteja


disponível

 Recepção Não-Bloqueante – O receptor recebe uma mensagem válida ou então nada


S.O.
Sistema de Troca de Mensagens
 Modelos de Comunicação
 Buffering
 Capacidade Zero – Fila de tamanho 0, o canal não pode ter mensagem em espera.
Nesse caso, o remetente deve bloquear até que o destinatário receba a mensagem

 Capacidade Limitada – Fila de tamanho N; assim, no máximo mensagens podem


residir nela. Se a fila não estiver cheia quando uma nova mensagem for enviada, esta
é colocada na fila (a mensagem é copiada ou é mantido um ponteiro para a
mensagem) e o remetente pode continuar a execução sem esperar. No entanto, o
canal tem capacidade finita. Se o canal estiver cheio, o remetente deverá bloquear
(no sentido de “ficar bloqueado”) até que haja espaço disponível na fila.

 Capacidade não-limitada ou ilimitada – a fila tem tamanho infinito; assim, qualquer


número de mensagens pode ficar esperando na fila. O remetente nunca bloqueia.
S.O.
Threads
 Processo Leve (lightweight process) – Unidade Básica de Utilização de
C.P.U.
 Composição :
 Id da Thread
 Contador de Programa
 Conjunto de Registradores
 Pilha
 Ex: Solicitação de uma página WEB com Som e Imagens,etc

Código Dados Arquivos Código Dados Arquivos

Thread Thread
S.O.
Threads
 Benefícios
 Capacidade de Resposta
 Navegador Web com múltiplas Threads carregam várias imagens simultaneamente
 Compartilhamento de Recursos
 Um único espaço de endereçamento
 Economia
 Custo de criação inferior a criação de um processo
 Utilização de Arquitetura Multiprocessador
 Um Thread para cada processador
S.O.
Threads
 Classificação
 Threads de Usuário
 Criação, escalonamento e gerência a nível de usuário sem suporte do Kernel

 Threads de Kernel
 Criação, escalonamento e gerência a nível de Kernel
 Threads mais lentas do que os threads de usuários
S.O.
Threads
 Modelos de Multithreading

Muitos-para-Um Um-para-Um Muitos-para-Muitos

Thread de Thread de Thread de


Usuário Usuário Usuário

Thread de Thread de Thread de


K K K K K K
Kernel Kernel Kernel
S.O.
Threads
 Estado do Thread com Java

novo

novo Terminado
start() stop()

Executável

sleep()
resume()
suspend()
I/O
Bloqueado
S.O.
Escalonamento de C.P.U.
 Base dos Sistemas Operacionais Multiprogramados
 Objetivo : Maximizara utilização da CPU
 Propriedade dos Processos – Alternância entre os surtos
 Surto de CPU
 Grande Número de Surtos de CPU curtos e número pequeno de surtos de CPU longo
 Surto de I/O

 O escalonador de curto prazo escolhe um processo para executar oriundo


da fila do pronto
S.O.
Escalonamento de C.P.U.
 Escalonamento não-preemptivo
 Características
 Estado de Execução  Estado de Espera (EX: Solicitação de I/O)
 Termino de Processo

 Escalonamento preemptivo
 Características
 Estado de Execução  Estado de Espera (EX: Solicitação de I/O)
 Termino de Processo
 Estado de Execução  Estado de Pronto (Interrupção)
 Estado de Espera  Estado de Pronto (Conclusão de I/O)

 Dispatcher – Módulo que dá controle da CPU ao processo pelo Escalonador


de Curto Prazo - Funções
 Troca de Contexto
 Passar para o modo usuário
 Reiniciar o programa no ponto adequado
S.O.
Escalonamento de C.P.U.
 Critérios de Escalonamento
 Utilização de C.P.U. Utilização Máxima
 Throughput - Qtde de processo terminados / Unidade de tempo
 Tempo de Retorno – Intervalo entre a submissão do processo e o tempo
de conclusão
 Tempo de Espera – Soma dos períodos gastos esperando na fila de
processos prontos
 Tempo de Resposta – Tempo que o processo leva para começar a
responder
S.O.
Escalonamento de C.P.U.
 Algoritmo de Escalonamento
 Escalonamento First-come, First-served - O primeiro que chega é o
primeiro a se atendido – Não-Preemptivo
 Escalonamento do Job mais Curto – Jobs com o surto de C.P.U. mais
curto são executados primeiro baseado nos surtos anteriores - Não-
Preemptivo
 Escalonamento por Prioridade – Os jobs com prioridade mais alta é
executado primeiro – Não-preemptivo - . Aumentar a prioridade
proporcionalmente ao tempo de espera do processo
 Escalonamento Round-Robin – Revezamento – Circular – Tempo
Compartilhado – Emprega um quantum de tempo
S.O.
Escalonamento de C.P.U.
 Algoritmo de Escalonamento
 Escalonamento por Múltiplas Filas
 EX de Filas
 Processos de Sistema
 Processos Interativos
 Processo Batch

 Cada fila pode utilizar algoritmo diferentes


 Processo Batch só vai executar se a fila dos Processos Interativos estiver vazia
 Processo Interativo só vai executar se a fila dos Processos de Sistema estiver vazia
S.O.
Escalonamento de C.P.U.
 Algoritmo de Escalonamento
 Escalonamento por Múltiplas Filas com Realimentação
 O processo migra de uma fila para outra.
 A fila com maior prioridade possui um quantum de tempo menor que as de menor
prioridade.
 Um processo entra pela a file de maior prioridade. Caso ele não termine, o
processo entra na fila de menor prioridade
S.O.
Escalonamento de C.P.U.
 Escalonamento com Múltiplos Processadores
 Multiprocessamento Simétrico (SMP)
 Fila comum de processos prontos
 Complexidade – Garantia de 2 processadores não pegar o mesmo processo

 Multiprocessamento Assimétrico (AMP)


 Processadores específicos para realizar as operações de um processo
S.O.
Escalonamento de C.P.U.
 Escalonamento de Tempo Real
 Sistema de Tempo Real Crítico
 Escalonador deve conhecer o tempo de execução de cada processo

 Sistema de Tempo Real Não-Crítico


 Escalonador trabalha com prioridades de processos por ser o tempo menos
restritivo que o anterior
S.O.
Escalonamento de C.P.U.
 Escalonamento de Threads
 Escalonamento Local ao Processo, realizado pela aplicação
 Escalonamento Global do Sistema, realizado pelo Kernel
S.O.
Sincronização de Processos
 Seção Crítica
 Quando processos ou threads tentam manipular área de dados
compartilhados simultaneamente
 Problema – Quando um thread tenta realizar um débito numa conta
corrente ao mesmo tempo que um outro thread tenta creditar um outro
valor

 Requisitos :
 Exclusão Mútua – Somente um Thread pode está executando num seção crítica
 Progresso – Caso não tenha nenhuma thread numa seção crítica e houver
threads tentando entrar nesta seção, somente eles podem participar na decisão
de qual deles entrará na sua seção crítica que não pode ser adiada
indefinidamente
 Espera Limitada - O número de solicitação de entrada numa seção crítica antes
do atendimento é limitado para evitar o Starvation
S.O.
Sincronização de Processos
 Seção Crítica
 Requisitos :
 Quando processos ou threads tentam manipular área de dados compartilhados
simultaneamente
 Problema – Quando um thread tenta realizar um débito numa conta corrente ao
mesmo tempo que um outro thread tenta creditar um outro valor
 Condição de Corrida – Quando a ordem de execução dos Threads durante a
manipulação dos dados compartilhados acessados concorrentemente, geram
resultados diferentes
S.O.
Sincronização de Processos
 Tipos de Sincronização
 Sincronização por Software – Emprego de Algoritmo
 Sincronização por Hardware – Utiliza Operações atômica de teste e troca
de conteúdo (Test-And-Set)
S.O.
Sincronização de Processos
 Soluções
 Semáforos – Variável inteira que além da Inicialização 2 operações atômicas básicas :
P de proberen (Testar) e V de Verhogen (Incrementar)
 Desvantagem – Espera ocupada – Spinlock

P (S) {
while S <= 0 ;
S --;
}
V(S) {
S++;
}

Chamadas
Semaphore S;
P(S);
Seção Critica;
V(S);
S.O.
Sincronização de Processos
 DeadLocks
 2 ou mais processos estão esperando indefinidamente por um evento que
somente pode ser provocado por um dos processos em espera
P0 P1

P(S); P(Q);
P(Q); P(S);
: :
. .
V(S); V(Q);
V(Q); V(S);
S.O.
Sincronização de Processos
 Problemas Clássicos de Sincronização
 Buffer Limitado – Emprego de semáforo para Exclusão Mútua, durante a
utilização do Buffer

 Leitores-Escritores – Caso exista alguém escrevendo numa variável


compartilhada, ninguém pode ler ou escrever nesta variável
S.O.
Sincronização de Processos
 Problemas Clássicos de Sincronização
 Jantar dos Filósofos – 5 Filósofos e 5 Talheres disposto em um circulo
 Filósofos meditam
 P/ comer , o filósofo deve pegar 2 talheres que está próximo a ele

 O que acontecem quando todos tentam comer ao mesmo tempo ? Ninguém come

 Solução
 Permitir, no máximo, 4 filósofos comerem ao mesmo tempo
 Permitir que um filosofo só pegue o talher se os dois talheres estiverem
disponíveis (Observe que o filosofo deverá pegá-lo numa seção crítica)
 Solução Assimétrica – Filósofo Impar pega primeiro talher a esquerda,
Filósofo, a direita
S.O.
Sincronização de Processos
 Monitores
 Programa que fornece uma série de operações definidas pelo programador
e monitora os recursos compartilhados
S.O.
Deadlocks
 Processos em Estado de Espera que aguardam a liberação de algum recurso
que estão preso por algum estado de espera

 Passos para utilização de Recursos


 Pedido do Recurso
 Uso
 Liberação
S.O.
Deadlocks
 Condições de Ocorrência Simultânea
 Exclusão Mútua – Pelo menos um recurso mantido de modo não compartilhado
 Posse e Espera – um processo mantendo um recurso e esperando um outro rec urso
mantido por outro processo no momento
 Não-preempção – Um recurso só é liberado voluntariamente pelo processo que o
mantém
 Espera Circular - Quando um processo P0 espera por um recurso mantido por Pie Pi
esperando por um recurso mantido por um qualquer processo Pj e Pj esperando por P0

Rk Pi
Rn
P0

R0 Pj
S.O.
Deadlocks
 Tratamento de Deadlock

 Prevenção do Deadlock
 Não permitir simultaneidade das condições de ocorrência citadas

 Uso de protocolo que se recupere caso detecte o Deadlock


 Abortar todos os processos envolvidos no Deadlock
 Abortar um processo de cada vez até eliminar o ciclo de Deadlock

 Ignorar a presença e deixar o usuário detectar e resolver o problema


S.O.
Gerência de Memória
 Operações Básicas
 Busca da Instrução da Memória
 Decodificação da Instrução
 Busca dos Operandos da Memória
 Possível Armazenamento do Resultado na Memória

 OBS : Eventualmente, há movimento entre Memória e Disco devido a Restrição do


espaço disponível na Memória Principal
S.O.
Gerência de Memória
 Espaço de Endereçamento Lógico x Físico
 Endereço Lógico – Endereço Gerado pela C.P.U.
 Endereço Físico – Visto pela Unidade de Memória

Registrador de
Alocação
Registrador Lógico Registrador Físico
14000
346 14346
Memória
C.P.U +
S.O.
Gerência de Memória
 Espaço de Endereçamento Lógico x Físico Tempo de Execução I
M

Tempo de Compilação Tempo de Carga A


G
C L C
E
O I A M
M N R
Programa P K Programa R B
Programa I
Fonte I E de Carga E
Objeto N
L D G Á
A I A R

D T D I
A
O O O
R Outros R R N
Módulos Biblioteca A
Biblioteca
Objeto M
do Sistema do Sistema E
M
Carregada
Ó
Dinamicamente R
I
A
S.O.
Gerência de Memória
 Espaço de Endereçamento o de Memória
 Em Tempo de Compilação – Código absoluto . COM – Endereço de Memória definido
“A Priori”
 Em Tempo de Carga – Código Relocável – Associação só ocorre no momento da
carga (Endereço Lógico = Endereço Físico)
 Em Tempo de Execução - Associação em tempo de execução. Processo movido de
um segmento para um outro (Endereço Físico e Lógico diferentes (Endereço Virtual)

 Carga Dinâmica – Carga de Rotina sob Demanda


 Ligação Estática – Quando a Biblioteca do S.O. são incorporadas ao programa pelo
carregador
 Ligação Dinâmica – A ligação é adiada até o tempo de execução. STUB é incluída no
programa para referenciar os módulos do sistema. Uma única cópia da Biblioteca do
S.O. fica disponível.
S.O.
Gerência de Memória
 Overlay
 Técnica utilizada para que o S.O. possa executar processos maiores que a
memória disponível

Memória Disponível 150 k Memória Disponível 150 k


Tabela de Símbolos - 20 k Tabela de Símbolos - 20 k
Rotinas - 30 k Rotinas - 30 k
Passo 1 - 70 k Driver Overlay - 10 k
Passo 2 - 70 k Área de Overlay - 80 k

Passo 1 - 70 k Passo 2 - 70 k
S.O.
Gerência de Memória
 Swapping
 Movimentação do Conteúdo do Disco para a Memória e Vice-Versa.
 Caso a resolução do endereço ocorra no momento da carga, o
processo deve ocupar a mesma posição de memória ao retornar do
disco

Memória Principal
Sistema Operacional

Swap Out
Processo
P1
Swap In
Processo
Espaço de Usuário P2
S.O.
Gerência de Memória
 Alocação Contígua da Memória
 O uso do registrador de limite e de relocação protegem o S.O. e os outros processos
contra acesso inválido

Registrador de Registrador de
Limite Relocação

Endereço
Endereço
Lógico
Físico
sim
C.P.U < + Memória

não

Exceção:Erro de Endereçamento
S.O.
Gerência de Memória
 Alocação Contígua da Memória
 Problema de alocação de memória Dinâmica – Procedimento de atendimento de um
pedido de tamanho N de uma lista de blocos de memória livre
 Estratégia de solução
 First Fit – Aloca o Primeiro Bloco livre de Memória
 Best-Fit – Aloca o menor bloco de memória suficiente para conter o processo
 Worst-Fit – Aloca o maior bloco de memória suficiente para conter o processo

 Conseqüência
 Fragmentação Externa – Embora haja área disponível para o processo, este não é alocado na
memória principal por estar fragmentada
 Fragmentação Interna – (memória alocada de um processo – memória solicitada) produz
pequena área de memória que não vale a pena administrar devido ao seu alto custo
S.O.
Gerência de Memória
 Paginação
 Esquema que permite que o espaço de endereçamento físico de um
processo não seja contíguo
 Memória Física – Quebrada em quadro de tamanho N
 Memória Lógica – Quebrada em Pagina de Tamanho Fixo
 Mínimo N Página x N Quadro
Endereço Endereço
Tabela de Página
Lógico

{
Físico
----------
C.P.U P|D F|D Memória
p ---------
_________
F
_________
----------
---------
Hardware de Paginação
S.O.
Gerência de Memória
 Paginação
 Técnica utilizada para que o S.O. possa executar processos maiores que a
memória disponível- Elimina o problema de fragmentação externa
Número
do Quadro
0
1 Pagina 0
Pagina 0 0 1
2
Pagina 1 1 4
3 Pagina 2
Pagina 2 2 3
4 Pagina 1
Pagina 3 3 7
5
6
Memória Lógica Tabela de Página
7 Pagina 3

Memória Física
Gerência de Memória
S.O. Livres Em Uso

 Paginação
Lista de Quadros Livres
Número Lista de Quadros Livres Número
14
do Quadro 15 do Quadro
13
0 14
18 13
13 Pagina 1
20 1 13
14 Pagina 0
15 14
2 18
15
15
16 XXXXX 3 20
16 XXXXX
17 XXXXX Tabela de Página
17 XXXXX
18 do Novo Processo
18 Pagina 2
19 XXXXX
19 XXXXX
Pagina 0 20 Pagina 0 20 Página 3
Pagina 1 21 XXXXX Pagina 1 21 XXXXX
Pagina 2
Pagina 2
Pagina 3 Memória Física
Pagina 3 Memória Física
Novo Processo
Novo Processo
Quadros Livres Antes da Alocação Quadros Livres Depois da Alocação
S.O.
Gerência de Memória
 Paginação
 Estrutura da Tabela de Página
 A Paginação aumenta o tempo de troca de contexto
 Cada processo tem sua estrutura de página
 Implementação
 Conjunto de Registradores Dedicados – Tabela em Memória com um único
Registrador de Base da Tabela de Página (PTBR)
 Registradores associativos (translation look-aside buffers – TLBS) – a dupla
(chave, valor) na memória cache
S.O.
Gerência de Memória
 Paginação
 Estrutura de Pagina – Implementação com TLB
Endereço
Lógico
P|D Página Quadro
C.P.U

Tabela de Página Endereço

{
Físico
----------
p F|D Memória
---------
_________
Erro da TLB
F
_________
----------
---------
Hardware de Paginação
S.O.
Gerência de Memória
 Proteção
 Bit que indica a permissão (Leitura-Escrita, Somente Leitura, Execução)
0
Numero do Quadro Bit-Válido-Inválido Número
1
do Quadro
2 Pagina 0
Pagina 0 0 2 V Pagina 1
3
Pagina 1 3 V
1 4 Pagina 2
Pagina 2 4 V V – Válido 5
2
Pagina 3 7 V I - Inválido 6
Pagina 4
3 8 V 7 Pagina 3
Pagina 5 5 9 V 8 Página4
6 0 I 9 Pagina 5
Memória Lógica
0 I
7 :
:
Tabela de Página
Memória Física
S.O.
Gerência de Memória
 Programação Multiníveis
 Quando o espaço de memória é muito grande e a tabela de página contigua
torna-se muito grande, cria-se níveis para tabela de página com a finalidade
de economia de espaço de memória física
0
1
: 2
: 3
4
5

: 6
: 7
Tabela Externa 8
9

Memória Física
S.O.
Gerência de Memória
 Programação Multiníveis
 Quando o espaço de memória é muito grande e a tabela de página contigua
torna-se muito grande, cria-se níveis para tabela de página com a finalidade
de economia de espaço de memória física
Endereço Lógico

P1 | P2 | D
P1

P2
P1 – Pagina Externa
D
Tabela de
P2 – Pagina Interna
Página Externa
D - Deslocamento
Página de Tabela de
Página
Memória
S.O.
Gerência de Memória
 Tabela de Página Invertida - <id-processo, número de página, deslocamento>
 OBS: só existe única tabela de página no Sistema
 Problema – Desempenho, Hashing, Registradores Associativos
Endereço
Lógico

C.P.U Pid | P | D Endereço


Físico

Pesquisa
----------
---------
_________
Pid | P
_________
} i
I|D Memória

----------
---------

Tabela de Página
S.O.
Gerência de Memória
 Páginas Compartilhadas – Mesma Página utilizada por diferentes processo- Ex;
Código reentrante
0
Ed1 3 Ed1,2,3 = Página do Editor Dados 1
1
Ed2 4 2 Dados 3
Ed3 6 3 Ed1
Dados 1 1 Ed1 3 4 Ed2
Tabela de Ed2 4 5
Processo P1 página P1
Ed3 6 6 Ed 3
Dados 2 7 7 Dados 2
Ed1 3
Tabela de 8
Ed2 4 Processo P2
página P2 9
Ed3 6
Dados 3 2 Memória Física

Processo P3 Tabela de
página P3
S.O.
Gerência de Memória
 Segmentação – técnica utilizada para reduzir o espaço contíguo para o
processo, separando as partes de acordo com a visão do usuário, visando para
partes compartilhadas das não compartilhadas

S {
Limite Base

Tabela de Segmento
Endereço
Físico
sim
C.P.U S|D < + Memória

não

Exceção:Erro de Endereçamento
S.O.
Gerência de Memória
 Páginas Compartilhadas – Mesma Página utilizada por diferentes processo- Ex:
Código Reentrante

1400
Segmento 0
Espaço de Endereço Lógico 2400

Sub-rotina Pilha Limite Base 3200 Segmento 3


Segmento 0 Segmento 3 0 1000 1400
1 4300
Sqrt Tabela de 400 6300 Segmento 2
2 4700
Símbolos 400 4300 Segmento 4
3 1100 3200
Segmento 1 Segmento 4 4 5700
1000 4700
6300
Programa Segmento 1
Símbolo 6700
Tabela de Segmentos
Segmento 2 Memória Física
S.O.
Gerência de Memória
 Proteção e Compartilhamento – Com separação das partes do programação
que pode ser compartilhar determinados segmentos(Código Reentrante)

Memória Lógica do Processo P1 43062


Limite Base
Editor 0 25286 43062
Dados 1 Editor
1 4425 68348
Segmento 0 Segmento 1 68348
Tabela de Segmentos Dados 1
72773
do Processo P1

Memória Lógica do Processo P2


Limite Base
90003
Editor
Dados 2 0 25286 43062 Dados 2
1 8850 90003 98553
Segmento 0 Segmento 1
Tabela de Segmentos
do Processo P2 Memória Física
S.O.
Gerência de Memória
 Segmentação com Página – Forma de Compatibilizar a visão usuário com a
garantia de memória
Endereço Lógico

Seletor Deslocamento Endereço Linear

Descritor de + Diretório Página Deslocamento


Segmentação Quadro da Pagina

Tabela de Pagina
Entrada
Físico
Entrada na
tabela de página
Registrador de Base Entrada de
do Diretório de Página Diretório

Diretório de Página
Tradução de Endereço no Intel 80386
S.O.
Memória Virtual
 Técnica que permite a execução de processos que podem não estar
inteiramente na memória
 Fundamentos
 Grande parte do código do sistema é tratamento de erro que raramente é executado
 Vetores, listas e tabelas normalmente são superdimensionados
 Certos recursos ou opção de um programa são usados raramente são usados
S.O.
Memória Virtual

Página 0
Página 1
Página 2

:
:

Mapa da Memória
Página n

Memória Virtual Memória Física


Memória Virtual
S.O.
 Paginação sob Demanda – Só traz a página necessária

Programa A 0 1 2 3
Swap Out
(descarga) 4 5 6 7

8 9 10 11

12 13 14 15
Swap In
(carga) 16 17 18 19
Programa B
20 21 22 23

24 25 26 27

28 29 30 31

Memória Principal
Memória Virtual
S.O.
 Tratamento de uma Falta de Página
 1 – Verificação da validade da memória
 2 – Se referência Inválida – Termina Processo.
Caso Contrário – Página não carregada, Carrega-se Página
 3 - Pesquisa de Quadro Livre
 4 – Leitura da Página Desejada no quadro recém alocado
 5 - Indicação de Página carregada na memória na tabela interna do processo
 6 – Reinicio da instrução interrompida
Memória Virtual
S.O.
 Tratamento de uma Falta de Página
Sistema Operacional
3 – A Página está no
Armazenamento
Secundário

2 - Exceção

Carregar 1 - Referência
M
i
Tabela de Página
6 – Reiniciar
Instrução

5 – Ajustar Tabela Quadro Livre


de Página

4 – Carregar a
Página Faltante

Memória Física
Memória Virtual
S.O.
 Substituição de Página – Retirar da Memória a página que tenha a menor
probabilidade de ser utilizada

 1 – Localizar a Posição da página desejada no disco


 2 – Encontrar um quadro livre:
 A) Se houver um quadro livre, use-o
 B)Se não houver quadro livres, use um algoritmo de substituição para selecionar um quadro
livre
 C)Gravar a página vítima no disco, alterar as tabelas de página e quadro de acordo
 3 - Ler a página desejada no quadro recém-liberado; alterar as tabelas de página e
quadro
 4 – Retomar o Processo do Usuário
Memória Virtual
S.O.
 Substituição de Página – Retirar da Memória a página que tenha a menor
probabilidade de ser utilizada
 Tipos de Algoritmo
 Substituição de Página FIFO – Primeira Página a entrar, Primeira Página a sair
 Substituição Ótimo – Substituir a página que não SERÁ USADA pelo período
mais longo
 Substituição LRU (Least Recently Used) – Substitui a página que não foi usada
por mais tempo
Memória Virtual
S.O.
 Thrashing – Alta Atividade de página, onde o tempo gasto de paginação for
maior do que a execução do processo
 Causa
Baixa taxa de utilização da C.P.U. devido a falta de memória

Aumento do Grau de Multiprogramação

Retirada dos quadro utilizados por outros processo para o processo ativo (fila para
dispositivo de paginação)

Esvaziamento da fila do pronto


S.O.
Gerência de Arquivos
 Arquivos : Unidade Lógica de armazenamento. Abstração das Propriedades
Físicas
 Tipos : Texto, Executável, etc
 Atributos : Nome, Tipo, Posição, Tamanho, Proteção, Hora,data e Identificação do
usuário
 Operações Básicas : Criação, Escrita, Leitura,Reposicionamento, Exclusão e
truncamento
 Arquivos Abertos : Arquivos que estão sendo aberto por algum processo
 Informações : Ponteiro de Arquivo, Contador de abertura de arquivo, posição do arquivo no
disco
Gerência de Arquivos
S.O.
 Compartilhamento de Arquivos - Mapeamento de um arquivo em memória
Arquivo Mapeado em Memória

3 1
2
1 6 3
2 4
3 1 5
4 5 6
5
6 4
2

Memória Virtual do Memória Física Memória Virtual do


Processo A Processo B

1 2 3 4 5 6

Arquivo em Disco
S.O.
Gerência de Arquivos
 Estrutura Interna de Arquivo – Depende da sua finalidade : EX. DOC; .EXE
 Registro Lógico x Registro Físico
 Método de Acesso
 Acesso Seqüencial
 Acesso Direto
 Acesso Indexado
 Diretório –Local onde encontra informações sobre o arquivo : Nome, Posição,
Tamanho
 Operações Básicas : Pesquisar Arquivos, Criar Arquivo, Excluir Arquivo, Listar
Diretório, Renomear Arquivo, Percorrer Sistema de Arquivo
 Estrutura Interna
 Diretório de Nível Único
 Diretório de 2 Níveis
 Diretório Estruturado em Arvore
 Diretório de Grafo Acíclico
 Diretório de Grafo genérico
S.O.
Gerência de Arquivos
 Estrutura Lógica do Diretório - Diretório de Nível Único

Cat Bo a test data mail cont hex records

Arquivos

 Estrutura Lógica do Diretório - Diretório de Dois Níveis


Diretório de Arquivos Mestre
(MFD) Usuário 1 Usuário 2 Usuário 3 Usuário 4

Diretório de Arquivos
de Usuário (UFD) Cat Bo a test data mail cont hex records

Arquivos
S.O.
Gerência de Arquivos
 Estrutura Lógica do Diretório - Diretório Estruturados em Árvore

Raiz Spell Bin Programs

Cat mail Bo a test data mail p E records

Prog Copy prt Cat hex records


cont hex records

a test data mail mail


S.O.
Gerência de Arquivos
 Estrutura Lógica do Diretório - Diretório em Grafos Acíclico

Raiz Dict Spell

List all w count


Count Words List

list rade w7
S.O.
Gerência de Arquivos
 Estrutura Lógica do Diretório - Diretório em Grafos Genérico

Raiz avi tc jim

Text mail Count Book


Book mail unhex hyp

avi count unhex hex


S.O.
Gerência de Arquivos
 Proteção –
 Copias de Segurança (Backup)
 Tipos de Acesso
 Ler
 Escrever
 Anexar
 Excluir
 Listar

 Problema : Espaço ocupado para controlar o acesso


 Listas de Acesso e Grupos
 Proprietário : o usuário que criou o arquivo
 Grupo : Um conjunto de usuários que compartilha o arquivo e precisa de acesso semelhante é
um grupo, ou grupo de trabalho
 Universo : Todos os outros usuários no sistema constituem o universo
S.O.
Gerência de Arquivos
 Método de Alocação
 Alocação Contígua – base teórica idêntica a Gerencia de memória
 Alocação Encadeada –
 Alocação Indexada
Gerência de Arquivos
S.O.
 Método de Alocação
 Alocação Contígua – base teórica idêntica a Gerencia de memória – Problema de
fragmentação externa e alocação de espaço contíguo

Diretório
Count
0 1 2 3 Arquivo Inicio tamanho
F Count 0 2
4 5 6 7
Tr 14 3
8 9 10 11 Mail 19 6
Tr
12 13 14 15 List 28 4
F 6 2
16 17 18 19
Mail
20 21 22 23

24 25 26 27
List
28 29 30 31
Gerência de Arquivos
S.O.
 Método de Alocação
 Alocação Encadeada – Resolve problema de fragmentação externa e alocação de
área contígua – Perde-se em desempenho devido a dispersão dos ponteiros nos
próprios blocos

Diretório

0 1 2 3 Arquivo Inicio Final


Jeep 9 25
4 5 6 7

8 9 10 11

12 13 14 15

16 17 18 19

20 21 22 23

24 25 26 27

28 29 30 31
Gerência de Arquivos
S.O.
 Método de Alocação
 Alocação Indexada –Resolve o problema do desempenho devido os ponteiro estarem
num único local

Diretório

0 1 2 3 Arquivo Bloco de Índice


Jeep 19
4 5 6 7

8 9 10 11
9
12 13 14 15
16
16 17 18 19
1
19
20 21 22 23 10

24 25 26 27 25

28 29 30 31
Gerência de Arquivos
S.O.
 Gerência de Espaço Livre
 Vetor de bits
 Lista Encadeada de Espaço Livre no Disco
 Agrupamento
 Contadores
Gerência de Arquivos
S.O.
 Gerência de Espaço Livre - Vetor de bits

Posição da Memória

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29

0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0

0 - desocupado
1 - ocupado
Gerência de Arquivos
S.O.
 Gerência de Espaço Livre
 Lista Encadeada de Espaço Livre no Disco

Espaço Livre

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

16 17 18 19

20 21 22 23

24 25 26 27

28 29 30 31
Gerência de Arquivos
S.O.
 Gerência de Espaço Livre – Agrupamento – Alocação e liberação de grupo de
área
 Gerência de Espaço Livre – Contadores – grupo com n blocos contíguo –
apontando para o primeiro bloco
Gerência de Arquivos
S.O.
 Implementação de Diretório – Estrutura de Dados de Acesso
 Lista Linear
 Tabela de Hash
Sistema de I/O
S.O.
 Método necessários para controlar os dispositivos de I/O, devido as suas
especificidades (velocidade, funções), separando o resto do Kernel da
Complexidade de gerenciamento de I/O

 Conflitos (Padronização de Hw e SW x Variedade Maior de Dispositivos de I/O)

 Device Driver – Encapsula os detalhes e diferenças dos diversos dispositivos


de I/O
 Porta- Ponto de Conexão entre o dispositivo e o sistema do computador
 Barramento – Conjunto de fios condutores comuns
 Controladora – Dispositivo eletrônico que pode operar uma porta, barramento
ou um dispositivo
S.O.

Barramento
Sistema de I/O

Discos
SCSI
 Estrutura Típica de Barramento do P.C

Monitor Processador
cache

Controladora Controladora Memória Controladora


Gráfica de Memória SCSI

Barramento

Controladora Interface de Barramento


de Disco IDE de Expansão Teclado

Barramento de Expansão
Discos

Porta Paralela Porta Serial’’


Sistema de I/O
S.O.
 Formas de Comunicação entre Processador x Dispositivo de I/O
 Instrução de I/O
 I/O Mapeada em Memória
 Polling – Espera Ocupada – Quando a C.P.U. verifica continuamente o
dispositivo de I/O
 Handshaking (Pesquisar) – Estabelecimento das regras de comunicação entre
o dispositivos
Sistema de I/O
S.O.
 Interrupção- Mecanismo de HW de notificação para a C.P.U.
C.P.U
1
2
Driver de Dispositivo
Inicia I/O
Inicia I/O
3
C.P.U. em Execução, verifica interrupção entre instruções
Entrada Pronta, Saída Completa ou Erro
4 Gera Sinal de Interrupção

C.P.U. recebe interrupção, transfere o controle


7 para a rotina de tratamento de Interrupção
5

A rotina de Tratamento de Interrupção Ciclo de I/O baseado em Interrupção


Processa dados, retorna da Interrupção

6
C.P.U. retorna o processamento da tarefa interrompida
Sistema de I/O
S.O.
 S.O. Moderno – Linhas de solicitação de Interrupção

 Capacidade de adiar o tratamento da Interrupção


 Transferência de controle mais eficiente para a rotina de Interrupção
 Interrupção de múltiplos níveis (Alta e Baixa Prioridade)

 Tipos de Interrupção
 Interrupção Mascarável – Pode ser desativada pela C.P.U. antes de uma seqüência
de execução críticas que não deve ser interrompida
 Interrupção Não-mascarável - Reservada para eventos com erros irrecuperáveis
Sistema de I/O
S.O.
 DMA (Direct Memory Access) – Controladora de acesso a memória –
Processador Especializado em I/O, visando liberar a C.P.U. de uso geral
1. Driver de dispositivo é solicitado transferir
5. Controladora de DMA transfere bytes
dados do disco para o buffer no endereço X
para buffer X, incrementando o endereço
de memória e decrementando C até C = 0 2. Driver de dispositivo solicita a controladora
C.P.U.
de disco para transferir C bytes do disco para o
6. Quando C=0, a controladora DMA
buffer no endereço X
interrompe a C.P.U. para sinalizar a
conclusão da transferência Cache
Memória X

Controladora de DMA Buffer


Barramento de de Memória da CPU
/Barramento/Interrupção

Barramento

Controladora 3. Controladora de disco inicia transferência DMA

4. Controladora de disco envia cada byte para a controladora de DMA


de Disco IDE

Discos Etapa numa Transferência DMA


Sistema de I/O
S.O.
 Interface I/O de Aplicação – Conjunto padronizado de funções
 Driver – Oculta do Sistema de I/O as diferenças das controladoras do
dispositivo
Estrutura de I/O do Kernel

KERNEL
Software

Subsistema de I/O do Kernel

Drive de Drive de Drive de Drive de Drive de Drive de


Dispositivo Dispositivo Dispositivo Dispositivo Dispositivo Dispositivo
Hardware

SCI do Teclado do Mouse Barramento PCI do Disquete ATAPI

Dispositivo Teclado Mouse Barramento PCI Disquete ATAPI


SCI
Sistema de I/O
S.O.
 Característica do Dispositivo de I/O
 Fluxo de Caracteres ou Bloco
 Acesso Seqüencial ou Aleatório
 Síncrono ou Assíncrono
 Compartilhável ou Dedicado
 Velocidade de Operação
 Leitura-Escrita, Somente Leitura, Somente Escrita
Sistema de I/O
S.O.
 Subsistema de I/O
 Tipos de Serviços
 Escalonamento de I/O – Qual a melhor ordem de atendimento dos pedidos de I/O
 Buffering – Área de memória que armazena dados enquanto eles são transferidos
entre 2 dispositivos ou entre dispositivo e uma aplicação
 Diferença de Velocidades(Buffering Duplo)
 Dispositivos com diferentes tamanho de transferência de dados : EX
Transmissão de pacote numa rede
 Semântica de Cópia – Manutenção do conteúdo ao chamar rotinas do
sistema. EX ; Impressão de dados num spooling de impressão
 Cache – Região de memória que armazena cópia de dados. Difere do buffer que
armazena uma cópia de um item de dados
 Spooling – Buffer que armazena saída para um dispositivo, como uma
impressora, que não pode aceitar fluxo de dados intercalados
 Tratamento de Erro – Erros temporários. EX:Sobrecarga de transmissão
 Estrutura de Dados do Kernel – Estruturas de dados utilizados pelo subsistema de
I/O
S.O.
Sistema de I/O
 Tratamento de Pedidos

Pedido de I/O Processo de Usuário I/O concluída, dados de entrada disponíveis ou saída concluída
Chamada ao Sistema Retorno da Chamada ao Sistema

Pedido pode ser atendido Kernel Transferir dados (se apropriado) para o processo, retornar
imediatamente ? código de conclusão ou falta
Sim

Não

Enviar Pedido para Driver de dispositivo, Subsistema de I/O


bloquear processo se apropriado do Kernel
Determinar que operação de I/O foi concluída, indicar mudança
de estado para o subsistema de I/O
Processar pedido, enviar comandos
para controladora,configurar Driver de
controladora para bloquear até dispositivo Receber Interrupção, armazenar dados no buffer do driver de dispositivo
interrupção
se for entrada, sinalizar para desbloquear drive de dispositivo
Comandos da
Controladora Rotina de Tratamento de Interrupção
de dispositivo interrupção
Controladora
Monitorar o dispositivo, interromper de dispositivo
quando I/O estiver concluída I/O Concluída, gerar interrupção
Tempo

Ciclo de Vida de um Pedido de I/O


Sistema de I/O S.O.
 Desempenho
 Reduzir o número de troca de contexto
 Reduzir o número de vezes em que os dados devem ser copiados na memória
enquanto ainda estiverem sendo passados entre o dispositivo e a aplicação
 Reduzir freqüências de Interrupção, usando transferência grandes, controladoras
inteligentes e polling (se a espera ocupada puder ser minimizada)
 Aumentar concorrência usando controladora ou canais com suporte DMA para liberar
C.P.U. da carga de cópia simples de dados
 Mover primitivas de processamento para o HW para permitir a sua operação em
controladoras de dispositivo concorrente com a operação da C.P.U. e do barramento
 Balancear o desempenho da C.P.U., do subsistema de memória, do Barramento de
I/O, porque a sobrecarga em qualquer dessas áreas causará ociosidades nas outras
S.O.
Estrutura de Armazenamento de Massa
 Estrutura em Disco
 Bloco Lógico – Menor unidade de transferência
 Escalonamento de Disco
 Rápido tempo de Acesso
 Tempo de busca – Tempo utilizado pelo braço do disco para o cilindro que
contém o setor desejado
 Latência Rotacional – tempo adicional de espera para que o disco gire o
setor desejado até a cabeça do disco
 Largura de Banda do Disco – Número total de bytes transferidos, dividido pelo
tempo total entre o primeiro pedido de serviço e a conclusão da última
transferência
 Tipos de Escalonamento
 Escalonamento FCFS (First-Come, First-Served) – primeiro a entrar,
primeiro a ser atendido
 Escalonamento SSTF (Shortest-seek-time-first) – Atender a todos os
pedidos próximos à posição atual da cabeça, antes de movê-la para atender
a outros pedidos mais distante
 Escalonamento SCAN – Algoritmo do Elevador
 Escalonamento C-SCAN – (C-SCAN) - Circular SCAN –utiliza uma lista
circular
 Escalonamento LOOK – Só movimentar a cabeça até o último local do
pedido
S.O.
Estrutura de Armazenamento de Massa
 Gerência de Disco
 Formatação Física ou de Baixo Nível – Prepara o disco para receber dados
 cabeçalho (header)
 Dados
 apêndice(trailer) - ECC –Código de Correção de Erro
 Boot ou Bloco de Partida
 Bloco defeituoso
S.O.
Estrutura de Armazenamento de Massa
 Gerência de Swap
 Memória virtual utilizando espaço de disco como memória principal
 Localização –
 Sistema de Arquivo Normal – Sofre de problema de fragmentação
 Partição de Disco Separada
 Confiabilidade de Disco
 Disk Striping (Intercalação) – Grupo de disco como unidade de armazenamento – Cada bloco
de dados é quebrado em vários sub-bloco. Cada sub-bloco armazenado em disco
 Redudant Vetor of Independet Disks (RAID) – aumenta a confiabilidade
 Espelhamento ou shadowing
 Block Interleaved Parity – Utilização de bits extras para recuperar algum bit perdido
S.O.
Estrutura de Armazenamento de Massa
 Estrutura de Armazenamento Terciário
 Discos Removíveis- CD, DVD
 Fitas
 Robô
Proteção
S.O.
 Proteção
 Qualquer mecanismo para controlar o acesso do programa, processo ou usuário aos
recursos definidos para um sistema de computação
 Fornece mecanismos para aplicação das políticas que governam utilização de
recursos
 Segurança
 Medida de confiança de que a Integridade de um sistema e de seus dados serão
preservados
 Metas de Proteção
 Objetivo – Impedir violação intencional ou maliciosa de uma restrição por parte do
usuário
Proteção
S.O.
 Domínio da Proteção
 Especifica os recursos que esse processo pode acessar (objeto, tipo de operação)
 Objeto
 HW : C.P.U., Segmento de memória, Impressora, disco
 SW:Arquivos, programas, semáforos
 Tipo de Operação – Operação que cada objeto pode realizar (impressora só pode
escrever)
 Principio da Necessidade do Conhecimento
 Só acessar o que é necessário e Autorizado –
 Objetivo – Limitar o dano caso um processo falhe
 Estrutura do Domínio
 Direito de Acesso – Capacidade de executar uma operação em um objeto
 Domínio – Coleção de Direito de Acesso <Nome do Objeto, Conjunto de Direitos>
Proteção S.O.
 Associação entre Processo e Domínio
 Estático – não altera o domínio durante a execução do processo
 Sofre do problema do princípio da necessidade do conhecimento
 Dinâmico - Altera o domínio durante a execução do processo
 Formas de realização do Domínio
 Usuário – Acesso dependente da Identidade do usuário
 Processo – Acesso dependente da Identidade do Processo
 Procedimento – Acesso dependente das variáveis locais do procedimento
S.O.

Proteção
 Matriz de Acesso

Objeto F1 F2 F3 Impressora D1 D2 D3 D4
Domínio

D1 Leitura Leitura Switch

D2 Impressão Switch Switch

D3 Leitura Execuç
ão

D4 Leitura Leitura switch


Escrita Escrita
S.O.
Proteção
 Matriz de Acesso

Objeto F1 F2 F3 Objeto F1 F2 F3
Domínio Domínio
D1 Execução Escrita* D1 Execução Escrita*

D2 Execução Leitura * Execução D2 Execução Leitura * Execução

D3 Execução Execução D3 Execução Execução

(a) (b)

Matriz de Acesso após a execução do direito de copy no Domínio D2 para o Objeto F2 para o Domínio D3
Proteção
S.O.
 Revogação de Direitos de Acesso
 Características da Revogação
 Imediata x Retardada
 Revogação ocorre imediatamente ou é retardada ?
 Seletiva x Geral
 Ao revogar o direito de um objeto, afeta todos os usuários que tenham
direitos de acesso a esse objeto ou um grupo selecionado ?
 Parcial x Total
 Pode-se revogar um subconjunto de direitos de um objeto ?
 Temporária x Permanente
 A revogação do direito pode ser cancelada ?
Segurança S.O.
 Mediada de Confiança de que a Integridade de um sistema e de seus dados
serão preservados Revogação de Direitos de Acesso

 Tipos de Violação
 Maliciosas
 Leitura não autorizada
 Modificação não autorizada
 Destruição não autorizada

 Autenticação – Saber se o usuário é aquele que está dizendo


 Base da autenticação
 Uma posse do Usuário (Chave ou Cartão)
 Conhecimento do Usuário (id e Senha de Segurança)
 Atributo do Usuário (Digitais, Padrão de Retina ou Assinatura)

 Senha – Forma mais comum de Identificação do usuário


 Vulnerabilidade de senhas – Senhas fácies de serem decodificadas
 Senhas Criptografadas
 Senhas Descartáveis
Segurança
S.O.
 Ameaça aos Programas
 Cavalo de Tróia – Código incorporado ao programa
 Porta-dos-fundos – Atalho para entrada no sistema

 Ameaça ao Sistema
 Worms (verme) – Utiliza-se do mecanismo de propagação (Spawn) para
diminuir o desempenho do sistema
 Vírus - Programa criado para disseminação em outros programas, visando
modificar ou destruir arquivo e causar falhas nos sistemas e mau
funcionamento dos programas

 Monitoração de Ameaça
 Verificar padrões suspeitos de atividade numa tentativa de detectar violação
de segurança
 Registro de Auditoria
 Varredura a procura de furos, senhas curtas ou de fácil advinhação

You might also like