Buscar

Processos de Sistema

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

Sistemas Operacionais 
Processos 
Prof. Sílvio Fernandes 
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO 
DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS 
CURSO DE CIÊNCIA DA COMPUTAÇÃO 
Exemplo Análogo 
 Imagine um cientista da computação 
preparando um bolo, ele tem uma receita e 
uma cozinha bem suprida com todos os 
ingrediente 
2 
Exemplo Análogo 
 Enquanto prepara o bolo o filho do cientista 
chega chorando dizendo que uma abelha o 
picou 
3 
Exemplo Análogo 
 Então o cientista registra onde ele estava na 
receita, busca um livro de primeiros socorros e 
começa a seguir as instruções 
 
4 
Exemplo Análogo 
 Fazendo analogia com os computadores... 
 O que é a receita? 
 E o cientista? 
 Os ingredientes? 
 Atender o filho? 
 Livro de primeiro socorros? 
5 
Exemplo Análogo 
 Nessa analogia a receita é o programa (algoritmo 
expresso por uma notação adequada) 
 O cientista é o processador (CPU) 
 Os ingredientes são os dados de entrada 
 Atender o filho é a alternância de um processo 
(assar o bolo) para um outro de mais alta 
prioridade (fornecer cuidados médicos) 
 Cada um em um programa diferente (receita X 
livro de primeiro socorros) 
 Quando a picada da abelha for tratada ele 
voltará ao bolo do ponto em que parou 
6 
Processos 
 Processos são uma das mais antigas e 
importantes abstrações que o SO oferece 
 Eles mantêm a capacidade de operações 
(pseudo)concorrentes, mesmo quando há 
apenas uma CPU disponível 
 Eles transformam uma única CPU em múltiplas 
CPUs virtuais 
 Sem a abstração de processos, a ciência da 
computação moderna não existiria 
7 
Processos 
 O conceito mais central em qualquer SO 
 Uma abstração de um programa em 
execução 
 Em um sistema multiprogramado, a CPU salta 
de programa para programa, executando 
cada um deles por dezenas ou centenas de 
milissegundos, dando a ilusão de paralelismo 
(pseudoparalelismo) 
 Todos os softwares que podem executar são 
organizados em processos sequenciais 
8 
Processos 
 Todos os computadores modernos são capazes 
de fazer várias coisas ao mesmo tempo 
 EX: servidor web 
 Solicitações de páginas chegam a toda hora 
 Então ele verifica se a pág. solicitada está em cache 
 Se estiver, é enviada de volta; se não, uma 
solicitação de acesso ao disco é iniciada para buscá-
la 
9 
Processos 
 EX: servidor web 
 Do ponto de vista da CPU, as solicitação de acesso 
ao disco duram uma eternidade 
 Enquanto espera que ela seja concluída, muitas 
outras solicitações podem chegar 
10 
Processos 
 Em sistemas multiprogramados, a CPU chaveia 
de programa para programa, executando 
cada um por dezenas ou centenas de 
milissegundos 
 Nesse contexto, fala-se em pseudoparalelismo, 
para contrastar com o verdadeiro paralelismo 
de hardware dos sistemas multiprocessadores 
(com 2 ou mais CPUs) 
11 
Modelo de Processos 
 Um processo é apenas um programa em 
execução, acompanhado dos valores atuais 
do contador de programa, dos registradores e 
das variáveis 
 Todos os software que podem ser executados 
em um computador (inclusive, algumas vezes o 
próprio SO) são organizados em processos 
sequenciais, ou simplesmente processos 
12 
Modelo de Processos 
 Cada processo tem sua própria CPU virtual, na 
verdade a CPU troca, a todo momento, de um 
processo para outro (multiprogramação) 
(a) Multiprogramação de 4 programas; (b) Modelo conceitual de 4 
processos independentes; (c) Somente 1 programa ativo em cada momento 13 
Modelo de Processos 
 Cada processo com seu próprio controle de 
fluxo (isto é, seu próprio PC lógico) 
 Mas só há 1 PC físico 
14 
Criação de Processos 
 Há 4 eventos principais que fazem com que 
processos sejam criados 
1. Início do sistema 
2. Execução de uma chamada ao sistema de 
criação por um processo em execução 
3. Uma requisição do usuário para criar um novo 
processo 
4. Início de uma tarefa em lote (batch job) 
15 
Criação de Processos 
 Quando um SO é carregado, em geral criam-
se vários processos 
 Alguns em 1º plano (interagem com usuários), outros 
em 2º plano (background) que realizam alguma 
função específica (daemons) 
 No Unix e no MINIX o programa ps relaciona os 
programas em execução, assim como o 
CTRL+ALT+DEL no Windows 
 Experimente no MINIX 
 ps -ax 
16 
Criação de Processos 
 Muitas vezes um processo em execução emitirá 
