SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
Sistemas
Operacionais
(Parte 2)
PROF SILVANO OLIVEIRA
prof.silvano.oliveira@gmail.com
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
 Primeiros sistemas operacionais eram caracterizados por apenas
um programa sendo executado por vez;
 Computadores modernos = vários tarefas ao mesmo tempo;
 Processador é alternado entre um programa e outro
 Falsa impressão de que vários programas estão rodando ao mesmo
tempo;
 Pseudoparalelismo.
 Para que isso seja possível, é necessário um monitoramento
complexo de todas as atividades;
 Foi desenvolvido um modelo que tornou o “paralelismo” mais fácil
de manipular: modelo de PROCESSOS.
6
Processos
 Processo é um programa em execução e que tem suas
informações mantidas pelo sistema operacional;
 Um processo é um programa em execução. É uma unidade de
trabalho dentro do sistema. Programa é uma entidade passiva,
processo é uma entidade ativa;
 Pode ser definido também como o ambiente onde o programa é
executado, e além das informações sobre a execução, possui:
 Recursos que o sistema pode utilizar;
 Espaço de endereçamento;
 Arquivos e outras Entradas/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
 Objetivos das políticas de escalonamento:
 Maximizar a utilização da CPU;
 Maximizar o throughput (vazão);
 Minimizar o turnaround (tempo para finalização do processo);
 Minimizar o tempo de espera;
 Minimizar o tempo de resposta;
 Ser justa;
 Maximizar o número de usuários interativos;
 Ser previsível;
 Minimizar e balancear o uso de recursos;
 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
 Quando um processo não pode ser interrompido por um fator externo
quando está executando;
 Deixa a CPU ou por vontade própria ou porque terminou o trabalho;
 Windows 3.1, etc.
 Preemptivo
 Pode interromper a execução de um processo para executar um outro;
 Sistemas operacionais modernos utilizam algoritmos de escalonamento
preemptivos;
 Sistemas operacionais modernos – Windows 95+, GNU/Linux, MacOS,
etc.
18
Escalonador de processos
 Algoritmos de escalonamento:
 FIFO;
 SJF (Short Job First);
 Round-Robin;
 SRT (Shortest Remaining Time);
 Prioridade;
 Múltiplas filas;
 Múltiplas filas com realimentação;
 Escalonamento para vários processadores;
 Escalonamento de tempo real.
19
FIFO – First In, First Out
 Algoritmo não preemptivo (quando entra em
execução, vai até o término);
 O processo que chega primeiro (First In) é o primeiro
a ser escolhido para usar a CPU (First Out);
 Fila de processos;
 Criado originalmente para sistemas batch;
 Injusto para processos (Jobs) curtos;
 Ineficiente para sistemas de tempo compartilhado.
20
FIFO – First In, First Out
11ms
P4
6ms
P3 9ms P2
20ms
P1
21
Tempo total de execução: 46ms
20ms
29ms
35ms
46ms
FIFO – First In, First Out 22
SJF – Shortest Job First
 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 – Shortest Job First 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 – First In,
First Out);
 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 status de PRONTO, seleciona novo processo).
25
Round-Robin
 Algoritmo preemptivo;
 Tempo médio de espera alto;
 Desempenho depende diretamente do
tamanho definido para o QUANTUM:
 Se QUANTUM for muito grande, assemelha-se ao
algoritmo de escalonamento FIFO (não preemptivo);
 Se QUANTUM for muito pequeno, o overhead com o
CHAVEAMENTO DE CONTEXTO torna-se alto demais,
prejudicando o desempenho.
26
Round-Robin 27
SRT – Shortest Remaining Time
 “SJF Preemptivo”;
 É escolhido o processo com menor tempo
para ser completado;
 Um processo em execução é
