SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf

SilvanoOliveira1 48 views 58 slides Oct 04, 2022
Slide 1
Slide 1 of 58
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58

About This Presentation

Sistemas-Operacionais - Gerencia de Processos


Slide Content

Sistemas
Operacionais
(Parte 2)
PROFSILVANO OLIVEIRA
[email protected]

Ementa da disciplina
Estruturas de Sistemas operacionais;
Sistemas multiprogramáveis;
Gerência de processos;
Gerência de memória física;
Gerência de memória virtual;
Gerência de sistemas de arquivos;
Gerenciamento de dispositivos;
Segurança e proteção;
Introdução aos sistemas operacionais distribuídos.
2

Bibliografia básica
Sistemas operacionais: Projeto e
implementação. Andrew S. Tanenbaum; Albert
S. Woodhull;
Sistemas operacionais: Conceitos e aplicações.
Abraham Sílberschatz; Peter Galvin; Greg
Gagne;
Arquitetura de sistemas operacionais. Francis B.
Machado, Luiz Paulo Maia.
3

Funcionalidades
Para cumprir os objetivos de abstração e gerência, o S.O. atua em
várias frentes;
Cada recurso possui suas particularidades, o que demanda exigências
específicas para gerenciá-los e abstraí-los;
Principais funcionalidades implementadas por um S.O. típico:
Gerência do processador;
Gerência de memória;
Gerência de dispositivos;
Gerência de arquivos;
Gerência de proteção;
Interface gráfica;
Suporte de rede.
4

Gerência do processador 5
Sistema
operacional
Gerência do
processador
Gerência de
memória
Gerência de
dispositivos
Gerência de
arquivos
Interface
gráfica
Gerência de
proteção
Outros
suportes
Suporte de
rede

Gerência de processador
Primeirossistemasoperacionaiseramcaracterizadosporapenas
umprogramasendoexecutadoporvez;
Computadoresmodernos=váriostarefasaomesmotempo;
Processadoréalternadoentreumprogramaeoutro
Falsaimpressãodequeváriosprogramasestãorodandoaomesmo
tempo;
Pseudoparalelismo.
Paraqueissosejapossível,énecessárioummonitoramento
complexodetodasasatividades;
Foidesenvolvidoummodeloquetornouo“paralelismo”maisfácil
demanipular:modelodePROCESSOS.
6

Processos
Processoéumprogramaemexecuçãoequetemsuas
informaçõesmantidaspelosistemaoperacional;
Umprocessoéumprogramaemexecução.Éumaunidadede
trabalhodentrodosistema.Programaéumaentidadepassiva,
processoéumaentidadeativa;
Podeserdefinidotambémcomooambienteondeoprogramaé
executado,ealémdasinformaçõessobreaexecução,possui:
Recursosqueosistemapodeutilizar;
Espaçodeendereçamento;
ArquivoseoutrasEntradas/Saídas;
Etc.
7

Processos
O sistema operacional deve ser
capaz de:
Criar um processo;
Reservar memória para um processo;
Organizar os processos para a espera
do uso da CPU.
8

Processos
Os vários processos criados pelo sistema operacional
competem entre si pela atenção do processador;
O gerenciador de processamento do sistema
operacional é responsável por estabelecer a ordem de
execução;
Os processos podem estar em 3 estados:
Executando;
Pronto;
Bloqueado.
9

Processos
Executando:
Quando o processo está, de fato, sendo processado pela CPU do
computador
Pronto:
Quando o processo possui todas as condições necessárias para sua
execução, porém, não está de posse da CPU do computador;
Em geral, existem vários processos nesta fase, e o sistema operacional é
responsável por selecionar o próximo processo a usar a CPU.
Bloqueado:
Quando o processo aguarda por algum evento externo ou por algum
recurso do sistema indisponível no momento, por exemplo: informação
de algum dispositivo de I/O, etc.
10

Processos 11

Processo
Transições
Transição 1 –Executando para bloqueado:
Um processo que estava utilizando o processador precisou de algum evento
externo e não pode continuar.
Transição 2 –Bloqueado para pronto:
O evento externo que o processo bloqueado aguardava acontece. Nesse
caso, o processo volta para a fila de pronto para usar a CPU.
Transição 3 e 4 –Pronto para executando e Executando para pronto:
Realizados pelo escalonador de processos, que escolhe qual o próximo
processo será executado;
Diversas políticas e escalonadores –Exemplo: PRIORIDADE.
12