chamadas ao sistema para criar um ou mais 
novos processos para ajudá-lo em seu trabalho 
 Em sistemas interativos, os usuários podem 
iniciar um programa digitando um comando 
ou clicando em um ícone 
 Em computadores de grande porte o SO cria 
um novo processo quando julgar existir recursos 
para executar um outro job, dos jobs em lote 
17 
Criação de Processos 
 Tecnicamente, em todos os casos, um novo 
processo é criado por um processo existente 
executando uma chamada ao sistema 
 No Unix e MINIX há somente 1 chamada ao 
sistema para criar um novo processo: fork 
 Cria uma cópia idêntica do pai, mesma imagem de 
memória, cadeias de caracteres, arquivos abertos 
 Depois muda a imagem de memória através de 
execve 
 No Windows também: CreateProcess (possui 10 
parâmetros) 
18 
Término de Processos 
 Normalmente há 4 razões 
1. Saída normal (voluntária) 
2. Saída por erro (voluntária) 
3. Erro fatal (involuntário) 
4. Cancelamento por um outro processo (involuntário) 
1. Na maioria das vezes, os processos terminam 
porque fizeram seu trabalho. 
– Chamadas ao sistema 
• Unix e MINIX: exit 
• Windows: ExitProcess 
2. O processo descobre um erro fatal 
– Ex: tentar compilar um arquivo que não existe 
19 
Término de Processos 
3. Erro de programa 
– Instrução ilegal, referência à memória inexistente ou divisão 
por zero 
– No MINIX um processo pode dizer ao SO que deseja tratar 
certos erros sozinho 
4. Um processo executa uma chamada ao sistema para 
cancelar outro processo quando se tem autorização 
– No Unix e MINIX: kill 
– No Windows: TerminateProcess 
 Em alguns sistema, quando um processo 
termina, todos os outros que ele criou são 
eliminados, mas no MINIX não funciona assim 
 
20 
Hierarquia de processos 
 Em alguns sistemas, quando um processo cria 
outro, o pai e o filho continuam, de certa 
maneira, associados 
 No MINIX, um processo, todos os seus filhos e 
descendentes podem formar um grupo de processos 
 Quando um usuário envia um sinal de teclado, o sinal 
é entregue ao grupo, e cada processo decide o que 
fazer com ele 
 No Windows não existe hierarquia de processos. 
Quando um processo é criado o pai ainda tem um 
identificador (handle) que pode controlar o filho 
21 
Estados de processos 
 Os três estados de um processo 
1. Em Execução (realmente usando a CPU naquele 
instante) 
2. Pronto (executável; temporariamente parado para 
dar lugar a outro processo) 
3. Bloqueado (incapaz de executar enquanto um 
evento externo não ocorrer) 
 Um processo bloqueia por não poder 
prosseguir ou porque o SO decidiu alocar a 
CPU para outro processo por algum tempo 
22 
Estados de processos 
 Logicamente 1 e 2 são similares 
 O caso 3 é diferente pois o processo não pode 
executar, mesmo que a CPU não tenha nada 
para fazer 
23 
Estados de processos 
 A transição 1 ocorre quando um processo 
descobre que ele não pode prosseguir 
 As transições 2 e 3 são causadas pelo 
escalonador de processos sem que o processo 
saiba disso 
 A transição 4 ocorre quando acontece um 
evento externo pelo qual o processo estava 
aguardando 
24Estados de processos 
 O nível mais baixo do SO é o escalonador 
 Todo o tratamento de interrupção e detalhes sobre a 
inicialização e o bloqueio de processos estão ocultos 
no escalonador 
25 
Estados de processos 
 O restante do SO é estruturado elegantemente 
na forma de processos 
 Esse modelo é utilizado no MINIX 
 O escalonador não é o único elemento na 
camada inferior 
 Também há suporte para tratamento de interrupções 
 Comunicação entre processos 
26 
Implementação de processos 
 Para implementar o modelo de processos, o SO 
mantém uma tabela de processos, com uma 
entrada para cada processo 
 Essa entrada também pode ser chamada de 
blocos de controle de processo (PCB – process 
control block) 
 Essa tabela mantém informações sobre o 
estado dos processos (registradores, pilha, 
memória alocada, arquivos abertos, 
contabilidade, escalonamento etc.) 
27 
Implementação de processos 
 Campos de entrada de uma tabela de 
processos 
28 
Implementação de processos 
 Em uma máquina com 1 CPU e muitos 
dispositivos de E/S, há uma locação de 
memória para cada classe de dispositivo (vetor 
de interrupções) 
 Esse vetor contem os endereços dos 
procedimentos dos serviços de interrupção 
 Quando acontece uma interrupção, o 
hardware de interrupção coloca na pilha atual 
as informações do processo interrompido, daí 
por diante é papel do software fazer o 
procedimento de serviços da interrupção 29 
Implementação de processos 
 Esqueleto do que o nível mais baixo do SO faz 
