A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SISTEMAS OPERACIONAIS

Apresentações semelhantes


Apresentação em tema: "SISTEMAS OPERACIONAIS"— Transcrição da apresentação:

1 SISTEMAS OPERACIONAIS
PROFESSOR - AIRTON KUADA -

2 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

3 BIBLIOGRAFIA ARQUITETURA DE SISTEMAS OPERACIONAIS
FRANCIS B. MACHADO LUIZ PAULO MAIA SISTEMAS OPERACIONAIS MODERNO ANDREW S. TANENBAUM

4 INTRODUÇÃO

5 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)

6 VISÃO DE UM SISTEMA DE COMPUTAÇÃO

7 VISÃO DO COMPUTADOR PELO USUÁRIO

8 MÁQUINAS DE NÍVEIS

9 HISTÓRICO

10 PRIMEIRA FASE ( ) 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

11 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)

12 TERCEIRA FASE ( ) - 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

13 TERCEIRA FASE ( ) - 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)

14 QUARTA FASE ( ) - 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).

15 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

16 CONCEITOS DE HARDWARE E SOFTWARE

17 HARDWARE COMPONENTES SÃO DIVIDIDOS EM UNIDADES FUNCIONAIS: - UCP
É 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

18 UNIDADES FUNCIONAIS DE UM COMPUTADOR

19 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

20 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

21 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)

22 DESCRIÇÃO DOS REGISTRADORES DO PC 8086 - 16 BITS

23 DESCRIÇÃO DOS REGISTRADORES DO PC 80386 - 32 BITS

24 ARQUITETURA DO PC

25 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

26 MEMÓRIA PRINCIPAL

27 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

28 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

29 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

30 RELAÇÃO ENTRE OS TIPOS DE MEMÓRIAS

31 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.

32 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

33 BARRAMENTO

34 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.

35 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

36 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

37 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

38 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.

39 TRADUTOR

40 PROGRAMA HELLO.ASM dosseg .model small .stack 100h .data
hello_message db 'Hello, World!',0dh,0ah,'$' .code main proc mov mov ds,ax mov ah,9 mov dx,offset hello_message int 21h mov ax,4C00h main endp end main PROGRAMA HELLO.ASM

41 #include <stdio.h>
main ( ) { char hello_message[] = "'Hello, World!"; printf ("%s\n", hello_message ) } PROGRAMA HELLO.C

42 CÓDIGO BINÁRIO GERADO PELO MONTADOR
19BB: B8BD MOV AX,19BD 19BB: ED MOV DS,AX 19BB: B MOV AH,09 19BB: BA MOV DX,0002 19BB:001A D INT 19BB:001C B8004C MOV AX,4C00 19BB:001F CD INT CÓDIGO BINÁRIO GERADO PELO MONTADOR

43 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).

44 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

45 LINKER

46 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,

47 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

48 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)

49 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

50 TIPOS DE SISTEMAS OPERACIONAIS
OS SISTEMAS OPERACIONAIS PODEM SER CLASSIFICADOS LEVANDO OS SEGUINTES ASPECTOS: - EVOLUÇÃO DE HARDWARE - APLICAÇÕES SUPORTADAS

51 TIPOS DE SISTEMAS OPERACIONAIS

52 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

53 SISTEMAS MONOPROGRAMÁVEIS

54 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

55 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.

56 SISTEMAS MULTIPROMÁVEIS/MULTITAREFA

57 MEMÓRIA EM AMBIENTES MONO/MULTIPROGAMADO

58 SISTEMAS MULTITAREFA OS SISTEMAS MULTIPROGRAMÁVEIS PODEM SER CLASSIFICADOS PELA FORMA COMO AS APLICAÇÕES SÃO GERENCIADAS

59 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

60 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)

61 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 .

62

63 SISTEMAS ON-LINE

64 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

65 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

66 SISTEMAS MULTIPROCESSADOS

67 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

68 SISTEMAS FORTEMENTE ACOPLADOS

69 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

70 SISTEMAS ASSIMÉTRICOS

71 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

72 SISTEMAS SIMÉTRICOS

73 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

74 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 -

75 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

76 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

77 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)

78 SISTEMAS FRACAMENTE ACOPLADOS

79 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

80 SISTEMA OPERACIONAL DE REDE:
 NETWARE  WINDOWS NT  UNIX

81 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

82 SISTEMAS OPERACIONAIS DISTRIBUÍDOS

83 PROCESSOS

84 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

85 PROCESS CONTROL BLOCK

86 MULTITAREFA

87 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.

88 CONTEXTO DE HARDWARE DO PROCESSO - MUDANÇA DE CONTEXTO

89 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

90 MUDANÇA DE ESTADOS DE UM PROCESSO

91 FILAS DE ESTADO

