SISTEMAS OPERACIONAIS
PROFESSOR - AIRTON KUADA
EMAIL - [email protected]
EMENTA DA DISCIPLINA
•
•
•
•
•
•
•
•
HISTÓRICO E EVOLUÇÃO
TIPOS DE SISTEMAS OPERACIONAIS
SERVIÇOS DO SISTEMA OPERACIONAL
ESTRUTURA DE UM SISTEMA OPERACIONAL
CONCEITOS DE HARDWARE E SOFTWARE
PROCESSOS, COMUNICAÇÃO INTERPROCESSOS
ESCALONAMENTO
GERENCIAMENTO DE MEMÓRIA, PAGINAÇÃO,
MULTIPROGRAMAÇÃO MEMÓRIA VIRTUAL
• SISTEMAS DE ARQUIVOS
• GERÊNCIA DE DISPOSITIVOS
BIBLIOGRAFIA
• ARQUITETURA DE SISTEMAS
OPERACIONAIS
– FRANCIS B. MACHADO
– LUIZ PAULO MAIA
• SISTEMAS OPERACIONAIS MODERNO
– ANDREW S. TANENBAUM
INTRODUÇÃO
O QUE É UM SISTEMA OPERACIONAL ???
 CONJUNTO DE PROGRAMAS EXECUTADOS PELO
PROCESSADOR DA MESMA FORMA QUE QUALQUER OUTRO
PROGRAMA
QUAL A FUNÇÃO DE UM SISTEMA
OPERACIONAL ??
 CONTROLAR O FUNCIONAMENTO DO COMPUTADOR,