quando ocorre uma interrupção 
30 
Implementação de processos 
 Processos podem ser classificados como 
 CPU-bound: quando passa a maior parte do tempo 
no estado de execução, utilizando o processador, ou 
pronto 
 I/O-bound: passa maior parte do tempo em espera 
31 
(a) CPU-bound
tempo tempo
E/ S E/ S
UCP UCP
(b) I/ O-bound
Modelagem de Multiprogramação 
 O uso da multiprogramação pode melhorar a 
utilização da CPU 
 De mode geral, se o processo médio computa 
apenas durante 20% do tempo em que está na 
memória, com 5 processos na mem. a cada 
vez, a CPU deveria estar ocupada o tempo 
todo? 
 Não exatamente, este modelo é otimista e 
pouco realista 
32 
Modelagem de Multiprogramação 
 Suponha que um processo gaste uma fração p 
de seu tempo esperando E/S 
 Com n processos simultâneos na memória, a 
probabilidade dos n processos estarem 
esperando E/S é pn 
 Utilização de CPU = 1 – pn 
33 
Modelagem de Multiprogramação 
 Se os processos gastarem 80% de seus tempos 
esperando E/S, no mínimo 10 processos 
deveriam estar simultaneamente na memória 
para que o grau de ociosidade da CPU 
pudesse se manter abaixo de 10% 
34 
Modelagem de Multiprogramação 
 Suponha que um computador tenha 512 MB de 
memória, com um SO que ocupa 128 MB e 
cada processo também empregue 128 MB. 
 Esses tamanhos possibilitam que 3 programas 
estejam na memória simultaneamente 
 Considerando-se, em média, um processo 
passa 80% do seu tempo em espera por E/S 
 Tem-se utilização de CPU = 1- 0,83 = 49% 
35 
Modelagem de Multiprogramação 
 A adição de 512 MB de memória permite 
aumentar o grau de multiprogramação de 3 
para 7, aumentando a utilização de CPU para 
79% (aumento de 30%) – bom investimento 
 Adicionando outros 512 MB a utilização de CPU 
aumenta apenas de 79% para 91% (ganho de 
12%) – não tão bom 
36 
Exercícios 
1. Escreva o programa a seguir, compile e 
execute 
 
 
 
 
 
 
 O que será impresso? Por quê? 
37 
#include <stdio> 
void main(){ 
 p = fork(); 
if (p == 0) 
 printf("FILHO\n"); 
else 
 printf("PAI\n"); 
} 
Exercícios 
2. Escreva o programa a seguir, compile e 
execute 
 
 
 
 
 
 
 O que será impresso? Por quê? 
38 
#include <stdio> 
void main(){ 
 int x, y, z; 
 x = fork(); 
y = fork(); 
z = fork(); 
printf(“Ola... \n"); 
sleep(); 
} 
Exercícios 
3. Escreva o programa a seguir, compile e 
execute 
 
 
 
 
 
 
 
 O que será impresso? Por quê? 
39 
#include <stdio.h> 
#include <unistd.h> 
 
int main() 
{ 
 int i; 
 
 for (i=0; i<2; ++i) { 
 fork(); 
 printf("%d",i); 
 } 
 return(0); 
} 
Respostas do Exercícios 
1. Será impresso: Filho e Pai 
 Porque o processo pai cria um processo filho que 
também imprime 
2. Serão impressos 8 “olá” 
 Porque com o 1º fork ficam 2 processo, os quais cada um 
executará o 2º fork resultando em 4 processos. Os 4 
processos executam o 3º fork resultando em 8 
 Rode o comando “ps“ e veja quanto processos estão 
rodando 
 Em seguida use o comando “kill PID” para matar cada 
processo 
3. Será impresso: 0 1 0 1 0 1 0 1 
 A explicação tem a ver com as 2 outras respostas 
 
 
 
 
 
 
40 
Referências 
 TANENBAUM, Andrew S. Sistemas Operacionais 
Modernos. 3ª Ed., Prentice Hall, 2009. 
 TANENBAUM, Andrew S.; WOODHULL, Albert S. 
Sistemas Operacionais: Projeto e Implementação. 
3ª Ed., Prentice Hall, 2008. 
 MACHADO, Francis B.; MAIA, Luiz P. Arquitetura de 
Sistemas Operacionais. 3a. Edição. LTC, 2004. 
 DEITEL, Harvey; DEITEL, Pau; STEINBUHLER, Kate. 
Sistemas Operacionais. 3ª. Edição. Prentice Hall, 
2005 
 SILBERSCHATZ, Abraham; GALVIN, Peter; GAGNE, 
Greg. Fundamentos de Sistemas Operacionais. 6ª. 
Edição. LTC, 2004. 
41