Você está na página 1de 80

Tecnólogo em

Análise e
Desenvolvimento
de Sistemas

Sistemas Operacionais

1
Tecnólogo em Análise e
Desenvolvimento de Sistemas

Sistemas Operacionais

Prof. Daniel Menezes


Professor Daniel Menezes

Sistemas Operacionais
1. GERENCIAMENTO DE PROCESSOS
2. INTRODUÇÃO
Fatos Importantes

• Processos são uma das mais antigas e importantes


abstrações que os sistemas operacionais
proporcionam. Eles dão suporte à possibilidade de
haver operações (pseudo) concorrentes mesmo
quando há apenas uma CPU disponível,
transformando uma única CPU em múltiplas CPUs
virtuais. Sem a abstração de processo, a
computação moderna não poderia existir.

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 ?

• um processo é uma instância de um


programa de computador que está sendo
executada. Ele contem o código do
programa e sua atividade atual. Dependendo
do sistema operacional (SO), um processo
pode ser feito de várias linhas de execução
que executam instruções concorrentemente.
10
Roteiro

 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

 Esse programa tinha controle total do


sistema e tinha acesso a todos os recursos
do sistema.

 Em contraste, sistemas computadorizados


dos dias atuais permitem que vários
programas sejam carregados na memória e
executados concorrentemente.

13
 Essa evolução exigiu controle mais
rígido e maior compartimentalização
dos diversos programas.

Introdução  Essas necessidades resultaram na


noção de um Processo, (programa em
execução.)

14
 Um processo é a unidade de trabalho em

Introdução
um sistema moderno de tempo
compartilhado.

 Unidade de Trabalho – programa.

15
 Um sistema, portanto, consiste em uma
coleção de processos:

 Processos do sistema operacional


Introdução executando código do sistema.

 Processos do usuário - executando


código do usuário.

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.

 PCB - Process Control Block - também conhecido


como bloco de controle de tarefa.
Bloco de
Controle do
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.

 O BCP consiste de uma estrutura de dados


contendo informações importantes sobre o
processo.
Bloco de
Controle do
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;

 Cada entrada possui um ponteiro para


o BCP ou descritor do processo;

 BCP possui todas as informações do


processo - Contextos de hardware,
software, endereço de memória.
Bloco de
Controle do
Processo

31
 À medida que os processos entram no
sistema, são colocados em uma fila de jobs.

 Essa fila consiste em todos os processos do


sistema.
Bloco de
Controle do
Processo

32
 Essa fila geralmente é armazenada como
uma Lista Encadeada.

 Um cabeçalho de fila de processos prontos


contém ponteiros ao primeiro e Último
PCBs na lista.

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

 Quando um processo é executado, ele mu


dade estado.

 O estado de um processo é definido, em p


arte, pela atividade corrente 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:
 EsperaProntoExecuçã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

 O modelo de processo discutido até agora sugere


que um processo é um programa que executa ap
enas um thread.

 Quando um processo está executando um progra


ma de processamento de texto, um
único thread de instruções está sendo executado.

46
Threads

 Esse thread de controle único permite que o pro


cesso execute apenas uma tarefa de cada vez.

 Assim não é possível digitar caracteres e


executar o corretor ortográfico dentro do
mêsmo processo.

47
Threads

 Boa parte dos SO’s modernos partem do


conceito de processo para permitir que um
processo tenha múltiplos threads de execução e, assim,
esempenhe mais de uma tarefa de cada vez.

 Esse recurso é particularmente benéfico em sistemas


multicores, em que múltiplos threads podem ser
executados em paralelo.

48
Threads

 Em um sistema que suporte threads, o PCB


é
expandido de modo a incluir informações
para cada thread.

 Também são necessárias outras alterações


no
sistema como um todo para que ele supor
te threads.

49
Scheduling (escalonar) de
Processos

 O objetivo da multiprogramação é ter


processos em execução o tempo todo,
para maximizar a utilização de CPU.

 O objetivo do tempo compartilhado é


alternar a CPU entre processos de forma
tão frequente que os usuários possam
interagir com cada programa durante sua
execução.

50
Scheduling de Processos

 Para um sistema uniprocessador, nunca


haverá mais de um processo em execução.

 Se houver mais processos, os demais terão


de esperar até que a CPU esteja liberada e
possa ser reescalonada.

51
Filas de Scheduling

Diagrama mostrando a alternância da CPU entre processos


52
Schedulers
(escalonador)

 Para fins de scheduling, o


sistema operacional deve selecionar p
rocessos das filas, de alguma forma.

 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

 Utilização do Processador: é desejável que o processador


permaneça a
maior parte do tempo ocupado.
 Throughput: representa o número de processos
executados em um determinado instante de tempo.
 Tempo de Processador / Tempo de UCP: é o tempo que
um processo leva no estado de execução durante o seu
processamento.
 Tempo de Espera: é o tempo total que um processo
