introdução aos sistemas operacionais - logic · introdução aos sistemas operacionais •...

251
Aula 01 Introdução aos Sistemas Operacionais 1

Upload: hanhi

Post on 10-Nov-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Aula01

• IntroduçãoaosSistemasOperacionais

1

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(smartphones)

• Android

• IoS

• WindowsPhone

Prof. Marco Câmara8

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

Aula02

11

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

ConceitosdeHWeSW

Prof. Marco Câmara23

Conceitos

• Hardware

– Trêssubsistemasbásicos:

• UnidadeCentraldeProcessamento;

• Memóriaprincipal;

• DisposiHvosdeentradaesaída.

– Subsistemassãotambémchamadosdeunidadesfuncionais;

– Implementaçõespodemvariaradependerdaarquitetura.

Prof. Marco Câmara24

ModelodeComputador

Entrada SaídaProcessamento

Memória

Prof. Marco Câmara25

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

Memória

Prof. Marco Câmara

Per

form

ance

& C

usto

Capacidade

39

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

Prof. Marco Câmara43

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

EscalonamentodeProcessos

Prof. Marco Câmara

InícioPronto

Bloqueado

Execução

Terminado

73

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

Aula03

75

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

FreqüênciadeprocessosporduraçãodesurtodeCPU

Prof. Marco Câmara85

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

SRTFPreempHvo-TabeladeEstados

Prof. Marco Câmara101

SJFPreempHvo

• Qualotempomédiodeespera?

• Qualotempomédiodesaída?

102

EscalonamentoRoundRobin

Prof. Marco Câmara103

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

Prof. Marco Câmara110

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

EscalonamentodeTempoReal

117

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

• Problemasclássicos

– Produtor/Consumidor;

– Ojantardosfilósofos.

122

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

Sleep-WakeUp

• Inseriroutraapresentação

138

Deadlock

139

Deadlock

• Apreocupaçãocomaexecuçãosimultâneadeprocessosfez,napráHca,queumprocessoaguardasseotérminodaexecuçãodeoutro;

• Masoqueacontecequandodoisoumaisprocessosaguardamumpelosoutros?

140

Deadlock

Processo 1 Processo 2

Recurso A

Recurso B

141

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

Sistema de Arquivos FAT

238

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

BPB

250

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

TabeladeBlocos

253

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

EstruturadeumaEntradadeDiretório

257

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

Compar`lhamentodeArquivos

• Arquivosepastaspodemterpermissõesatribuídasindividualmente.– Podemseratribuídaspermissõesaumgrupodeusuáriosouaumúnicousuário.

– Podedefinironíveldeacesso.– Permissõesparaarquivostemprioridadesobrepermissõesparapastas.

– NegarpermissãotemprioridadesobrePermitir.

276