Processos
Analisando processos na prática no
sistema operacional:
GNU/Linux: comando nice e renice modifica
prioridade. Comando ps aux mostra
processos;
Windows: gerenciador de tarefas;
Android: Dev Tools;
Etc.
13

Escalonador de processos
Determina qual processo utilizará a CPU quando
estiver disponível;
Age sempre sobre os processos em estado de
PRONTO;
Segue uma política de escolha –Algoritmo de
escalonamento;
Rotina é executada normalmente várias vezes
por segundo.
14

Escalonador de processos
Objetivosdaspolíticasdeescalonamento:
MaximizarautilizaçãodaCPU;
Maximizarothroughput(vazão);
Minimizaroturnaround(tempoparafinalizaçãodoprocesso);
Minimizarotempodeespera;
Minimizarotempoderesposta;
Serjusta;
Maximizaronúmerodeusuáriosinterativos;
Serprevisível;
Minimizarebalancearousoderecursos;
Etc.
15

Escalonador de processos
Para evitar que um processo monopolize a CPU (de propósito ou
por acidente), uma interrupção por tempo é utilizada: QUANTUM
ou TIME-SLICE;
Um processo interrompido por término do seu QUANTUM volta à fila
em estado de PRONTO;
Um processo utiliza a CPU até:
Voluntariamente liberá-la;
QUANTUM expirado;
Outro processo exija a atenção da CPU (interrupção/prioridade);
Erro de execução.
16

Escalonador de processos -
Prioridades
Prioridades:
Podem ser fixas durante a vida do
processo ou modificáveis;
Podem ser associadas externamente ou
de forma automatizada;
Podem ser calculadas e associadas de
forma racional ou arbitrária.
17

Escalonador de processos -
Preempção
Não-preemptivo
Quandoumprocessonãopodeserinterrompidoporumfatorexterno
quandoestáexecutando;
DeixaaCPUouporvontadeprópriaouporqueterminouotrabalho;
Windows3.1,etc.
Preemptivo
Podeinterromperaexecuçãodeumprocessoparaexecutarumoutro;
Sistemasoperacionaismodernosutilizamalgoritmosdeescalonamento
preemptivos;
Sistemasoperacionaismodernos–Windows95+,GNU/Linux,MacOS,
etc.
18

Escalonador de processos
Algoritmos de escalonamento:
FIFO;
SJF (Short JobFirst);
Round-Robin;
SRT (ShortestRemainingTime);
Prioridade;
Múltiplas filas;
Múltiplas filas com realimentação;
Escalonamento para vários processadores;
Escalonamento de tempo real.
19

FIFO –FirstIn, FirstOut
Algoritmo não preemptivo(quando entra em
execução, vai até o término);
O processo que chega primeiro (FirstIn) é o primeiro
a ser escolhido para usar a CPU (FirstOut);
Fila de processos;
Criado originalmente para sistemas batch;
Injusto para processos (Jobs) curtos;
Ineficiente para sistemas de tempo compartilhado.
20

FIFO –FirstIn, FirstOut
11ms
P4
6ms
P3
9ms
P2
20ms
P1
21
Tempo total de execução: 46ms
20ms29ms35ms46ms

FIFO –FirstIn, FirstOut 22

SJF –ShortestJobFirst
Não preemptivo;
Processo com menor tempo para ser completado é
escolhido;
Se informação sobre tempo de execução não estiver
disponível: Estimativa. Desempate pode ser feito por
FIFO.
Algoritmo reduz o tempo de espera, com o mínimo para
um conjunto de processos;
Problemas: grande variância no tempo de espera,
necessidade de “prever o futuro”.
23

SJF –ShortestJobFirst 24

Round-Robin
Definido um QUANTUM ou TIME-SLICE (geralmente de 10 a 100ms):
tempo limite para o processo usar a CPU;
Após o tempo de QUANTUM, processo sofre PREEMPÇÃO e é
colocado na fila com o status de PRONTO;
A fila de PRONTO é tratada como uma fila circular (FIFO –FirstIn,
FirstOut);
Escalonador seleciona primeiro processo da fila de PRONTO para
ser executado e define 1 QUANTUM de tempo para o
processamento;
Se o tempo necessário para o processo finalizar for maior que 1
QUANTUM, então é feito o CHAVEAMENTO DE CONTEXTO (salva o
estado, vai para o statusde PRONTO, seleciona novo processo).
25

