Buscar

Fundamentos de Sistemas Operacionais - Seção 2

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 65 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 65 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 65 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

Prévia do material em texto

Fundamentos de Sistemas 
Operacionais 
Seção 2: 
Processos e Threads 
Profa. Dra. Maria Teodora Ferreira 
maria.ferreira@bilac.com.br 
Objetivo: 
O aluno deverá ser capaz de 
entender sobre o funcionamento de 
processos e threads. 
2 
PROCESSO 
3 
Capítulo 4 
Capítulo 2 
Capítulo 2 
Capítulo 5 
4 
Introdução 
A gerência de um ambiente multiprogramável é função 
exclusiva do SO. 
O SO deve controlar a execução dos diversos 
programas e o uso concorrente do processador e demais 
recursos. 
Para isso, um programa ao ser executado, deve estar 
sempre associado a um processo. 
 
 
 
 
 
5 
Introdução 
A gerência de processos é uma das principais funções 
de um SO, possibilitando aos programas: 
alocar recursos, 
compartilhar dados, 
trocar informações e 
sincronizar suas execuções. 
 
 
 
 
 
 
 
6 
Introdução 
Em sistemas multiprogramáveis os processos são 
executados concorrentemente, compartilhando o uso: 
do processador, 
da memória principal e 
dos dispositivos de entrada e saída, 
dentre outros recursos. 
 
 
 
 
 
 
 
7 
Introdução 
Nos sistemas com múltiplos processadores existe: 
 a concorrência de processos pelo uso do processador; 
a possibilidade de execução simultânea de processos 
nos diferentes processadores. 
 
 
 
 
 
 
 
8 
Processo 
 Um processo (às vezes chamado de tarefa ou de processo 
sequencial) pode ser entendido inicialmente como um 
programa em execução. 
 
 É uma entidade ativa que compete por recursos oferecidos 
pelo sistema (acesso a discos, periféricos e principalmente à 
CPU) e também interage com outros processos. 
 
 
 
 
 
 
9 
Processo 
 A troca de um processo por outro no processador, 
gerenciada pelo SO, é denominada mudança de contexto. 
 
 
 
 
 
 
é dessa maneira que o SO 
implementa e gerencia um ambiente 
multiprogramável. 
10 
Estrutura do Processo 
Um processo é formado por três 
partes, conhecidas como: 
contexto de hardware; 
contexto de software; 
espaço de endereçamento, 
que juntos mantêm todas as 
informações necessárias à 
execução de um programa. 
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
11 
Estrutura do Processo – 
Contexto de Hardware 
 Armazena o conteúdo dos registradores gerais da UCP, além dos 
registradores de uso específico. 
 Processo está em execução  o seu contexto de hardware está 
armazenado nos registradores do processador. 
 Processo perde a utilização da UCP  o sistema salva as 
informações no contexto de hardware do processo. 
 Em sistemas multiprogramáveis  os processos se alternam na 
utilização da UCP, podendo ser interrompidos e, posteriormente, 
restaurados. 
 
12 
Estrutura do Processo – 
Contexto de Software 
 São especificados limites e características dos recursos que 
podem ser alocados pelo processo, como: 
O número máximo de arquivos abertos simultaneamente, 
Prioridade de execução, entre outras. 
A maior parte das informações provém de um arquivo do SO, 
conhecido como arquivo de usuários. 
 Neste arquivo são especificados os limites dos recursos que cada 
processo pode alocar, sendo gerenciado pelo administrador do 
sistema. 
 
13 
Estrutura do Processo – 
Contexto de Software 
Outras informações presentes neste contexto são geradas 
dinamicamente ao longo da execução do processo. 
É composto por três grupos de informações sobre o 
processo: 
Identificação, 
Quotas e 
Privilégios. 
 14 
Estrutura do Processo – 
Contexto de Software: Identificação 
 
 Cada processo criado pelo sistema recebe uma identificação única 
(PID – process identification) representada por um número. 
 Alguns sistemas, além do PID, identificam o processo através de 
um nome. 
 O processo também possui a identificação do usuário ou processo 
que o criou (owner). 
 Cada usuário possui uma identificação única no sistema (UID – 
user identification), atribuída ao processo no momento de sua 
criação. 15 
Estrutura do Processo – 
Contexto de Software: Quotas 
 São os limites de cada recurso do sistema que um processo 