permanece na fila de pronto durante seu processamento,
aguardando para ser executado.
 Tempo de Turnaround: é o tempo que um processo leva
desde a sua criação até seu término.
58
Critérios de Escalonamento

 Tempo de Resposta: é o tempo decorrido entre uma


requisição ao sistema ou à aplicação e o instante em que a
resposta é exibida.
De maneira geral, qualquer política de escalonamento busca
otimizar a utilização do processador e o throughput,
enquanto tenta diminuir os tempos
de turnaround, espera e resposta.
Apesar disso, as funções que uma política de escalonamento
deve possuir são muitas vezes conflitantes.
Dependendo do tipo do sistema operacional, um critério pode
ter maior importância do que outros.

59
Escalonamentos Não-Preemptivos e Preemptivos

As políticas de escalonamento podem ser classificadas


segundo a possibilidade de o sistema operacional
interromper o processo em execução e substituí-lo por um
outro (preempção).
Escalonamento não-preemptivo: quando um processo
está em execução nenhum evento externo pode ocasionar
a perda do uso do processador.
Escalonamento preemptivo: o sistema operacional pode
interromper um processo em execução e passá-lo para o
estado de pronto, com o objetivo de alocar outro processo
na UCP com prioridade maior do que o anterior.
Atualmente, a maioria dos SOs implementa políticas de
escalonamento preemptivas.
60
Escalonamento First-In-First-Out (FIFO
scheduling)

Também conhecido como first-come-first-served (FCFS scheduling)

61
Escalonamento First-In-First-Out (FIFO scheduling

62
Escalonamento First-In-First-Out (FIFO
scheduling)

Apesar de simples, o escalonamento FIFO apresenta


algumas deficiências:
 Impossibilidade de prever-se quando um processo terá a
sua execução iniciada, já que isso varia em função do
tempo de execução dos demais processos na fila de
pronto;
 Processos CPU-bound levam vantagem no uso do
processador sobre processos I/O-bound.
O escalonamento FIFO é do tipo não-preemptivo e foi
inicialmente implementado em sistemas
monoprogramáveis com processamento batch.
Atualmente, sistemas de tempo compartilhado utilizam
FIFO com variações. 63
Escalonamento Shortest-Job-First (SJF
scheduling)

Também conhecido como shortest-process-next (SPN 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)

Vantagem sobre o FIFO: redução do tempo médio de turnaround dos


processos, porém no SJF é possível haver starvation para processos com
tempo de processador muito longo ou do tipo CPU-bound.
Uma implementação do escalonamento SJF com preempção é conhecida
como escalonamento shortest-remaining-time (SRT scheduling).
8.7 Escalonamento Cooperativo
Um processo em execução pode voluntariamente liberar o processador,
retornando à fila de pronto e possibilitando que um novo processo seja
escalonado, permitindo assim uma melhor distribuição no uso do
processador.

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

É um escalonamento do tipo preemptivo realizado com base


em um valor associado a cada processo denominado
prioridade de execução.
A perda do uso do processador só ocorrerá no caso de uma
mudança voluntária para o estado de espera ou quando um
processo de prioridade maior passa para o estado de pronto
(preempção por prioridade).
A rotina de escalonamento deve reavaliar as prioridades dos
processos no estado de pronto, para verificar se há processos
com maior prioridade do que
o processo em execução.

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

Neste tipo de escalonamento, os processos podem trocar


de filas durante o seu processamento.
Vantagem: permitir ao SO identificar dinamicamente o
comportamento de cada processo, direcionando-o para
filas com prioridade de execução e mecanismo de
escalonamento mais adequados.
O escalonamento de um processo em uma fila ocorre
apenas quando todas as outras filas de prioridades mais
altas estiverem vazias.
Problemas: complexidade de implementação; mudança de
comportamento de um processo CPU-bound para I/O-
bound pode comprometer seu tempo
de resposta.
74
Política de Escalonamento em Sistemas de Tempo
Compartilhado

Em geral, sistemas de tempo compartilhado caracterizam-


se pelo processamento interativo, no qual os usuários
interagem com as aplicações
exigindo tempos de respostas baixos.
A escolha de uma política de escalonamento para atingir
esse propósito deve levar em consideração o
compartilhamento dos recursos de forma equitativa para
possibilitar o uso balanceado da UCP entre os processos.
Atualmente, a maioria dos sistemas operacionais de tempo
compartilhado utiliza o escalonamento circular com
prioridades dinâmicas

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

• 1) Defina o que é processo e quais os estados que o


mesmo pode assumir?
• 2) Basicamente um processo possui três Segmentos,
descreva quais são ?
• 3) Explique o que é BCB e quais informações são
armazenadas em sua tabela.
4) Qual a diferença entre sistema de tempo
compartilhado e de tempo real?

79
Atividade em Grupo
• Pilares para Defesa
• Boot
• Estrutura de Arquivos
• ...........

81

Você também pode gostar