92 PROCESSO IO/CPU BOUND PROCESSO IO BOUND PROCESSO CPU BOUND

93 COMUNICAÇÃO ENTRE PROCESSOS

94 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.

95 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

96 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;

97 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

98 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)

99 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

100 TROCA DE MENSAGENS DIRETO P1 - SEND (P2, MENSAGEM)
RECEIVE (P1, MENSAGEM) P2 - SEND (P1, MENSAGEM) INDIRETO SEND (MAILBOX, MENSAGEM) RECEIVE (MAIBOX, MENSAGEM)

101 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

102 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.

103 SINCRONIZAÇÃO ENTRE PROCESSOS

104 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

105 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.

106 SINCRONIZAÇÃO ENTRE PROCESSOS

107 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

108 EXCLUSÃO MÚTUA E REGIÃO CRÍTICA

109 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.

110 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.

111 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

112 PROTOCOLOS DE ENTRADA/SAÍDA
MÉTODO 1. UTILIZANDO UMA VARIÁVEL COMPARTILHADA PORTA

113 PROTOCOLOS DE ENTRADA/SAÍDA
MÉTODO 2. UTILIZANDO UMA VARIÁVEL COMPARTILHADA VEZ

114 PROTOCOLOS DE ENTRADA/SAÍDA
MÉTODO 3 CADA PROCESSO UTILIZA UMA VARIÁVEL COMPARTILHADA PORTA1 E PORTA2

115 PROTOCOLOS DE ENTRADA/SAÍDA
MÉTODO 4. UTILIZA TRÊS VARIÁVEIS COMPARTILHADAS VEZ, PORTA1 E PORTA2

116 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

117 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;

118 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

119 PROTOCOLOS DE E/S - SEMÁFOROS

120 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

121 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)

122 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)

123 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.

124 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

125 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.

126 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

127 THREADS

128 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.

129 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

130 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.

131 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.

132 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

133 THREAD x SUBPROCESSO

134 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.

135 GERÊNCIA DO PROCESSADOR

136 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.

137 FILAS DE ESTADO

138 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

139 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

140 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

141 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

142 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

143 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

144 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

145 ESCALONAMENTO PREEMPTIVO
ESCALONAMENTO CIRCULAR (ROUND ROBIN)  SEMELHANTE A AO FIFO, PORÉM QUANDO UM PROCESSO PASSA PARA O ESTADO DE EXECUÇÃO, EXISTE UM TEMPO-LIMITE 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.

146 ESCALONAMENTO PREEMPTIVO - FILA CIRCULAR

147 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

148 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

149 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

150 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

151 ESCALONAMENTO PREEMPTIVO
ESCALONAMENTO POR MÚLTIPLAS FILAS

152 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Á.

153 ESCALONAMENTO COM MÚLTIPLOS PROCESSADORES

154 GERENCIAMENTO DE MEMÓRIA

155 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

156 CICLO DE UM PROGRAMA

157 PROGRAMAÇÃO

158 PROGRAMA EM DISCO

159 PROGRAMA EM MEMÓRIA RAM

160 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

161 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

162 ALOCAÇÃO CONTÍGUA SIMPLES

163 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

164 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

165 TÉCNICA DE OVERLAY

166 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.

167 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

168 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

169 ALOCAÇÃO PARTICIONADA ESTÁTICA

170 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.

171 CÓDIGO ABSOLUTO

172 ALOCAÇÃO PARTICIONADA ESTÁTICA ABSOLUTA

173 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

174 ALOCAÇÃO PARTICIONADA ESTÁTICA RELOCÁVEL

175 TABELA DA ALOCAÇÃO DE PARTIÇÕES

176 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

177 DELIMITAÇÃO DA PARTIÇÃO

178 FRAGMENTAÇÃO DA MEMÓRIA PRINCIPAL

179 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

180 ALOCAÇÃO PARTICIONADA DINÂMICA

181 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.

182 ALOCAÇÃO DINÂMICA FRAGMENTAÇÃO

183 SOLUCÃO PARA FRAGMENTAÇÃO AGREGAÇÃO DE ESPAÇOS CONTÍGUO

184 SOLUCÃO PARA FRAGMENTAÇÃO RELOCAÇÃO DE PARTIÇÃO

185 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

186 ESTRATÉGIA PARA ESCOLHA DE PARTIÇÃO

187 ESTRATÉGIA DE ALOCAÇÃO

188 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

189 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

190 ESTRATÉGIA PARA ALOCAÇÃO FIRST-FIT
 ESSE MECANISMO ESCOLHE A PRIMEIRA PARTIÇÃO (FIRST-FIT) 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

191 SWAPPING


Carregar ppt "SISTEMAS OPERACIONAIS"

Apresentações semelhantes


Anúncios Google