Escolar Documentos
Profissional Documentos
Cultura Documentos
Análise e
Desenvolvimento
de Sistemas
Sistemas Operacionais
1
Tecnólogo em Análise e
Desenvolvimento de Sistemas
Sistemas Operacionais
Sistemas Operacionais
1. GERENCIAMENTO DE PROCESSOS
2. INTRODUÇÃO
Fatos Importantes
4
• Todos os computadores modernos
frequentemente realizam várias tarefas ao
mesmo tempo. As pessoas acostumadas a
trabalhar com computadores talvez não
estejam totalmente cientes desse fato,
então alguns exemplos podem esclarecer
este ponto. Primeiro, considere um servidor
da web, em que solicitações de páginas da
web chegam de toda parte.
5
• Quando uma solicitação chega, o servidor
confere para ver se a página requisitada está em
cache. Se estiver, ela é enviada de volta; se não,
uma solicitação de acesso ao disco é iniciada
para buscá-la. No entanto, do ponto de vista da
CPU, as solicitações de acesso ao disco levam
uma eternidade. Enquanto espera que uma
solicitação de acesso ao disco seja concluída
6
• considere um PC de usuário. Quando o sistema é
inicializado, muitos processos são secretamente iniciados,
quase sempre desconhecidos para o usuário. Por
exemplo, um processo pode ser inicializado para esperar
pela chegada de e-mails. Outro pode ser executado em
prol do programa antivírus para conferir periodicamente
se há novas definições de vírus disponíveis.
• .
7
• Além disso, processos explícitos de
usuários podem ser executados, imprimindo
arquivos e salvando as fotos do usuário em
um pen-drive, tudo isso enquanto o usuário
está navegando na Web. Toda essa
atividade tem de ser gerenciada, e um
sistema de multiprogramação que dê
suporte a múltiplos processos é muito útil
nesse caso
8
• Em qualquer sistema de multiprogramação, a CPU muda
de um processo para outro rapidamente, executando
cada um por dezenas ou centenas de milissegundos.
Enquanto, estritamente falando, em qualquer dado
instante a CPU está executando apenas um processo,
no curso de 1s ela pode trabalhar em vários deles,
dando a ilusão do paralelismo. Às vezes, as pessoas
falam em pseudoparalelismo neste contexto, para
diferenciar do verdadeiro paralelismo de hardware dos
sistemas multiprocessadores (que têm duas ou mais
CPUs compartilhando a mesma memória física). Ter
controle sobre múltiplas atividades em paralelo é algo
difícil para as pessoas realizarem.
9
Relembrando
• O que é um processo ?
Introdução
Processo – Conceito
Estado do Processo
• Criação/Novo
• Pronto
• Execução
• Espera
• Concluído
PCB (Bloco de Controle de Processo)
11
Introdução
Os primeiros sistemas
computadorizados permitiam
que apenas um programa fosse
executado de cada vez.
12
Introdução
13
Essa evolução exigiu controle mais
rígido e maior compartimentalização
dos diversos programas.
14
Um processo é a unidade de trabalho em
Introdução
um sistema moderno de tempo
compartilhado.
15
Um sistema, portanto, consiste em uma
coleção de processos:
16
Potencialmente, todos esses processos
podem ser executados de forma
concorrente.
Introdução
Com a CPU alternando entre os
processos, o sistema operacional pode
tornar o computador mais produtivo.
17
E um programa em execução, incluindo
os valores correntes do controlador de
programa, registradores e variáveis.
Processo -
Conceito O conceito de processo ´e dinâmico, em
contraposição ao conceito de programa,
que ´e estático.
18
Nem sempre um programa equivale a apenas
um processo.
Processo -
Conceito Em sistemas que permitem reentrância, o
código de um programa pode gerar vários
processos. (simutaneidade)
19
Caracterizado por programas em
execução.
Cada processo possui:
Processo - Programa (instruções que serão
Conceito executadas);
Espaço de endereço de memória
(mínimo e máximo);
Contextos de software: atributos.
20
O Sistema Operacional gerencia
todos os processos a partir do uso
Processo - do:
Conceito
Bloco de Controle de Processos –
BCP
21
Basicamente, um processo possui
três segmentos
Processo - Texto: código do(s) programa(s);
Conceito Dados: as variáveis;
Pilha de execução: controla a
execução do processo.
22
Processo -
Contexto
23
Table PCB
24
Cada processo é representado no sistema
operacional por um bloco de controle de
processo.
25
No sistema, cada processo será representado
por seu resumo, que consiste no BCP,
também conhecido por Bloco de Controle de
Programa ou Descritor de Processo.
26
A identificação do processo;
O estado do processo;
A prioridade do processo;
Ponteiros para a localização do processo na memória
ou no disco;
Contador de programa;
Area de salvamento dos registradores, etc
Registradores da CPU.
Bloco de lnformação de escalonamento de CPU.
Controle do
Processo
27
Bloco de Controle de Processo
Bloco de
Controle do
Processo
28
Bloco de
Controle do
Processo
29
Bloco de
Controle do
Processo
30
Tabela de Processos:
Cada processo possui uma entrada;
31
À medida que os processos entram no
sistema, são colocados em uma fila de jobs.
32
Essa fila geralmente é armazenada como
uma Lista Encadeada.
Bloco de
Controle de
Processos
33
Bloco de
Controle de
Processos
34
Bloco de
Controle do
Processo
35
Bloco de
Controle do
Processo
36
Estado do Processo
37
Estado do Processo
Um processo pode estar em um
dos seguintes estados:
• Criação/Novo.
• Pronto.
• Em execução
• Em espera.
• Concluído. 38
Estado do Processo
Um processo pode estar em um dos seguintes est
ados:
• Novo - O processo está sendo criado, passa
a fazer parte dos processos prontos a
serem executados.
CRIAÇÃO
PRONTO
/NOVO
ESPERA EXECUÇÃO
CONCLUÍDO
39
Estado do Processo
Um processo pode estar em um dos seguintes e
stados:
• Pronto - O SO escolhe (através de
critérios e algoritmos próprios) o
processo que será executado na CPU.
CRIAÇÃO
PRONTO
/NOVO
ESPERA EXECUÇÃO
CONCLUÍDO
40
Estado do Processo
Um processo pode estar em um dos seguintes es
tados:
Execução - Trata da execução em si do
processo (pode passar para o estado de
espera quando aguarda operação de E/S
ou em caso de suspensão do processo).
CRIAÇÃO
PRONTO
/NOVO
ESPERA EXECUÇÃO
CONCLUÍDO 41
Estado do Processo
Um processo pode estar em um dos seguintes es
tados:
Espera - Um processo em espera passa
para pronto quando a operação solicitada
ou recurso esperado é concedido.
CRIAÇÃO
PRONTO
/NOVO
ESPERA EXECUÇÃO
CONCLUÍDO 42
Estado do Processo
Um processo pode estar em um dos seguintes es
tados:
EsperaProntoExecução
CRIAÇÃO
PRONTO
/NOVO
ESPERA EXECUÇÃO
CONCLUÍDO
43
Estado do Processo
Um processo pode estar em um dos seguintes es
tados:
Execução - O processo em execução
passa para o estado de terminado
quando o processo finaliza sua execução.
CRIAÇÃO
PRONTO
/NOVO
ESPERA EXECUÇÃO
CONCLUÍDO 44
Estado do Processo
Um processo pode estar em um dos seguintes es
tados:
Concluído - finaliza a execução do
processo.
CRIAÇÃO
PRONTO
/NOVO
ESPERA EXECUÇÃO
CONCLUÍDO
45
Threads
46
Threads
47
Threads
48
Threads
49
Scheduling (escalonar) de
Processos
50
Scheduling de Processos
51
Filas de Scheduling
O processo de seleção é
executado pelo scheduler apropriado
(algoritmos específicos).
53
Relembrando
• O que é Processo
• Escalonamento de Processo
• Estado de um Processo ?
• Qual a diferença entre sistema de tempo
compartilhado e de tempo real?
54
Técnicas de escalonamento de
processos
Com o surgimento dos sistemas multiprogramáveis, a
gerência do processador tornou-se uma das atividades mais
importantes em um SO. A partir do momento em que diversos
processos podem estar no estado de pronto, critérios devem
ser estabelecidos para determinar qual processo será
escolhido para fazer uso do processador. Os critérios
utilizados para essa seleção compõem a chamada política de
escalonamento, que é a base da gerência do processador e
da multiprogramação em um SO.
55
56
Funções Básicas
• A política de escalonamento de um SO tem diversas
funções básicas, como:
Manter o processador ocupado a maior parte do tempo;
Balancear o uso da UCP entre processos;
Privilegiar a execução de aplicações críticas;
Maximizar o throughput do sistema;
Oferecer tempos de resposta razoáveis para usuários
interativos.
A rotina do SO que tem como principal função implementar
os critérios da política de escalonamento é denominada
escalonador (scheduler).
A rotina conhecida como dispatcher é responsável pela
troca de contexto dos processos após o escalonador
determinar qual processo deve fazer uso do processador e
o tempo gasto na troca é denominado latência do
57
dispatcher.
Critérios de Escalonamento
59
Escalonamentos Não-Preemptivos e Preemptivos
61
Escalonamento First-In-First-Out (FIFO scheduling
62
Escalonamento First-In-First-Out (FIFO
scheduling)
64
Escalonamento Shortest-Job-First (SJF
scheduling)
Esta implementação foi utilizada nos primeiros sistemas
operacionais com processamento exclusivamente batch.
Uma maneira de implementar o escalonamento SJF em
sistemas interativos foi considerar o comportamento do
processo neste ambiente.
Um problema existente nesta implementação é não ser
possível ao SO saber quanto tempo um processo irá
permanecer utilizando a UCP na próxima vez
em que for escalonado.
Na sua concepção inicial, o escalonamento SJF é não-
preemptivo
65
Escalonamento Shortest-Job-First (SJF
scheduling)
66
• Escalonamento Circular
A principal vantagem do escalonamento circular é não permitir
que um processo monopolize a UCP, sendo o tempo máximo
alocado continuamente
igual à fatia de tempo definida no sistema.
Um problema presente nesta política é que processos CPU-
bound são beneficiados no uso do processador em relação aos
processos I/O-bound, o que provoca um balanceamento
desigual no uso do processador.
Um refinamento do escalonamento circular, que busca reduzir
esse problema, é conhecido como escalonamento circular
virtual
67
Escalonamento por Prioridades
68
69
Escalonamento por Prioridades
O escalonamento por prioridades também pode ser
implementado de uma maneira não-preemptiva.
A prioridade de execução é uma característica do contexto
de software de um processo, e pode ser classificada como
estática e dinâmica.
Um dos principais problemas do escalonamento circular é
o starvation. Uma solução para esse problema é a técnica
de aging.
O escalonamento por prioridades possibilita diferenciar os
processos segundo critérios de importância.
70
Escalonamento Circular com Prioridades
Implementa o conceito de fatia de tempo e de prioridade de
execução associada a cada processo.
Um processo permanece no estado de execução até que
termine seu processamento, voluntariamente passe para o
estado de espera ou sofra uma preempção por tempo ou
prioridade.
A vantagem deste tipo de escalonamento é permitir o melhor
balanceamento no uso do processador em sistemas de tempo
compartilhado.
Possui duas variações: circular com prioridades estáticas e
circular com prioridades dinâmicas.
71
Escalonamento por Múltiplas Filas
Neste tipo de escalonamento, os processos são associados às filas
em função de características próprias, como importância para a
aplicação, tipo de processamento ou área de memória necessária.
A principal vantagem de múltiplas filas é a possibilidade da
convivência de mecanismos de escalonamento distintos em um
mesmo sistema operacional.
Além disso, neste mecanismo o processo não possui prioridade,
ficando essa característica associada à fila. O processo sofre
preempção caso um outro processo entre em uma fila de maior
prioridade.
Desvantagem: no caso de um processo alterar seu
comportamento no decorrer do tempo, não poderá ser
redirecionado para outra fila
72
73
Escalonamento por Múltiplas Filas com
Realimentação
75
Política de Escalonamento em Sistemas
de Tempo Real
Algumas aplicações específicas exigem respostas
imediatas para a execução de terminadas tarefas. Nesse
caso, a aplicação deve ser executada em sistemas de
tempo real.
O escalonamento em sistemas de tempo real deve levar
em consideração a importância relativa de cada tarefa na
aplicação.
Em função disso, o escalonamento por prioridades é o
mais adequado para sistemas de tempo real. Não deve
existir o conceito de fatia de tempo, e a prioridade de cada
processo deve ser estática
76
DÚVIDAS?
SISTEMA OPERACIONAL
77
ATIVIDADE
SISTEMA OPERACIONAL
78
Exercícios
79
Atividade em Grupo
• Pilares para Defesa
• Boot
• Estrutura de Arquivos
• ...........
81