pode alocar. 
 Alguns exemplos de quotas presentes na maioria dos SO são: 
 Número máximo de arquivos abertos simultaneamente; 
 Tamanho máximo de memória principal e secundária que o processo 
pode alocar; 
 Número máximo de operações de E/S pendentes; 
 Número máximo de processos, subprocessos e threads que podem 
ser criados. 
 
16 
Estrutura do Processo – 
Contexto de Software: Privilégios 
 Definem as ações que um processo pode fazer em relação a 
ele mesmo, aos demais processos e ao SO. 
 A maioria dos SO disponibiliza uma conta de acesso com 
todos estes privilégios disponíveis, com o propósito do 
administrador gerenciar o SO. 
 No sistema Unix existe a conta “root”. 
 No MS Windows a conta “administrador”. 
17 
Estrutura do Processo – 
Espaço de Endereçamento 
É a área de memória pertencente ao processo onde 
instruções e dados do programa são armazenados para 
execução. 
Cada processo possui seu próprio espaço de 
endereçamento, que deve ser devidamente protegido do 
acesso dos demais processos. 
18 
Estrutura do Processo 
Programa
Contexto de
Software
prioridade de
execução
registrador PC
data/ hora
de criação
tempo de
processador
registrador SP
quotas
privilégios
endereços de memória
principal alocados
registrador
de status
owner (UID)
PID
nome
registradores
gerais
Contexto de
Hardware
Espaço de
Endereçamento
Características da Estrutura de um Processo 19 
Diferenciação entre 
Programa e Processo 
Programa 
 Entidade estática e permanente: 
Sequência de instruções; 
Passivo sob o ponto de vista do SO. 
Processo 
Entidade dinâmica: 
Altera o seu estado, a medida que avança sua execução. 
Composto por programa (código), dados e contexto (valores). 
 
 
 
 
 
20 
Blocos de controle de processo 
O processo é implementado pelo SO 
através de uma estrutura de dados 
chamada bloco de controle de 
processo (Process Control Block - 
PCB). 
 
 
 
 
 
 
 
.
.
.
.
..
.
.
ponteiros
Estado do processo
Registradores
Nome do processo
Prioridade do processo
Limites de memória
Lista de arquivos abertos
21 
Blocos de controle de processo 
A partir do PCB, o SO mantém todas 
as informações sobre: 
• o contexto de hardware, 
• contexto de software e 
• espaço de endereçamento de cada 
processo. 
 
 
 
 
 
 
 
.
.
.
.
..
.
.
ponteiros
Estado do processo
Registradores
Nome do processo
Prioridade do processo
Limites de memória
Lista de arquivos abertos
22 
Blocos de controle de processo 
Normalmente, eles incluem as seguintes informações: 
 Número de identificação de processo (PID); 
 Estado do processo; 
 Contador de programa; 
 Prioridade de escalonamento; 
 Credenciais; 
 Um ponteiro para o processo-pai; 
 Ponteiros para os processos-filho; 
 Ponteiros para localizar os dados e instruções do processo na memória; 
 Ponteiros para recursos alocados, entre outras. 
 
 
 
 
 
23 
Blocos de controle de processo 
Os PCBs de todos os processos ativos residem na memória 
principal em uma área exclusiva do SO. 
O tamanho desta área élimitado por um parâmetro do SO que 
permite especificar o número máximo de processos que podem 
ser suportados simultaneamente pelo sistema. 
Toda a gerência dos processos é realizada por intermédio de 
chamadas a rotina do SO que realizam operações como: 
– criação, alteração de característica, visualização, eliminação, 
sincronização, suspensão de processos, dentre outras. 
 
 
 
 
24 
Estados 
do 
processo 
25 
Estados do Processo 
Muitas vezes os processos precisam interagir com 
outros. 
Um processo pode gerar uma saída que o outro 
processo usa como entrada. 
À medida que o processo executa, ele muda de estado. 
O estado de um processo é definido em parte pela 
atividade atual desse processo. 
 
 
 
 
 
26 
Estados do Processo 
Os processos passam por diferentes estados ao longo do 
seu processamento, em função de 
• Eventos gerados pelo SO ou 
• Pelo próprio processo. 
Um processo ativo pode encontrar-se em três estados 
diferentes: 
– Execução (running); 
– Pronto (ready); 
– Espera (wait). 
 
 
 
 
27 
Estados do Processo 
Execução: 
 Quando está sendo processado pela UCP. 
 