interrompido quando um novo processo
com menor tempo para ser completado
aparece na fila com o status de PRONTO;
28
SRT – Shortest Remaining Time 29
Escalonamento por Prioridade
 Cada processo tem uma prioridade associada;
 CPU é alocada para processo de maior prioridade;
 SJF pode ser considerado um caso de escalonamento por
prioridade, onde considera-se o tempo como priorização;
 Geralmente a prioridade é representada por um número – não há
convenção em relação a quais números utilizar;
 Prioridade definida:
 Internamente ou externamente.
 Problema: Starvation – Processos de baixa prioridade podem ficar
indefinidamente em estado de PRONTO;
 Solução: aumentar progressivamente a prioridade dos processos em
estado de PRONTO aguardando a vez de usar a CPU.
30
Escalonamento por Prioridade 31
Starvation:
Quando os responsáveis
foram desligar o IBM 7094
no MIT em 1973,
descobriram um processo
com baixa prioridade que
estava em estado de
PRONTO desde 1967 e
ainda não havia sido
processado.
Múltiplas filas
 Processos são previamente divididos em grupos
 Em função do tipo de processamento realizado
 Sistema;
 Interativo (foreground);
 Batch (background).
 Cada um dos grupos tem um mecanismo de escalonamento
 Interativo – Round Robin;
 Batch – FIFO;
32
Múltiplas filas 33
Múltiplas filas com realimentação
 Os processos NÃO permanecem em uma mesma fila até terminar o
processamento;
 O Sistema Operacional faz um ajuste dinâmico para ajustar os
processos em função do comportamento do sistema;
 Os processos não são previamente associados às filas, mas
direcionados pelo sistema entre as diversas filas com base no seu
comportamento;
 Parâmetros para escalonamento:
 Número de filas;
 Algoritmo de escalonamento para cada fila;
 Método para mudar o processo da fila;
 Método para determinar em que fila um processo entra.
 Método mais complexo.
34
Múltiplas filas com realimentação 35
Escalonamento para vários
processadores
 Escalonamento mais complexo;
 Processadores idênticos
 Compartilhamento de carga;
 Fila por processador;
 Fila única: compartilhamento de dados.
 Abordagens do algoritmo
 Processamento simétrico: Cada processador faz seu próprio
escalonamento;
 Mestre-escravo (assimétrico): Um algoritmo é executado em um
processador reservado somente para esse fim, e escalona os outros
processos em outros processadores.
36
Escalonamento de tempo real
 Sistemas de tempo real
 Hard Real Time: Requisitos rígidos, tempo é essencial – Uma
tarefa crítica deve ser completada dentro de um tempo
GARANTIDO
 Avião, sistemas médicos, indústria, etc.
 Soft Real Time: Requisitos flexíveis – Processo crítico recebe
prioridade sobre os outros com menor importância
 Realidade aumentada, multimídia, etc.
 Sistemas de Real Time rígidos requerem processadores
dedicados.
37
Threads
 Uma forma de um processo dividir a si mesmo;
 Threads executam “dentro” de um processo;
 Conhecidas como “Processos leves”;
 Possibilidade de associar mais de um fluxo de
execução a um processo
 Compartilhamento de recursos
 Recursos do S.O., seção de dados, seção de código.
 Comunicação entre as threads facilitada;
 Chaveamento de contexto total desnecessá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
 Se um processo tem várias threads, elas compartilham
quase todos os recursos e memória;
 Cada thread tem sua própria pilha de execução e
registradores;
 Em um processo com múltiplas threads, quando uma
thread está bloqueada aguardando, uma segunda
thread no mesmo processo pode executar
 Aplicações que requerem compartilhamento de dados se
beneficiam ao usar threads.
41
Threads
Benefícios:
Velocidade de criação das threads;
Capacidade de resposta;
Compartilhamento de recursos;
Economia de recursos;
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
 Processos executam em “cápsulas” autônomas;
 O hardware oferece proteção de memória, ou seja, um processo