COMO UM GERENTE DOS DIVERSOS RECURSOS DISPONÍVEIS
NO SISTEMA (IMPRESSORA, DISCO, VÍDEO, TECLADO, FITA)
VISÃO DE UM SISTEMA DE
COMPUTAÇÃO
VISÃO DO COMPUTADOR PELO
USUÁRIO
MÁQUINAS DE NÍVEIS
HISTÓRICO
PRIMEIRA FASE (1945-1955)
INÍCIO DA SEGUNDA GUERRA SURGEM OS PRIMEIROS
COMPUTARES: MILHARES DE VÁLVULAS, NECESSIDADES DE
GRANDES ÁREAS, ALTO CONSUMO, LENTO
PRIMEIRO COMPUTADOR DE PROPÓSITO GERAL - ENIAC
- CALCULO BÁLISTICO
- 18 MIL VÁLVULAS
- 10 CAPACITORES
- 70 MIL RESISTORES
- PESAVA 30 TONELADAS
- CONSUMO DE 140 KVA EM FUNCIONAMENTO
- 5 MIL ADIÇÕES POR SEGUNDO
SEGUNDA FASE (1956-1965)
- CRIAÇÃO DO TRANSISTOR E MEMÓRIA MAGNÉTICA
- SURGIMENTO DOS PRIMEIROS SISTEMAS OPERACIONAIS
- PRIMEIRAS LINGUAGENS ASSEMBLY E FORTRAN
FACILITARAM A PROGRAMAÇÃO
- PROCESSAMENTO BATCH
- OS SISTEMAS OPERACIONAIS PASSARAM A TER O SEU
PRÓPRIO CONJUNTO DE ROTINAS PARA OPERAÇÃO DE
ENTRADA/SAIDA (INPUT/OUTPUT CONTROL - IOCS)
- COM O IOCS O PROGRAMADOR NÃO NECESSITA ESCREVER
A ROTINAS DE I/O (INDEPENDÊNCIA DO DISPOSITIVO)
TERCEIRA FASE (1966-1980)
- APARECIMENTO DOS CIRCUITOS INTEGRADOS E
MICROPROCESSADORES, REDUÇÃO DE CUSTO E TAMANHO E
AUMENTO DE PODER DE PROCESSAMENTO DAS MÁQUINAS
-IBM LANÇA A SÉRIE 360 (PEQUENA, PODERASA E
COMPATÍVEL) QUE DURANTE A EVOLUÇÃO GARANTIA A
COMPATIBILIDADE COM AS GERAÇÕES ANTERIORES
(PRESERVA O INVESTIMENTO)
- DESENVOLVIMENTO DO OS/360 QUE TENTAVA ATENDER
TODOS OS TIPOS DE APLICAÇÕES E PERIFÉRICOS
- DEC LANÇA PDP-8
TERCEIRA FASE (1966-1980)
- COMPARTILHAMENTO DA MEMÓRIA PRINCIPAL E
PROCESSADOR PERMITE A MULTIPROGRAMAÇÃO
- SUBSTITUIÇÃO DE FITA MAGNÉTICAS POR DISCO INTRODUZ
MELHORIA NO SISTEMA EM BATCH, PODES-SE ALTERAR A
ORDEM DA SEQUENCIA DE PROCESSAMENTO
- COMUNICAÇÃO COM O USUÁRIO (SISTEMAS ON-LINE)
- TIME-SHARING
- SURGIMENTO DO SISTEMA OPERACIONAL UNIX (1969)
(ASSEMBLER DEPOIS C) EM UM PDP-7 BASEADO NO MULTICS
(DEC)
- SURGIMENTO DOS PRIMEIROS MICROCOMPUTADORES
(CPM, 8 BITS)
QUARTA FASE (1981-1990)
- PROJETO DE MINIATURIZAÇÃO (LSI, VLSI) DE COMPONENTE
- MINI E SUPERMINI COMPUTADORES GANHAM ESPAÇO
- SURGIMENTO DO PC (PERSONAL COMPUTER) DE 16 BITS DA
IBM E O SISTEMA DOS (DISK OPERATION SYSTEM).
- OS SISTEMAS UNIX LIKE DOMINAM OS MINIS E SUPERMINIS
- INTRODUÇÃO DO CONCEITO DE MULTIPROCESSAMENTO
- REDES DISTRIBUIDAS (WAN) COM PROTOCOLOS SNA,
DECNET, TCP/IP COMEÇA A DESPONTAR
- PRIMEIROS SISTEMAS OPERACIONAIS DE REDE (NETWARE).
QUINTA FASE (1991 - ????)
- A REDE MUNDIAL DE COMPUTADORES (INTERNET)
- SISTEMAS ESPECIALISTAS (INTELIGÊNCIA ARTIFICIAL)
- REDES NEURAIS
- PROCESSAEMENTO DE GRANDES VOLUMES DE DADOS
- PROCESSAMENTO DISTRIBUÍDO (RPC, CORBA)
- ARQUITETURA CLIENT/SERVER
- SURGIMENTO DA INTERFACE GRÁFICO (WINDOWS)
- MULTIMÍDIA
- IMPLEMENTAÇÃO DE CONCEITOS UTILIZADOS EM
COMPUTADORES GRANDES COMPUTADORES, AGORA NO
DESKTOP
CONCEITOS DE HARDWARE
E SOFTWARE
HARDWARE
É COMPOSTO POR UM CONJUNTO DE COMPONENTES
INTERLIGADOS: PROCESSADOR, MEMÓRIA PRINCIPAL,
REGISTRADORES, TERMINAIS, IMPRESSORAS, DISCOS
MAGNÉTICOS, FITAS MAGNÉTICAS, ETC.
COMPONENTES SÃO DIVIDIDOS EM UNIDADES
FUNCIONAIS:
- UCP
- MEMÓRIA PRINCIPAL
- DISPOSITIVOS DE ENTRADA E SAÍDA
UNIDADES FUNCIONAIS DE UM
COMPUTADOR
UCP
- UNIDADES DA UCP:
UC - CONTROLA AS ATIVIDADES DE TODOS OS
COMPONENTES DO COMPUTADOR, MEDIANTE A EMISSÃO
DE PULSOS ELÉTRICOS GERADO POR UM DISPOSITIVO
CHAMADO DE CLOCK.
ULA - REALIZAÇÃO DE OPERAÇÕES LÓGICAS
(TESTES E COMPARAÇÕES) E ARITMÉTICAS (SOMAS E
SUBTRAÇÕES)
- VELOCIDADE DO PROCESSADOR É MEDIDA EM NÚMERO
DE INSTRUÇÕES EXECUTADAS EM UMA UNIDADE DE
TEMPO (SEGUNDOS), PODE SER MIPS, MEGFLOPS
CLOCK
- DISPOSITIVO DE ALTA VELOCIDADE, LOCALIZADO NA UCP
- GERA PULSOS ELÉTRICO SINCRONOS EM DETERMINADO
INTERVALO DE TEMPO
- A QUANTIDADE DE VEZES QUE ESTE PULSO SE REPETE EM
UM SEGUNDO DEFINE A FREQUENCIA DO CLOCK (MEDIDO
EM HERTZ).
A UC UTILIZA O SINAL DE CLOCK PARA A EXECUÇÃO DAS
INSTRUÇÕES
QUANTO MAIOR A VELOCIDADE, MAIOR A QUANTIDADE DE
INSTRUÇÃO EXECUTADO EM UMA UNIDADE DE TEMPO
REGISTRADORES
- MEMÓRIA DE ALTA VELOCIDADE
- LOCALIZADO NO INTERIOR DO PROCESSADOR
- ARMAZENAMENTO TEMPORÁRIO DE DADOS
- O NÚMERO DE PROCESSADOR VARIA EM FUNÇÃO DA
ARQUITETURA DE CADA PROCESSADOR
- REGISTRADORES COMUNS A TODAS ARQUITETURAS:
- CONTADOR DE INSTRUÇÃO (IP)
- STACK POINTER (SP)
- REGISTRADOR DE ESTADO (FLAGS)
DESCRIÇÃO DOS REGISTRADORES
DO PC 8086 - 16 BITS
DESCRIÇÃO DOS REGISTRADORES
DO PC 80386 - 32 BITS
ARQUITETURA DO PC
MEMÓRIA PRINCIPAL (RAM)
- ORGANIZADO EM CÉLULAS
- CADA CÉLULA POSSUI UM NÚMERO DE BITS
- BIT É A UNIDADE BÁSICA DE MEMÓRIA E POSSUI
VALOR 0 OU 1
- ATUALMENTE TODOS OS COMPUTADORES
TRABALHAM COM CÉLULAS DE 8 BITS (PODE
EXISTIR COM 32, 64)
- CADA CÉLULA POSSUI UMA IDENTIFICAÇÃO
MEMÓRIA PRINCIPAL
MEMÓRIA ROM
- MEMÓRIA NÃO VOLÁTIL
- NÃO NECESSITA DE ENERGIA PARA PRESERVAR O
CONTEÚDO
- PODE SER GRAVADAS UMA ÚNICA VEZ
- GRAVAÇÃO ATRAVÉS DE LUZ ULTRA VIOLETA
- EXISTEM OUTRAS VARIANTES: EPROM, EAROM, EAPROM,
NVRAM
MEMÓRIA CACHE
- MEMÓRIA VOLÁTIL DE ALTA VELOCIDADE (nano)
- TEMPO DE ACESSO MENOR QUE A MEMÓRIA
PRINCIPAL
- ANTES DE ACESSAR A MEMÓRIA PRINCIPAL É
VERIFICADO A MEMÓRIA CACHE
- A CADA ACESSO A MEMÓRIA PRINCIPAL, É LIDO
UM BLOCO DA MEMÓRIA E ATUALIZADO A
MEMÓRIA CACHE
- POSSUI ALTO CUSTO
MEMÓRIA SECUNDÁRIA
- MEIO PERMANENTE DE ARMAZENAMENTO DE PROGRAMAS
E DADOS
- NÃO PRECISA DE ENERGIA PARA MANTER AS INFORMAÇÕES
- ACESSO LENTO (mili), BAIXO CUSTO
- GRANDE CAPACIDADE DE ARMAZENAMENTO
- EXEMPLO DE MEMÓRIA SECUNDÁRIA
- FITA MAGNÉTICA
- DISCO MAGNÉTICO
- DISCO ÓPTICO
RELAÇÃO ENTRE OS TIPOS DE
MEMÓRIAS
DISPOSITIVO DE ENTRADA/SAÍDA
- UTILIZADO PARA COMUNICAÇÃO ENTRE O COMPUTADOR E
O MUNDO EXTERNO (TECLADO, IMPRESSORA, MONITOR,
DISCOS, SCANNER, CANETA ÓTICA, MOUSE, MULTIMIDIA,
FITAS)
- ATRAVÉS DESTES DISPOSITIVOS A UCP E MEMÓRIA PODEM
COMUNICAR-SE COM OS USUÁRIOS (ANALISTAS,
PROGRAMADORES, USUÁRIOS FINAIS)
- PODEM SER DIVIDIDOS DA SEGUINTE FORMA:
- INTERFACE HOMEM/MÁQUINA
- MEMÓRIA SECUNDÁRIA.
BARRAMENTO
- AS UNIDADES FUNCIONAIS DO COMPUTADOR SÃO
INTERLIGADAS ATRAVÉS DE LINHAS DE COMUNICAÇÃO
DENOMINADAS BARRAMENTOS.
- NO BARRAMENTO TRAFEGAM INFORMAÇÕES COMO
ENDEREÇOS, DADOS OU SINAIS DE CONTROLE
- A COMUNICAÇÃO NO BARRAMENTO PODE SER
UNIDIRECIONAL OU BIDIRECIONAL
- ENTRE A UCP E MEMÓRIA EXISTE TRÊS BARRAMENTO:
BARRAMENTO DE DADOS, BARRAMENTO DE ENDEREÇOS,
BARRAMENTO DE CONTROLE
BARRAMENTO
PIPELINING
- SEMELHANTE A UMA LINHA DE MONTAGEM, ONDE UMA
TAREFA É DIVIDIDA EM SEQUENCIA DE SUBTAREFAS, E
EXECUTADAS EM DIFERENTES ESTÁGIOS
- EXEMPLO DE PIPELINE: EXECUÇÃO DE UMA INSTRUÇÃO
- PODE SER UTILIZADA COMO TÉCNICA DE PARALELISMO EM
SISTEMAS COM UM OU MAIS PROCESSADORES PARA
AUMENTAR O DESEMPENHO DOS SISTEMA DE
COMPUTADORES.
ARQUITETURA CISCxRISC
RISC (REDUCED INSTRUCTION SET COMPUTER)
- POSSUI POUCAS INSTRUÇÕES DE MÁQUINA
- INSTRUÇÃO EXECUTADO DIRETAMENTE PELO HARDWARE
- GRANDE NÚMERO DE PROCESSADORES
- EXEMPLO: SUN, SPARC, RS-6000, PA-RISC, ALPHA, MIPS
CISC (COMPLEX INSTRUCTION SET COMPUTERS)
- INSTRUÇÕES COMPLEXAS QUE SÃO INTERPRETADAS POR
MICROPROGRAMAS
NÚMERO DE REGISTRADORES PEQUENO
- QQUER INSTRUÇÃO PODE ACESSAR A MEMÓRIA RAM
- EXEMPLO: VAX, 80X86, PENTIUM, 68xxxx
SOFTWARE
- O HARDWARE POR SI SÓ NÃO POSSUI UTILIDADE.
- DEVE EXISTIR UM CONJUNTO DE PROGRAMAS, UTILIZADO
COMO INTERFACE ENTRE AS NECESSIDADES DO USUÁRIO E
AS CAPACIDADES DO HARDWARE.
- TIPOS DE SOFTWARE
- TRADUTOR
- INTERPRETADOR
- LINKER
- LOADER
- DEPURADOR
- LINGUAGEM DE CONTROLE (SHELL)
- LINGUAGEM DE MÁQUINA
TRADUTOR
-INICIALMENTE, PARA PROGRAMAR ERA NECESSÁRIO
CONHECER O HARDWARE E PROGRAMAR EM PAINÉIS E FIOS
- A PROGRAMAÇÃO ERA FEITO EM LINGUAGEM DE MÁQUINA
DIRETAMENTE E CARREGADO EM MEMÓRIA
- COM O SURGIMENTO DAS LINGUAGENS DE MONTAGEM E
ALTO NÍVEL, O PROGRAMADOR NÂO NECESSITA CONHECER
ASPECTOS DE HARDWARE
- OS PROGRAMAS EM LINGUAGEM DE MONTAGEM E ALTO
NÍVEL NÃO PODEM SER EXECUTADOS DIRETAMENTE PELA
UCP , NECESSITAM PASSAR POR UM PROCESSO DE
TRADUÇÃO ONDE TODA REPRESENTAÇÃO SIMBÓLICA É
TRADUZIDO PARA UM CÓDIGO BINÁRIO
TRADUTOR
- O MÓDULO GERADO PELO TRADUTOR É CHAMADO DE
CÓDIGO OBJETO
- DEPENDENDO DA LINGUAGEM DE PROGRAMAÇÃO
UTILIZADO, O TRADUTOR PODE SER CHAMADO DE
- MONTADOR
- COMPILADOR.
TRADUTOR
dosseg
.model small
.stack 100h
.data
hello_message db 'Hello, World!',0dh,0ah,'$'
.code
main proc
mov ax,@data
mov ds,ax
mov ah,9
mov dx,offset hello_message
int 21h
mov ax,4C00h
int 21h
main endp
end main
PROGRAMA
HELLO.ASM
#include <stdio.h>
main ( )
{
char hello_message[] = "'Hello, World!";
printf ("%s\n", hello_message )
}
PROGRAMA
HELLO.C
19BB:0010
19BB:0013
19BB:0015
19BB:0017
19BB:001A
19BB:001C
19BB:001F
B8BD19
8ED8
B409
BA0200
D21
B8004C
CD21
MOV
MOV
MOV
MOV
INT
MOV
INT
AX,19BD
DS,AX
AH,09
DX,0002
21
AX,4C00
21
CÓDIGO
BINÁRIO
GERADO PELO
MONTADOR
TRADUTOR
- LINGUAGEM DE MONTAGEM É UM CONJUNTO DE
SÍMBOLOS MNEMÔNICOS ASSOCIADOS ÀS INSTRUÇÕES EM
LINGUAGEM DE MÁQUINA DO PROCESSADOR.
- A LINGUAGEM DE MONTAGEM DEPENDE DA ARQUITETURA
DE CADA PROCESSADOR, ISTO É VARIA DE COMPUTADOR
PARA COMPUTADO (MASM, TASM NA PLATAFORMA 80X86)
- A LINGUAGEM DE ALTO NÍVEL NÃO POSSUI LIGAÇÃO
DIRETA COM A MÁQUINA, FICANDO ESSA PREOCUPAÇÃO
COM O COMPILADOR. TODOS OS DETALHES DE
ARQUITETURA DO PROCESSADOR FICA ESCONDIDO DO
PROGRAMADOR QUE FICARÁ PREOCUPADO APENAS COM A
APLICAÇÃO (COBOL, C, PASCAL).
LINKER
- O CÓDIGO BINÁRIO GERADO PELO TRADUTOR AINDA NÃO
PODE SER EXECUTADO, APESAR DE ESTAR EM CÓDIGO DE
MÁQUINA, PODE EXISTIR CHAMADAS DE SUB-ROTINAS
EXTERNAS
- O LINKER É O RESPONSÁVEL POR GERAR, A PARTIR DE UM
OU MAIS MÓDULOS-OBJETOS, UM ÚNICO PROGRAMA
EXECUTÁVEL
FUNÇÕES BÁSICAS DO LINKER:
- RESOLVER TODAS AS REFERÊNCIAS SIMBÓLICAS
EXISTENTES ENTRE OS MÓDULOS (PESQUISA EM
BIBLIOTECAS)
- RESERVAR MEMÓRIA PARA A EXECUÇÃO DO
PROGRAMA
LINKER
INTERPRETADOR
- O INTERPRETADOR É UM TRADUTOR QUE NÃO GERA
CÓDIGO-OBJETO. A PARTIR DE UM PROGRAMA-FONTE
ESCRITO EM LINGUAGEM DE ALTO NÍVEL, O
INTERPRETADOR TRADUZ CADA INSTRUÇÃO NO MOMENTO
DA EXECUÇÃO E EXECUTA A INSTRUÇÃO
- DESVANTAGEM
- TEMPO GASTO NA TRADUÇÃO DAS INSTRUÇÕES DO
PROGRAMA A CADA VEZ QUE FOR EXECUTADO
VANTAGEM
- RAPIDEZ NOS TESTES DE APLICAÇÕES QUE ESTÃO EM
DESENVOLVIMENTO
- EXEMPLOS: DBASE, BASI, APL,
LOADER
- É O UTILITÁRIO RESPONSÁVEL EM COLOCAR FISICAMENTE
NA MEMÓRIA UM PROGRAMA PARA EXECUÇÃO.
- O PROCEDIMENTO DE CARGA VARIA COM O CÓDIGO
GERADO PELO LINKER, DESTA FORMA O LOADER É
CLASSIFICADO COMO SENDO DO TIPO:
- ABSOLUTO: O PROGRAMA É CARREGADO EM UMA
POSIÇÃO EXATA DA MEMÓRIA
- RELOCÁVEL - O PROGRAMA É CARREGADO EM
QUALQUER POSIÇÃO DE MEMÓRIA
DEPURADOR
- DURANTE O DESENVOLVIMENTO DE PROGRAMAS ESTAMOS
SUJEITO A ERROS
- O DEPURADOR É UM UTILITÁRIO QUE PERMITE A
EXECUÇÃO CONTROLADA DE UM PROGRAMA PARA
REALIZAR A CORREÇÃO DE EVENTUAIS ERROS DE
PROGRAMAÇÃO
- FACILIDADES DE UM DEPURADOR
- EXECUÇÃO PASSO - A - PASSO
- ALTERAÇÃO/VISUALIZAÇÃO DE VARIÁVEIS
- BREAKPOINTS
- WATCHPOINT (AVISO DE ALTERAÇÃO DE VARIAVEL)
LINGUAGEM DE CONTROLE
- É A FORMA COMO O USUÁRIO COMUNICA-SE COM O SO
- INTERPRETA TODOS OS COMANDOS EMITIDOS PELO
USUÁRIO, DEVOLVE MENSAGENS DE ERRO OU FAZ
CHAMADAS AS ROTINAS DO SISTEMA
- FORNECE A POSSIBILIDADE DE AUTOMAÇÃO DE
COMANDOS (ARQUIVOS DE COMANDOS)
- INTERAÇÃO MAIS AMIGÁVEL ATRAVÉS DE JANELAS
- RECONHECIMENTO DE COMANDOS DE VOZ
TIPOS DE SISTEMAS
OPERACIONAIS
OS SISTEMAS OPERACIONAIS PODEM SER CLASSIFICADOS
LEVANDO OS SEGUINTES ASPECTOS:
- EVOLUÇÃO DE HARDWARE
- APLICAÇÕES SUPORTADAS
TIPOS DE SISTEMAS
OPERACIONAIS
SISTEMAS
MONOPROGRAMÁVEIS/MONOTAREFAS
- AS PRIMEIRAS MÁQUINAS ERAM DEDICADAS A UM ÚNICO
TRABALHO (JOB), QUALQUER OUTRO PROGRAMA DEVERIA
AGUARDAR O TÉRMINO.
- CARACTERÍSTICAS
- CPU OCIOSA A MAIOR PARTE DO TEMPO
- RECURSOS ALOCADOS A UM ÚNICO USUÁRIO
- MEMÓRIA SUBUTILIZADA
- IMPLEMENTAÇÃO SIMPLES
- NÃO EXISTE PREOCUPAÇÃO COM PROTEÇÃO DE
RECURSOS
SISTEMAS MONOPROGRAMÁVEIS
SISTEMAS
MULTIPROGRAMÁVEIS/MULTITAREFA
- VIERAM SUBSTITUIR OS SISTEMAS MONOPROGRAMÁVEIS
- SÃO MAIS COMPLEXOS E EFICIÊNTES, ISTO É PERMITEM
QUE OS RECURSOS COMPUTACIONAIS (MEMÓRIA,
PROCESSADOR, PERIFÉRICOS) SEJAM COMPARTILHADOS DE
FORMA ORDENADA POR DIVERSOS PROGRAMAS
- CARACTERÍSTICAS
- IMPLEMENTAÇÃO COMPLEXA
- AUMENTO DA PRODUTIVIDADE
- REDUÇÃO DE CUSTOS
SISTEMAS
MULTIPROGRAMÁVEIS/MULTITAREFA
A PARTIR DO NÚMERO DE USUÁRIOS QUE INTERAGEM COM
O SISTEMA, OS SISTEMAS MULTIPROGRAMÁVEIS PODEMOS
CLASSIFICAR COMO MONOUSUÁRIO x MULTIUSUÁRIO.
SISTEMAS
MULTIPROMÁVEIS/MULTITAREFA
MEMÓRIA EM AMBIENTES
MONO/MULTIPROGAMADO
SISTEMAS MULTITAREFA
OS SISTEMAS MULTIPROGRAMÁVEIS PODEM SER
CLASSIFICADOS PELA FORMA COMO AS APLICAÇÕES SÃO
GERENCIADAS
SISTEMAS BATCH
- PRIMEIRO SISTEMA UTILIZADO EM AMBIENTE
MULTIPROGRAMADO
- OS TRABALHOS ARMAZENADOS EM FITA, ONDE ESPERAM
PARA SER EXECUTADO SEQUENCIALMENTE.
- OS PROGRAMAS CHAMADOS DE JOB NÃO EXIGEM
INTERASSÃO COM O USUÁRIO, LENDO E GRAVANDO DADOS
EM FITAS OU DISCO
- UTILIZAM MELHOR O PROCESSADOR
- LONGO TEMPO DE RESPOSTA
- PROCESSAMENTO SEQUENCIAL
- EXEMPLO: COMPILAÇÃO, LINKEDIÇÃO, SORT, BACKUP
EXEMPLO DE UM PROCESSO
BATCH
FL001.EXE (ATUALIZA DADOS DE FUNCIONÁRIO)
FL002.EXE (ATUALIZA TAXAS DA FOLHA)
FL003.EXE (CALCULA VALORES DE PAGAMENTO)
FL004.EXE (EMITE RELATORIO DE PAGAMENTO)
FL005.EXE (EMITE CONTRACHEQUE)
SISTEMA DE TEMPO
COMPARTILHADO
- TIME-SHARING OU ON-LINE
- PERMITE A INTERAÇÃO DOS USUÁRIOS COM O SISTEMA,
ATRAVÉS DE TERMINAIS QUE INCLUEM VÍDEO, TECLADO E
IMPRESSORA
- ESTE SISTEMAS UTILIZAM UMA LINGUAGEM DE CONTROLE
QUE PERMITEM AO USUÁRIO COMUNICAR-SE DIRETAMENTE
COM O SISTEMA OPERACIONAL, EXEMPLO: SOLICITAR A
LISTAGEM DO DIRETÓRIO CORRENTE
- PARA CADA USUÁRIO O SISTEMA ALOCA UMA FATIA DE
TEMPO DO PROCESSADOR (TIME-SLICE), DANDO A
IMPRESSÃO QUE O SISTEMA ESTÁ DEDICADO
- IMPLEMENTAÇÃO COMPLEXA, AUMENTA PRODUTIVIDADE
DO USUÁRIO E REDUZ CUSTO DE UTILIZAÇÃO DO SISTEMA .
SISTEMAS ON-LINE
SISTEMA DE TEMPO REAL
- REAL TIME
- SEMELHANTE AOS SISTEMAS DE TEMPO COMPARTILHADO,
A DIFERENÇA É O TEMPO DE RESPOSTA EXIGIDO NO
PROCESSAMENTO DAS APLICAÇÕES
- NOS SISTEMA DE TEMPO COMPARTILHADO O TEMPO DE
RESPOSTA PODE VARIAR SEM COMPROMETER AS
APLICAÇÕES EM EXECUÇÃO, NOS SISTEMAS DE TEMPO REAL
AS RESPOSTAS DEVEM ESTAR DENTRO DE LIMITES RÍGIDOS.
- NÃO EXISTE FATIA DE TEMPO, O TRABALHO É BASEADO EM
PRIORIDADE EM FUNÇÃO DA IMPORTÂNCIA NO SISTEMA, A
PRIORIDADE É CONTROLADO PELA APLICAÇÃO E NÃO PELO
SISTEMA.
EXEMPLO: USINA, REFINARIA, TRÁFEGO AÉREO
SISTEMAS MULTIPROCESSADOS
- SISTEMAS QUE POSSUEM MULTIPLOS PROCESSADORES
INTERLIGADOS E TRABALHANDO EM CONJUNTO.
- OS SISTEMAS MULTIPROCESSADOS PODEM SER
CLASSIFICADOS DA SEGUINTE FORMA:
- COMUNICAÇÃO ENTRE AS CPUs
- GRAU DE COMPARTILHAMENTO DE MEMÓRIA
- GRAU DE COMPARTILHAMENTO DE DISPOSITIVOS DE
E/S
SISTEMAS MULTIPROCESSADOS
SISTEMAS FORTEMENTE
ACOPLADOS
- EXISTEM DOIS OU MAIS PROCESSADORES
COMPARTILHANDO UMA ÚNICA MEMÓRIA E CONTROLADOS
POR APENAS UM ÚNICO SISTEMA OPERACIONAL
- SÃO UTILIZADOS PARA PROCESSAMENTO QUE FAZEM USO
INTENSIVO DA CPU (BANCO DE DADOS, CALCULO VETORIAL,
CALCULO MATRICIAL
- DIVERSOS PROGRAMAS SÃO EXECUTADOS
SIMULTANEAMENTE, OU UM PROGRAMA É DIVIDIDO EM
SUBPROGRAMAS
- FACILIDADE EM AUMENTAR A CAPACIDADE
COMPUTACIONAL DO SISTEMA COM BAIXO CUSTO, MAS
SURGEM NOVOS PROBLEMAS DE CONCORRÊNCIA DE
ACESSO
SISTEMAS FORTEMENTE
ACOPLADOS
SISTEMAS ASSIMÉTRICOS
- CONCEITO MASTER/SLAVE
- SOMENTE O MASTER EXECUTA SERVIÇOS DO SISTEMA
OPERACIONAL, O(S) OUTRO(S) EXECUTAM TAREFAS DO
USUÁRIO
- DEPENDENDO DO VOLUME DE TRABALHO (PEDIDO DE E/S)
PARA O SO, O MASTER FICARÁ SOBRECARREGADO
- ESTE TIPO DE IMPLEMENTAÇÃO NÃO UTILIZA DE FORMA
EFICIENTE O HARDWARE DEVIDO A ASSIMETRIA DOS
PROCESSADORES, QUE NÃO REALIZAM AS MESMAS
FUNÇÕES
SISTEMAS ASSIMÉTRICOS
SISTEMA SIMÉTRICO (SMP)
AO CONTRÁRIO DA ORGANIZAÇÃO MASTER/SLAVE,
IMPLEMENTA A SIMETRIA ENTRE OS PROCESSADORES, OU
SEJA, TODOS OS PROCESSADORES REALIZAM AS MESMAS
FUNÇÕES, APENAS POUCAS FUNÇÕES FICAM A CARGO DE
UM ÚNICO PROCESSADOR ( BOOT DE SISTEMA)
- COM VÁRIOS PROCESSADORES COMPARTILHANDO A
MESMA MEMÓRIA E PERIFÉRICOS, SURGEM SITUAÇÕES DE
CONFLITOQUE FICA A CARGO DO HARDWARE E DO SO.
- UM PROGRAMA PODE SER EXECUTADO POR QUALQUER
PROCESSADOR, INCLUSIVE POR VÁRIOS PROCESSADORES AO
MESMO TEMPO (PARALELISMO)
- IMPLEMENTAÇÃO COMPLEXA
- MELHOR BALANCEAMENTO DO PROCESSAMENTO E DAS
OPERAÇÕES DE E/S
SISTEMAS SIMÉTRICOS
ORGANIZAÇÃO FUNCIONAL
O ESQUEMA DE COMUNICAÇÃO INTERNA ENTRE AS
UNIDADES FUNCIONAIS É FUNDAMENTAL EM SISTEMAS
MULTIPROCESSADOS, POIS DETERMINA QUANTAS CPUs O
SISTEMA IRÁ TER E COMO SERÁ O ACESSO DIRETO A
MEMÓRIA
- PARA PERMITIR QUE AS DIVERSAS UNIDADES FUNCIONAIS
COMPARTILHEM A MEMÓRIA É NECESSÁRIO DIVIDI-LA EM
MÓDULOS.
- A ORGANIZAÇÃO FUNCIONAL PODE SER DIVIDIDA EM TRÊS
TIPOS:
 BARRAMENTO COMUM
 BARRAMENTO CRUZADO
 MEMÓRIA MULTIPORT
BARRAMENTO
- FORMA MAIS SIMPLES DE COMUNICAÇÃO, FLEXIVEL,
ECONÔMICA, LIMITADO A POUCOS PROCESSADORES
- SOMENTE UMA UNIDADE FUNCIONAL PODE UTILIZAR O
BARRAMENTO EM UM DETERMINADO INSTANTE
- PASSÍVEL DE GARGALO QUANDO MUITAS UNIDADES TÊM
QUE UTILIZAR O BARRAMENTO
-
BARRAMENTO CRUZADO
- EVITA GARGALO DO BARRAMENTO COMUM
- AS UNIDADES FUNCIONAIS SÃO CONECTADAS ATRAVÉS DE
UM BARRAMENTO CRUZADO (CROSSBAR-SWITCH MATRIX)
- NESTA ARQUITETURA É POSSÍVEL A COMUNICAÇÃO
SIMULTÂNEA ENTRE DIVERSAS UNIDADES
SIMULTANEAMENTE, MAS NÃO PERMITE ACESSO
SIMULTANEO A UM MESMO COMPONENTE
- MUITOS PROCESSADORES PODEM SER UTILIZADOS
MEMÓRIA MULTIPORT
- NO ESQUEMA DE BARRAMENTO CRUZADO É POSSÍVEL DOIS
PROCESSADORES ACESSAREM A UM MÓDULO DE MEMÓRIA
NO MESMO INSTANTE
- MEMÓRIA MULTIPORT PERMITE ACESSOS SIMULTÂNEOS A
UM MESMO MÓDULO DE MEMÓRIA
- CADA MÓDULO TÊM DIVERSAS PORTAS DE ACESSO
SISTEMA FRACAMENTE
ACOPLADOS
- SISTEMAS FRACAMENTE ACOPLADOS CARACTERIZAM-SE
POR POSSUIR DOIS OU MAIS SISTEMAS DE COMPUTAÇÃO
INTERLIGADOS ATRAVÉS DE UM SISTEMA DE
COMUNICAÇÃO, SENDO QUE CADA SISTEMA POSSUI O SEU
PRÓPRIO SISTEMA OPERACIONAL GERENCIANDO RECURSOS,
COMO PROCESSADOR, MEMÓRIA E DISPOSITIVOS DE E/S.
- DÉCADA DE 80, COM SISTEMA CENTRALIZADO E TERMINAIS
BURROS REMOTO INTERLIGADOS ATRAVÉS DO SISTEMA DE
COMUNICAÇÃO
- COM A EVOLUÇÃO DOS COMPUTADORES, E O AVANÇO DAS
TELECOMUNICAÇÕES, SURGE UM NOVO MODELO DE
COMPUTAÇÃO CHAMADO DE REDES DE COMPUTADORES
(NÓS INTELIGENTES INTERLIGADOS POR UM SISTEMA DE
COMUNICAÇÃO)
SISTEMAS FRACAMENTE
ACOPLADOS
SISTEMAS OPERACIONAIS DE
REDE (SOR)
CADA NÓ POSSUI O SEU PRÓPRIO SISTEMA OPERACIONAL,
ALÉM DE HARDWARE E SOFTWARE QUE POSSIBILITAM AO
SISTEMA TER ACESSO A OUTROS COMPONENTES DE REDE E
COMPARTILHANDO RECURSOS
- FUNÇOES DE UM SOR:
 CÓPIA REMOTA
 EMULAÇÃO DE TERMINAL
 IMPRESSÃO REMOTA
 CORREIO ELETRÔNICO
 GERÊNCIA REMOTA
SISTEMA OPERACIONAL
DE REDE:
 NETWARE
 WINDOWS NT
 UNIX
SISTEMAS OPERACIONAIS
DISTRIBUÍDOS
- CADA COMPONENTE DE REDE TAMBÉM POSSUI SEU
PRÓPRIO SISTEMA OPERACIONAL, MEMÓRIA, PROCESSADOR
E DISPOSITIVOS.
- O QUE DEFINE UM SISTEMA DISTRIBUÍDO É A EXISTÊNCIA
DE UM RELACIONAMENTO MAIS FORTE ENTRE OS SEUS
COMPONENTES, ONDE OS SISTEMAS OPERACIONAIS SÃO
GERALMENTE OS MESMOS.
- PARA O USUÁRIO E SUAS APLICAÇÕES É GERALMENTE
COMO SE NÃO EXISTISSE UMA REDE DE COMPUTADORES,
MAS SIM UM ÚNICO SISTEMA CENTRALIZADO
- A GRANDE VANTAGEM DESTE SISTEMA É O
BALANCEAMENTO DE CARGA
SISTEMAS OPERACIONAIS
DISTRIBUÍDOS
PROCESSOS
PROCESSOS
MODO GERAL.
UM PROGRAMA EM EXECUÇÃO.
MODO CONCEITUAL
O CONCEITO DE PROCESSO PODE SER DEFINIDO COMO
SENDO O AMBIENTE ONDE SE EXECUTA UM PROGRAMA
PCB PROCESS CONTROL BLOCK
O SISTEMA OPERACIONAL MATERIALIZA O PROCESSO
ATRAVÉS DE UMA ESTRUTURA DE DADOS (PCB). ATRAVÉS
DESTA ESTRUTURA O SISTEMA OPERACIONAL MANTÉM
TODAS AS INFORMAÇÕES SOBRE O PROCESSO
PROCESS CONTROL BLOCK
MULTITAREFA
PARTES DE UM PROCESSO
UM PROCESSO PODE SER DIVIDIDO EM TRÊS PARTES:
- HARDWARE
CONSTITUI-SE BASICAMENTE DOS REGISTRADORES DE
PROPÓSITO GERAL (AX, BX, CX, DX), APONTADOR DE
INSTRUÇÃO (IP), STACK POINTER (SP) E BITS DE ESTADO
- SOFTWARE
ESPECIFICA CARACTERÍSTICAS DO PROCESSO QUE
VÃO INFLUIR NA EXECUÇÃO DE UM PROGRAMA COMO:
PRIORIDADE, NÚMERO DE ARQUIVOS ABERTOS, ETC.
- ESPAÇO DE ENDEREÇAMENTO
É A ÁREA DE MEMÓRIA DO PROCESSO ONDE O
PROGRAMA SERÁ EXECUTADO, ALÉM DO ESPAÇO PARA OS
DADOS UTILIZADOS POR ELE.
CONTEXTO DE HARDWARE DO
PROCESSO - MUDANÇA DE
CONTEXTO
ESTADOS DE UM PROCESSO
UM PROCESSO EM UM SISTEMA TAREFA NÃO É EXECUTADO
O TEMPO TODO PELO PROCESSADOR, ELE PASSA POR UMA
SÉRIE DE ESTADOS QUE SÃO BASICAMENTE OS SEGUINTES:
NOVO - QUANDO O PROCESSO ESTÁ SENDO CRIADO
PRONTO - ESTÁ AGUARDANDO UMA OPORTUNIDADE PARA
EXECUTAR, OS SO IRÁ DETERMINAR QUAL PROCESSO IRÁ
SER EXECUTADO DENTRE OS QUE ESTÃO NO ESTADO DE
PRONTO
EXECUTANDO - ESTÁ SENDO PROCESSADO PELA CPU
INTERROMPIDO - ESTÁ AGUARDANDO ALGUM EVENDO
EXTERNO OU POR ALGUM RECURSO PARA PODER
PROSSEGUIR SEU PROCESSAMENTO
FINALIZADO - O PROCESSO ESTÁ FINALIZADO E SEUS
RECURSOS JÁ FORAM LIBERADOS
MUDANÇA DE ESTADOS DE UM
PROCESSO
FILAS DE ESTADO
PROCESSO IO/CPU BOUND
PROCESSO IO BOUND
PROCESSO CPU BOUND
COMUNICAÇÃO ENTRE
PROCESSOS
COMUNICAÇÃO ENTRE
PROCESSOS
EM UM AMBIENTE MULTITAREFA, OS PROCESSOS PODEM SER
CLASSIFICADOS CONFORME A SUA
INDEPENDÊNCIA/DEPENDÊNCIA DE OUTROS PROCESSOS:
 INDEPENDENTES - O PROCESSO INICIA A SUA EXECUÇÃO E
PROSSEGUE ATÉ A SUA FINALIZAÇÃO, DESTA FORMA NÃO
AFETA E NEM É AFETADO POR OUTROS PROCESSOS EM
EXECUÇÃO
COOPERATIVOS - O PROCESSO COOPERA COM OUTROS
PROCESSOS, DESTA FORMA, SUA EXECUÇÃO AFETA OU É
AFETADO POR OUTROS PROCESSOS.
EM GERAL OS PROCESSOS COOPERANTES COMPARTILHAM
ALGUM RECURSO OU TROCAM MENSAGENS ENTRE SI.
MOTIVOS PARA COOPERAÇÃO
ENTRE PROCESSOS
 COMPARTILHAMENTO DE RECURSOS
- VÁRIAS PESSOAS UTILIZANDO O MESMO ARQUIVO
- COMPARTILHAMENTO DE PERIFÉRICOS
 AUMENTO DA VELOCIDADE DE PROCESSAMENTO
- DIVISÃO DE UM PROCESSO EM SUBTAREFAS
INDEPENDENTES
 MODULARIDADE
- CONSTRUÇÃO DE SISTEMAS MODULARES
 CONVENIÊNCIA
MECANISMOS DE COMUNICAÇÃO
UMA EXECUÇÃO CONCORRENTE QUE REQUER COOPERAÇÃO
ENTRE PROCESSOS REQUER TAMBÉM MECANISMOS QUE
PERMITAM AOS PROCESSOS COMUNICAREM-SE UNS COM OS
OUTROS E SINCRONIZAREM SUAS AÇÕES.
OS MECANISMOS COMUMENTE UTILIZADO ENTRE OS
PROCESSOS COOPERANTES SÃO:
 MEMÓRIA COMPARTILHADA
 TROCA DE MENSAGENS;
COMUNICAÇÃO POR MEMÓRIA
COMPARTILHADA
OS PROCESSOS UTILIZAM UMA REGIÃO DE MEMÓRIA FÍSICA
COMUM, ONDE TODOS REALIZAM AS OPERAÇÕES DE
LEITURA E GRAVAÇÃO
COMUNICAÇÃO POR TROCA DE
MENSAGENS
TROCA DE MENSAGENS É UM MECANISMO DE
COMUNICAÇÃO ENTRE PROCESSOS, IMPLEMENTADO PELO
SISTEMA OPERACIONAL ATRAVÉS DE DUAS ROTINAS DE
SISTEMA:
 SEND - ENVIA UMA MENSAGEM
 RECEIVE - RECEBE UMA MENSAGEM
 SEND (RECEPTOR, MENSAGEM)
 RECEIVE (TRANSMISSOR, MENSAGEM)
FORMAS DE ENDEREÇAMENTO
 DIRETO - O PROCESSO QUE DESEJA ENVIAR OU RECEBER A
MENSAGEM ENDEREÇA EXPLICITAMENTE O NOME DO
PROCESSO RECEPTOR OU TRANSMISSOR, NESTE CASO SÓ
EXISTE A COMUNICAÇÃO ENTRE DOIS PROCESSOS.
 INDIRETO - UTILIZA UMA ÁREA COMPARTILHADA, ONDE
AS MENSAGENS PODEM SER COLOCADAS PELO PROCESSO
TRANSMISSOR E RETIRADAS PELO RECEPTOR, ESTA ÁREA É
CONHECIDO COMO MAILBOX. ESTE MAILBOX APRESENTA
CARACTERÍSTICAS NO MOMENTO DA CRIAÇÃO, COMO POR
EXEMPLO: QUANTIDADE DE MENSAGENS, TAMANHO DE
MENSAGENS.
VÁRIOS PROCESSOS PODEM ESTAR ASSOCIADOS A UM
MAILBOX, AS FUNÇÕES SEND/RECEIVE ENDEREÇAM O
MAILBOX
TROCA DE MENSAGENS
DIRETO
P1 - SEND (P2, MENSAGEM)
RECEIVE (P1, MENSAGEM)
P2 - SEND (P1, MENSAGEM)
RECEIVE (P1, MENSAGEM)
INDIRETO
SEND (MAILBOX, MENSAGEM)
RECEIVE (MAIBOX, MENSAGEM)
SEND (MAILBOX, MENSAGEM)
RECEIVE (MAIBOX, MENSAGEM)
TROCA DE MENSAGENS
INDEPENDENTE DA FORMA DE ENDEREÇAMENTO ENTRE
PROCESSOS, A COMUNICAÇÃO ENTRE ELES PODE ELES PODE
BLOQUEAR OU NÃO OS PROCESSOS ENVOLVIDOS.
BASICAMENTE EXISTEM DUAS FORMAS DE COMUNICAÇÃO
ENTRE PROCESSOS ATRAVÉS DA TROCA DE MENSAGENS:
 SINCRONA, UM PROCESSO ENVIA UMA MENSAGEM (SEND)
E FICA ESPERANDO ATÉ QUE O PROCESSO RECEPTOR LEIA A
MENSAGEM, O QUANDO O PROCESSO TENTA RECEBER UMA
MENSAGEM (RECEIVE) E PERMANECE ESPERANDO, ATÉ QUE
O PROCESSO TRANSMISSOR ENVIE A MENSAGEM. ESTE TIPO
DE COMUNICAÇÃO. NA COMUNICAÇÃO SINCRONA NÃO
EXISTE NECESSIDADE DE BUFFERS PARA GUARDAR AS
MENSAGENS
TROCA DE MENSAGENS
 ASSINCRONA, NEM RECEPTOR PERMANECE AGUARDANDO
O ENVIO DE UMA MENSAGEM, NEM O TRANSMISSOR O SEU
RECEBIMENTO, NESTE CASO EXISTE A NECESSIDADE DE
BUFFERS PARA ARMAZENAR AS MENSAGENS.
DEVE EXISTIR MECANISMOS QUE PERMITAM AO PROCESSO
IDENTIFICAR SE A MENSAGEM FOI ENVIADA OU RECEBIDA
VANTAGEM - A GRANDE VANTAGEM DA COMUNICAÇÃO
ASSINCRONA É O GRAU DE PARALELISMO NA EXECUÇÃO
DOS PROCESSOS, COMPARADO À COMUNICAÇÃO SÍNCRONA,
ONDE A NECESSIDADE DE ESPERA DOS PROCESSOS REDUZ O
GRAU DE CONCORRÊNCIA.
SINCRONIZAÇÃO ENTRE
PROCESSOS
SINCRONIZAÇÃO ENTRE
PROCESSOS
 É COMUM PROCESSOS QUE TRABALHAM JUNTOS
(CONCORRENTES) COMPARTILHAREM RECURSOS DO
SISTEMA, COMO ARQUIVOS, REGISTROS DISPOSITIVOS E
ÁREAS DE MEMÓRIA.
 DE MANEIRA GERAL, O COMPARTILHAMENTO DE
RECURSOS ENTRE PROCESSOS PODE GERAR SITUAÇÕES
INDESEJÁVEIS CAPAZES DE COMPROMETER O SISTEMA.
 O MECANISMO QUE GARANTE O ACESSO AOS RECURSOS
COMPARTILHADOS SÃO CHAMADOS DE MECANISMOS DE
SINCRONIZAÇÃO
SINCRONIZAÇÃO ENTRE
PROCESSOS
CONSIDERAREMOS DOIS PROCESSOS CONCORRENTES
TROCANDO INFORMAÇÕES ATRAVÉS DE OPERAÇÕES DE
GRAVAÇÃO E LEITURA EM UM BUFFER (MEMÓRIA
COMPARTILHADA)
UM PROCESSO SÓ PODE GRAVAR DADOS NO BUFFER SE ELE
NÃO ESTIVER CHEIO E UM PROCESSO SÓ PODE LER DADOS
ARMAZENADOS DO BUFFER SE EXISTIR ALGUM DADO PARA
SER LIDO. EM AMBOS OS CASOS OS PROCESSOS DEVERÃO
AGUARDAR ATÉ QUE O BUFFER ESTEJA PRONTO PARA AS
OPERAÇOES DE GRAVAÇÃO OU DE ESCRITA.
SINCRONIZAÇÃO ENTRE
PROCESSOS
PROBLEMAS DE
COMPARTILHAMENTO DE
RECURSOS
EXEMPLO PRÁTICO: ATUALIZAÇÃO DE CONTA BANCÁRIA
SE DOIS CAIXAS ESTÃO MANIPULANDO A MESMA CONTA
CORRENTE, UM REALIZA A OPERACÃO DE DÉBITO E OUTRO
A OPERAÇÃO CRÉDITO.
SALDO ATUAL: R$ 200,00
VALOR DE DÉBITO - R$ 200,00
VALOR DO CRÉDITO - R$ 400,00
SE A OS DOIS CAIXAS ACESSAM SIMULTANEAMENTE A
CONTA, O SALDO FINAL ESTARÁ ERRADO COM O VALOR DE
R$ 600,00, QUANDO DEVERIA SER DE R$ 400,00
EXCLUSÃO MÚTUA
E
REGIÃO CRÍTICA
EXCLUSÃO MÚTUA
A SOLUÇÃO MAIS SIMPLES PARA EVITAR O PROBLEMA DE
COMPARTILHAMENTO DE RECURSOS APRESENTADO
ANTERIORMENTE, É IMPEDIR QUE DOIS OU MAIS
PROCESSOS ACESSEM O MESMO RECURSO NO MESMO
INSTANTE
ENQUANTO UM PROCESSO ESTIVER UTILIZANDO O RECURSO
COMPARTILHADO, TODOS OS OUTROS QUE QUEIRAM
ACESSAR ESSE MESMO RECURSO DEVERÃO ESPERAR ATÉ
QUE O PRIMEIRO TERMINE O ACESSO
ESSA IDÉIA DE EXCLUSIVIDADE DE ACESSO É CHAMADO DE
EXCLUSÃO MÚTUA.
REGIÃO CRÍTICA
A PARTE DO CÓDIGO DO PROGRAMA ONDE É FEITO O ACESSO
AO RECURSO COMPARTILHADO É DENOMINADO DE
REGIÃO CRÍTICA.
SE PUDERMOS EVITAR QUE DOIS PROCESSOS ENTREM EM
SUAS REGIÕES CRITICAS AO MESMO TEMPO, OU SEJA, SE
CONSEGUIRMOS A EXECUÇÃO MUTUAMENTE EXCLUSIVA
DAS REGIÕES CRÍTICAS, EVITAREMOS PROBLEMAS
DECORRENTES DO COMPARTILHAMENTO.
OS MECANISMOS QUE IMPLEMENTAM A EXCLUSÃO MÚTUA
UTILIZAM UM PROTOCOLO DE ACESSO À REGIÃO CRÍTICA
TODA VEZ QUE FOR EXECUTAR A REGIÃO CRÍTICA, O
PROCESSO OBRIGATORIAMENTE IRÁ EXECUTAR ANTES UM
PROTOCOLO DE ENTRADA NESSA REGIÃO, DA MESMA
FORMA QUE AO SAIR, DEVERÁ EXECUTAR UM PROTOCOLO
DE SAÍDA.
REGIÃO CRÍTICA
INICIO
ENTRADA_REGIÃO_CRÍTICA( ); {Protocolo de entrada}
REGIAO_CRÍTICA ( ); {Execução da Região Crítica }
SAÍDA_REGIÃO_CRÍTICA( ); {Protocolo de Saída }
FIM
PROTOCOLOS DE ENTRADA/SAÍDA
MÉTODO 1.
UTILIZANDO UMA VARIÁVEL COMPARTILHADA PORTA
PROTOCOLOS DE ENTRADA/SAÍDA
MÉTODO 2.
UTILIZANDO UMA VARIÁVEL COMPARTILHADA VEZ
PROTOCOLOS DE ENTRADA/SAÍDA
MÉTODO 3
CADA PROCESSO UTILIZA UMA VARIÁVEL COMPARTILHADA
PORTA1 E PORTA2
PROTOCOLOS DE ENTRADA/SAÍDA
MÉTODO 4.
UTILIZA TRÊS VARIÁVEIS COMPARTILHADAS VEZ, PORTA1 E
PORTA2
PROBLEMAS DOS PROTOCOLOS
DE E/S
MÉTODO 1
- NÃO GARANTE EXCLUSÃO MÚTUA
MÉTODO 2
- EXISTE A NECESSIDADE DE ALTERNÂNCIA ENTRE OS
PROCESSOS
- RECURSO DISPONÍVEL MAS NÃO PODE SER UTILIZADO
MÉTODO 3
- PODE OCORRER DEADLOCK
MÉTODO 4
- NÃO EXISTE PROBLEMAS
PROTOCOLO DE E/S POR
HARDWARE
A SOLUÇÃO MAIS SIMPLES PARA O PROBLEMAS DA
EXCLUSÃO MÚTUA É FAZER É FAZER COM QUE O PROCESSO
ANTES DE EXECUTAR A REGIÃO CRÍTICA, DESABILITE TODAS
AS INTERRUPÇÕES EXTERNAS E AS REABILITE APÓS DEIXAR
A REGIÃO CRÍTICA.
COMO A MUDANÇA DE CONTEXTO SÓ PODE SER REALIZADA
ATRAVÉS DE INTERRUPÇÕES, O PROCESSO QUE AS
DESABILITOU TERÁ ACESSO EXCLUSIVO GARANTIDO.
desabilita_Interrupções
executa_região_crítica( )
habilita_Interrupções;
PROTOCOLOS DE E/S SEMÁFOROS
UM SEMÁFORO É UMA VARIÁVEL INTEIRA NÃO NEGATIVA ,
QUE SÓ PODE SER ASSOCIADA ATRAVÉS DAS FUNÇÃO WAIT
SIGNAL
GERALMENTE O SEMÁFORO ESTÁ ASSOCIADO A UM
RECURSO COMPARTILHADO, INDICANDO QUANDO O
RECURSO ESTÁ SENDO ACESSADO POR UM DOS PROCESSOS
CONCORRENTES. SE O SEU VALOR FOR MAIOR QUE ZERO,
NENHUM PROCESSO ESTÁ UTILIZANDO O RECURSO, CASO
CONTRÁRIO O PROCESSO FICA IMPEDIDO DO ACESSO É
ENTRA EM ESTADO DE SUSPENSO
PROTOCOLOS DE E/S SEMÁFOROS
PROBLEMAS
DESABILITA INTERRUPÇÃO
 SE O PROCESSO TRAVAR, TODO O SISTEMA ESTARÁ
COMPROMETIDO, OU SEJA, NEM O SISTEMA OPERACIONAL
IRÁ EXECUTAR DEVIDO A DESABILITAÇÃO DE
INTERRUPÇÃO, SERÁ NECESSÁRIO UM RESET DE HARDWARE
NO EQUIPAMENTO
SEMÁFORO
ERROS DE CODIFICAÇÃO DESABILITAR A UTILIZAÇÃO DO
RECURSO, EXEMPLO - WAIT SEM UM SIGNAL OU INVERSÃO
ENTRE POSIÇÃO ENTRE SIGNAL E WAIT
DEADLOCK
UM PROCESSO É DITO EM DEADLOCK QUANDO ESTÁ
ESPERANDO POR UM EVENTO QUE NUNCA OCORRERÁ. ESSA
SITUAÇÃO É CONSEQUÊNCIA, NA MAIORIA DAS VEZES, DO
COMPARTILHAMENTO DE RECURSOS DO SISTEMA ENTRE
VÁRIOS PROCESSOS, SENDO QUE CADA PROCESSO DEVE TER
ACESSO AO RECURSO DE FORMA EXCLUSIVA (EXCLUSÃO
MUTUA)
DEADLOCK
CONDIÇÕES PARA A EXISTÊNCIA DE DEADLOCK
CADA RECURSO SÓ PODE ESTAR ALOCADO A UM ÚNICO
PROCESSO EM UM DETERMINADO INSTÂNTE (EXCLUSÃO
MÚTUA)
 UM PROCESSO, ALÉM DOS RECURSOS JÁ ALOCADOS, PODE
ESTAR ESPERANDO POR OUTROS RECURSOS
 UM RECURSO NÃO PODE SER LIBERADO DE UM PROCESSO
SÓ PORQUE OUTROS PROCESSOS DESEJAM O MESMO
RECURSO
 UM PROCESSO PODE TER DE ESPERAR POR UM RECURSO
ALOCADO A OUTRO PROCESSO E VICE-VERSA (ESPERA
CIRCULAR)
PREVENÇÃO DE DEADLOCK
PREVINIR DEADLOCKS, É PRECISO GARANTIR QUE UMA DAS
QUATRO CONDIÇOES NECESSÁRIAS PARA SUA OCORRÊNCIA
NUNCA SE SATISFAÇA
 PRIMEIRA CONDIÇÃO - ELIMINAR EXCLUSÃO MUTUA
- CAUSA INCONSISTÊNCIA DE DADOS
 SEGUNDA CONDIÇÃO - EVITAR QUE PROCESSOS QUE JÁ
POSSUAM RECURSOS ALOCADOS REQUISITEM NOVOS
RECURSOS
- REQUISITAR TODOS OS RECURSOS NO INICIO DA
EXECUÇÃO, SE NÃO HOUVER RECURSOS DISPONÍVEIS, O
PROCESSO NÃO É INICIADO
- PODE SER QUE O PROCESSO SÓ UTILIZARÁ O RECURSO 10
HORAS DEPOIS DE INICIAR A EXECUÇÃO DO PROCESSO.
PREVENÇÃO DE DEADLOCK
 TERCEIRA CONDIÇÃO - PODE SER EVITADO QUANDO
PERMITIMOS QUE UM RECURSO SEJA RETIRADO DE UM
PROCESSO, NO CASO DE OUTRO PROCESSO NECESSITAR DO
MESMO RECURSO
- A LIBERAÇÃO DE UM RECURSO JÁ ALOCADO PODE
CAUSAR SÉRIOS PROBLEMAS, PODENDO ATÉ FAZER O
PROCESSO PERDER TODO PROCESSAMENTO REALIZADO ATÉ
O MOMENTO
 QUARTA CONDIÇÃO - EXCLUIR A POSSIBILIDADE DE
ESPERA CIRCULAR, ISTO É SE NECESSITAR DE OUTRO
RECURSO, DEVERÁ LIBERAR O PRIMEIRO
DETECÇÃO DO DEADLOCK
A DETECÇÃO DO DEADLOCK É O MECANISMO QUE
DETERMINA, REALMENTE, A EXISTÊNCIA DE UM DEADLOCK,
PERMITINDO IDENTIFICAR OS RECURSOS E PROCESSOS
ENVOLVIDOS NO PROBLEMA.
OS SISTEMAS OPERACIONAIS, PARA DETECTAR DEADLOCKS,
DEVEM MANTER UMA ESTRUTURA DE DADOS CAPAZES DE
IDENTIFICAR CADA RECURSO DO SISTEMA, O PROCESSO QUE
O ESTÁ ALOCANDO E OS PROCESSOS QUE ESTÃO A ESPERA
DA LIBERAÇÃO DO RECURSO.
TODA VEZ QUE O RECURSO E ALOCADO OU LIBERADO POR
UM PROCESSO, A ESTRUTURA DEVE SER ATUALIZADA.
GERALMENTE, OS ALGORITMOS QUE IMPLEMENTAM ESSE
MECANISMO VERIFICAM A EXISTENCIA DE FILA CIRCULAR,
PERCORRENDO TODA ESTRUTURA.
CORREÇÃO DO DEADLOCK
APÓS A DETECÇÃO DO DEADLOCK, UMA SOLUÇÃO
BASTANTE UTILIZADA PELA MAIORIA DOS SISTEMAS
OPERACIONAIS É, ELIMINAR UM OU MAIS PROCESSOS
ENVOLVIDOS NO DEADLOCK E DESALOCAR OS RECURSOS JÁ
GARANTIDOS POR ELES, QUEBRANDO, ASSIM A ESPERA
CIRCULAR
A ELIMINAÇÃO DOS PROCESSOS ENVOLVIDOS NO
DEADLOCK PODE SER FEITA UTILIZANDO ALGUM CRITÉRIO
COMO POR EXEMPLO: PRIORIDADE OU DE FORMA
ALEATÓRIA
THREADS
SUBPROCESSOS
- UM PROCESSO PODE CRIAR CRIAR OUTROS PROCESSOS,
NESTE CASO O PROCESSO CRIADOR CHAMA-SE PAI E O
PROCESSO CRIADO CHAMA-SE PROCESSOS FILHO, O
PROCESSO FILHO POR SUA VEZ PODE CRIAS OUTROS
PROCESSOS.
UTILIZAÇÃO DE SUBPROCESSOS
PERMITE DIVIDIR UMA APLICAÇÃO EM PARTES QUE PODEM
TRABALHAR DE FORMA CONCORRENTE
EXEMPLO:
UM BANCO DE DADOS ATENDE A REQUISIÇÃO DE TODOS OS
CLIENTE, SE UM PROCESSO QUE EMITE UM RELATÓRIO FOR
INICIADO, TODOS OUTROS PROCESSO QUE NECESSITEM
ACESSAR O REGISTROS DO BANCO DE DADOS TERÃO QUE
ESPERAR O PROCESSO DE EMISSÃO DE RELATORIOS
ACABAR.
COM O USO DE SUBPROCESSO, CADA REQUISIÇÃO
IMPLICARIA NA CRIAÇÃO DE UM NOVO PROCESSO PARA
ATENDÊ-LA, AUMENTANDO O THROUGHPUT DA APLICAÇÃO
E CONSEQUENTEMENTE, MELHORANDO O SEU DESEMPENHO
CRIAÇÃO DE SUBPROCESSOS
TODA VEZ QUE UM PROCESSO É CRIADO, É NECESSÁRIO QUE
O SISTEMA ALOQUE RECURSOS (CONTEXTO DE HARDWARE,
CONTEXTO DE SOFTWARE, ESPAÇO DE ENDEREÇAMENTO),
ALÉM DE CONSUMIR TEMPO DE CPU NESTE TRABALHO.
NO CASO DE TERMINO DO PROCESSO, O SISTEMA GASTA
TEMPO PARA DESALOCAR RECURSOS PREVIAMENTE
ALOCADOS.
THREADS
NA TENTATIVA DE DIMINIUIR O TEMPO GASTO NA
CRIAÇÃO/ELIMINAÇÃO DE PROCESSOS, BEM COMO
ECONOMIZAR RECURSOS DO SISTEMA COMO UM TODO, FOI
INTRODUZIDO O CONCEITO DE THREAD (LINHA)
EM UM AMBIENTE MULTITHREAD, NÃO É NECESSÁRIO
HAVER VÁRIOS PROCESSOS PARA SE IMPLEMENTAR
APLICAÇÕES CONCORRENTES.
THREADS
THREADS COMPARTILHAM O PROCESSADOR DA MESMA
MANEIRA QUE UM PROCESSO. POR EXEMPLO, QUANDO UM
THREAD ESPERA POR UM I/O, OUTRA THREAD PODE SER
EXECUTADO.
CADA THREAD POSSUI SEU PRÓPRIO CONTEXTO DE
HARDWARE (REGISTRADORES), PORÉM COMPARTILHA O
MESMO ESPAÇO DE ENDEREÇAMENTO COM AS DEMAIS
THREAD DO PROCESSO.
THREADS PASSAM PELOS MESMOS ESTADOS QUE UM
PROCESSO
THREAD x SUBPROCESSO
DIFERENÇA ENTRE THREADS E
PROCESSOS
A GRANDE DIFERENÇA ENTRE SUBPROCESSOS E THREADS É
O ESPAÇO DE ENDEREÇAMENTO.
ENQUANTO SUBPROCESSOS POSSUEM CADA UM, ESPAÇOS
INDEPENDENTES E PROTEGIDOS, THREADS
COMPARTILHARM O MESMO ESPAÇO DE ENDEREÇAMENTO
DO PROCESSO, SEM NENHUMA PROTEÇÃO, PERMITINDO
ASSIM QUE UMA THREAD POSSA ALTERAR DADOS DE OUTRA
THREAD.
GERÊNCIA DO PROCESSADOR
MULTITAREFA
O CONCEITO BÁSICO QUE GEROU A IMPLEMENTAÇÃO DOS
SISTEMAS MULTIPROGRAMÁVEIS FOI O
COMPARTILHAMENTO DA UCP ENTRE OS DIVERSOS
PROCESSOS.
PARA ISSO, TODO SISTEMA MULTIPROGRAMÁVEL POSSUI UM
CRITÉRIO PARA DETERMINAR QUAL A ORDEM NA ESCOLHA
DOS PROCESSOS PARA EXECUÇÃO ENTRE OS VÁRIOS
PROCESSOS QUE CONCORREM PELA UTILIZAÇÃO DO
PROCESSADOR, ISTO É QUE ENCONTRM-SE NO ESTADO
PRONTO.
FILAS DE ESTADO
ESCALONAMENTO
O PROCEDIMENTO DE SELEÇÃO DE UM PROCESSO PARA
EXECUÇÃO É CHAMADO DE ESCALONAMENTO, É
REALIZADO PELO SISTEMA OPERACIONAL.
A PARTE DO CÓDIGO DO SISTEMA OPERACIONAL
RESPONSÁVEL PELO ESCALONAMENTO É CHAMADO DE
ESCALONADOR OU SCHEDULER
OBJETIVOS DO ESCALONAMENTO:
- MANTER A CPU OCUPADA A MAIOR PARTE DO TEMPO
- BALANCEAR A UTILIZAÇÃO DOPROCESSADOR ENTRE AS
DIVERSOS PROCESSOS
- MAXIMIZAR O THROUGHPUT DO SISTEMA
- OFERECER TEMPO DE RESPOSTA RAZOAVEL PARA O
USUÁRIO
ESCALONAMENTO
CADA ALGORITMO DE ESCALONAMENTO VISA ATENDER A
UM TIPO DE PROCESSAMENTO
OS CRITÉRIOS DE ESCALONAMENTO PODEM SER (DEPENDE
DE CADA SISTEMA):
- UTILIZAÇÃO DE CPU
- THROUGHPUT - QUANTIDADE DE PROCESSOS EXECUTADO
EM UM DETERMINADO INTERVALO DE TEMPO
- TEMPO DE TURNAROUND - É O TEMPO QUE O PROCESSO
LEVA DESDE A SUA ADMISSÃO NO SISTEMA ATÉ O SEU
TÉRMINO
- TEMPO DE RESPOSTA - É O TEMPO DECORRIDO DO
MOMENTO DA SUBMISSÃO DE UM PEDIDO AO SISTEMA ATÉ A
PRIMEIRA RESPOSTA PRODUZIDA
ESCALONAMENTO
TIPOS DE ESCALONAMENTO
- NÃO-PREEMPTIVO
- NESTE TIPO DE SISTEMA, QUANDO UM PROCESSO
GANHA O DIREITO DE UTILIZAR A CPU, NENHUM OUTRO
PROCESSO PODE LHE RETIRAR ESSE RECURSO (CPU), ISTO É
O PROCESSO PODE UTILIZAR O PROCESSADOR ENQUANTO
FOR NECESSÁRIO
- PREEMPTIVO
- NESTE TIPO DE SISTEMA, O SISTEMA PODE
INTERROMPER A EXECUÇÃO DE UM PROCESSO PARA QUE
OUTRO PROCESSO UTILIZE O PROCESSADOR
ESCALONAMENTO
NÃO-PREEMPTIVO
ESCALONAMENTO FIFO
 PRIMEIRO A ENTRAR PRIMEIRO A SER SELECIONADO PARA
EXECUÇÃO
 IMPLEMENTADO ATRAVÉS DE UMA FILA
 UM PROCESSO QUANDO ENTRA NO ESTADO DE PRONTO É
COLOCADO NO FINAL DA FILA
 PROBLEMAS
 IMPOSSIBILIDADE DE PREVER QUANDO UM PROCESSO
TERÁ A SUA EXECUÇÃO INICIADA
 PROCESSOS CPU-BOUND IRÃO PREJUDICAR OS
PROCESSOS IO-BOUND
 NÃO É EFICIÊNTE
ESCALONAMENTO
NÃO-PREEMPTIVO
ESCALONAMENTO SHORTEST-JOB-FIRST (SJF)
 ASSOCIA A CADA PROCESSO AO SEU TEMPO DE EXECUÇÃO,
OU SEJA, QUANDO O PROCESSADOR ESTÁ LIVRE, O
PROCESSO EM ESTADO DE PRONTO QUE PRECISAR DE
MENOS TEMPO DE UCP PARA TERMINAR SEU
PROCESSAMENTO É SELECIONADO PARA EXECUÇÃO
 FAVORECE PROCESSOS QUE NECESSITAM DE POUCO
TEMPO DE CPU
 PROBLEMA É DETERMINAR O TEMPO DE EXECUÇÃO DE
CADA PROCESSO
ESTE SISTEMA NÃO PODE SER UTILIZADO EM SISTEMAS
INTERATIVOS
ESCALONAMENTO
NÃO-PREEMPTIVO
A PARTIR DO MOMENTO QUE O PROCESSO ESTÉ EM
EXECUÇÃO, VOLUNTARIAMENTE LIBERA O PROCESSADOR E
RETORNANDO A FILA DE PRONTO
TODOS OS PROCESSOS DEVEM COOPERAR
EXPONTANEAMENTE PARA QUE O ANDAMENTO DE OUTROS
PROCESSOS NÃO SEJAM AFETADOS.
SE UM PROCESSO “MAL COMPORTADO”NÃO LIBERAR A CPU,
NADA PODERÁ SER FEITO, A NÃO AGUARDAR OU .... “BOOT”
EXEMPLO: WINDOWS 3.11
ESCALONAMENTO
PREEMPTIVO
O ESCALONAMENTO PREEMPTIVO PERMITE QUE O SISTEMA
DÊ ATENÇÃO AOS PROCESSOS MAIS PRIORITÁRIOS E
TAMBÉM O COMPARTILHAMENTO DO PROCESSADOR É FEITO
DE UMA MANEIRA MAIS UNIFORME ENTRE OS PROCESSOS.
A TROCA DE UM PROCESSO POR OUTRO NA CPU (MUDANÇA
DE CONTEXTO) CAUSADA PELA PREEMPÇÃO, GERA UM
OVERHEAD AO SISTEMA. É NECESSÁRIO ESTABELECER
CORRETAMENTE OS CRITÉRIOS DE PREEMPÇÃO PARA NÃO
SOBRECARREGAR O SISTEMA
ESCALONAMENTO
PREEMPTIVO
ESCALONAMENTO CIRCULAR (ROUND ROBIN)
 SEMELHANTE A AO FIFO, PORÉM QUANDO UM PROCESSO
PASSA PARA O ESTADO DE EXECUÇÃO, EXISTE UM TEMPOLIMITE PARA SUA UTILIZAÇÃO, ESSE TEMPO É DENOMINADO
DE TIME-SLICE OU QUANTUM. QUANDO O TEMPO EXPIRA,
ELE VOLTA PARA O ESTADO DE PRONTO, DANDO A VEZ PARA
OUTRO PROCESSO. ESSE MECANISMO É CHAMADO DE
PREEMPÇÃO POR TEMPO
 ATRAVÉS DO ESCALONAMENTO CIRCULAR, NENHUM
PROCESSO PODERÁ MONOPOLIZAR A CPU
 EM SISTEMAS INTERATIVOS COM O USUÁRIO ESTE
ALGORITMO É BASTANTE ADEQUADO.
ESCALONAMENTO
PREEMPTIVO - FILA CIRCULAR
ESCALONAMENTO
PREEMPTIVO
ESCALONAMENTO POR PRIORIDADE
 O ESCALONAMENTO CIRCULAR CONSEGUE MELHORAR A
DISTRIBUIÇÃO DO TEMPO DA CPU, PORÉM NÃO CONSEGUE
IMPLEMENTAR UM COMPARTILHAMENTO DIFERENCIADO
ENTRE OS PROCESSOS, ISTO ACONTECE EM RAZÃO DE O
ESCALONAMENTO CIRCULAR TRATAR TODOS OS PROCESSOS
DE UMA MANEIRA IGUAL, O QUE NEM SEMPRE É O IDEAL
 PROCESSOS IO-BOUND COMPETEM DE FORMA IGUAL COM
OS PROCESSOS CPU-BOUND
ESCALONAMENTO
PREEMPTIVO
ESCALONAMENTO POR PRIORIDADE
EM CERTAS CIRCUNSTANCIAS, ALGUNS PROCESSOS DEVEM
SER TRATADOS DE MANEIRA DIFERENTE DE OUTROS
PROCESSOS
 É PRECISO ASSOCIAR A CADA UM DELES UMA PRIORIDADE
DE EXECUÇÃO
 NESSE ESQUEMA, PROCESSOS DE MAIOR PRIORIDADE SÃO
ESCALONADOS PREFERENCIALMENTE, ISTO É, TODA VEZ
QUE UM PROCESSO FOR PARA A FILA DE PRONTO COM
PRIORIDADE SUPERIOR AO PROCESSO EM EXECUÇÃO, O
SISTEMA DEVERÁ INTERROMPER O PROCESSO CORRENTE,
COLOCÁ-LO NO ESTADO DE PRONTO E SELECIONAR O DE
MAIOR PRIORIDADE. ESTE MECANISMO É DEFINIDO COMO
PREEMPÇÃO POR PRIORIDADE
ESCALONAMENTO
PREEMPTIVO
ESCALONAMENTO POR PRIORIDADE
A PRIORIDADE PODE SER ESTÁTICA OU DINÂMICA
A PRIORIDADE É DITA ESTÁTICA QUANDO NÃO É
MODIFICADA DURANTE A EXISTÊNCIA DO PROCESSO
 NA PRIORIDADE DINÂMICA, A PRIORIDADE DO PROCESSO
PODE SER AJUSTADA DE ACORDO COM O TIPO DE
PROCESSAMENTO REALIZADO PELO PROCESSO
A PRIORIDADE DE UM PROCESSO VAI AUMENTANDO A
MEDIDA QUE O MESMO PERMANECE NA FILA DE PRONTO,
APÓS A SUA EXECUÇÃO A PRIORIDADE É A MAIS BAIXA
POSSÍVEL
 DE TEMPOS EM TEMPOS É REALIZADO UM RECALCULO DE
PRIORIDADE DOS PROCESSOS PRONTOS
ESCALONAMENTO
PREEMPTIVO
ESCALONAMENTO POR MÚLTIPLAS FILAS
 COMO DIVERSOS PROCESSOS DO SISTEMA POSSUEM
CARACTERÍSTICAS DE PROCESSAMENTO DIFERENTES, É
DIFÍCIL QUE UM ÚNICO MECANISMO DE ESCALONAMENTO
SEJA ADEQUADO A TODOS OS TIPOS DE PROCESSO.
 UMA BOA POLÍTICA SERIA CLASSIFICAR OS PROCESSOS EM
FUNÇÃO DO TIPO DE PROCESSAMENTO REALIZADO E
APLICAR A CADA GRUPO MECANISMOS DE
ESCALONAMENTO DISTINTO
 O ESCALONAMENTO POR MULTIPLAS FILAS IMPLEMENTA
DIVERSAS FILAS DE PROCESSO NO ESTADO DE PRONTO,
ONDE CADA PROCESSO É ASSOCIADO EXCLUSIVAMENTE A
UMA DELA.
CADA FILA POSSUI UMA PRIORIDADE ASSOCIADA
ESCALONAMENTO
PREEMPTIVO
ESCALONAMENTO POR MÚLTIPLAS FILAS
ESCALONAMENTO COM
MÚLTIPLOS PROCESSADORES
 EXISTE UMA [ÚNICA FILA DE PRONTO E SÃO
ESCALONADOS NO PRIMEIRO PROCESSADOR DISPONÍVEL
 NO CASO DE DOIS OU MAIS PROCESSADORES SE TORNAR
DISPONÍVEL EM UM MESMO INSTANTE, NÃO PODE HAVER A
POSSIBILIDADE DE UM PROCESSO SER ESCALONADO POR
DOIS PROCESSADORES DIFERENTES.
 A MEMÓRIA FÍSICA É ÚNICA PARA TODOS OS
PROCESSADORES, CONTENDO ASSIM TODOS OS
PROGRAMAS, NÃO FAZ DIFERENÇA EM QUAL PROCESSADOR
A EXECUÇÃO OCORRERÁ.
ESCALONAMENTO COM
MÚLTIPLOS PROCESSADORES
GERENCIAMENTO DE MEMÓRIA
INTRODUÇÃO
O COMPUTADOR POSSUI DOIS TIPOS DE MEMÓRIA
PRINCIPAL - MEMÓRIA RAM, RECURSO ESCASSO, DE
ARMAZENAMENTO TEMPORÁRIO, DE ALTO CUSTO, DE
RÁPIDO ACESSO
 SECUNDÁRIA - DISCO OU FITA É UM MEIO PERMANENTE,
MAIS ABUNDANTE E DE BAIXO CUSTO, ACESSO LENTO, ONDE
SÃO ARMAZENADOS OS PROGRAMAS E DADOS.
 TODA VEZ QUE DESEJARMOS EXECUTAR UM
PROGRAMA RESIDENTE NA MEMÓRIA SECUNDÁRIA,
DEVEREMOS ALGUMA FORMA, CARREGÁ-LO PARA A
MEMÓRIA PRINCIPAL
CICLO DE UM PROGRAMA
PROGRAMAÇÃO
PROGRAMA EM DISCO
PROGRAMA EM MEMÓRIA RAM
INTRODUÇÃO
COMO A MEMÓRIA PRINCIPAL É ESCASSA E DE ALTO CUSTO,
É NECESSÁRIO QUE O SISTEMA OPERACIONAL NÃO OCUPE
MUITO ESPAÇO EM MEMÓRIA E AO MESMO TEMPO DEVE
OTIMIZAR SUA UTILIZAÇÃO.
EM SISTEMAS MONOPROGRAMÁVEIS, A GERÊNCIA DE
MEMÓRIA NÃO É MUITO COMPLEXA, NOS SISTEMAS
MULTIPROGRAMÁVEIS ELA SE TORNA CRÍTICA, DEVIDO A
NECESSIDADE DE MANTER O MAIOR NÚMERO DE USUÁRIOS
POSSÍVEIS UTILIZANDO A MEMÓRIA EFICIÊNTEMENTE
ALOCAÇÃO CONTÍGUA SIMPLES
 FOI IMPLEMENTADA NOS PRIMEIROS SISTEMAS
OPERACIONAIS, AINDA ESTÁ PRESENTE EM ALGUNS
SISTEMAS MONOPROGRAMÁVEIS (DOS)
 A MEMÓRIA PRINCIPAL ESTÁ DIVIDIDA EM DUAS PARTES:
UMA ESTÁ PARA O SISTEMA OPERACIONAL E A OUTRA PARA
O PROGRAMA DE USUÁRIO
 O PROGRAMA DE USUÁRIO ESTÁ LIMITADO AO ESPAÇO DE
MEMÓRIA DISPONÍVEL, OU SEJA O TAMANHO TOTAL DE
MEMÓRIA PRINCIPAL MENOS O QUE ESTÁ SENDO OCUPADO
PELO SISTEMA OPERACIONAL
 USUÁRIO PODE ACESSAR DADOS EM QUALQUER POSIÇÃO
DE MEMÓRIA, INCLUSIVE MODIFICAR O SO
 PARA PROTEGER O SO EXISTE UM REGISTRADOR PARA
DELIMITAR AS ÁREAS DA APLICAÇAO E DO SO
ALOCAÇÃO CONTÍGUA SIMPLES
ALOCAÇÃO CONTÍGUA SIMPLES
 FÁCIL IMPLEMENTAÇÃO
 NÃO PERMITE A UTILIZAÇÃO EFICIENTE DA MEMÓRIA E
DO PROCESSADOR, POIS APENAS UM USUÁRIO PODE DISPOR
DESSES RECURSOS
 SE O PROGRAMA DO USUÁRIO NÃO PREENCHE
TOTALMENTE A MEMÓRIA, EXISTIRÁ UMA ESPAÇO DE
MEMÓRIA SEM UTILIZAÇÃO
ALOCAÇÃO CONTÍGUA SIMPLES
OVERLAY
 A PRINCÍPIO OS PROGRAMAS DE USUÁRIO ESTAVAM
LIMITADOS AO TAMANHO DA MEMÓRIA PRINCIPAL
DISPONÍVEL.
 PARA EXECUTAR UM PROGRAMA COM TAMANHO MAIOR
QUE A MEMÓRIA DISPONÍVEL, É NECESSÁRIO DIVIDIR O
PROGRAMA EM MÓDULOS DE FORMA QUE PUDESSEM
EXECUTAR INDEPENDENTEMENTE UMA DA OUTRA,
UTILIZANDO UMA MESMA ÁREA DE MEMÓRIA, ESTA TÉCNICA É
CHAMADA DE OVERLAY.
 CADA VEZ QUE UM DOS MÓDULOS FOR REFERÊNCIADO
PELO MÓDULO PRINCIPAL, O MÓDULO SERÁ CARREGADO DA
MEMÓRIA SECUNDÁRIA PARA A ÁREA DE OVERLAY,
SOBREPONDO O MÓDULO ATUAL, SE O MÓDULO JÁ ESTIVER
NA ÁREA DE OVERLAY, NADA É REALIZADO
TÉCNICA DE OVERLAY
ALOCAÇÃO CONTÍGUA SIMPLES
OVERLAY
 A TÉCNICA DE OVERLAY TEM VANTAGEM DE PERMITIR
QUE O PROGRAMADOR EXPANDA OS LIMITES DA MEMÓRIA
PRINCIPAL
 A UTILIZAÇÃO DESTA TÉCNICA EXIGE MUITO CUIDADO
POIS PODE TRAZER PROBLEMAS DE DESEMPENHO DA
APLICAÇÃO, DEVIDO A TRANSFERÊNCIA EXCESSIVA DOS
MÓDULOS ENTRE O DISCO E A MEMÓRIA.
 A DEFINIÇÃO DAS ÁREAS DE OVERLAY É FUNÇÃO DO
PROGRAMADOR, ATRAVÉS DE COMANDOS ESPECIAIS DA
LINGUAGEM UTILIZADA.
ALOCAÇÃO PARTICIONADA
 PARA PROPORCIONAR MELHOR APROVEITAMENTO DOS
RECURSOS COMPUTACIONAIS, OS SISTEMAS OPERACIONAIS
TORNARAM-SE MULTITAREFA.
 PARA A MULTIPROGRAMAÇÃO SER EFICIÊNTE É
NECESSÁRIO QUE VÁRIOS PROGRAMAS ESTEJAM NA
MEMÓRIA AO MESMO TEMPO, DAÍ A NECESSIDADE DE UMA
NOVA FORMA DE ORGANIZAÇÃO PARA A MEMÓRIA
PRINCIPAL
ALOCAÇÃO PARTICIONADA
ESTÁTICA
 UTILIZADO EM SISTEMAS MULTIPROGRAMÁVEIS
 A MEMÓRIA É DIVIDIDA EM PEDAÇOS, CHAMADO DE
PARTIÇÕES
 CADA PARTIÇÃO TEM O TAMANHO DEFINIDO NA
INICIALIZAÇÃO DO SISTEMA, EM FUNÇÃO DO TAMANHO DOS
PROGRAMAS QUE EXECUTARIAM NESTE AMBIENTE
 SEMPRE QUE É NECESSÁRIO A ALTERAÇÃO DA PARTIÇÃO É
NECESSÁRIO O SISTEMA DEVE SER DESATIVADO E
REINICIADO COM A NOVA CONFIGURAÇÃO
ALOCAÇÃO PARTICIONADA
ESTÁTICA
ALOCAÇÃO PARTICIONADA
ESTÁTICA ABSOLUTA
 COMPILADORES E MONTADORES DE PRIMEIRA GERAÇÃO
GERAVAM CÓDIGOS ABSOLUTOS, ISTO FAZIA COM QUE UM
PROGRAMA SÓ PODERIA EXECUTAR EM UMA ÚNICA
PARTIÇÃO, MESMO QUE OUTRAS PARTIÇÕES ESTIVESSEM
LIVRES.
 A ESSE TIPO DE ALOCAÇÃO CHAMOU-SE ALOCAÇÃO
PARTICIONADA ESTÁTICA ABSOLUTA.
CÓDIGO ABSOLUTO
ALOCAÇÃO PARTICIONADA
ESTÁTICA ABSOLUTA
ALOCAÇÃO PARTICIONADA
ESTÁTICA RELOCÁVEL
 COM A EVOLUÇÃO DOS COMPILADORES E MONTADORES
FOI POSSÍVEL A GERAÇÃO DE CÓDIGOS RELOCÁVEIS E ASSIM
OS PROGRAMAS PUDERAM SER CARREGADOS EM
QUALQUER PARTIÇÃO
 A PARTIR DESTA IMPLEMENTAÇÃO FOI CRIADO UM NOVO
TIPO DE ORGANIZAÇÃO, DENOMINADO DE ALOCAÇÃO
PARTICIONADA ESTÁTICA RELOCÁVEL
 PARA MANTER O CONTROLE SOBRE QUAIS PARTIÇÕES
ESTAVAM ALOCADAS OU NÃO, OS SISTEMAS POSSUÍAM
TABELAS, DELIMITANDO SEU CADA PARTIÇÃO, SEU
TAMANHO E SE ESTAVA EM USO OU NÃO
 SEMPRE QUE UM PROGRAMA É CARREGADO, O SISTEMA
PERCORRE A TABELA NA TENTATIVA DE LOCALIZAR UMA
PARTIÇÃO LIVRE, ONDE O PROGRAMA PODE SER ALOCADO
ALOCAÇÃO PARTICIONADA
ESTÁTICA RELOCÁVEL
TABELA DA ALOCAÇÃO DE
PARTIÇÕES
ALOCAÇÃO PARTICIONADA
ESTÁTICA RELOCÁVEL
 NESSE ESQUEMA DE ALOCAÇÃO DE MEMÓRIA, A
PROTEÇÃO BASEIA-SE EM DOIS REGISTRADORES QUE
INDICAM OS LIMITES INFERIORES E SUPERIORES ONDE UM
PROGRAMA ESTÁ SENDO EXECUTADO.
 CASO O PROGRAMA TENTE ACESSAR UMA POSIÇÃO DE
MEMÓRIA FORA DOS LIMITES DEFINIDOS PELOS
REGISTRADORES, ELE É INTERROMPIDO E UMA MENSAGEM
DE ERRO É ENVIA.
 OS SISTEMAS DE ALOCAÇÃO ABSOLUTA E NOS DE
ALOCAÇÃO RELOCÁVEL, OS PROGRAMAS NORMALMENTE
NÃO PREENCHEM TOTALMENTE AS PARTIÇÕES.
 OS PEDAÇOS DE MEMÓRIA QUE FICAM IMPEDIDOS DE SER
UTILIZADO POR OUTROS PROGRAMAS É CHAMADO DE
FRAGMENTAÇÃO
DELIMITAÇÃO DA PARTIÇÃO
FRAGMENTAÇÃO DA MEMÓRIA
PRINCIPAL
ALOCAÇÃO PARTICIONADA
DINÂMICA
 A ALOCAÇÃO PARTICIONADA ESTÁTICA MOSTROU A
NECESSIDADE DE UMA NOVA FORMA DE ORGANIZAÇÃO DE
MEMÓRIA QUE PERMITISSE DIMINUIR A FRAGMENTAÇÃO E
CONSEQUENTEMENTE AUMENTAR O GRAU DE
COMPARTILHAMENTO DA MEMÓRIA.
 NA ALOCAÇÃO DINÂMICA (OU VARIÁVEL), FOI ELIMINADO
O CONCEITO DE PARTIÇÕES DE TAMANHO FIXO, CADA
PROGRAMA UTILIZARIA O ESPAÇO DE QUE NECESSITASSE,
PASSANDO ESSE PEDAÇÃO A SER SUA PARTIÇÃO
ALOCAÇÃO PARTICIONADA
DINÂMICA
ALOCAÇÃO PARTICIONADA
DINÂMICA
 O PROBLEMA DE FRAGMENTAÇÃO NÃO ESTÁ RESOLVIDO,
POIS COMEÇARÁ A OCORRER QUANDO OS PROGRAMAS
FOREM TERMINANDO E DEIXANDO ESPAÇOS CADA VEZ
MENORES NA MEMÓRIA, NÃO PERMITINDO O INGRESSO DE
NOVOS PROGRAMAS.
 EXISTEM DUAS SOLUÇÕES PARA O CASO:
 ESPAÇOS ADJACENTES DEVEM SER REUNIDOS,
PRODUZINDO UM ÚNICO ESPAÇO DE TAMANHO MAIOR;
 REALOCAÇÃO DE TODAS AS PARTIÇÕES OCUPADAS,
ELIMINANDO TODOS OS ESPAÇOS ENTRE ELAS E CRIANDO
UMA ÚNICA ÁREA LIVRE CONTÍGUA.
 A RELOCAÇÃO REDUZ A FRAGMENTAÇÃO MAS A
IMPLEMENTAÇÃO É COMPLEXA E ONEROSA EM RECURSOS.
ALOCAÇÃO DINÂMICA
FRAGMENTAÇÃO
SOLUCÃO PARA FRAGMENTAÇÃO
AGREGAÇÃO DE ESPAÇOS
CONTÍGUO
SOLUCÃO PARA FRAGMENTAÇÃO
RELOCAÇÃO DE PARTIÇÃO
ESTRATÉGIA PARA ESCOLHA DA
PARTIÇÃO
OS SISTEMAS OPERACIONAIS IMPLEMENTAM, BASICAMENTE
TRÊS ESTRATÉGIAS PARA DETERMINAR EM QUAL PARTIÇÃO
LIVRE UM PROGRAMA SERÁ CARREGADO PARA EXECUÇÃO.
 AS ESTRATÉGIAS TENTAM EVITAR, OU DIMINUIR O
PROBLEMA DA FRAGMENTAÇÃO ANTES QUE ELA OCORRA
 ESTRATÉGIAS
BEST-FIT - DEIXA O MENOR ESPAÇO;
 WORST-FIT - DEIXA O MAIOR ESPAÇO
 FIRST-FIT - PRIMEIRA PARTIÇÃO LIVRE
ESTRATÉGIA PARA ESCOLHA DE
PARTIÇÃO
ESTRATÉGIA DE ALOCAÇÃO
ESTRATÉGIA PARA ALOCAÇÃO
BEST-FIT
 ESCOLHE A MELHOR PARTIÇÃO (BEST-FIT), OU SEJA,
AQUELA EM QUE O PROGRAMA DEIXA O MENOR ESPAÇO
SEM UTILIZAÇÃO
 A LISTA DE ÁREAS LIVRES ESTÁ ORDENADA POR
TAMANHO, DIMINUINDO O TEMPO DE BUSCA POR UMA ÁREA
DESOCUPADA
 COMO É ALOCADA A PARTIÇÃO QUE DEIXA A MENOR ÁREA
LIVRE, A TENDÊNCIA É QUE CADA VEZ MAIS A MEMÓRIA
FIQUE COM PEQUENAS ÁREAS NÃO CONTÍGUAS,
AUMENTANDO O PROBLEMA DA FRAGMENTAÇÃO
ESTRATÉGIA PARA ALOCAÇÃO
WORST-FIT
 ESSE MECANISMO ESCOLHE A PIOR PARTIÇÃO(WORST-FIT),
OU SEJA, AQUELA EM QUE O PROGRAMA DEIXA O MAIOR
ESPAÇO SEM UTILIZAÇÃO
 APESAR DE UTILIZAR AS PARTIÇÕES MAIORES, A TÉCNICA
WORST-FIT DEIXA ESPAÇOS LIVRES MAIORES QUE PERMITEM
A UM MAIOR NÚMERO DE PROGRAMAS UTILIZAR A
MEMÓRIA, DIMINUIDO O PROBLEMA DA FRAGMENTAÇÃO
ESTRATÉGIA PARA ALOCAÇÃO
FIRST-FIT
 ESSE MECANISMO ESCOLHE A PRIMEIRA PARTIÇÃO (FIRSTFIT) LIVRE, DE TAMANHO SUFICIENTE PARA CARREGAR O
PROGRAMA.
 NESSE ALGORÍTMO, A LISTA DE ÁREAS LIVRES ESTÁ
ORDENADO POR ENDEREÇOS CRESCENTE.
 COMO O MÉTODO TENTA PRIMEIRO UTILIZAR AS ÁREAS
LIVRES DE ENDEREÇOS MAIS BAIXO, EXISTE UMA GRANDE
CHANCE DE SE OBTER UMA GRANDE PARTIÇÃO LIVRE NOS
ENDEREÇOS MAIS ALTOS DE MEMÓRIA.
 DAS TRÊS ESTRATÉGIAS A FIRST-FIT É A MAIS RÁPIDA,
CONSUMINDO MENOS RECURSO DO SISTEMA
SWAPPING
Download

so2