Pronto: 
 Quando aguarda apenas para ser executado. 
 O SO é responsável por determinar a ordem e os critérios 
pelos quais os processos em estado de pronto devem 
fazer uso do processador  escalonamento. 
 
 
 
 
 
 
 
 
 
28 
Estados do Processo 
29 
Espera/Bloqueado: 
Aguarda por algum evento externo ou por algum recurso para 
prosseguir seu processamento. 
 
Um processo bloqueia porque: 
• está esperando por uma entrada ainda não disponível  
 a suspensão é inerente ao problema. 
• o SO decide alocar a CPU para outro processo por algum 
tempo  É uma tecnicalidade do sistema. 
Mudança de Estado 
do Processo 
Basicamente, existem 4 mudanças de estado que podem 
ocorrer a um processo: 
Pronto  Execução. 
Execução  Espera. 
Espera  Pronto. 
Execução  Pronto. 
 
 
 
 
 
 
 
30 
Mudança de Estado 
do Processo 
a) Pronto  Execução 
b) Execução  Espera 
c) Espera  Pronto 
d) Execução  Pronto 
 
 
 
 
 
 
 
Estado de Execução
Estado de Espera Estado de Pronto
a
c
d
b
31 
Criação e Eliminação 
de Processos 
Há 4 eventos principais que fazem com que processos 
sejam criados: 
Início do sistema. 
Execução de uma chamada de sistema de criação de 
processo por um processo em execução. 
Uma requisição do usuário para criar um novo processo. 
Início de uma tarefa em lote (batch job). 
 
 
 
 
32 
Criação e Eliminação 
de Processos 
Criação de um processo 
Ocorre a partir do momento em que o SO adiciona um 
novo PCB à sua estrutura e aloca um espaço de 
endereçamento na memória para uso. 
A partir da criação do PCB, o SO já reconhece a 
existência do processo, podendo gerenciá-lo e associar 
programas ao seu contexto para serem executados. 
 
 
 
 
 
 
 
 
33 
Criação e Eliminação 
de Processos 
Eliminação de um processo 
Todos os recursos associados ao processo são 
desalocados. 
O PCB é eliminado pelo SO. 
 
 
 
 
 
 
 
 
34 
Criação e Eliminação 
de Processos 
Terminado (exit) 
Não poderá ter mais nenhum programa executado no seu 
contexto. 
O SO ainda mantém suas informações de controle presentes 
em memória. 
Um processo neste estado não é considerado mais ativo, 
mas como o PCB ainda existe, o SO pode recuperar 
informações. 
 
 
 
 
 
 
 
 
 
35 
Criação e Eliminação 
de Processos 
Terminado (exit) 
O término de processos pode ocorrer por razões como: 
Término normal de execução; 
Eliminação por um outro processo; 
Eliminação forçada por ausência de recursos disponíveis no 
sistema. 
 
 
 
 
 
 
 
36 
Processos CPU-bound e I/O-bound 
Classificados de acordo com a utilização do processador e dos 
dispositivos E/S. 
 
 
 
 
 
 
 
 
CPU-bound (ligado à CPU) I/O-bound (ligado à E/S) 
• Quando passa a maior parte do 
tempo no estado de execução, 
utilizando o processador, ou 
pronto. 
• Realiza poucas operações de 
leitura e gravação. 
• É encontrado em aplicações 
científicas que efetuam muitos 
cálculos. 
• Quando passa a maior 
parte do tempo no estado 
de espera. 
• Realiza um elevado número 
de operações de E/S. 
• É encontrado em aplicações 
comerciais. 
37 
Processos 
CPU-bound e I/O-bound 
(a) CPU-bound
tempo tempo
E/ S E/ S
UCP UCP
(b) I/ O-bound
38 
Processos 
Foreground e Background 
Um processo possui sempre pelo menos dois canais de 
comunicação associados a sua estrutura. 
Foreground Background 
• é aquele que permite a 
comunicação direta do usuário 
com o processo durante o seu 
processamento. 
• Tanto o canal de entrada 
quanto o de saída estão 
associados a um terminal com 
teclado, mouse e monitor. 
• é aquele onde não existe a 
comunicação com o usuário 
durante o seu 
processamento. 
• Os canais de E/S não estão 
associados a nenhum 
dispositivo de E/S interativo, 
mas em geral a arquivos de 
E/S. 
39 
Processos 
Foreground e Background 
(a) Processo Foreground
(b) Processo Background
saída
saída
arquivo
de saída
terminalterminal
entrada
entrada
arquivo
de entrada40 
Processos 
Foreground e Background 
 É possível associar o canal de saída de um processo ao 