não acessa outro processo.
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ísticas desejáveis para comunicações
inter-processos:
 Rapidez;
 Simplicidade na utilização e implementação;
 Modelo de sincronização bem definido;
 Versatilidade;
 Funcionamento igual em ambientes distribuí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
 Fundamentalmente duas abordagens:
 Espaço de endereçamento cooperativo
 Memória compartilhada.
 Mecanismos do próprio Sistema Operacional para
transportar dados de um processo a outro
 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
(Random Access);
 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

Mais conteúdo relacionado

Semelhante a SOs Pt 2 - Gerência de Processos

Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrênciaPaulo Fonseca
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2Gustavo Souza
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3Universal.org.mx
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosSeminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosRobson Ferreira
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorSofia Trindade
 
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSilvano Oliveira
 
Categorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoCategorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoThaís Favore
 
3 escalonamento processos
3 escalonamento processos3 escalonamento processos
3 escalonamento processosfrteles
 
2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativosMaria194536
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processosvini_campos
 

Semelhante a SOs Pt 2 - Gerência de Processos (20)

Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrência
 
SO-02 Processos
SO-02 ProcessosSO-02 Processos
SO-02 Processos
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosSeminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
 
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
 
Sistemas operacionais 04
Sistemas operacionais   04Sistemas operacionais   04
Sistemas operacionais 04
 
Processos
ProcessosProcessos
Processos
 
gabarito.pdf
gabarito.pdfgabarito.pdf
gabarito.pdf
 
Sistemas operacionais 03
Sistemas operacionais   03Sistemas operacionais   03
Sistemas operacionais 03
 
Categorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoCategorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamento
 
Impasses S.O
Impasses S.OImpasses S.O
Impasses S.O
 
Questionário sobre processos
Questionário sobre processosQuestionário sobre processos
Questionário sobre processos
 
3 escalonamento processos
3 escalonamento processos3 escalonamento processos
3 escalonamento processos
 
2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativos
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 

Mais de Silvano Oliveira

PW03 - Programação Web PHP Arrays (Vetores)
PW03 - Programação Web PHP Arrays (Vetores)PW03 - Programação Web PHP Arrays (Vetores)
PW03 - Programação Web PHP Arrays (Vetores)Silvano Oliveira
 
PW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdfPW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdfSilvano Oliveira
 
PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7Silvano Oliveira
 
ADRL00 - Inicio Administração de Redes Linux Server
ADRL00 - Inicio Administração de Redes Linux ServerADRL00 - Inicio Administração de Redes Linux Server
ADRL00 - Inicio Administração de Redes Linux ServerSilvano Oliveira
 
ADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesSilvano Oliveira
 
01.Introdução a Lógica de Programação.pdf
01.Introdução a Lógica de Programação.pdf01.Introdução a Lógica de Programação.pdf
01.Introdução a Lógica de Programação.pdfSilvano Oliveira
 
Alg04 - Vetores e Matrizes.pdf
Alg04 - Vetores e Matrizes.pdfAlg04 - Vetores e Matrizes.pdf
Alg04 - Vetores e Matrizes.pdfSilvano Oliveira
 
CON00 - Ativos de Rede.pdf
CON00 - Ativos de Rede.pdfCON00 - Ativos de Rede.pdf
CON00 - Ativos de Rede.pdfSilvano Oliveira
 
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdfSO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdfSilvano Oliveira
 
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdfSO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdfSilvano Oliveira
 
SO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdf
SO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdfSO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdf
SO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdfSilvano Oliveira
 
SO06 - Sistemas-Operacionais - Gestão da Proteção.pdf
SO06 - Sistemas-Operacionais - Gestão da Proteção.pdfSO06 - Sistemas-Operacionais - Gestão da Proteção.pdf
SO06 - Sistemas-Operacionais - Gestão da Proteção.pdfSilvano Oliveira
 

Mais de Silvano Oliveira (20)

