introdução aos sistemas operacionais · aula 01 •introdução aos sistemas operacionais 1...
TRANSCRIPT
![Page 1: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/1.jpg)
Aula01
• IntroduçãoaosSistemasOperacionais
1
IntroduçãoaosSistemasOperacionais
• Definição
• Oqueé?
• Exemplos
• MáquinasdeNíveis
Prof. Marco Câmara
2
Definição
• “...umconjuntoderoHnasexecutadaspeloprocessador,deformasemelhanteaosprogramasdosusuários.”
• “...OSOtemporobjeHvofuncionarcomoumainterfaceentreousuárioeocomputador,tornandosuauHlizaçãomaissimples,rápidaesegura”.– FrancisMachadoeLuizPauloMaia
Prof. Marco Câmara
3
![Page 2: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/2.jpg)
Definição
• “...éumprogramaqueatuacomointermediárioentreousuárioeohardwaredeumcomputador.”
• “...devepropiciarumambientenoqualousuáriopossaexecutarprogramasdeformaconvenienteeeficiente”.– Silberschatz,GalvineGagne
Prof. Marco Câmara
4
OqueéumSistemaOperacional?
• OqueéumS.O.?– Funções
– Responsabilidades• Transparência
– Simplificação
• Gerência– ComparHlhamento– OHmização
• Encapsulamento– EsconderDetalhes
Prof. Marco Câmara
5
OqueéumSistemaOperacional?
• Primeiroscomputadores– Programaçãocomplexa
• Exigiagrandeconhecimentodohardwareedelinguagemdemáquina
– Solução:• SistemasOperacionais
– Encapsulamento» Interaçãosetornoumaisfácil,confiáveleeficiente.
Prof. Marco Câmara
6
![Page 3: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/3.jpg)
Exemplos(computadorespessoais)
• Windows(Windows10)
• MacOSX10.11(ElCapitan)
• Linux(Ubuntu,RedHat,SuSE)
• Unix(FreeBSD,SCOUnix,HP-UX,SunOS)
Prof. Marco Câmara
7
Exemplos(smartphones)
• Android
• IoS
• WindowsPhone
Prof. Marco Câmara
8
Exemplos(outrosambientes)
• Worksta-onsdeaplicaçãoespecífica
• Servidores
• EletrodomésHcos(SOembarcados)
• Computadoresdegrandeporte(mainframes)
Prof. Marco Câmara
9
![Page 4: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/4.jpg)
Exemplos
• Quaisasprincipaisdiferenças?– Quemconhecemaisdeumsistemaoperacional?
– Apresentardiferenças.
Prof. Marco Câmara
10
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
![Page 5: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/5.jpg)
HistóricodeSOs
• PrimeiraGeração(1945-1955)– Ausênciadesistemaoperacional– EDVAC(ElectronicDiscreteVariableAutomaHcComputer)
– Usuários• Universidadeseórgãosmilitares
– UNIVAC• Censoamericanode1950
Prof. Marco Câmara
13
HistóricodeSOs
• SegundaGeração(1956-1965)– Criaçãodostransistores
• Aumentonavelocidadedoprocessamento• Dimensãodoscomputadores
– CriaçãodasmemóriasmagnéHcas
• Acessomaisrápidoaosdados
– Primeiraslinguagensdeprogramação:• AssemblyeFORTRAN
Prof. Marco Câmara
14
HistóricodeSOs
• SegundaGeração(1956-1965)– Cartãoperfurado– Processamentobatch
• Processamentodelotedeprogramas
– SOcomconjuntoderoHnasparaoperaçõesdeEntradaeSaída(IOCS)
– Conceito:• IndependênciadosdisposiHvos
Prof. Marco Câmara
15
![Page 6: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/6.jpg)
HistóricodeSOs
• TerceiraGeração(1966-1980)– Monitordevídeoedoteclado
• Interação• TimeSharing
– SurgimentodosistemaoperacionalUNIX(linguagemC)
– Primeirosmicrocomputadores
Prof. Marco Câmara
16
HistóricodeSOs
• TerceiraGeração(1966-1980)– IntroduçãodosCircuitosIntegrados
•Menorcustoedimensão• Performance
– MulHprogramação• ComparHlhamentodamemóriaprincipal• PrimiHvascombloqueio
– Sinaiseinterrupções
Prof. Marco Câmara
17
HistóricodeSOs
• QuartaGeração(1981-1990)– Aperfeiçoamentodoscircuitosintegrados
– SurgimentodosPC’sedoDOS• SubsHtuiçãodoCP/M
– Estaçõesdetrabalho(monousuárias)•MulHtarefa
– MulHprocessadores
– Sistemasoperacionaisderedeedistribuídos.Prof. Marco Câmara
18
![Page 7: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/7.jpg)
HistóricodeSOs
• QuintaGeração(1991-2007)– Arquiteturacliente-servidor
– Processamentodistribuído• MulHprocessadoresnãoconvencionais
– Linguagemnatural;
– Segurança,gerênciaedesempenhodoSOedarede
– Consolidaçãodossistemasdeinterfacesgráficas• Interaçãocomusuáriosmaisflexível
Prof. 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âmara
21
![Page 8: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/8.jpg)
Níveis1e2-So:ware
• SistemaOperacional;
• LinguagensdeProgramação
– CompiladoreseInterpretadores;
– MáquinasVirtuais(Java);
– AmbientesdeDesenvolvimento.
• Aplicações.
Prof. Marco Câmara
22
ConceitosdeHWeSW
Prof. Marco Câmara
23
Conceitos
• Hardware– Trêssubsistemasbásicos:
• UnidadeCentraldeProcessamento;• Memóriaprincipal;• DisposiHvosdeentradaesaída.
– Subsistemassãotambémchamadosdeunidadesfuncionais;
– Implementaçõespodemvariaradependerdaarquitetura.
Prof. Marco Câmara
24
![Page 9: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/9.jpg)
ModelodeComputador
Entrada SaídaProcessamento
Memória
Prof. Marco Câmara
25
ModelodeComputador
• Execuçãodeprogramas– ProgramaarmazenadoemdisposiHvodeE/S
– Cargadoprogramanamemória(SO)
– Execuçãodasinstruções(umaauma)naCPU
Dispositivo de E/S
Memória Principal
CPU
Prof. Marco Câmara
26
CPU
• Controlacadaunidadefuncionaldosistema
• Execuçãodasinstruçõesdosprogramas
– AritméHcas
– Comparação
– Movimentação
Prof. Marco Câmara
27
![Page 10: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/10.jpg)
CPU
• ConjuntodeInstruções
– InstruçõesdemáquinasdisponíveisnaCPU
– TiposequanHdadevariamdeacordocomaCPU
– CompaHbilidadedeprogramas
– RISCxCISC
Prof. Marco Câmara
28
CPU
• Desempenhodeprocessadores– Dependede:
» Conjuntodeinstruçõesdisponível
» clock
»Númerodenúcleos
– Benchmark»Usadoparacompararprocessadoresdiferentes
» Códigosespecíficospodemprivilegiarumdeterminadoproduto!
Prof. Marco Câmara
29
Memória(definição)
• Externa(storage)– ArmazenaarquivosdoSO,AplicaçõeseDados;
– Estante?
• PrincipalouInterna– Provêoespaçodetrabalho(mesa?)
30
![Page 11: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/11.jpg)
MemóriaPrincipal
• Armazenainformações(bits)
– Programas(instruções)– Dados
• Compostaporváriasunidadesdeacesso– Bit,ByteePalavra;
– Posiçõesdememória.
Prof. Marco Câmara
31
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âmara
32
Memória-Tipos
• Fisicamente,existemdoisHpos:– RAM,oumemóriadeleituraeescrita
• EstáHcaXDinâmica;
• Amaiscomumenteespecificadaemanipulada;
• Definidabasicamentepelacapacidadeebarramento(performance).
– ROM• EPROM,EEPROM,Flash
33
![Page 12: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/12.jpg)
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âmara
35
Memória-Operação
• OperaçãodeLeituradaMemória– CPUarmazenaendereçodacélulaaserlidanoMAR
– CPUgerasinaldecontroleindicandoqueaoperaçãoédeleituradamemória
– Memóriarecuperainformaçãoarmazenadanaposiçãoendereçadaecolocanobarramentodedados,chegandoaoMDR
Prof. Marco Câmara
36
![Page 13: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/13.jpg)
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âmara
37
MemóriaCache
• MemóriaCache– Memóriadealtavelocidade
– LocalizadaentreCPUeMemóriaPrincipal
– Aumentodedesempenhocomcustorazoável
– Algoritmo•Hitrate-taxadeacertos
– Interna(L1,ouprimária)xExterna(L2,ousecundária)
Prof. Marco Câmara
38
Memória
Prof. Marco Câmara
Per
form
ance
& C
usto
Capacidade
39
![Page 14: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/14.jpg)
DisposiHvosdeE/S
• DisposiHvodeE/S
– Comunicaçãocommeioexterno
– MemóriaSecundáriaeInterfaceHomem-Máquina
• Barramentos– Conjuntodefiosparalelos
– InterligaCPU,PeriféricoseMemóriaPrincipal
Prof. Marco Câmara
40
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âmara
42
![Page 15: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/15.jpg)
ConceitosdeSo|ware
Prof. Marco Câmara
43
ConceitosdeSo|ware
• Tradução– Necessidadedecodificarinstruçõesparamáquina
– Evolução• Programaçãoviapainéis
• Linguagensdeprogramação
– LinguagensdeProgramação• MaiorindependênciadoHW
• Maiorfacilidadededesenvolvimento/manutenção
Prof. Marco Câmara
44
Tradução
• LinguagensdeMontagem(Assembly)– Mnemônicosassociadosàsinstruçõesdoprocessador
– Específicaparacadaprocessador
– Montadores(Assembler)
Prof. Marco Câmara
45
![Page 16: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/16.jpg)
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âmara
46
Tradução
• LinguagemdeAltoNível– Semrelaçãodiretacomoprocessador
– Transportabilidade
– Pascal,Fortran,Cobol,VB,Java
– Compiladores
– Interpretadores
– CasoespecialdoJava:JVM
Prof. Marco Câmara
47
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
![Page 17: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/17.jpg)
ConceitosdeSo|ware
• Loader-Carregador
– Cargadoprogramanamemóriaparaexecução
– AbsolutoxRelocável
• Debugger-Depurador– Pesquisadeerrosdelógica
– Rastreamento
Prof. Marco Câmara
49
ConceitosdeSo|ware
• LinguagemdeControle– ComunicaçãoUsuáriocomoSO
• CaracterxGráfica
– InterpretadordeComandos-Shell
– ArquivosdeComandos
Prof. Marco Câmara
50
ConceitosdeSo|ware
• LinguagemdeMáquina– InstruçõesdoProcessador
• AcessoaosRegistradores/Memória
•Modosdeendereçamento
• Tiposdedados
Prof. Marco Câmara
51
![Page 18: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/18.jpg)
ConceitosdeSo|ware
• LinguagemdeMáquina
– Programaemlinguagemdemáquina• Totalmentecodificadoembinário
• DiretamenteprocessadopelaCPU
• Nãorequertraduçãoourelocação• Nãopodeserexecutadoemoutrosprocessadores
Prof. Marco Câmara
52
ConceitosdeSo|ware
• Microprogramação– Cadainstruçãoemlinguagemdemáquinatemummicroprogramaassociado
– Omicroprogramaéformadoporváriasmicroinstruções
– Microinstruçõessãoexecutadaspelohardware
– ArquiteturaCISC
– Processadoresmicroprogramáveis• Aceitamnovasinstruções-novosmicroprogramas
Prof. 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âmara
54
![Page 19: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/19.jpg)
TiposdeSistemasOperacionais
• Monoprogramáveis/Monotarefa
• MulHprogramáveis/MulHtarefa
• MulHprocessados
Prof. Marco Câmara
55
TiposdeSistemasOperacionais
• SistemasMonoprogramáveis/Monotarefa– Todosrecursosdosistemadedicadosaumatarefa
– Execuçãodeprogramasseqüencialmente
– Usadonosprimeiroscomputadoresdegrandeporte
– Usadonosprimeiroscomputadoresdepequenoporte• SistemasMonousuário
Prof. Marco Câmara
56
TiposdeSistemasOperacionais
• SistemasMonoprogramáveis/Monotarefa– Sub-uHlizaçãodosrecursosdosistema
• ProcessadorXOperaçõesdeE/S
•Memória
• DisposiHvosdeE/S
– Implementaçãosimples
• Semrecursosdeproteção
Prof. Marco Câmara
57
![Page 20: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/20.jpg)
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âmara
59
TiposdeSistemasOperacionais
• SistemasMulHprogramáveis/MulHtarefa– SistemasdeTempoReal
• SemelhanteaosSistemasdeTempoComparHlhado
• Limitesrígidosparatempoderesposta
• SemfaHadetempo• Níveisdeprioridade
• Controledeprocessos(Indústrias,TráfegoAéreo)
Prof. Marco Câmara
60
![Page 21: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/21.jpg)
TiposdeSistemasOperacionais
• MulHtarefa– ColaboraHva
• Windows95,98• NãoexistefaHadetempo
– PreempHva• Windows10eServer,Linux,MacOS,...• ExistefaHadetempo• Preempção
Prof. Marco Câmara
61
TiposdeSistemasOperacionais
• SistemasMulHprocessados– SistemascommaisdeumaCPUinterligada
• Execuçãosimultâneadeprogramas
• Supredificuldadenodesenvolvimentodeprocessadoresmaisrápidos
• IdealparasistemasquenecessitamusointensivodeCPU– Processamentocien�fico
Prof. Marco Câmara
62
TiposdeSistemasOperacionais
• SistemasMulHprocessados
– CaracterísHcas• MulHprogramação
– Aplicadaacadaprocessador• Escalabilidade
– Aumentodacapacidadecomputacional
• Reconfiguração– Tolerânciaàfalhaemalgumprocessador
• Balanceamento– Distribuiçãodecargadeprocessamento
Prof. Marco Câmara
63
![Page 22: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/22.jpg)
TiposdeSistemasOperacionais
• SistemasMulHprocessados
– Classificação• Emfunção:
– daformadecomunicaçãoentreCPUs– dograudecomparHlhamentodamemóriaeE/S
• SistemasFortementeAcoplados– ProcessadorescommúlHplosnúcleos,porexemplo.
• SistemasFracamenteAcoplados– ServerCluster,porexemplo.
Prof. Marco Câmara
64
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âmara
65
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âmara
66
![Page 23: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/23.jpg)
TiposdeSistemasOperacionais
• MulHprocessamento
– Computadoresvistosoriginalmentecomomáquinasseqüenciais• Execuçãoseqüencialdasinstruçõesdoprograma
– SistemasMulHprocessados
• Paralelismo-Simultaneidade• Execuçãodeváriastarefasousub-tarefas
Prof. Marco Câmara
67
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âmara
68
AmbientedeumProcesso
• Todoprocessoprecisater:
– Seçãodetexto
• Códigoexecutável
– Seçãodedados
• Variáveis,estruturas
– Pilhadoprocesso
• Parâmetrosetc
– Registradores,incluindoPC,SP,BPetc.
Prof. Marco Câmara
69
![Page 24: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/24.jpg)
Conceitos
• ParaqueosprocessosexecutememambientemulHprogramado,existeagerênciade:
– ComparHlhamentodaCPU,dememória,E/Setc
• Nomenclatura
– SistemasBatch• Job
– SistemasdeTempoComparHlhado
• Tarefa(on-line)
Prof. Marco Câmara
70
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âmara
71
EstadosdoProcesso
• Mudançasdeestadoduranteaexecução:– Pronto
• Oprocessoestáaguardandochancedeserexecutadonoprocessador
– Terminando
• Oprocessoestáfinalizandosuaexecução
Prof. Marco Câmara
72
![Page 25: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/25.jpg)
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
![Page 26: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/26.jpg)
TrocadeContexto
• Preempção
– AçãodereHrarumprocessodaCPUaqualquerinstanteerestaurá-locomosenadaHvesseocorrido
• SuportadoporInterrupções(comopeloCLOCK)epeloBCP– Ex.:PreempçãoportempodeQuantum– PreempçãoporI/O,Prioridadeetc.
• Tempodatrocaéconsideradooverhead
• TempodependedesuportedehardwareecomplexidadedoSO
Prof. Marco Câmara
76
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âmara
78
![Page 27: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/27.jpg)
Escalonadores
• CombinaçãoadequadadeprocessosCPUeI/OBOUNDmelhoraodesempenhoeflexibilidadedosistema– ProcessointeraHvo(Ex.:InternetExplorer)
• TipicamenteI/OBound
Prof. Marco Câmara
79
AlgoritmodeEscalonamentodeCPU
• AlgoritmodoS.O.quedeterminaqualopróximoprocessoaocuparaCPU– ExecutadoquandoocorreestourodeQuantumouinterrupçãodoprocesso(I/O,Evento,Sinaletc.)ouoprocessoacaba;
• CritériosmudamcomcaracterísHcasdosProcessos– Batch,CPUBound,I/OBound,InteraHvos
Prof. Marco Câmara
80
MetasdoEscalonamento
• Eficiência– ManteraCPUocupada100%dotempo
• Throughput– Maximizaronúmerodeprocessos(tarefas,jobs)executadosemumdadointervalodetempo
• Turnaround– Minimizarotempodeumprocessonosistema,desdeseuinícioatéotérmino• Tempomédiodeexecução• FundamentalaprocessosBatch Prof. Marco Câmara
81
![Page 28: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/28.jpg)
MetasdoEscalonamento
• Igualdade
– TodoProcessotemdireitodeocuparaCPU
• Tempoderesposta
– MinimizarotempodecorridoentreasubmissãodeumpedidoearespostaproduzidanumprocessointeraHvo
Prof. Marco Câmara
82
ConflitoentraMetas
• Atenderaumametapodeprejudicaroutra– QualqueralgoritmodeescalonamentofavoreceráumHpodeprocesso(CPUBound,I/OBound,TempoReal,etc)emdetrimentodeoutros
– Opropósitoprecisasergeral
Prof. Marco Câmara
83
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âmara
84
![Page 29: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/29.jpg)
FreqüênciadeprocessosporduraçãodesurtodeCPU
Prof. Marco Câmara
85
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âmara
86
EscalonamentoFIFO
• Ordemdechegadadosprocessos:
P1,P2,P3
• DiagramadeGan�
P1 P2 P3
24 27 300
Prof. Marco Câmara
87
![Page 30: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/30.jpg)
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=27
Prof. Marco Câmara
P1 P2 P3
24 27 300
89
EscalonamentoSJF
• Outraordemdechegada
P2,P3,P1
• DiagramadeGan�
P1P3P2
63 300
Prof. Marco Câmara
90
![Page 31: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/31.jpg)
EscalonamentoSJF• FIFOordenado(SJF/MPP)
– MenorProcessoPrimeiro
• Menortempodeexecução
• Temposdeespera
TEP1=6;TEP2=0;TEP3=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ídaP1=30;P2=3;P3=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 6P2 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âmara
93
![Page 32: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/32.jpg)
EscalonamentoSJF
• Temposdeespera
P1=3;P2=16;P3=9;P4=0
P1 P3 P2
3 160
P4
9 24
Prof. Marco Câmara
94
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âmara
96
![Page 33: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/33.jpg)
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âmara
98
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âmara
99
![Page 34: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/34.jpg)
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âmara
100
SRTFPreempHvo-TabeladeEstados
Prof. Marco Câmara
101
SJFPreempHvo
• Qualotempomédiodeespera?
• Qualotempomédiodesaída?
102
![Page 35: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/35.jpg)
EscalonamentoRoundRobin
Prof. Marco Câmara
103
EscalonamentoRoundRobin
• Round-Robin(revezamentocircular)
– MétodoanHgoemuitosimples;
– CadaprocessorecebeumafaHadetempo(Quantum),eéescalonadoseguindoaordemdeumafilacircular;
– SistemaPreempHvo-InterrupçãodoClock
– SeoQuantumacabarantesdotérminodoprocesso(preempção),ouseomesmoforbloqueado,oprocessovaiparaofinaldafila.
Prof. Marco Câmara
104
EscalonamentoRoundRobin
• Resultados�picos:
– Eliminaproblemasdestarva-on;
– Tempodeesperamédioélongo;
– TempodesaídamaiorqueSJF;
– TempoderespostamelhorqueSJF;
– Quantumgrande->FIFO;
– Quantumpequeno->Baixaeficiênciadevidoaoexcessodetrocasdecontexto.
Prof. Marco Câmara
105
![Page 36: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/36.jpg)
EscalonamentoRoundRobin
• Análisedaeficiência
– Comquantumqen+1processosprontos:• Tempomáximodeespera:n*q
• Umexemplo– Suponhaumafiladeprontocom100processos,Quantumde
100ms(valor�pico);
– UmprocessointeraHvoexecuta,fazumarequisição,vaiparabloqueadoedeláparaofimdafila
• QuandoarespostaseráentregueaousuáriodoprocessointeraHvo?
Prof. Marco Câmara
106
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âmara
107
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âmara
108
![Page 37: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/37.jpg)
EscalonamentoporMúlHplasFilas
– EscalonamentopreempHvoentrefilas
• Prioridadefixa:sóatendefilasmenosprioritáriasseasdemaisesHveremvazias
• Timeslice80%paraforegroundcomRRe20%parabackgroundcomFIFO
Prof. Marco Câmara
109
EscalonamentoporMúlHplasFilas
Prof. Marco Câmara
110
EscalonamentoporMúlHplasFilas
• FilascaracterizadaspelossurtosdeCPUdosprocessos
– I/OboundeinteraHvoscommaisprioridade• PassamamaiorpartedotempoBloqueados
– Processospodemmudardefila
– Agingpodeserfacilmenteimplementado
• AlgoritmopreempHvo
Prof. Marco Câmara
111
![Page 38: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/38.jpg)
EscalonamentocomMúlHplosProcessadores
• EscalonamentodeCPUmaiscomplexo
– ExistemsistemascombarramentodeE/SprivaHvodedeterminadoprocessador
• Váriasfilasdeprocessosprontos– Possibilidadededesperdícioderecursos
Prof. Marco Câmara
112
EscalonamentocomMúlHplosProcessadores
• Únicafiladeprocessosprontos– SymmetricMul-processing(SMP)
• Cadaprocessadorfazseuescalonamento
• ComparHlhamentodeestruturasdedadosdoSO– Sincronização
– AssymmetricMul-processing
• Escalonamentonoprocessadormestre
Prof. Marco Câmara
113
EscalonamentodeTempoReal
• SistemasdetemporealcríHco– Limitesrígidosdetempo– SOgaranteexecuçãonotempoourejeita– Exigeso|wareespecialehardwarededicado
114
![Page 39: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/39.jpg)
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
EscalonamentodeTempoReal117
![Page 40: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/40.jpg)
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
![Page 41: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/41.jpg)
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
![Page 42: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/42.jpg)
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
![Page 43: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/43.jpg)
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
![Page 44: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/44.jpg)
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
![Page 45: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/45.jpg)
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
![Page 46: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/46.jpg)
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
![Page 47: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/47.jpg)
Deadlock139
Deadlock
• Apreocupaçãocomaexecuçãosimultâneadeprocessosfez,napráHca,queumprocessoaguardasseotérminodaexecuçãodeoutro;
• Masoqueacontecequandodoisoumaisprocessosaguardamumpelosoutros?
140
Deadlock
Processo 1 Processo 2
Recurso A
Recurso B
141
![Page 48: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/48.jpg)
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
![Page 49: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/49.jpg)
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. SeoRecursoesHverLIVRE
ALOCARRECURSO3. Senão:
BLOQUEARPROCESSO4. ApósUso:
LIBERAPROCESSO
147
![Page 50: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/50.jpg)
Soluções
– Ignoraroproblema(“AlgoritmodoAvestruz”);• Linux,Unix,Windows
– DetectareRecuperar;
– Evitardinamicamentesuaocorrência,comalocaçãocuidadosaderecursos;
– ImpediroDeadlockatravésdanegaçãodepelomenosumadas4condiçõ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
![Page 51: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/51.jpg)
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
![Page 52: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/52.jpg)
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
![Page 53: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/53.jpg)
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ãosabeondeoprogramavai
executarnamemória• Logo,seuprimeiroendereçoé0• Oquesignificachamarsoma()?
– ExecutarumCALLparaseuendereçodememória» Endereçológico
159
![Page 54: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/54.jpg)
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
![Page 55: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/55.jpg)
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
![Page 56: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/56.jpg)
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
![Page 57: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/57.jpg)
AlocaçãoCon�guaSimples
• Processosdeusuáriolimitadospelotamanhodamemó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
![Page 58: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/58.jpg)
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
![Page 59: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/59.jpg)
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
![Page 60: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/60.jpg)
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 150K3 324K 250K4 574K 450K
SO
P1
10K
P2
40K
P3
70K
P4
110K
P5
130K
P6
180K
P7
260K
P8
300K
180
![Page 61: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/61.jpg)
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 250K4 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 40K3 324K 250K4 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 40K3 324K 250K P3 70K4 574K 450K
SO
P1
P2
P3
P4
110K
P5
130K
P6
180K
P7
260K
P8
300K
183
![Page 62: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/62.jpg)
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 70K4 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 150K3 324K 250K4 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 150K3 324K 250K4 574K 450K
SO
P1
10K
P2
40K
P3
70K
P4
110K
P5
130K
P6
180K
P7
260K
P8
300K
186
![Page 63: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/63.jpg)
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 250K4 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 130K3 324K 250K4 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 130K3 324K 250K P6 180K4 574K 450K
SO
P2
P5
P6
P1
10K
P3
70K
P4
110K
P7
260K
P8
300K
189
![Page 64: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/64.jpg)
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 180K4 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ória191
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ória192
![Page 65: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/65.jpg)
• Filaúnicacomaging– Determina-seumcontadordesaltosKi(paracada
processoi)eumaconstanteN(idademáxima);– TodavezqueumaparHçãoficarlivre
• Procura-sepeloprocessoquedeixaomenorespaçodesperdiçado;
• Senafila,antesdele,houverumprocessoquecaibanamesmaparHção,incrementamosKi;
•SeKi=N,Pideveserexecutado,independentedotamanhodaparHção.
AlocaçãodeMemória193
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ção195
![Page 66: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/66.jpg)
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-BestFit196
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 ProcessoBloco 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 ProcessoBloco 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
![Page 67: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/67.jpg)
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 ProcessoBloco 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 ProcessoBloco 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
![Page 68: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/68.jpg)
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 ProcessoBloco 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 ProcessoBloco 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
![Page 69: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/69.jpg)
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 ProcessoBloco 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 ProcessoBloco 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
![Page 70: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/70.jpg)
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 ProcessoBloco 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 ProcessoBloco 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
![Page 71: Introdução aos Sistemas Operacionais · Aula 01 •Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais •Definição •O que é ? •Exemplos •Máquinas](https://reader034.vdocuments.site/reader034/viewer/2022051321/5be4f2ec09d3f28a428b6470/html5/thumbnails/71.jpg)
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 ProcessoBloco 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
AlocaçãoCon�gua
• FragmentaçãoExterna– Ocorrequandoosprogramasterminam– Nãoháespaçolivrecon�guosuficiente
Memória Principal
Sistema Operacional
Processo C
Processo A
4 KB
3 KB
1 KB
1 KB
2 KB
D6 KB
213