Round-Robin
Algoritmopreemptivo;
Tempomédiodeesperaalto;
Desempenho depende diretamente do
tamanhodefinidoparaoQUANTUM:
SeQUANTUM formuitogrande,assemelha-seao
algoritmodeescalonamentoFIFO(nãopreemptivo);
SeQUANTUMformuitopequeno,ooverheadcomo
CHAVEAMENTO DECONTEXTOtorna-sealtodemais,
prejudicandoodesempenho.
26

Round-Robin 27

SRT –ShortestRemainingTime
“SJFPreemptivo”;
Éescolhidooprocessocommenortempo
parasercompletado;
Um processo em execução é
interrompidoquandoumnovoprocesso
commenortempoparasercompletado
aparecenafilacomostatusdePRONTO;
28

SRT –ShortestRemainingTime 29

Escalonamento por Prioridade
Cadaprocessotemumaprioridadeassociada;
CPUéalocadaparaprocessodemaiorprioridade;
SJFpodeserconsideradoumcasodeescalonamento por
prioridade,ondeconsidera-seotempocomopriorização;
Geralmenteaprioridadeérepresentadaporumnúmero–nãohá
convençãoemrelaçãoaquaisnúmerosutilizar;
Prioridadedefinida:
Internamenteouexternamente.
Problema:Starvation–Processosdebaixaprioridadepodemficar
indefinidamenteemestadodePRONTO;
Solução:aumentarprogressivamenteaprioridadedosprocessosem
estadodePRONTOaguardandoavezdeusaraCPU.
30

Escalonamento por Prioridade 31
Starvation:
Quandoosresponsáveis
foramdesligaroIBM7094
no MIT em 1973,
descobriramumprocesso
combaixaprioridadeque
estavaemestadode
PRONTO desde1967e
aindanãohaviasido
processado.

Múltiplas filas
Processossãopreviamentedivididosemgrupos
Emfunçãodotipodeprocessamentorealizado
Sistema;
Interativo(foreground);
Batch(background).
Cadaumdosgrupostemummecanismodeescalonamento
Interativo–RoundRobin;
Batch–FIFO;
32

Múltiplas filas 33

Múltiplas filas com realimentação
OsprocessosNÃOpermanecem emumamesmafilaatéterminaro
processamento;
OSistemaOperacionalfazumajustedinâmicoparaajustaros
processosemfunçãodocomportamentodosistema;
Osprocessosnãosãopreviamenteassociadosàsfilas,mas
direcionadospelosistemaentreasdiversasfilascombasenoseu
comportamento;
Parâmetrosparaescalonamento:
Númerodefilas;
Algoritmodeescalonamentoparacadafila;
Métodoparamudaroprocessodafila;
Métodoparadeterminaremquefilaumprocessoentra.
Métodomaiscomplexo.
34

Múltiplas filas com realimentação 35

Escalonamento para vários
processadores
Escalonamentomaiscomplexo;
Processadoresidênticos
Compartilhamentodecarga;
Filaporprocessador;
Filaúnica:compartilhamentodedados.
Abordagensdoalgoritmo
Processamento simétrico:Cada processadorfazseupróprio
escalonamento;
Mestre-escravo(assimétrico):Umalgoritmoéexecutadoemum
processadorreservadosomenteparaessefim,eescalonaosoutros
processosemoutrosprocessadores.
36

Escalonamento de tempo real
Sistemasdetemporeal
HardRealTime:Requisitosrígidos,tempoéessencial–Uma
tarefacríticadevesercompletadadentrodeumtempo
GARANTIDO
Avião,sistemasmédicos,indústria,etc.
SoftRealTime:Requisitosflexíveis–Processocríticorecebe
prioridadesobreosoutroscommenorimportância
Realidadeaumentada,multimídia,etc.
SistemasdeRealTimerígidosrequeremprocessadores
dedicados.
37

Threads
Umaformadeumprocessodividirasimesmo;
Threadsexecutam“dentro”deumprocesso;
Conhecidascomo“Processosleves”;
Possibilidadedeassociarmaisdeumfluxode
execuçãoaumprocesso
Compartilhamentoderecursos
RecursosdoS.O.,seçãodedados,seçãodecódigo.
Comunicaçãoentreasthreadsfacilitada;
Chaveamentodecontextototaldesnecessário.
38

Threads
Ideia básicas Processos x Threads
Processos: programa em execução
que contém um único fluxo de
execução;
Threads: programa em execução
com múltiplos fluxos de execução.
39