PW03 - Programação Web PHP Arrays (Vetores)
PW03 - Programação Web PHP Arrays (Vetores)PW03 - Programação Web PHP Arrays (Vetores)
PW03 - Programação Web PHP Arrays (Vetores)
 
PW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdfPW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdf
 
PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7
 
ADRL00 - Inicio Administração de Redes Linux Server
ADRL00 - Inicio Administração de Redes Linux ServerADRL00 - Inicio Administração de Redes Linux Server
ADRL00 - Inicio Administração de Redes Linux Server
 
ADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de Redes
 
Revisão Windows Server
Revisão Windows ServerRevisão Windows Server
Revisão Windows Server
 
01.Introdução a Lógica de Programação.pdf
01.Introdução a Lógica de Programação.pdf01.Introdução a Lógica de Programação.pdf
01.Introdução a Lógica de Programação.pdf
 
Alg04 - Vetores e Matrizes.pdf
Alg04 - Vetores e Matrizes.pdfAlg04 - Vetores e Matrizes.pdf
Alg04 - Vetores e Matrizes.pdf
 
CON08 - VLAN.pdf
CON08 - VLAN.pdfCON08 - VLAN.pdf
CON08 - VLAN.pdf
 
LP1 P01 - Python.pdf
LP1 P01 - Python.pdfLP1 P01 - Python.pdf
LP1 P01 - Python.pdf
 
CON01 - Rede Local.pdf
CON01 - Rede Local.pdfCON01 - Rede Local.pdf
CON01 - Rede Local.pdf
 
CON00 - Ativos de Rede.pdf
CON00 - Ativos de Rede.pdfCON00 - Ativos de Rede.pdf
CON00 - Ativos de Rede.pdf
 
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdfSO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
SO05 - Sistemas-Operacionais - Gerencia de Dispositivos.pdf
 
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdfSO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
 
SO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdf
SO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdfSO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdf
SO04 - Sistemas-Operacionais - Gerencia de Arquivos.pdf
 
SO06 - Sistemas-Operacionais - Gestão da Proteção.pdf
SO06 - Sistemas-Operacionais - Gestão da Proteção.pdfSO06 - Sistemas-Operacionais - Gestão da Proteção.pdf
SO06 - Sistemas-Operacionais - Gestão da Proteção.pdf
 
Con01 rede local
Con01   rede localCon01   rede local
Con01 rede local
 
Con00 ativos de rede
Con00   ativos de redeCon00   ativos de rede
Con00 ativos de rede
 
Bd ex02 relacionamento
Bd ex02   relacionamentoBd ex02   relacionamento
Bd ex02 relacionamento
 
Bd ex01 select
Bd ex01   selectBd ex01   select
Bd ex01 select
 

