introdução aos sistemas operacionais - logic · introdução aos sistemas operacionais •...
TRANSCRIPT
IntroduçãoaosSistemasOperacionais
• Definição
• Oqueé?
• Exemplos
• MáquinasdeNíveis
Prof. Marco Câmara2
Definição
• “...umconjuntoderoHnasexecutadaspeloprocessador,deformasemelhanteaosprogramasdosusuários.”
• “...OSOtemporobjeHvofuncionarcomoumainterfaceentreousuárioeocomputador,tornandosuauHlizaçãomaissimples,rápidaesegura”.
– FrancisMachadoeLuizPauloMaia
Prof. Marco Câmara3
Definição
• “...éumprogramaqueatuacomointermediárioentreousuárioeohardwaredeumcomputador.”
• “...devepropiciarumambientenoqualousuáriopossaexecutarprogramasdeformaconvenienteeeficiente”.
– Silberschatz,GalvineGagne
Prof. Marco Câmara4
OqueéumSistemaOperacional?
• OqueéumS.O.?– Funções
– Responsabilidades
• Transparência
– Simplificação
• Gerência
– ComparHlhamento– OHmização
• Encapsulamento
– EsconderDetalhes
Prof. Marco Câmara5
OqueéumSistemaOperacional?
• Primeiroscomputadores
– Programaçãocomplexa
• Exigiagrandeconhecimentodohardwareedelinguagemdemáquina
– Solução:
• SistemasOperacionais– Encapsulamento
» Interaçãosetornoumaisfácil,confiáveleeficiente.
Prof. Marco Câmara6
Exemplos(computadorespessoais)
• Windows(Windows10)
• MacOSX10.11(ElCapitan)
• Linux(Ubuntu,RedHat,SuSE)
• Unix(FreeBSD,SCOUnix,HP-UX,SunOS)
Prof. Marco Câmara7
Exemplos(outrosambientes)
• Worksta-onsdeaplicaçãoespecífica
• Servidores
• EletrodomésHcos(SOembarcados)
• Computadoresdegrandeporte(mainframes)
Prof. Marco Câmara9
Exemplos
• Quaisasprincipaisdiferenças?
– Quemconhecemaisdeumsistemaoperacional?
– Apresentardiferenças.
Prof. Marco Câmara10
HistóricodeSOs
• PrimeiraGeração(1945-1955)
– Primeiroscomputadores
– ENIAC(ElectronicNumericalIntegratorandComputer)
• RealizaçãodecálculosbalísHcos
– UHlizaçãodeválvulas
• ENIAC
– 18.000válvulas
– ProgramaçãoemlinguagemdemáquinaProf. Marco Câmara
12
HistóricodeSOs
• PrimeiraGeração(1945-1955)
– Ausênciadesistemaoperacional
– EDVAC(ElectronicDiscreteVariableAutomaHcComputer)
– Usuários
• Universidadeseórgãosmilitares
– UNIVAC
• Censoamericanode1950
Prof. Marco Câmara13
HistóricodeSOs
• SegundaGeração(1956-1965)– Criaçãodostransistores
• Aumentonavelocidadedoprocessamento
• Dimensãodoscomputadores
– CriaçãodasmemóriasmagnéHcas
• Acessomaisrápidoaosdados
– Primeiraslinguagensdeprogramação:
• AssemblyeFORTRAN
Prof. Marco Câmara14
HistóricodeSOs
• SegundaGeração(1956-1965)– Cartãoperfurado
– Processamentobatch• Processamentodelotedeprogramas
– SOcomconjuntoderoHnasparaoperaçõesdeEntradaeSaída(IOCS)
– Conceito:
• IndependênciadosdisposiHvos
Prof. Marco Câmara15
HistóricodeSOs
• TerceiraGeração(1966-1980)– Monitordevídeoedoteclado
• Interação
• TimeSharing
– SurgimentodosistemaoperacionalUNIX(linguagemC)
– Primeirosmicrocomputadores
Prof. Marco Câmara16
HistóricodeSOs
• TerceiraGeração(1966-1980)– IntroduçãodosCircuitosIntegrados
• Menorcustoedimensão
• Performance
– MulHprogramação• ComparHlhamentodamemóriaprincipal
• PrimiHvascombloqueio– Sinaiseinterrupções
Prof. Marco Câmara17
HistóricodeSOs
• QuartaGeração(1981-1990)
– Aperfeiçoamentodoscircuitosintegrados
– SurgimentodosPC’sedoDOS
• SubsHtuiçãodoCP/M
– Estaçõesdetrabalho(monousuárias)
• MulHtarefa
– MulHprocessadores
– Sistemasoperacionaisderedeedistribuídos.
Prof. Marco Câmara18
HistóricodeSOs
• QuintaGeração(1991-2007)
– Arquiteturacliente-servidor
– Processamentodistribuído
• MulHprocessadoresnãoconvencionais
– Linguagemnatural;
– Segurança,gerênciaedesempenhodoSOedarede
– Consolidaçãodossistemasdeinterfacesgráficas
• InteraçãocomusuáriosmaisflexívelProf. Marco Câmara
19
MáquinadeNíveis
• Computadorcomomáquinadeníveisoucamadas:– Nível2-Aplicações;
– Nível1–SistemaOperacional;
– Nível0–Hardware.
Prof. Marco Câmara
Usuários
20
Nível0(Hardware)
• DisposiHvosFísicos;
• Microprogramação;
• LinguagemdeMáquina.
Prof. Marco Câmara21
Níveis1e2-So:ware
• SistemaOperacional;
• LinguagensdeProgramação
– CompiladoreseInterpretadores;
– MáquinasVirtuais(Java);
– AmbientesdeDesenvolvimento.
•Aplicações.
Prof. Marco Câmara22
Conceitos
• Hardware
– Trêssubsistemasbásicos:
• UnidadeCentraldeProcessamento;
• Memóriaprincipal;
• DisposiHvosdeentradaesaída.
– Subsistemassãotambémchamadosdeunidadesfuncionais;
– Implementaçõespodemvariaradependerdaarquitetura.
Prof. Marco Câmara24
ModelodeComputador
• Execuçãodeprogramas
– ProgramaarmazenadoemdisposiHvodeE/S
– Cargadoprogramanamemória(SO)
– Execuçãodasinstruções(umaauma)naCPU
Dispositivo de E/S
Memória Principal
CPU
Prof. Marco Câmara26
CPU
• Controlacadaunidadefuncionaldosistema
• Execuçãodasinstruçõesdosprogramas
– AritméHcas
– Comparação
– Movimentação
Prof. Marco Câmara27
CPU
• ConjuntodeInstruções– InstruçõesdemáquinasdisponíveisnaCPU
– TiposequanHdadevariamdeacordocomaCPU
– CompaHbilidadedeprogramas
– RISCxCISC
Prof. Marco Câmara28
CPU
• Desempenhodeprocessadores– Dependede:
» Conjuntodeinstruçõesdisponível
» clock
» Númerodenúcleos
– Benchmark
» Usadoparacompararprocessadoresdiferentes
» Códigosespecíficospodemprivilegiarumdeterminadoproduto!
Prof. Marco Câmara29
Memória(definição)
• Externa(storage)
– ArmazenaarquivosdoSO,AplicaçõeseDados;
– Estante?
• PrincipalouInterna
– Provêoespaçodetrabalho(mesa?)
30
MemóriaPrincipal
• Armazenainformações(bits)
– Programas(instruções)
– Dados
• Compostaporváriasunidadesdeacesso
– Bit,ByteePalavra;
– Posiçõesdememória.
Prof. Marco Câmara31
Memória-Endereçamento
Cadaposiçãodememóriatemumendereçowsico
Referênciaúnicadeumaposiçãodememória
0 1 2 3 . . . . . .
m-1
0000 11111010 01000000 00001111 11110000 1111
0000 1011
Endereço Conteúdo: Instrução ou Dado
tamanho da célula: 8 bits
número de posições de
memória endereçáveis:
m
Prof. Marco Câmara32
Memória-Tipos
• Fisicamente,existemdoisHpos:
– RAM,oumemóriadeleituraeescrita
• EstáHcaXDinâmica;
• Amaiscomumenteespecificadaemanipulada;
• Definidabasicamentepelacapacidadeebarramento(performance).
– ROM
• EPROM,EEPROM,Flash
33
TiposdeRAM
• SRAM(Sta-cRAM)– Construída com semicondutores;– Usa circuitos flip-flop para
armazenar cada bit de memória, logo mantém as informações enquanto existir fonte de energia;
– Muito rápida; – Cara e complexa (6 transistores),
logo não é usada em grandes volumes.
• DRAM(DynamicRAM)– Armazena cada bit em um
capacitor conectado a UM transistor;
– O capacitor perde carga rapidamente, logo a memoria precisa ser “lembrada”;
– Simples e de baixo custo, compõe o maior volume da memorial usada nos computadores atuais.
34
Memória-Operação
• InterligaçãoMemória-Processador
– Registradoresdeusoespecífico:
• MemoryAddressRegister-MAR-REM
• MemoryDataRegister-MDR-RDM
Prof. Marco Câmara35
Memória-Operação
• OperaçãodeLeituradaMemória
– CPUarmazenaendereçodacélulaaserlidanoMAR
– CPUgerasinaldecontroleindicandoqueaoperaçãoédeleituradamemória
– Memóriarecuperainformaçãoarmazenadanaposiçãoendereçadaecolocanobarramentodedados,chegandoaoMDR
Prof. Marco Câmara36
Memória-Operação
OperaçãodeGravaçãonaMemória
– CPUarmazenaendereçodacélulaasergravadanoMAR
– CPUarmazenaainformaçãoasergravadanoMDR
– CPUgerasinaldecontroleindicandoqueaoperaçãoédegravaçãonamemória
– Memóriaarmazenainformaçãodobarramentodedadosnaposiçãoendereçada
Prof. Marco Câmara37
MemóriaCache
• MemóriaCache
– Memóriadealtavelocidade
– LocalizadaentreCPUeMemóriaPrincipal
– Aumentodedesempenhocomcustorazoável
– Algoritmo
• Hitrate-taxadeacertos
– Interna(L1,ouprimária)xExterna(L2,ousecundária)
Prof. Marco Câmara38
DisposiHvosdeE/S
• DisposiHvodeE/S
– Comunicaçãocommeioexterno
– MemóriaSecundáriaeInterfaceHomem-Máquina
• Barramentos
– Conjuntodefiosparalelos
– InterligaCPU,PeriféricoseMemóriaPrincipal
Prof. Marco Câmara40
Barramentos
• BarramentodeDados
– NúmerodebitsporoperaçãodeE/SouacessoàMemória
– Processadoresde8,16,32ou64bits
– FluxoBi-direcional(leitura/gravação)
• BarramentodeEndereços– CapacidadedeArmazenamento=2n
– FluxoUni-direcional(CPU®MEMouE/S)Prof. Marco Câmara
41
Barramentos
• BarramentodeControle
– Diversossinaisdecontrole
• Read/Write
• ControledeInterrupções
– FluxoUniouBi-direcional(dependedosinaldecontrole)
Prof. Marco Câmara42
ConceitosdeSo|ware
• Tradução
– Necessidadedecodificarinstruçõesparamáquina
– Evolução
• Programaçãoviapainéis
• Linguagensdeprogramação
– LinguagensdeProgramação
• MaiorindependênciadoHW
• Maiorfacilidadededesenvolvimento/manutenção
Prof. Marco Câmara44
Tradução
• LinguagensdeMontagem(Assembly)
– Mnemônicosassociadosàsinstruçõesdoprocessador
– Específicaparacadaprocessador
– Montadores(Assembler)
Prof. Marco Câmara45
Tradução
Programa Fonte
Programa Objeto
Tradutor
Linguagem de Montagem
Módulo Objeto
Montador
Linguagem de Alto Nível
Módulo Objeto
Compilador
Módulo Objeto
Programa Executável
Linker
Módulo Objeto
Módulo Objeto
Prof. Marco Câmara46
Tradução
• LinguagemdeAltoNível
– Semrelaçãodiretacomoprocessador
– Transportabilidade
– Pascal,Fortran,Cobol,VB,Java
– Compiladores
– Interpretadores
– CasoespecialdoJava:JVM
Prof. Marco Câmara47
Tradução
• MódulosObjeto
– Códigodemáquinanãoexecutável
– Referênciasamódulosexternosnãoresolvidas
• MódulosExecutáveis
– Códigosdemáquinaexecutáveis
– Linkers
• Bibliotecas
• RelocaçãoProf. Marco Câmara
48
ConceitosdeSo|ware
• Loader-Carregador
– Cargadoprogramanamemóriaparaexecução
– AbsolutoxRelocável
• Debugger-Depurador
– Pesquisadeerrosdelógica
– Rastreamento
Prof. Marco Câmara49
ConceitosdeSo|ware
• LinguagemdeControle
– ComunicaçãoUsuáriocomoSO
• CaracterxGráfica
– InterpretadordeComandos-Shell
– ArquivosdeComandos
Prof. Marco Câmara50
ConceitosdeSo|ware
• LinguagemdeMáquina
– InstruçõesdoProcessador
• AcessoaosRegistradores/Memória
• Modosdeendereçamento
• Tiposdedados
Prof. Marco Câmara51
ConceitosdeSo|ware
• LinguagemdeMáquina
– Programaemlinguagemdemáquina
• Totalmentecodificadoembinário
• DiretamenteprocessadopelaCPU
• Nãorequertraduçãoourelocação
• Nãopodeserexecutadoemoutrosprocessadores
Prof. Marco Câmara52
ConceitosdeSo|ware
• Microprogramação
– Cadainstruçãoemlinguagemdemáquinatemummicroprogramaassociado
– Omicroprogramaéformadoporváriasmicroinstruções
– Microinstruçõessãoexecutadaspelohardware
– ArquiteturaCISC
– Processadoresmicroprogramáveis
• Aceitamnovasinstruções-novosmicroprogramasProf. Marco Câmara
53
MáquinadeNíveis
Dispositivos Físicos
Microprogramação
Aplicativos
UtilitáriosSistema Operacional
Linguagem de Máquina
Hardware
Programas Aplicativos
Programas do SO: Compiladores, Shell,
Editores de Texto
Prof. Marco Câmara54
TiposdeSistemasOperacionais
• Monoprogramáveis/Monotarefa
• MulHprogramáveis/MulHtarefa
• MulHprocessados
Prof. Marco Câmara55
TiposdeSistemasOperacionais
• SistemasMonoprogramáveis/Monotarefa
– Todosrecursosdosistemadedicadosaumatarefa
– Execuçãodeprogramasseqüencialmente
– Usadonosprimeiroscomputadoresdegrandeporte
– Usadonosprimeiroscomputadoresdepequenoporte
• SistemasMonousuário
Prof. Marco Câmara56
TiposdeSistemasOperacionais
• SistemasMonoprogramáveis/Monotarefa
– Sub-uHlizaçãodosrecursosdosistema
• ProcessadorXOperaçõesdeE/S
• Memória
• DisposiHvosdeE/S
– Implementaçãosimples
• Semrecursosdeproteção
Prof. Marco Câmara57
TiposdeSistemasOperacionais
• SistemasMulHprogramáveis/MulHtarefa
– RecursosdosistemacomparHlhadospordiversastarefas
– Execuçãodeprogramasconcorrentemente• AumentodaproduHvidade
• Reduçãodecustos
• SuporteaSistemasMulHusuário
– ComparHlhamentonauHlizaçãodosrecursosdosistema• ProcessadorXOperaçõesdeE/S
• Memória
• DisposiHvosdeE/SProf. Marco Câmara
58
TiposdeSistemasOperacionais
• SistemasMulHprogramáveis/MulHtarefa
– Implementaçãocomplexa
• Gerenciamentodosacessosconcorrentesaosrecursos
• Recursosdeproteção
– SistemasMonousuárioXMulHusuário
• Mainframes
• ComputadoresPessoaiseEstaçõesdeTrabalho
Prof. Marco Câmara59
TiposdeSistemasOperacionais
• SistemasMulHprogramáveis/MulHtarefa
– SistemasdeTempoReal
• SemelhanteaosSistemasdeTempoComparHlhado
• Limitesrígidosparatempoderesposta
• SemfaHadetempo
• Níveisdeprioridade
• Controledeprocessos(Indústrias,TráfegoAéreo)
Prof. Marco Câmara60
TiposdeSistemasOperacionais
• MulHtarefa– ColaboraHva
• Windows95,98
• NãoexistefaHadetempo
– PreempHva
• Windows10eServer,Linux,MacOS,...
• ExistefaHadetempo
• Preempção
Prof. Marco Câmara61
TiposdeSistemasOperacionais
• SistemasMulHprocessados
– SistemascommaisdeumaCPUinterligada
• Execuçãosimultâneadeprogramas
• Supredificuldadenodesenvolvimentodeprocessadoresmaisrápidos
• IdealparasistemasquenecessitamusointensivodeCPU– ProcessamentocienÄfico
Prof. Marco Câmara62
TiposdeSistemasOperacionais
• SistemasMulHprocessados
– CaracterísHcas
• MulHprogramação
– Aplicadaacadaprocessador
• Escalabilidade
– Aumentodacapacidadecomputacional
• Reconfiguração
– Tolerânciaàfalhaemalgumprocessador
• Balanceamento
– Distribuiçãodecargadeprocessamento
Prof. Marco Câmara63
TiposdeSistemasOperacionais
• SistemasMulHprocessados
– Classificação
• Emfunção:– daformadecomunicaçãoentreCPUs– dograudecomparHlhamentodamemóriaeE/S
• SistemasFortementeAcoplados– ProcessadorescommúlHplosnúcleos,porexemplo.
• SistemasFracamenteAcoplados– ServerCluster,porexemplo.
Prof. Marco Câmara64
TiposdeSistemasOperacionais
• SistemasMulHprocessados
– SistemasFortementeAcoplados
• ProcessadorescomparHlhamumúnicamemória
– EspaçodeEndereçamentoÚnico– ÚnicoSO
MemóriaCPU
Dispositivos de E/S
CPU
Dispositivos de E/S
Prof. Marco Câmara65
TiposdeSistemasOperacionais
• SistemasMulHprocessados
– SistemasFracamenteAcoplados
» SistemasdeComputaçãoindependentes,masconectados(mulHcomputadores)
◆ ProcessamentoDistribuído◆ SOdeRede(SOR)XSODistribuído(SOD)
Memória CPU
Dispositivos de E/S
Memória CPU
Dispositivos de E/S
Link de Comunicação
Prof. Marco Câmara66
TiposdeSistemasOperacionais
• MulHprocessamento
– Computadoresvistosoriginalmentecomomáquinasseqüenciais
• Execuçãoseqüencialdasinstruçõesdoprograma
– SistemasMulHprocessados
• Paralelismo-Simultaneidade
• Execuçãodeváriastarefasousub-tarefas
Prof. Marco Câmara67
DefiniçãodeProcesso
• Umprogramaemexecução
• NãoéomesmoquePrograma(enHdadeestáHca)
– Programaéocódigoexecutável
– Processoéocódigoexecutando
• EnHdadedinâmica
– Ex.:Aexecuçãodeprog.exe3vezesgera3processosdisHntosdomesmoprograma
Prof. Marco Câmara68
AmbientedeumProcesso
• Todoprocessoprecisater:
– Seçãodetexto
• Códigoexecutável
– Seçãodedados
• Variáveis,estruturas
– Pilhadoprocesso
• Parâmetrosetc
– Registradores,incluindoPC,SP,BPetc.
Prof. Marco Câmara69
Conceitos
• ParaqueosprocessosexecutememambientemulHprogramado,existeagerênciade:
– ComparHlhamentodaCPU,dememória,E/Setc
• Nomenclatura
– SistemasBatch
• Job
– SistemasdeTempoComparHlhado
• Tarefa(on-line)
Prof. Marco Câmara70
EstadosdoProcesso
• Mudançasdeestadoduranteaexecução:
– Iniciando• Oprocessoestásendocriado
– SOAlocaMemória,Contexto(BCP)
Ex.:OusuárioclicanumarquivoexecutávelnoExplorerouexecutaviaCMD
– Executando• Instruçõesdoprocessoestãosendoexecutadas
– Bloqueado• Oprocessoestáesperandoalgumeventoexterno
Prof. Marco Câmara71
EstadosdoProcesso
• Mudançasdeestadoduranteaexecução:
– Pronto
• Oprocessoestáaguardandochancedeserexecutadonoprocessador
– Terminando
• Oprocessoestáfinalizandosuaexecução
Prof. Marco Câmara72
ControledeProcesso
• BlocodeControledeProcesso(BCP)
– ÁreadeMemóriaalocadapeloSOparagerenciarprocessos
– Mantéminformaçõessobreoprocesso• Estadodoprocesso
• RegistradoresdaCPU,incluindooPC
• Informaçõesparaescalonamento
• Informaçõesparagerenciamentodememória
• Informaçõesdecontabilização
• InformaçõessobreoperaçõesdeE/S
• PonteirosparaArquivos,SocketetcProf. Marco Câmara
74
TrocadeContexto
• Preempção
– AçãodereHrarumprocessodaCPUaqualquerinstanteerestaurá-locomosenadaHvesseocorrido
• SuportadoporInterrupções(comopeloCLOCK)epeloBCP
– Ex.:PreempçãoportempodeQuantum– PreempçãoporI/O,Prioridadeetc.
• Tempodatrocaéconsideradooverhead
• TempodependedesuportedehardwareecomplexidadedoSO
Prof. Marco Câmara76
EscalonamentodeProcessos
• Manutençãodefilasparacontroledosprocessos
– FiladeProcessos–todosprocessosnosistema
– FiladePronto–processosprontos
– FilasdeBloqueado-processosaguardandoE/SdedisposiHvo(interrupção)ousinal
• MúlHplasFilas–umapordisposiHvo
– FiladeDisco,FiladeCD,FiladeTeclado,deRede
– BCPefetuaoencadeamentonasfilas
– ProcessospassamporváriasfilasProf. Marco Câmara
77
Escalonadores
• Classificaçãodeprocessos:
– I/O-BOUND–IntensivamenteconsumidordeE/S• PassamaistempofazendooperaçõesdeE/SdoqueuHlizandoaCPU– ProcessosComerciais
– CPU-BOUND–IntensivamenteconsumidordeCPU• PassamaistempoefetuandocálculosdoqueE/S
– ProcessosCienÄficos/MatemáHcos
– Híbrido
Prof. Marco Câmara78
Escalonadores
• CombinaçãoadequadadeprocessosCPUeI/OBOUNDmelhoraodesempenhoeflexibilidadedosistema
– ProcessointeraHvo(Ex.:InternetExplorer)
• TipicamenteI/OBound
Prof. Marco Câmara79
AlgoritmodeEscalonamentodeCPU
• AlgoritmodoS.O.quedeterminaqualopróximoprocessoaocuparaCPU
– ExecutadoquandoocorreestourodeQuantumouinterrupçãodoprocesso(I/O,Evento,Sinaletc.)ouoprocessoacaba;
• CritériosmudamcomcaracterísHcasdosProcessos
– Batch,CPUBound,I/OBound,InteraHvos
Prof. Marco Câmara80
MetasdoEscalonamento
• Eficiência– ManteraCPUocupada100%dotempo
• Throughput
– Maximizaronúmerodeprocessos(tarefas,jobs)executadosemumdadointervalodetempo
• Turnaround
– Minimizarotempodeumprocessonosistema,desdeseuinícioatéotérmino• Tempomédiodeexecução
• FundamentalaprocessosBatch Prof. Marco Câmara81
MetasdoEscalonamento
• Igualdade
– TodoProcessotemdireitodeocuparaCPU
• Tempoderesposta
– MinimizarotempodecorridoentreasubmissãodeumpedidoearespostaproduzidanumprocessointeraHvo
Prof. Marco Câmara82
ConflitoentraMetas
• Atenderaumametapodeprejudicaroutra
– QualqueralgoritmodeescalonamentofavoreceráumHpodeprocesso(CPUBound,I/OBound,TempoReal,etc)emdetrimentodeoutros
– Opropósitoprecisasergeral
Prof. Marco Câmara83
TiposdeEscalonamento
– Escalonamentonão-preempHvo• EscalonamentoCooperaHvo;
• ProcessomantémaCPUatéterminarouE/S;
• Nãorequerrecursosespeciaisdehardware– NãoexisteQuantum(devoluçãovoluntáriadocontroleaoS.O.)
• NocasodoWindows,uHlizadoatéaversão3.x.
– EscalonamentopreempHvo• RequertemporizadornaCPU(faHadequantumouUsodoclock);
• RequersuportedoSOparacoordenaracessoadadoscomparHlhadosdeformaconsistente(proteção).
Prof. Marco Câmara84
EscalonamentoFIFO
• FirstComeFirstServed(FCFS,FIFO,PEPS)
– NãopreempHvo
Processo Início Duração (ut)
P1 0 24
P2 0 3
P3 0 3
Prof. Marco Câmara86
EscalonamentoFIFO
• Ordemdechegadadosprocessos:
P1,P2,P3
• DiagramadeGanÖ
P1 P2 P3
24 27 300
Prof. Marco Câmara87
EscalonamentoFIFO
• Temposdeespera
P1=0
P2=24
P3=27
Dica:TempodeEsperaéotempoqueoprocessopassanoestadodePronto.
• Tempomédiodeespera
(0+24+27)/3=17
Throughput = 0,1 (3/30)
Prof. Marco Câmara
P1 P2 P3
24 27 300
88
EscalonamentoFIFO
• Temposdesaída
P1=24
P2=27
P3=30
• Tempomédiodesaída
(24+27+30)/3=27Prof. Marco Câmara
P1 P2 P3
24 27 300
89
EscalonamentoSJF
• Outraordemdechegada
P2,P
3,P
1
• DiagramadeGanÖ
P1P3P2
63 300
Prof. Marco Câmara90
EscalonamentoSJF• FIFOordenado(SJF/MPP)
– MenorProcessoPrimeiro
• Menortempodeexecução
• Temposdeespera
TEP1=6;TEP
2=0;TEP
3=3
• Tempomédiodeesperamelhora
(6+0+3)/3=3
• Tempomédiodeesperanãoémínimo
– Podevariarmuito(comossurtosdeCPU)
• EfeitoComboio
– ProcessosI/OboundesperamporCPUboundProf. Marco Câmara
P1P3P2
63 300
91
EscalonamentoSJF
• Temposdesaída
P1=30;P
2=3;P
3=6
• Tempomédiodesaídamelhora
(30+3+6)/3=13
• Tempomédiodesaídanãoémínimo
– Podevariarmuito(comossurtosdeCPU)
Prof. Marco Câmara
P1P3P2
63 300
92
EscalonamentoSJF
• Shortest-Job-First(MenorJobPrimeiro)
– Deveriaser“próximosurtodeCPUmenorprimeiro”
PID Início Duração de surto
P1 0 6
P2 0 8
P3 0 7
P4 0 3
Usado para Processos batch. Sua execução diária permite determinar seu tempo total.
Prof. Marco Câmara93
EscalonamentoSJF
• TemposdeesperaP
1=3;P
2=16;P
3=9;P
4=0
P1 P3 P2
3 160
P4
9 24
Prof. Marco Câmara94
EscalonamentoSJF
• Tempomédiodeesperamelhora
(3+16+9+0)/4=7
ParaFIFO,nestasituação,seria10,25=(0+6+14+21)/4
• Tempomédiodeesperaémínimo
– Algoritmoconsideradoó'mo
Prof. Marco Câmara
P1 P3 P2
3 160
P4
9 24
95
EscalonamentoSJF
• Problema:determinaçãoexatadaduraçãodopróximosurtodeCPUéimpossível
– SJFéusadoparaescalonamentodejobsemsistemasbatch
• UsuárioespecificaotempodeCPUdojob
– EmescalonamentodeCPUéusadaesHmaHva
• Baseadanaduraçãodossurtosanteriores
– Médiaexponencial
Prof. Marco Câmara96
PreempçãoemSJF
• NãopreempHvo– ProcessousaCPUatécompletarsurto
• PreempHvo
– Novoprocessoprontocomsurtoprevisto(TA)
– Temporestanteprevistoparaoprocessoemexecução(TB)
– SeTA<TB⇒preempçãoporprioridade
– Shortest-Remaining-Time-First(SRTF)Prof. Marco Câmara
97
PreempçãoemSJF
Processo Instante de chegada Duração de surto
P1 0 7
P2 2 4
P3 4 1
P4 5 4
Prof. Marco Câmara98
PreempçãoemSJF
• SJFnãopreempHvo– Tempodeesperamédio=(0+6+3+7)/4=4
• TEP1=0 TEP2=6(8-2)
• TEP3=3 TEP4=7
P1 P3 P2
73 160
P4
8 12
Prof. Marco Câmara99
PreempçãoemSJF
• SJFnãopreempHvo– Tempodesaídamédio=(7+10+4+11)/4=8
• TSP1=7 TSP2=10
• TSP3=4 TSP4=11
P1 P3 P2
7 160
P4
8 12
Prof. Marco Câmara100
EscalonamentoRoundRobin
• Round-Robin(revezamentocircular)
– MétodoanHgoemuitosimples;
– CadaprocessorecebeumafaHadetempo(Quantum),eéescalonadoseguindoaordemdeumafilacircular;
– SistemaPreempHvo-InterrupçãodoClock
– SeoQuantumacabarantesdotérminodoprocesso(preempção),ouseomesmoforbloqueado,oprocessovaiparaofinaldafila.
Prof. Marco Câmara104
EscalonamentoRoundRobin
• ResultadosÄpicos:
– Eliminaproblemasdestarva-on;
– Tempodeesperamédioélongo;
– TempodesaídamaiorqueSJF;
– TempoderespostamelhorqueSJF;
– Quantumgrande->FIFO;
– Quantumpequeno->Baixaeficiênciadevidoaoexcessodetrocasdecontexto.
Prof. Marco Câmara105
EscalonamentoRoundRobin
• Análisedaeficiência
– Comquantumqen+1processosprontos:• Tempomáximodeespera:n*q
• Umexemplo
– Suponhaumafiladeprontocom100processos,Quantumde100ms(valorÄpico);
– UmprocessointeraHvoexecuta,fazumarequisição,vaiparabloqueadoedeláparaofimdafila
• QuandoarespostaseráentregueaousuáriodoprocessointeraHvo?
Prof. Marco Câmara106
EscalonamentoporPrioridade
• Cadaprocessotemumaprioridade
– Númerointeirodentrodelimites(0a7/0a4095)
– Menor(oumaior)número⇒maiorprioridade
• Empate⇒RoundRobin,FCFS
• Starva-on–Estagnação
– Bloqueioportempoindefinido
– Soluções:
• Decrementaprioridadeacadacicloemexecução;
• aging(envelhecimento)
Prof. Marco Câmara107
EscalonamentoporPrioridade
• Prioridade
– Definidainternaouexternamente;
– EstáHcaouDinâmica;
– AlgunsSO(Unix)permitemdefinirprioridadeaumprocesso(comandonice);
– SOpode,porexemplo,aumentarprioridadedeprocessosI/OBound;
• Ex:Prioridade=1/fraçãoQuantumuHlizada
– SJF:casoespecialdeprioridade?
• Pode-seclassificarprocessosporclassesdeprioridade,e,dentrodecadaclasse,usaroutroalgoritmodeescalonamento.
Prof. Marco Câmara108
EscalonamentoporMúlHplasFilas
– EscalonamentopreempHvoentrefilas
• Prioridadefixa:sóatendefilasmenosprioritáriasseasdemaisesHveremvazias
• Timeslice80%paraforegroundcomRRe20%parabackgroundcomFIFO
Prof. Marco Câmara109
EscalonamentoporMúlHplasFilas
• FilascaracterizadaspelossurtosdeCPUdosprocessos
– I/OboundeinteraHvoscommaisprioridade
• PassamamaiorpartedotempoBloqueados
– Processospodemmudardefila
– Agingpodeserfacilmenteimplementado
• AlgoritmopreempHvo
Prof. Marco Câmara111
EscalonamentocomMúlHplosProcessadores
• EscalonamentodeCPUmaiscomplexo
– ExistemsistemascombarramentodeE/SprivaHvodedeterminadoprocessador
• Váriasfilasdeprocessosprontos
– Possibilidadededesperdícioderecursos
Prof. Marco Câmara112
EscalonamentocomMúlHplosProcessadores
• Únicafiladeprocessosprontos
– SymmetricMul-processing(SMP)
• Cadaprocessadorfazseuescalonamento
• ComparHlhamentodeestruturasdedadosdoSO– Sincronização
– AssymmetricMul-processing
• Escalonamentonoprocessadormestre
Prof. Marco Câmara113
EscalonamentodeTempoReal
• SistemasdetemporealcríHco
– Limitesrígidosdetempo
– SOgaranteexecuçãonotempoourejeita
– Exigeso|wareespecialehardwarededicado
114
EscalonamentodeTempoReal
• Sistemasdetemporealnão-críHco– ProcessoscríHcoscomprioridade
• Geradesbalanceamentodosistema– SuportedoSO
• Escalonamentocomprioridade• NãodegradaçãodaprioridadedosprocessoscríHcos• Latênciadecargapequena
– ChamadasaosistemaeoperaçõesdeE/S– Pontosdepreempçãoseguros– TodoKernelpreempÄvel(sincronização)– Protocolodeherançadeprioridade
115
EscalonamentodeTempoReal
• DispatchLatency
– DescreveaquanHdadedetempoqueumsistemagastapararesponderàrequisiçãodeumprocesso
– Otempoderesposta(TR)totalconsisteem:• TRdeInterrupção
• Dispatchlatency• TRdaaplicação
116
SincronizaçãodeProcessos
• Éumproblemainerenteàgestãoderecursos;
– AcessosimultâneoarecursosqueprecisamsercomparHlhados;
– Podegerarstarva-on,dead-lockouinconsistência.
118
SincronizaçãodeProcessos
• Starva-on
– PolíHcadeescalonamentoisolaumoumaisprocessos,quenuncasãoescalonados;
– AlgoritmosespecíficospermitemotratamentodesteHpodefalha.
119
SincronizaçãodeProcessos
• Dead-Lock
– ProcessoP1bloqueiarecursoR1paraseuuso;
– ProcessoP2bloqueiarecursoR2paraseuuso,eébloqueadoaguardandoliberaçãodeR1;
– ProcessoP1ébloqueadoaguardandoR2.
120
SincronizaçãodeProcessos
• Inconsistência:
– Doisoumaisprocessosacessamamesmabasededados,ealteramdadossimultaneamente;
– Exemplos:
• ProcessoAtotalizaocampoXdetodososregistros,enquantoqueoProcessoBalteraoconteúdoderegistrosjácontabilizadospeloProcessoA->Somainconsistente?
• Processosquemanipulaminformaçõesdeformacoordenadasãointerrompidosnomeiodeumaatualização.Dadosinconsistentes?
121
SincronizaçãodeProcessos
• Produtor/Consumidor
– DoisprocessoscomparHlhamumbufferdetamanholimitado
• Oprocessoprodutor:
– Produzumdado
– Inserenobuffer
– Voltaagerarumdado
• Oprocessoconsumidor:
– Consomeumdadodobuffer(umporvez)
123
SincronizaçãodeProcessos
• Produtor/Consumidor
• Oproblemaé:
• ComogaranHrqueoprodutornãoadicionarádadosnobufferseesteesHvercheio?
• ComogaranHrqueoconsumidornãovairemoverdadosdeumbuffervazio?
• Asoluçãonãoétrivial,poisosprocessospodemserinterrompidos!Oqueaconteceriase,antesdeconcluiroincrementodeumcontador,oprocessofosseinterrompido,eocontadorfossedecrementadopelooutroprocesso?
124
SincronizaçãodeProcessos
• Ojantardosfilósofos
– Hácincofilósofosemtornodeumamesa;
– Umgarfoécolocadoentrecadafilósofo;
– Cadafilósofodeve,alternadamente,refleHrecomer;
– Paraqueumfilósofocoma,eledevepossuirdoisgarfos
– Osdoisgarfosdevemseraqueleslogoasuaesquerdaeasuadireita;
– OgarfosomentepodeserpegosenãoesHveremusopornenhumoutrofilósofo;
– Apóscomer,ofilósofodeveliberarogarfoqueuHlizou;
– UmfilósofopodesegurarogarfodasuadireitaouodasuaesquerdaassimqueesHveremdisponíveis,massópodecomeçaracomerquandoambosesHveremsobsuaposse.
125
Sincronização-ExclusãoMútua
• ComotrataroacessoarecursosglobaiscomparHlhados,cominstruçõesintercaladaspeloescalonador,foradocontroledoprogramador?
• Acessorealizadodeformaatômica
ModelodePrograma:
{***
SeçãoNãoCríHca;
ProtocoloDeEntrada;
SeçãoCríHca;
ProtocoloDeSaída;
****
}
126
Sincronização-ExclusãoMútua
• AsessãocríHcaéumtrechodocódigoquedeveserexecutadodeformaatômica,semaintercalaçãocomoutroprocesso;
• Metas:
• APENASUMprocesso/threadestaránasuasessãocríHcadecadavez,ouseja,deveráserexecutadosobexclusãomútua;
• Umprocesso/threadnãopodeserinterrompidoouentraremloopdentrodosprotocolosdeentrada/saídaounasessãocríHca;
• Nenhumprocesso/threadforadasessãocríHcapodebloquearoutroprocesso/thread;
127
ThreadsConcorrentes
• Thread1
...
while(chave==0);
chave=0;
RC
chave=1;
...
⬥ Thread 2 ... while (chave = = 0); chave = 0; RC chave = 1; ...
Chave = 1
Ex
PrBl
T1
T2
128
ThreadsConcorrentes
• Thread1
...
while(chave==0);
chave=0;
RC
chave=1;
...
⬥ Thread 2 ... while (chave = = 0); chave = 0; RC chave = 1; ...
Chave = 0
Ex
PrBl
T1
T2
129
ThreadsConcorrentes
• Thread1
...
while(chave==0);
chave=0;
RC
chave=1;
...
⬥ Thread 2 ... while (chave = = 0); chave = 0; RC chave = 1; ...
Chave = 0
Ex
PrBl
T1
T2
PreempçãoPortempo
130
ThreadsConcorrentes
• Thread1
...
while(chave==0);
chave=0;
RC
chave=1;
...
⬥ Thread 2 ... while (chave = = 0); chave = 0; RC chave = 1; ...
A thread 2 vai passar todo o tempo de quantum testando se chave = 0.
Chave = 0
Ex
PrBl
T2
T1
131
ThreadsConcorrentes
• Thread1
...
while(chave==0);
chave=0;
RC
chave=1;
...
⬥ Thread 2 ... while (chave = = 0); chave = 0; RC chave = 1; ...
Chave = 0
Ex
PrBl
T1
T2
132
ThreadsConcorrentes
• Thread1
...
while(chave==0);
chave=0;
RC
chave=1;
...
⬥ Thread 2 ... while (chave = = 0); chave = 0; RC chave = 1; ...
Chave = 1
Ex
PrBl
T1
T2
133
ThreadsConcorrentes
• Thread1
...
while(chave==0);
chave=0;
RC
chave=1;
...
⬥ Thread 2 ... while (chave = = 0); chave = 0; RC chave = 1; ...
Chave = 1
Ex
PrBl
T1
T2
PreempçãoPortempo
134
ThreadsConcorrentes
• Thread1
...
while(chave==0);
chave=0;
RC
chave=1;
...
⬥ Thread 2 ... while (chave = = 0); chave = 0; RC chave = 1; ...
Chave = 1
Ex
PrBl
T2
T1
135
ThreadsConcorrentes
• Thread1
...
while(chave==0);
chave=0;
RC
chave=1;
...
⬥ Thread 2 ... while (chave = = 0); chave = 0; RC chave = 1; ...
Chave = 0
Ex
PrBl
T2
T1
136
ThreadsConcorrentes
• Thread1
...
while(chave==0);
chave=0;
RC
chave=1;
...
⬥ Thread 2 ... while (chave = = 0); chave = 0; RC chave = 1; ...
Chave = 0
Ex
PrBl
T2
T1
137
Deadlock
• Apreocupaçãocomaexecuçãosimultâneadeprocessosfez,napráHca,queumprocessoaguardasseotérminodaexecuçãodeoutro;
• Masoqueacontecequandodoisoumaisprocessosaguardamumpelosoutros?
140
DeadLock
• Condiçõesnecessárias:1. ExclusãoMútua;2. PosseeEspera;3. NãoPreempção;4. EsperaCircular.
• Ocorrênciaprecisasersimultânea– Seaomenosumanãoocorrer,nãohaveráDeadLock
142
DeadLock
• Condiçõesnecessárias:1. ExclusãoMútua;
• Apenasumprocessoporvezpodealocaremanipularumrecurso
2. PosseeEspera;3. Não-Preempção;4. EsperaCircular.
143
DeadLock
• Condiçõesnecessárias:1. ExclusãoMútua;2. PosseeEspera;
• Umprocesso,depossedeumrecurso,podesolicitarnovosrecursos
3. Não-Preempção;4. EsperaCircular.
144
DeadLock
• Condiçõesnecessárias:1. ExclusãoMútua;2. PosseeEspera;3. Não-Preempção;
•Umrecursonãopodeserremovidoexplicitamentedoprocesso
4. EsperaCircular.
145
DeadLock
• Condiçõesnecessárias1. ExclusãoMútua;
2. PosseeEspera;
3. Não-Preempção;
4. EsperaCircular.• OcorreCICLOnoGRAFOdealocação
146
DeadLock
• Comousarrecursos:1. SolicitarRecursoaoS.O.
2. SeoRecursoesHverLIVREALOCARRECURSO
3. Senão:BLOQUEARPROCESSO
4. ApósUso:LIBERAPROCESSO
147
Soluções
– Ignoraroproblema(“AlgoritmodoAvestruz”);
• Linux,Unix,Windows
– DetectareRecuperar;
– Evitardinamicamentesuaocorrência,comalocação
cuidadosaderecursos;
– ImpediroDeadlockatravésdanegaçãodepelo
menosumadas4condiçõesnecessáriasparasua
ocorrência.
148
DetectareRecuperar
• DetecçãocomumrecursodecadaHpo– MontarGrafo
• Sehouverciclo->DEADLOCK
– AnalisargraudemulHprogramação• Taxadebloqueioetempodeespera
• Comorecuperar?– Extermínio;– VoltaaoPassado.
• DetecçãoXRecuperação
149
DetectareRecuperar
• Extermínio– Mataumprocessonociclo;
– Critériodeescolhadoprocesso:• Aleatório;
• Prioridade;
• TempodeCPU;
• NúmerodeRecursosAlocados.
150
DetectareRecuperar
• VoltaaoPassado– Rollbackemprocessodocicloatéliberarorecurso
• P1---|R2|------|------|R1|------|-------|----
• P2---|------|R1|------|------|R2|-------|----
• P2éalvo– DesfazerP2atéantesdealocarR1
•Custo?•Quemimplementa?Ex.SGBD
151
ComoEvitarDeadlock
• AlgoritmodoBanqueiro– EmprésHmoXReserva
– Qualo$queobancoempresta?
– EstadoSeguro• ProbabilidadedeDeadlock=0%
• VetoreseMatrizes– VetordeRecursosExistentes(VRE);
– VetordeRecursosDisponíveis(VRD);– MatrizdeRecursosAlocados(MRA);
– MatrizdeRecursosRequisitados(MRR);
– MatrizdeRecursosPossivelmenteNecessários.
152
ImpedirDeadlock
• ExclusãoMútua– Impressora
• FiladeImpressão-Finita• Problema:eseafilaencher?
– Retardaroproblema
• PosseeEspera– Requisitartodososrecursospossivelmentenecessáriosnumsópassoeantecipadamente• Atomicidade:oualocatodosounenhum
– Problemas:• PodealocarrecursosquenãoserãouHlizados;• PodeatrasaremfunçãodademoraparaliberaçãoderecursosquenãoserãouHlizadosdeimediato;
• S.O.precisamanterquanHdadealtaderecursosdomesmoHpoparamanterconcorrência.
153
ImpedirDeadlock
• PosseeEspera– Priorizarrecursos,numerando-os;– Requisitarrecursosporordemdeprioridade;
– Wait-Die(WD)nãopreempHvo• QuandoPquerrecursoalocadoaQ,eleesperaseformaisvelho.Casocontrário,Pmorre;
– Wound-Wait(WW)preempHvo• QuandoPquerrecursoalocadoaQ,eleaguardaapenasseformaisnovo.Casocontrário,Qmorre;
– Problemas:• PodealocarrecursosquenãoserãouHlizados;• PodeatrasaremfunçãodademoraparaliberaçãoderecursosquenãoserãouHlizadosdeimediato.
154
GerênciadeMemória
• ProgramassóexecutamseesHveremnamemóriaprincipal;
• FunçõesdoGerenciadordeMemória:– Controlaralocaçãodeprocessos;
• Novosprocessos;• MúlHplosprocessos;• Términodeprocesso;• Crescimentoediminuição
– DadosePilha
155
GerênciadeMemória
• Modelos
– ParHções• EstáHcas(Fixas)
• Dinâmicas(Variáveis)
– Swapping – Paginação
– Segmentação
156
GerênciadeMemória
• EndereçoLógicoXFísico
– Problema:• Usuáriocriaprograma.Ex.:prog1.c
• OCompiladorgeracódigointermediário– Cl–cprog1.c
» prog1.obj
• EssecódigogeraExecutável?– Nãoépossívelencontraroendereçodafunçãosoma().
#include <stdio.h>
void main() { int x; x = soma (10, 20); printf("X = %d", x); }
157
GerênciadeMemória
• EndereçoLógicoXFísico
– Problema:• Usuáriocriaprograma.Ex.:soma.c
• OCompiladorgeracódigointermediário– Cl–csoma.c
» soma.obj
• EssecódigogeraExecutável?– Nãoépossívelencontraroendereçodeiníciodeexecução➔ main().
int soma(int x, int y) { return x + y; }
158
GerênciadeMemória
• EndereçoLógicoXFísico– Comogerarprog1.exe?
• Compilando-oseligando-os:Clprog1.csoma.c
• EndereçoLógicoXFísico
– Todoprocessoreferenciaendereçológico
– Ocompiladornãosabeondeoprogramavaiexecutarnamemória• Logo,seuprimeiroendereçoé0
• Oquesignificachamarsoma()?– ExecutarumCALLparaseuendereçodememória
» Endereçológico
159
AlocaçãodeMemória
• AlocaçãoConÄgua– Divisãodamemória
• SOresidente– Códigoedados(tabeladevetores,buffers,etc)
• Processosdeusuários
– Proteção• Registradorderelocação:menorendereço• Registradordelimite:maiordeslocamento• Cadaprocessotemseusvalores(trocadecontexto)
160
GerênciadeMemória
• AlocaçãoConÄguaSimples
– ParHçãoFixa– Implementadanosprimeirossistemaseaindausadanosmonoprogramáveis (monotarefa);
– Memóriaédivididaemduasáreas:• SistemaOperacionaleprocessodousuário;
– Usuárionãopodeusarumaáreamaiordoqueadisponível;
– Semproteção.
161
GerênciadeMemória
• AlocaçãoConÄguaSimples
Sistema Operacional
Área para Processo
do usuário
Memória Principal Registrador Base
Registrador de proteção delimita as áreas do sistema operacional e do usuário; Sistema verifica acessos à memória em relação ao endereço do registrador.
Registrador Limite
162
GerênciadeMemória
• AlocaçãoConÄguaSimples
Sistema Operacional
Área para Processo
do usuário
0
800K
1024K Nesse modelo, o SO foi carregado na memória alta. Se o processo faz referência ao endereço real 2050, ele lhe pertence. Registrador Base = 0K Registrador Limite = 800K
Suponha que prog1.c executando referencie o endereço lógico 100. Qual o endereço físico? Resp: 0K + 100
Nesse caso, o endereço lógico coincide com o físico.
163
GerênciadeMemória
• AlocaçãoConÄguaSimples
Sistema Operacional
PROG1.C
0
800K
1024K O maior endereço lógico referenciável por PROG1.C é 800K -1, pois além disso a aplicação invadiria o espaço reservado para o SO.
O espaço de endereços de PROG1.C é [0, 800K)
164
GerênciadeMemória
• AlocaçãoConÄguaSimples
Sistema Operacional
Área para Processo
do usuário
0
300K
1024K Nesse modelo, o SO foi carregado na memória baixa.
Registrador Base = 300K Registrador Limite = 724K
Suponha que PROG1.C referencie o endereço lógico 100, por exemplo. Nesse caso, o endereço físico seria 300K + 100.
O endereço lógico NÃO coincide com o físico.
165
GerênciadeMemória
• AlocaçãoConÄguaSimples
Sistema Operacional
PROG1.C
0
300K
1024K O maior endereço lógico referenciável por PROG1.C é [724K -1], pois além disso ele sairia da memória.
O espaço de endereços físicos de PROG1.C é [300K, 1024K)
O espaço de endereços físicos do SO é [0, 300K)
166
AlocaçãodeMemória
CPU
Registrador de LIMITE (Tamanho da Partição)
Registrador de relocação (BASE)
Memória
EL < LIMITE +endereço
lógico sim
não
endereço físico
exceção: erro de endereçamento
167
AlocaçãodeMemória
CPU
LIMITE 200K BASE
300K
5000 < 200K +EL = 5000 sim
não
5000 + 300K
exceção: erro de endereçamento
SO
P1
150K
300K
500K
Processo P1 ➔ BASE = 300K e LIMITE = 200K
168
AlocaçãoConÄguaSimples
• Processosdeusuáriolimitadospelotamanhoda
memóriaprincipaldisponível.
• Solução:
– Dividiroprogramaemmódulosoupartes;– PermiHrexecuçãoindependentedecadamódulo,usandoamesmaáreadememória;
– Técnica:Overlay(sobreposição);
169
AlocaçãoConÄguaSimples
• Permiteaoprogramador“expandir”oslimitesdamemóriaprincipal;
• Overlay–ÁreadememóriacomumondemóduloscomparHlhammesmoespaço;
PROG.EXE 200KB
Cadastro.OVL 400KB
Relatório.OVL 350KB
Manutenção.OVL 420KB
170
ParHçõesFixas
• Evoluçãodossistemasoperacionaisdemandouusodamemóriaporváriosusuáriossimultaneamente;
• Memóriafoidivididaemáreasdetamanhofixo:parHções;– TamanhodasparHçõeseraestabelecidonoboot,emfunçãodo
tamanhodosprogramas;– ReparHcionamentodemandavanovobootcomanova
configuração.
• TiposdeAlocaçãoParHcionada:– AlocaçãoParHcionadaEstáHca:
• AbsolutaeRelocável;– AlocaçãoParHcionadaDinâmica.
171
EspaçodeEndereçamento
• EndereçoLógicoouVirtual
– GeradopelaCPU
– Espaçodeendereçamentológico
• EndereçoFísico
– Enviadoàmemória• CarregadonoREM(RegistradordeEndereçodeMemória)
– Espaçodeendereçamentowsico
172
EspaçodeEndereçamento
• MapeamentodoEspaçoVirtualparaFísico
– Sóénecessárioseaassociaçãoéfeitaemtempodeexecução
– Usuáriotrataendereçoslógicos,nuncawsicos
– Suportedehardware:MMU• MemoryManagementUnit
• Exemplo:Registradorderelocação
173
CPUMemória
Registrador de relocação
14000
+
MMU
endereço lógico
346
endereço físico
14346
EspaçodeEndereçamento
174
TécnicasdeGerenciamento
• CargaDinâmica
– RoHnasnãosãocarregadasatéseremchamadas• RoHnasdeexceçãopodemnãoserchamadas
– MelhoruHlizaçãodoespaçodememória
– NãoénecessáriosuportedoSO
175
TécnicasdeGerenciamento
• LigaçãoDinâmica– Aplica-seàsbibliotecasdosistema
• LigaçãoEstáHca– Todosmódulosfazempartedaimagemgerada
176
TécnicasdeGerenciamento
• LigaçãoDinâmica– BibliotecascomparHlhadas
• Trechodecódigo(stub)indicacomolocalizarnamemóriaoucarregardodisco– Endereçoficaarmazenadoparafuturasreferências
• Economiadeespaçoemdiscoenamemória• Atualizaçãodasbibliotecassemnovalinkedição
– RequersuportedoSO• Acessoaendereçosforadoslimitesdoprocesso
177
TécnicasdeGerenciamento
• Overlays
– Sobreposiçãodedadoseinstruçõesdesnecessários
– Permitequeumprocessosejamaiorqueoespaçoalocadoaele
– Complexaresponsabilidadepassadaaoprogramador• Eventualsuportedecompiladores
178
AlocaçãodeMemória
• AlocaçãoParHcionadaEstáHca
– ParHçõesFixas
– SOs mulHprogramáveis–Ambientebatch – ParHções
• Porçõesdememóriadetamanhofixo• ControlaograudemulHprogramação
– TamanhodaparHçãoestabelecidonafasedeinicializaçãodosistema(boot)
– SOmantémFiladeEntradaeTabeladeParHções
179
AlocaçãodeMemória
Tabela de Partições
Partição Base Limite Processo ID Tamanho Processo
0 0K 124K SO 124K1 124K 50K2 174K 150K
3 324K 250K
4 574K 450K
SO
P1
10K
P2
40K
P3
70K
P4
110K
P5
130K
P6
180K
P7
260K
P8
300K
180
AlocaçãodeMemória
Tabela de Partições
Partição Base Limite Processo ID Tamanho Processo
0 0K 124K SO 124K1 124K 50K P1 10K2 174K 150K
3 324K 250K
4 574K 450K
SO
P1
P2
40K
P3
70K
P4
110K
P5
130K
P6
180K
P7
260K
P8
300K
181
AlocaçãodeMemória
Tabela de Partições
Partição Base Limite Processo ID Tamanho Processo
0 0K 124K SO 124K1 124K 50K P1 10K2 174K 150K P2 40K
3 324K 250K
4 574K 450K
SO
P1
P2
P3
70K
P4
110K
P5
130K
P6
180K
P7
260K
P8
300K
182
AlocaçãodeMemória
Tabela de Partições
Partição Base Limite Processo ID Tamanho Processo
0 0K 124K SO 124K1 124K 50K P1 10K2 174K 150K P2 40K
3 324K 250K P3 70K
4 574K 450K
SO
P1
P2
P3
P4
110K
P5
130K
P6
180K
P7
260K
P8
300K
183
AlocaçãodeMemória
Tabela de Partições
Partição Base Limite Processo ID Tamanho Processo
0 0K 124K SO 124K1 124K 50K P1 10K2 174K 150K P2 40K
3 324K 250K P3 70K
4 574K 450K P4 110K
SO
P1
P2
P3
P4
P5
130K
P6
180K
P7
260K
P8
300KA alocação ocorreu por ordem do Escalonador,
sem avaliação da ocupação de memória.
184
AlocaçãodeMemória
Tabela de Partições
Partição Base Limite Processo ID Tamanho Processo
0 0K 124K SO 124K1 124K 50K2 174K 150K
3 324K 250K
4 574K 450K
SO
P1
10K
P2
40K
P3
70K
P4
110K
P5
130K
P6
180K
P7
260K
P8
300KComo seria a alocação
pelo Gerenciador de Memória?
185
AlocaçãodeMemória
Tabela de Partições
Partição Base Limite Processo ID Tamanho Processo
0 0K 124K SO 124K1 124K 50K2 174K 150K
3 324K 250K
4 574K 450K
SO
P1
10K
P2
40K
P3
70K
P4
110K
P5
130K
P6
180K
P7
260K
P8
300K
186
AlocaçãodeMemória
Tabela de Partições
Partição Base Limite Processo ID Tamanho Processo
0 0K 124K SO 124K1 124K 50K P2 40K2 174K 150K
3 324K 250K
4 574K 450K
SO
P2
P1
10K
P3
70K
P4
110K
P5
130K
P6
180K
P7
260K
P8
300K
187
AlocaçãodeMemória
Tabela de Partições
Partição Base Limite Processo ID Tamanho Processo
0 0K 124K SO 124K1 124K 50K P2 40K2 174K 150K P5 130K
3 324K 250K
4 574K 450K
SO
P2
P5
P1
10K
P3
70K
P4
110K
P6
180K
P7
260K
P8
300K
188
AlocaçãodeMemória
Tabela de Partições
Partição Base Limite Processo ID Tamanho Processo
0 0K 124K SO 124K1 124K 50K P2 40K2 174K 150K P5 130K
3 324K 250K P6 180K
4 574K 450K
SO
P2
P5
P6
P1
10K
P3
70K
P4
110K
P7
260K
P8
300K
189
AlocaçãodeMemória
Tabela de Partições
Partição Base Limite Processo ID Tamanho Processo
0 0K 124K SO 124K1 124K 50K P2 40K2 174K 150K P5 130K
3 324K 250K P6 180K
4 574K 450K P8 300K
SO
P2
P5
P6
P8
P1
10K
P3
70K
P4
110K
P7
260KA alocação ocorreu por ordem do Gerenciador de
Memória, sem avaliação da ocupação do Escalonador.
190
• Osproblemasserepetem:
– SeogerenciadordememóriapriorizaamelhoralocaçãodaparHção,oqueacontecerácomprocessosmuitopequenos,dadoquenafilasempreexistemmaiores?• Inanição
– QuaisseriamasestratégiasparasoluçãodaInanição?
AlocaçãodeMemória
191
SO
50K
150K
250K
450K
P1
10K
P2
40K
P370K
P4110K
P5130K
P6180K
P7260K
P8300K
• Múltiplas Filas • Quando P6 acabar, a partição
ficará ociosa. • Pode ocorrer de uma partição
ficar livre, enquanto outra tem muitos processos.
AlocaçãodeMemória
192
• Filaúnicacomaging– Determina-seumcontadordesaltosKi(paracadaprocessoi)eumaconstanteN(idademáxima);
– TodavezqueumaparHçãoficarlivre• Procura-sepeloprocessoquedeixaomenorespaçodesperdiçado;
• Senafila,antesdele,houverumprocessoquecaibanamesmaparHção,incrementamosKi;
• SeKi=N,Pideveserexecutado,independentedotamanhodaparHção.
AlocaçãodeMemória
193
EstratégiasdeAlocação
– Escolhadoblocoquedeveseralocadoaoprocesso– Váriosalgoritmospossíveis
• First-fit(Performance?)– Alocaprimeiroblocosuficientementegrande– Nãoprecisapesquisartodosblocos
• Best-fit(OcupaçãodeMemória?)– Alocaomenorblocosuficientementegrande– Precisapesquisartodosblocos
» AlternaHva:ordenaçãodosblocosportamanho– Geraomenorblocodememóriarestante
• Worst-fit(Realocação?)– Alocaomaiorbloco– Precisapesquisartodosblocos
» AlternaHva:ordenaçãodosblocosportamanho– Geraomaiorblocodememóriarestante
194
– Comoavaliar?
– Simulação!• First-fitebest-fituHlizammelhoramemória
• First-fitémaisrápida
EstratégiasdeAlocação
195
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Bloco 2 (200K) Bloco 3 (70K) Bloco 4 (115K) Bloco 5 (15K)
Tempo: -1
EstratégiasdeAlocação-BestFit
196
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Bloco 2 (200K) Bloco 3 (70K) Bloco 4 (115K) Processo 1 Bloco 5 (15K)
Alocado
EstratégiasdeAlocação-BestFit
Tempo: 0
197
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Bloco 2 (200K) Bloco 3 (70K) Bloco 4 (115K) Processo 1 Bloco 5 (15K) Processo 2
AlocadoAlocado
EstratégiasdeAlocação-BestFit
Tempo: 0
198
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Processo 3 Bloco 2 (200K) Bloco 3 (70K) Bloco 4 (115K) Processo 1 Bloco 5 (15K) Processo 2
AlocadoAlocadoAlocado
EstratégiasdeAlocação-BestFit
Tempo: 0
199
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Processo 3 Bloco 2 (200K) Bloco 3 (70K) Processo 4Bloco 4 (115K) Processo 1 Bloco 5 (15K) Processo 2
Alocado – 15K em 70K !
AlocadoAlocadoAlocado
EstratégiasdeAlocação-BestFit
Tempo: 0
200
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Processo 3 Bloco 2 (200K) Processo 5Bloco 3 (70K) Processo 4Bloco 4 (115K) Processo 1 Bloco 5 (15K) Processo 2
Alocado – 23K em 200K !
AlocadoAlocadoAlocado
EstratégiasdeAlocação-BestFit
Tempo: 0
Alocado – 15K em 70K !
201
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Processo 3 Bloco 2 (200K) Processo 5Bloco 3 (70K)Bloco 4 (115K) Processo 1 Bloco 5 (15K)
AlocadoConcluído !
AlocadoConcluído !Alocado
EstratégiasdeAlocação-BestFit
Tempo: 1
202
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Processo 3 Bloco 2 (200K) Processo 5Bloco 3 (70K)Bloco 4 (115K) Processo 1 Bloco 5 (15K) Processo 6
AlocadoConcluído !
AlocadoConcluído !Alocado
Alocado
EstratégiasdeAlocação-BestFit
Tempo: 1
203
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Processo 3 Bloco 2 (200K) Processo 5Bloco 3 (70K) Processo 7Bloco 4 (115K) Processo 1 Bloco 5 (15K) Processo 6
AlocadoConcluído !
AlocadoConcluído !Alocado
AlocadoAlocado
EstratégiasdeAlocação-BestFit
Tempo: 1
204
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Bloco 2 (200K)Bloco 3 (70K)Bloco 4 (115K) Processo 1 Bloco 5 (15K)
Concluído !Concluído !
AlocadoConcluído !Concluído !
Concluído !Concluído !
EstratégiasdeAlocação-BestFit
Tempo: 2
205
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Bloco 2 (200K)Bloco 3 (70K) Processo 8Bloco 4 (115K) Processo 1 Bloco 5 (15K)
Concluído !Concluído !
AlocadoConcluído !Concluído !
Concluído !Concluído !Alocado
EstratégiasdeAlocação-BestFit
Tempo: 2
206
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Bloco 2 (200K) Processo 9Bloco 3 (70K) Processo 8Bloco 4 (115K) Processo 1 Bloco 5 (15K)
Concluído !Concluído !
AlocadoConcluído !Concluído !
Concluído !Concluído !Alocado
EstratégiasdeAlocação-BestFit
Tempo: 2
Alocado
207
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Bloco 2 (200K) Processo 9Bloco 3 (70K) Processo 8Bloco 4 (115K) Bloco 5 (15K)
Concluído !Concluído !
Concluído !Concluído !Concluído !
Concluído !Concluído !AlocadoAlocado
EstratégiasdeAlocação-BestFit
Tempo: 3
208
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Bloco 2 (200K) Processo 9Bloco 3 (70K) Processo 8Bloco 4 (115K) Processo 10Bloco 5 (15K)
Concluído !Concluído !
Concluído !Concluído !Concluído !
Concluído !Concluído !AlocadoAlocadoAlocado
EstratégiasdeAlocação-BestFit
Tempo: 3
209
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Bloco 2 (200K) Processo 9Bloco 3 (70K)Bloco 4 (115K) Processo 10Bloco 5 (15K)
Concluído !Concluído !
Concluído !Concluído !Concluído !
Concluído !Concluído !Concluído !AlocadoAlocado
EstratégiasdeAlocação-BestFit
Tempo: 4
210
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Bloco 2 (200K)Bloco 3 (70K)Bloco 4 (115K) Processo 10Bloco 5 (15K)
Concluído !Concluído !
Concluído !Concluído !Concluído !
Concluído !Concluído !Concluído !Concluído !Alocado
EstratégiasdeAlocação-BestFit
Tempo: 5
211
Processos Tamanho TurnaroundProcesso 1 100k 3Processo 2 10k 1Processo 3 35k 2Processo 4 15k 1Processo 5 23k 2Processo 6 6k 1Processo 7 25k 1Processo 8 55k 2Processo 9 88k 3Processo 10 100k 3
Bloco Memória Processo
Bloco 1 (50k) Bloco 2 (200K)Bloco 3 (70K)Bloco 4 (115K) Bloco 5 (15K)
Concluído !Concluído !
Concluído !Concluído !Concluído !
Concluído !Concluído !Concluído !Concluído !Concluído !
EstratégiasdeAlocação-BestFit
Tempo: 6
212
FAT
• AFATéosistemadearquivosusadopeloMS-DOSeoutrossistemasoperacionaisbaseadosemWindowsparaorganizaregerenciararquivos.
• AsiglaFATsignificaFile Allocation Table ouTabeladeAlocaçãodeArquivos.
239
FAT
▪ Divididaemquatroregiões:▪ Regiãoreservada(ousetordeboot)▪ RegiãodaTabeladeArquivos(FAT)▪ RegiãodeDiretórioRaiz(NãoexistenaFAT32)▪ Regiãodearquivosediretórios
240
FAT
❑ Usavaalocaçãodearquivoscomtabeladeíndices–blocosnãoconSguos.
❑ 1ªversãodaFAT–FAT12,alocava12bits,máximodeblocos/cluster(4.096=212).
❑ OsistemaFATexigequecadaclusterdodiscosejausadosomentepara um único arquivo.
241
FAT16/32
❑ FAT 16 ❑Consegue trabalhar no máximo com 216 = 65536
clusters, mas é usado apenas 65525 clusters. ❑Por que?
❑Como marcar um bloco como Ruim? Como identificar Fim de Arquivo? ❑11 FLAGS
❑Limite do tamanho da partição: 65525 * 32KB = 2GB, podendo chegar a 4GB (no caso no NT). ❑32 KB é o tamanho do maior Cluster da FAT
16 ❑FAT
❑Não é possível ter clusters de diferentes tamanhos242
FAT16/32
▪ FAT 32 : 228 = 256M clusters no máximo Tamanho Máximo do Cluster = 32 KB Tamanho Total Máximo = 256 M * 32 KB = 8 TB ✓ Limite do tamanho da partição: 2TB
▪ Numero máximo de setores 232 = 4G, como cada setor tem 512 bytes o Limite do tamanho da partição = 4G * 512 bytes = 2TB
⬥ No XP, a FAT32 dá suporte a clusters de 512, 1024, 2048, 4096, 8192, 16K, 32K, 64K, (128K, 256K para o tamanho do setor > 512 bytes). ■ 65526 < Número de clusters por partição < 4177918
● 4177918 * 64KB = 254 GB
243
FAT16/32
❑ Uma das maiores vantagens da FAT32 é a utilização de tamanhos menores de clusters.
❑ Os tamanhos dos clusters dependem do tamanho do disco ❑ Suporte a nomes longos de arquivos
❑FAT 12 e 16 usam nomes de 11 caracteres ❑ 8 para nome do arquivo ❑ 3 para extensão
244
FAT32namemóriaprincipal
❑ FAT32nãoficatodanamemóriaprincipal.
❑Apenasumapartesuficienteparadarsuporteaoiníciodosistema.
❑U`lizatabelacommúl`plosníveis.
245
FAT32namemóriaprincipal
❑TamanhodaFAT32namemória:▪ Dependedotamanhododiscoedobloco.▪ Exemplo–umdiscocom40GBeblocosde4KB.
▪ NumerodeBlocos=40GB/4KB=10MBlocos.▪ Tamanhodatabelanamemória:✓10M*4bytes=40MB
246
ESTRUTURADOSISTEMADEARQUIVOS
❑ OprimeirosetorésempreaIDdoVolumequevemseguidapelossetoresdaRegiãoReservada.
❑ Emseguida,encontra-seumacópiadaTabeladeAlocaçãodeArquivos(FAT)eoutracópiadebackup.
❑ Porúl`moencontram-seosclustersreservadosparadadosediretórioseumespaçonãou`lizado.
247
ESTRUTURADOSISTEMADEARQUIVOS
❑ Ocluster0éreservadoparaaiden`ficaçãodatabelaBPBeocluster1paradefiniroformatodoEOC(ovalordeclusterquerepresentaofimdoarquivo).
❑ Logo,oprimeiroclusterparadadoséocluster2.
248
ESTRUTURADOSISTEMADEARQUIVOS
❑BPB(BIOSParameterBlock)▪ ApresentainformaçõessobreaestruturadovolumeFAT32.
▪ Ficalocalizadanaprimeirosetordovolume,naáreaderegiãoreservada.
249
ESTRUTURADOSISTEMADEARQUIVOS
❑ SetordeBackupdeBOOT▪ OcampoBPB_BkBootSecsóestácon`doemBPBsdosvolumesFAT32eéresponsávelporarmazenarumacópiadeinformaçãosobreosetordeBOOTincluindooBPB,reduzindoassimapossibilidadedosistemanãoseriniciadoporcausadeumafalhanaleituradosetor0(setordeBOOT).
251
TabelasdeBlocosFAT32
❑ Éumalistadeentradasquemapeiamcadaclusteremumapar`ção.
❑ Cadaentradacontémumadasseguintesinformações:▪ Oendereçodopróximocluster.▪ Umcaracterespecialqueindicaofinaldoarquivo(EOF).
▪ Umcaracterespecialparaiden`ficarumclusterdanificado.
▪ Umcaracterespecialparaiden`ficarumclusterreservado.
▪ Zero,queno`ficaqueoclusterestálivre
252
Limites
❑Apar`çãoFAT32temumalimitaçãodetamanhodearquivo:4GB(emboraissopareçamuito,arquivosdevídeopodemfacilmentesuperarestetamanho).
254
EstruturadeDiretórios
❑Umdiretórioéumarquivocompostoporumalistadeestruturas
❑Odiretórioregistrainformações-taiscomonome,posição,tamanhoe`po-paratodososarquivosnaquelapar`ção▪ Árvore✓Raiz-C:
255
DiretórioRaiz
❑NoFAT32odiretórioraiztemtamanhovariáveleficalocalizadonosetordedados.
❑AlocalizaçãodoprimeiroclusterdodiretórioraizéarmazenadonocampodaBPBRootClass
256
Atributos
❑OsatributosqueumarquivopoderecebernoFAT32são:▪ SomenteLeitura▪ Oculto▪ Sistema▪ IDdoVolume▪ Diretório▪ Arquivo
258
ACL
❑ACL(AcessControlLists)▪ Estalistaéu`lizadacomoummétodoadicionalparaproverpermissõesparausuáriosadeterminadosarquivosepastas
▪ CadaentradadeumalistaACLcontém:▪ Qual(is)usuários(s)temacessoaquelaentrada▪ Seaentradaéresponsávelpornegaroupermi`roacesso.
▪ Quaisdireitosserãopermi`dosounegados.✓Leitura, escrita, execução, apagar, modificação de atributos, modificação de permissões.
259
ACL-HERANÇAO ACL permite 4 tipos de herança para arquivos e sub-pastas de uma determinada pasta:
❑Herança para todos os arquivos
❑Herança para todas as pastas,
❑Herança limitada apenas aos arquivos da pasta
❑Herança somente para sub-pastas e arquivos dentro da pasta mas não a ela.
O sistema tem que possuir um registro de quais Entradas da ACL são herdadas e quais não são.
260
Desfragmentação
❑ AFATnãopossuinenhummecanismoqueimpeça,oupelomenosdiminuaafragmentação,daíanecessidadederodarodefragououtroprogramadesfragmentadorperiodicamente.
❑ Afunçãodelesémoverosarquivos,deformaqueelesfiquemgravadosemclustersseqüenciais.
❑ Processodemorado,quedeveserrepe`doregularmente.
❑ Manipulaçãodeapontadoresdalistaencadeada.
261
Swap
❑ Épossíveldeterminaremqualpar`çãoestaráaáreadeSWAP
❑AáreadeSWAPédefinidanomomentodainstalação,deacordocomaquan`dadedememóriadocomputador,porémpodeserredefinidapelousuário.
262
Segurança
❑OsistemaFAT32nãoimplementasegurançaalgumaparaacessoadadosemumvolumepordiferentesusuários.
263
Desempenho
❑ComparaçãodoSistemadeArquivoFAT32XFAT16XNTFS▪ TransferênciadearquivosoFAT32igualaosdemais.
▪ LeituraeescritaoFAT32émaiseficiente
264
SistemadeArquivosNTFS
• DesenvolvidopelaMicrosoftnadécadade80paraoWindowsNT
• BaseadonoHPFSdaIBM
• Versões– NTFS1.1(ou 4)– NTFS5
265
SistemadeArquivosNTFS
• Unidadefundamentaléovolume– Volumecorrespondeaumapartiçãológicadodisco
quepodeocuparpartedodiscoouodiscointeiro– NTFSgerenciaovolumedeformaindependente
• Volumeconsisteem:– Arquivos
• Englobaarquivosdedados,diretórios,bitmap,informaçõesgerais
– Espaçolivre• ModeloNTFS“tudoqueestánodiscoé
arquivo”266
Clusters(Blocos)
• Éaunidadedealocação• Quantomaioroclustermaisrápidoserásuapartição.
Porém,quantomenorocluster,menoraperdadeespaçonoHD
• Osclusterssãoreferenciadosporseusdeslocamentosapartirdoiníciodovolume
• LCN(Númerodeclusterlógico)– Numeraçãoseqüencialdetodososclustersdodisco– Essesponteirostêm64bits
• VCN(Númerodeclustervirtual)– Numeraçãoseqüencial(apartirdozero)dosclusteralocadosaumarquivo
267
Estruturadeumapar`çãoNTFS
• UmapartiçãoNTFSédividaemduaspartes:– ÁreaMTF(MasterFileTable)– Áreadestinadaaarmazenamentodedados
268
MFT–MasterFileTable
• Arquivoquemantéminformaçõessobreagerênciadosistemadearquivos(localização,bitmap,etc)
• ZonaMFT– Áreareservadaondedadosnãopodemserarmazenados,
entretantoécontabilizadocomespaçolivrededisco– EmcasodeproblemadeespaçoemdiscoazonaMFTé
reduzida– ObjetivodazonaMFTédeixaroMFTcrescersem
provocarfragmentação
269
Metadados
• Metadadossãoarquivosdosistema– Localizadosnodiretórioroot
• Responsávelpelogerenciamentodosistemadearquivo– Cadaarquivotemumafunçãoespecífica
• Onomecomeçacomcifrãoparaindicarqueéumarquivodemetadado
270
ArquivosmetadadosdoNTFS
$MFT–MasterFileTable$MFTMIRR–MirrordoNFT$LOGFILE–Arquivodelogdastransações$VOLUME–Informaçõessobreovolume(númerodesérie,datadacriação,flag,etc)$ATTRDEF–Definiçõesdeatributos$.–Diretórioraiz$BITMAP–Informaçõesdeclusterslivre/ocupados$BOOT–Setordeboot$BADCLUS–Listadosblocosdanificadosdodisco$UPCASE–Mapeamentodecaracteresminúsculoparamaiúsculo$QUOTA–Informaçõessobreasquotasdeespaçoemdisco(usuário)
271
Atributos
• OsatributosfazempartedaMFT– Sãomantidosnaformadeparesdenome/valor– Osatributospodemsernomedoarquivo,segurançaeclaro
dados
• Atributosresidentes– ValordoatributoéarmazenadonopróprioMFT
• Arquivoscommenosde1kbytetambémchamadosdearquivosimediatos
• Atributonãoresidentes– Ovalordoatributoéarmazenadoemumaáreaaparte– AtributospodemnecessitarmaisdeumregistrodaMFT
272
Diretório
• Arquivoespecialquemantémregistrosobrearquivosediretórios– Umregistroécompostopor:
• Nomedoarquivo• Atributosdebase• ReferênciaparaumelementoMFT
• Suaestruturadependedoseutamanho– Diretóriospequenossãorepresentadoscomolistalinearde
arquivos– DiretóriosgrandesusamarvoreB+
• Ordenaçãoalfabética• DiretórioraizpossuiumareferêncianoMFT($.)
273
UsodeÁrvore• Utilizaumaestruturadeárvoreparatodosos
diretóriosdodiscocomafinalidadedereduzironúmerodeacessosaodiscoparalocalizararquivos.
• Estesistemaéomelhorparadiretóriosgrandes.
274
FragmentaçãodoDisco
• ONTFSpossuiumprocessoespecialquevisaminimizarafragmentaçãododiscopelaescolhainteligentedolocalondeosarquivosserãoarmazenados.– Minimizamasnãoeliminaafragmentação
275