Threads 40

Threads
Seumprocessotemváriasthreads,elascompartilham
quasetodososrecursosememória;
Cadathreadtemsuaprópriapilhadeexecuçãoe
registradores;
Emumprocessocommúltiplasthreads,quandouma
threadestábloqueadaaguardando,umasegunda
threadnomesmoprocessopodeexecutar
Aplicaçõesquerequeremcompartilhamentodedadosse
beneficiamaousarthreads.
41

Threads
Benefícios:
Velocidadedecriaçãodasthreads;
Capacidadederesposta;
Compartilhamentoderecursos;
Economiaderecursos;
Desempenho.
42

Threads
Principais diferenças entre Processos e Threads
Processos são geralmente independentes, enquanto threads são
subconjuntos de um processo;
Processos carregam muito mais informações que threads, enquanto
que múltiplas threads compartilham memória e outros recursos;
Processos tem espaço de endereçamento separado, enquanto
threads compartilham esses endereços;
Processos interagem somente através de mecanismos de
comunicação entre processos fornecidos pelo sistema operacional;
Troca de contexto entre threads utiliza o mesmo procedimento que nos
processos, porém é tipicamente mais rápida.
43

Threads
Exemplos:
Editor de texto: 1 thread “lê” o teclado, 1
thread imprime na tela, 1 thread faz a
verificação de ortografia, etc;
Google Chrome: Cada aba = 1 processo;
Mozilla Firefox: Cada aba = 1 thread;
Plug-ins: 1 processo.
44

Comunicação entre processos
Processosexecutamem“cápsulas”autônomas;
Ohardwareofereceproteçãodememória,ouseja,umprocesso
nãoacessaoutroprocesso.
45

Comunicação entre processos
Processos frequentemente necessitam
comunicar-se/interagir;
Essa comunicação é feira utilizando
mecanismos de IPC: Inter-Process
Communication;
Essa comunicação é realizada através do
Sistema Operacional através de canais de
comunicação.
46

Comunicação entre processos 47

Comunicação entre processos
Característicasdesejáveisparacomunicações
inter-processos:
Rapidez;
Simplicidadenautilizaçãoeimplementação;
Modelodesincronizaçãobemdefinido;
Versatilidade;
Funcionamentoigualemambientesdistribuídos;
SINCRONIZAÇÃO.
48

Comunicação entre processos
Sincronização é uma das maiores
preocupações para comunicação entre os
processos
Deve permitir que um processo que envia uma
mensagem indique quando o dado foi transmitido;
Deve permitir que um processo que recebe uma
mensagem saiba quando um dado está disponível;
Deve permitir que ambos saibam o momento exato
em que podem realizar uma nova comunicação.
49

Comunicação entre processos
Fundamentalmenteduasabordagens:
Espaçodeendereçamentocooperativo
Memóriacompartilhada.
MecanismosdopróprioSistemaOperacionalpara
transportardadosdeumprocessoaoutro
Pipes;
Sinais;
Sockets;
Etc.
50

Comunicação entre processos
Memória compartilhada:
Um mesmo segmento (trecho) de memória encontra -se no
espaço de endereçamento dos processos que estão se
comunicando;
O Sistema Operacional oferece chamadas permitindo a
criação de uma área de memória compartilhada, mas NÃO SE
ENVOLVE DIRETAMENTE COM A COMUNICAÇÃO E
SINCRONIZAÇÃO das mensagens;
Quando um processo realiza uma modificação, todos os
processos que compartilham aquele segmento podem ver o
que foi mudado.
51

Comunicação entre processos
Memória compartilhada
Vantagens:
É possível acessar uma parte específica de uma estrutura de
dados, e não necessariamente a estrutura completa
(RandomAccess);
A forma mais rápida para que dois processos troquem
dados.
Desvantagens:
Não há um mecanismo automático de sincronização.
52

Comunicação entre processos 53

Comunicação entre processos
Problemas de sincronização
PRODUTOR e CONSUMIDOR
54

Comunicação entre processos 55

Comunicação entre processos
Quais os problemas?
Condições de corrida;
Produtor mais rápido que o
consumidor;
Consumidor mais rápido que o
produtor.
Deadlock.
56

Comunicação entre processos
Quais as soluções?
Monitores;
Semáforos.
57

Problemas conceituais
Produtor/consumidor;
Jantar dos filósofos;
Barbeiro sonolento;
Etc.
58
Tags