SOs Pt 2 - Gerência de Processos

  • 1. Sistemas Operacionais (Parte 2) PROF SILVANO OLIVEIRA prof.silvano.oliveira@gmail.com
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. Gerência de processador  Primeiros sistemas operacionais eram caracterizados por apenas um programa sendo executado por vez;  Computadores modernos = vários tarefas ao mesmo tempo;  Processador é alternado entre um programa e outro  Falsa impressão de que vários programas estão rodando ao mesmo tempo;  Pseudoparalelismo.  Para que isso seja possível, é necessário um monitoramento complexo de todas as atividades;  Foi desenvolvido um modelo que tornou o “paralelismo” mais fácil de manipular: modelo de PROCESSOS. 6
  • 7. Processos  Processo é um programa em execução e que tem suas informações mantidas pelo sistema operacional;  Um processo é um programa em execução. É uma unidade de trabalho dentro do sistema. Programa é uma entidade passiva, processo é uma entidade ativa;  Pode ser definido também como o ambiente onde o programa é executado, e além das informações sobre a execução, possui:  Recursos que o sistema pode utilizar;  Espaço de endereçamento;  Arquivos e outras Entradas/Saídas;  Etc. 7
  • 8. 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
  • 9. 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
  • 10. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. Escalonador de processos  Objetivos das políticas de escalonamento:  Maximizar a utilização da CPU;  Maximizar o throughput (vazão);  Minimizar o turnaround (tempo para finalização do processo);  Minimizar o tempo de espera;  Minimizar o tempo de resposta;  Ser justa;  Maximizar o número de usuários interativos;  Ser previsível;  Minimizar e balancear o uso de recursos;  Etc. 15
  • 16. 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
  • 17. 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
  • 18. Escalonador de processos - Preempção  Não-preemptivo  Quando um processo não pode ser interrompido por um fator externo quando está executando;  Deixa a CPU ou por vontade própria ou porque terminou o trabalho;  Windows 3.1, etc.  Preemptivo  Pode interromper a execução de um processo para executar um outro;  Sistemas operacionais modernos utilizam algoritmos de escalonamento preemptivos;  Sistemas operacionais modernos – Windows 95+, GNU/Linux, MacOS, etc. 18
  • 19. Escalonador de processos  Algoritmos de escalonamento:  FIFO;  SJF (Short Job First);  Round-Robin;  SRT (Shortest Remaining Time);  Prioridade;  Múltiplas filas;  Múltiplas filas com realimentação;  Escalonamento para vários processadores;  Escalonamento de tempo real. 19
  • 20. FIFO – First In, First Out  Algoritmo não preemptivo (quando entra em execução, vai até o término);  O processo que chega primeiro (First In) é o primeiro a ser escolhido para usar a CPU (First Out);  Fila de processos;  Criado originalmente para sistemas batch;  Injusto para processos (Jobs) curtos;  Ineficiente para sistemas de tempo compartilhado. 20
  • 21. FIFO – First In, First Out 11ms P4 6ms P3 9ms P2 20ms P1 21 Tempo total de execução: 46ms 20ms 29ms 35ms 46ms
  • 22. FIFO – First In, First Out 22
  • 23. SJF – Shortest Job First  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
  • 24. SJF – Shortest Job First 24
  • 25. 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 – First In, First Out);  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 status de PRONTO, seleciona novo processo). 25
  • 26. Round-Robin  Algoritmo preemptivo;  Tempo médio de espera alto;  Desempenho depende diretamente do tamanho definido para o QUANTUM:  Se QUANTUM for muito grande, assemelha-se ao algoritmo de escalonamento FIFO (não preemptivo);  Se QUANTUM for muito pequeno, o overhead com o CHAVEAMENTO DE CONTEXTO torna-se alto demais, prejudicando o desempenho. 26
  • 28. SRT – Shortest Remaining Time  “SJF Preemptivo”;  É escolhido o processo com menor tempo para ser completado;  Um processo em execução é interrompido quando um novo processo com menor tempo para ser completado aparece na fila com o status de PRONTO; 28
  • 29. SRT – Shortest Remaining Time 29
  • 30. Escalonamento por Prioridade  Cada processo tem uma prioridade associada;  CPU é alocada para processo de maior prioridade;  SJF pode ser considerado um caso de escalonamento por prioridade, onde considera-se o tempo como priorização;  Geralmente a prioridade é representada por um número – não há convenção em relação a quais números utilizar;  Prioridade definida:  Internamente ou externamente.  Problema: Starvation – Processos de baixa prioridade podem ficar indefinidamente em estado de PRONTO;  Solução: aumentar progressivamente a prioridade dos processos em estado de PRONTO aguardando a vez de usar a CPU. 30
  • 31. Escalonamento por Prioridade 31 Starvation: Quando os responsáveis foram desligar o IBM 7094 no MIT em 1973, descobriram um processo com baixa prioridade que estava em estado de PRONTO desde 1967 e ainda não havia sido processado.
  • 32. Múltiplas filas  Processos são previamente divididos em grupos  Em função do tipo de processamento realizado  Sistema;  Interativo (foreground);  Batch (background).  Cada um dos grupos tem um mecanismo de escalonamento  Interativo – Round Robin;  Batch – FIFO; 32
  • 34. Múltiplas filas com realimentação  Os processos NÃO permanecem em uma mesma fila até terminar o processamento;  O Sistema Operacional faz um ajuste dinâmico para ajustar os processos em função do comportamento do sistema;  Os processos não são previamente associados às filas, mas direcionados pelo sistema entre as diversas filas com base no seu comportamento;  Parâmetros para escalonamento:  Número de filas;  Algoritmo de escalonamento para cada fila;  Método para mudar o processo da fila;  Método para determinar em que fila um processo entra.  Método mais complexo. 34
  • 35. Múltiplas filas com realimentação 35
  • 36. Escalonamento para vários processadores  Escalonamento mais complexo;  Processadores idênticos  Compartilhamento de carga;  Fila por processador;  Fila única: compartilhamento de dados.  Abordagens do algoritmo  Processamento simétrico: Cada processador faz seu próprio escalonamento;  Mestre-escravo (assimétrico): Um algoritmo é executado em um processador reservado somente para esse fim, e escalona os outros processos em outros processadores. 36
  • 37. Escalonamento de tempo real  Sistemas de tempo real  Hard Real Time: Requisitos rígidos, tempo é essencial – Uma tarefa crítica deve ser completada dentro de um tempo GARANTIDO  Avião, sistemas médicos, indústria, etc.  Soft Real Time: Requisitos flexíveis – Processo crítico recebe prioridade sobre os outros com menor importância  Realidade aumentada, multimídia, etc.  Sistemas de Real Time rígidos requerem processadores dedicados. 37
  • 38. Threads  Uma forma de um processo dividir a si mesmo;  Threads executam “dentro” de um processo;  Conhecidas como “Processos leves”;  Possibilidade de associar mais de um fluxo de execução a um processo  Compartilhamento de recursos  Recursos do S.O., seção de dados, seção de código.  Comunicação entre as threads facilitada;  Chaveamento de contexto total desnecessário. 38
  • 39. 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
  • 41. Threads  Se um processo tem várias threads, elas compartilham quase todos os recursos e memória;  Cada thread tem sua própria pilha de execução e registradores;  Em um processo com múltiplas threads, quando uma thread está bloqueada aguardando, uma segunda thread no mesmo processo pode executar  Aplicações que requerem compartilhamento de dados se beneficiam ao usar threads. 41
  • 42. Threads Benefícios: Velocidade de criação das threads; Capacidade de resposta; Compartilhamento de recursos; Economia de recursos; Desempenho. 42
  • 43. 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
  • 44. 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
  • 45. Comunicação entre processos  Processos executam em “cápsulas” autônomas;  O hardware oferece proteção de memória, ou seja, um processo não acessa outro processo. 45
  • 46. 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
  • 48. Comunicação entre processos  Características desejáveis para comunicações inter-processos:  Rapidez;  Simplicidade na utilização e implementação;  Modelo de sincronização bem definido;  Versatilidade;  Funcionamento igual em ambientes distribuídos;  SINCRONIZAÇÃO. 48
  • 49. 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
  • 50. Comunicação entre processos  Fundamentalmente duas abordagens:  Espaço de endereçamento cooperativo  Memória compartilhada.  Mecanismos do próprio Sistema Operacional para transportar dados de um processo a outro  Pipes;  Sinais;  Sockets;  Etc. 50
  • 51. 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
  • 52. 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 (Random Access);  A forma mais rápida para que dois processos troquem dados.  Desvantagens:  Não há um mecanismo automático de sincronização. 52
  • 54. Comunicação entre processos  Problemas de sincronização  PRODUTOR e CONSUMIDOR 54
  • 56. 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
  • 57. Comunicação entre processos Quais as soluções? Monitores; Semáforos. 57
  • 58. Problemas conceituais Produtor/consumidor; Jantar dos filósofos; Barbeiro sonolento; Etc. 58