canal de entrada de um outro processo. 
 Nesse caso dizemos que existe um pipe ligando os dois 
processos. 
entrada do
Processo A
saída do
Processo B
saída do
Processo A
entrada do
Processo B
Processo A Processo B
41 
Formas de Criação 
de Processos 
 Um processo pode ser criado de diversas maneiras: 
 
 Logon interativo 
O usuário fornece ao sistema um username e uma senha. 
Um processo foreground é criado. 
 
Via linguagem de comandos 
Um usuário pode, a partir do seu processo, criar novos processos 
por intermédio de comandos da linguagem de comandos. 
 
Via rotina do SO 
Um processo pode ser criado a partir de qualquer programa 
executável com o uso de rotinas do SO. 
42 
Processos independentes, 
subprocessos e threads 
 Processos independentes, subprocessos e threads são 
maneiras diferentes de implementar a concorrência 
dentro de uma aplicação. 
 Busca-se subdividir o código em partes para 
trabalharem de forma cooperativa. 
 
 
 
 
43 
Subprocessos 
– São processos criados 
dentro de uma estrutura 
hierárquica. 
– Processo criador  
processo pai. 
– O novo processo é 
chamado de subprocesso 
ou processo filho. 
 
 
 
Processo A
Processo C
Processo B
Processo E
Processo D
44 
Subprocessos 
O subprocesso pode criar outras estruturas de subprocessos. 
Dependência existente entre o processo criador e o 
subprocesso. 
Caso um processo pai deixe de existir, os subprocessos 
subordinados são automaticamente eliminados. 
Possuem seu próprio PCB. 
Podem compartilhar quotas com o processo pai. 
 
 
 
 
 
45 
Threads 
 Introduzido na tentativa de reduzir o tempo gasto em criação, 
eliminação e troca de contexto de processos em aplicações 
concorrentes, bem como economizar os recursos do sistema como 
um todo. 
 Threads compartilham o processador da mesma maneira que um 
processo. 
 Cada thread possui seu próprio contextode hardware. 
 Compartilha o mesmo contexto de software e espaço de 
endereçamento com os demais threads do processo. 
 
 
 
 
 
 
 
 
 
46 
Processos do SO 
 O processo pode também ser implementado na própria 
arquitetura do SO. 
 A arquitetura microkernel implementa o uso intensivo de 
processos. 
 Alguns serviços que o SO pode implementar através de 
processos: 
 Segurança, serviços de rede, contabilização do uso de recursos, 
interface de comandos (shell), entre outros. 
47 
Sinais 
 É um mecanismo que permite notificar processos de 
eventos gerados pelo SO ou por outros processos. 
 É fundamental para a gerência de processos, além de 
possibilitar a comunicação e sincronização entre processos. 
 
 
48 
THREAD 
49 
Thread 
Thread = “fluxo”, “fio”. 
Fluxo de execução dentro de um processo. 
É às vezes chamado de processo leve (LWP). 
 Por que alguém desejaria ter um tipo de processo dentro 
de um processo? 
 Constata-se que há várias razões para existirem esses 
miniprocessos, chamados threads. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50 
Threads - Motivação 
O modelo de programação se torna mais simples se 
decompomos uma aplicação em múltiplos threads 
sequenciais. 
Eles são mais fáceis (isto é, mais rápidos) de criar e 
destruir que os processos. 
 
 
 
 
 
 
 
 
 
 
 
 
 
51 
Threads - Benefícios 
Capacidade de resposta. 
Compartilhamento de recursos. 
 Os threads compartilham a memória e os recursos do 
processo as quais pertencem. 
Economia. 
 É mais econômico criar e realizar a troca de contexto de threads. 
Possibilidade de minimizar a alocação de recursos do 
sistema. 
 
 
 
 
 
 
52 
Ambiente Monothread 
 Um processo suporta apenas um programa no seu 
espaço de endereçamento. 
 Exemplos de sistemas monothreads: 
 MS-DOS. 
 As primeiras versões do MS-Windows. 
 Versões mais antigas do UNIX. 
 
 
 
 
 
 
Thread ThreadThread
53 
Ambiente Multithread 
 Com múltiplos threads. 
 O processo tem pelo menos 
um thread de execução. 
 Pode compartilhar o seu 
espaço de endereçamento 
com inúmeros outros 
threads. 
 
 
 
 
 
 
Contexto
de hardware
Contexto
de hardware
Contexto
de hardware
Espaço de
endereçamento
C
o
n
te
x
to
 d
e
s
o
ft
w
a
r
e
Thread 3Thread 2Thread 1
54 
Ambiente Multithread 
 Compartilham o processador da mesma maneira que 
processos e passam pelas mesmas mudanças de 
estado (execução, espera e pronto). 
 Para permitir a troca de contexto entre diversos threads, 
cada thread possui seu próprio contexto de hardware. 
 Cada thread possui seu contexto de hardware individual. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55 
Ambiente Multithread 
 São implementados internamente através de uma estrutura 
de dados denominada bloco de controle do thread (TCB). 
 O TCB armazena, além do contexto de hardware, mais algumas 
informações relacionadas exclusivamente ao thread, como 
prioridade, estado de execução, entre outras. 
 Como threads de um mesmo processo compartilham o 
mesmo espaço de endereçamento, não existe qualquer 
proteção no acesso à memória, permitindo que um thread 
possa alterar facilmente dados de outros. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56 
57 
Estados de Thread 
Threads POSIX 
Pacote de threads 
definido por 
Pthreads. 
A maioria do sistema 
UNIX o suporta. 
Todos os threads 
Pthreads têm certas 
propriedades. 
58 
Arquitetura e Implementação 
Threads podem ser oferecidos: 
 por uma biblioteca de rotinas fora do núcleo do SO 
(modo usuário), 
 pelo próprio núcleo do SO (modo kernel), 
 uma combinação de ambos (modo híbrido) ou 
 por um modelo conhecido como scheduler activations. 
 
 
 
 
 
 
 
 
 
 
59 
Threads em Modo Usuário 
 São implementados pela aplicação e não pelo SO. 
 Deve existir uma biblioteca de rotinas. 
 Responsabilidade exclusiva da aplicação gerenciar e 
sincronizar os diversos threads existentes. 
Vantagem: 
 Possibilidade de implementar aplicações multithreads mesmo 
em SO que não suportam threads. 
 São rápidos e eficientes por dispensarem acessos ao kernel 
do SO, evitando assim a mudança de modo de acesso 
(usuário-kernel-usuário) 
 
 
 
 
 
 
 
 
 
 
 
60 
Threads em Modo Kernel 
 São implementados diretamente pelo núcleo do SO, 
através de chamadas a rotinas do sistema. 
 O SO sabe da exigência de cada thread e pode escaloná-
lo individualmente. 
 Problema: Baixo desempenho 
 Utilizam chamadas a rotinas do sistema e, consequentemente, 
várias mudanças no modo de acesso. 
 
 
 
 
 
 
 
 
 
 
 
61 
Implementação de Threads 
Threads em modo 
usuário 
Threads em modo 
kernel 
Modo
usuário
Modo
kernel
Kernel
Biblioteca
Th
re
ad
 0
Th
re
ad
 4
Th
re
ad
 3
Th
re
ad
 2
Th
re
ad
 1
Modo
usuário
Modo
kernelKernel
Th
rea
d 0
Th
rea
d 4
Th
rea
d 3
Th
rea
d 2
Th
rea
d 1
62 
Threads em Modo Híbrido 
 Combina as vantagens dos threads implementados em 
modo usuário (TMU) e modo kernel (TMK). 
 Um processo pode ter vários TMKs e, por sua vez, um 
TMK pode ter vários TMUs. 
 O programador desenvolve a aplicação em termos de 
TMUs e especifica quantos TMKs estão associados ao 
processo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63 
Scheduler Activations 
• Este pacote combina o melhor das 
duas arquiteturas. 
• O núcleo do sistema troca 
informações com a biblioteca de 
threads utilizando uma estrutura de 
dados chamada scheduler 
activations. 
– A biblioteca em modo usuário e o 
kernel se comunicam e trabalham 
de forma cooperativa. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64 
Evitar as mudanças de 
modos de acesso 
desnecessárias (usuário-
kernel-usuário). 
gentilezascotidianas.org 
65

Continue navegando