Você está na página 1de 26

Sistemas Operacionais

Gerência de Processador
Processos
 Conceito fundamental para todos os sistemas operacionais

 Um processo pode ser visto como um programa em execução


Processos
 Exploring /proc File System in Linux

https://www.tecmint.com/exploring-proc-file-system-in-linux/

I will give you quick rundown on /proc’s files:

/proc/cmdline – Kernel command line information.


/proc/console – Information about current consoles including tty.
/proc/devices – Device drivers currently configured for the running kernel.
/proc/dma – Info about current DMA channels.
/proc/fb – Framebuffer devices.
/proc/filesystems – Current filesystems supported by the kernel.
/proc/iomem – Current system memory map for devices.
/proc/ioports – Registered port regions for input output communication with device.
/proc/loadavg – System load average.
/proc/locks – Files currently locked by kernel.
/proc/meminfo – Info about system memory (see above example).
/proc/misc – Miscellaneous drivers registered for miscellaneous major device.
/proc/modules – Currently loaded kernel modules.
/proc/mounts – List of all mounts in use by system.
/proc/partitions – Detailed info about partitions available to the system.
/proc/pci – Information about every PCI device.
/proc/stat – Record or various statistics kept from last reboot.
/proc/swap – Information about swap space.
/proc/uptime – Uptime information (in seconds).
/proc/version – Kernel version, gcc version, and Linux distribution installed.
Processos
Possui 3 elementos básicos:

 Contexto de Software - SW – Características do processo como: identificação,


número máximo de arquivos abertos, privilégios, etc

 Contexto de Hardware - HW – Constitui basicamente o conteúdo dos


registradores

 Espaço de endereçamento – É a área de memória pertencente ao processo,


onde estarão armazenados as instruções e os dados para a execução.
Processos
 O SO materializa o processo através do Bloco de Controle de
Processo – PCB p o n te ir o s

Esta d o d o p r o ce sso
 O PCB de todos os processos
ativos residem na memória N o m e d o p r o ce sso
principal em uma área exclusiva Pr io r id a d e d o p ro ce sso
do SO
Re g istr a d o re s

Lim i te s d e m e m ó r ia
Lista d e a r q u ivo s a b e r to s
..
..
..
..
Estado dos Processos
 Novo: processo está sendo criado
 Execução: as instruções estão sendo executadas
 Espera ou Bloqueado: o processo está esperando algum evento, por exemplo, E/S
 Pronto: o processo está esperando para ser atribuído a algum processador
 Terminado: O processo terminou a execução
Gerenciamento de Processos
Siste m a O p e r a ci o n a l
 Quando um processo está em
execução seu contexto de hardware
é armazenado nos registradores Pr o ce sso A Pr o ce ss o B

e xe cu ta n d o
 Quando o processo A perde a
utilização da CPU para um processo Sa l va r e g istra d o r e s d o
Pr o ce ss o A
B, o sistema deve salvar as
informações do processo A
C a r re g a re g istr a d o re s d o
Pr o ce sso B
 As informações do processo B são
carregadas e xe cu ta n d o

 Posteriormente quando A ganha a Sa l va r e g istra d o r e s d o


Pr o ce sso B
CPU, o estado dos registradores são
restaurados
C a r re g a re g istr a d o re s d o
Pr o ce ss o A

e xe cu ta n d o
Gerenciamento de Processos
 Sobrecarga associada à mudança de estado realizada pelo SO

 salva contexto do processo

 atualiza bloco de controle do processo (PCB)


 gravação do novo estado (pronto/bloqueado/suspenso...)

 gravação do motivo da mudança de estado

 move o processo (PCB) para a fila apropriada

 escolhe novo processo para execução

 atualiza PCB do novo processo e dados relativos a Memória do Processo - MP

 restaura contexto do novo processo


Gerenciamento de Processos
 Tratamento de interrupção
 Processador fica em modo kernel
 informações de controle salvas no PCB

 despachante pode escalonar outro processo depois do tratamento

 ou, no caso de interrupção por E/S, o SO pode escolher o processo


interrompido para continuar a ser executado e economizar tempo na troca
de contexto

 Muito é investido no hardware para minimizar o custo de tratamento de


interrupção
Gerenciamento de Processos
 Interrupções x Exceções
 Interrupções: eventos causados por dispositivos externos ao processador.

Ex: dispositivo de entrada e saída.

Estes eventos podem ocorrer a qualquer momento.
 Exceções: eventos causados pelo próprio processador.

Causados durante a execução de instruções.

Somente sob certas circunstâncias!

Ex: divisão por zero...
Threads
Em (a), sistemas operacionais tradicionais, cada processo tem
um espaço de endereçamento e um único fluxo de controle

 Em (b), com o conceito de multithread, um processo pode


possuir vários fluxos de controle: threads
Threads
 Atualmente, muitos sistemas operacionais oferecem recursos para que um
processo possua múltiplos fluxos de controle

 O modelo de processo é baseado em dois conceitos independentes:


 agrupamento de recursos
 espaço de endereçamento (código e dados do programa)

 arquivos abertos, processos filhos, etc

 execução
 fluxo de execução (thread de execução)

 Contador de programa, registradores, pilha de execução, etc

 Thread é a entidade básica escalonada pela CPU


Threads
 Processos com múltiplos threads podem realizar mais de uma
tarefa de cada vez
Threads
 Processos com múltiplos threads podem realizar mais de uma
tarefa de cada vez

Multithreaded
Thread Thread Thread
Thread
única TCB TCB TCB

Pilha
PCB do Pilha Pilha Pilha
usuário do do do
PCB usuário usuário usuário
Pilha
Espaço de
do Pilha Pilha Pilha
ender. do
núcleo Espaço de do do do
usuário
ender. do núcleo núcleo núcleo
usuário
Threads
 Com múltiplos threads é possível projetar e implementar aplicações
concorrentes de forma eficiente.
 Um mesmo processo pode ter partes diferentes do seu código sendo executadas
concorrentemente ou em paralelo.

 Os threads compartilham o processador da mesma forma que os


processos e passam pelas mesmas mudanças de estado
 Do mesmo modo, a CPU alterna rapidamente entre os threads

 Algumas CPUs possuem suporte de HW direto para multithread e permitem um


chaveamento mais rápido, isso quer dizer SMT (simultaneous multithreading). O que
costumamos chamar de hyperthreading, mas a palavra hyperthreading é um trademark da
intel.
Threads
 Exemplos
 Navegador Web
 Um thread para exibir imagens ou texto
 Outro thread para recuperar dados da rede

 Processador de textos
 Um thread para exibir gráficos/reformatar um texto
 Outro para ler sequência de teclas do usuário
 Outro para verificação ortográfica e gramatical
 Outro para salvamento automático
Threads
 O espaço de endereçamento dos threads de um processo
é compartilhado
 Um thread pode ler, escrever ou apagar a pilha de execução de outro
thread

 Threads podem compartilhar um conjunto de recursos

 Não há proteção entre threads

 Threads devem cooperar e não competir


Benefícios no uso de threads
 Capacidade de resposta
 O multithreading de uma aplicação interativa pode permitir que um programa continue
executando mesmo se parte dele estiver bloqueado
 Compartilhamento de recursos
 Os threads compartilham memória e os recursos dos processos aos quais pertencem
 Economia
 Já que os threads compartilham recursos do processo ao qual pertencem é mais
rápido criar e realizar trocas de contexto
 Threads podem se comunicar sem invocar o kernel já que compartilham
memória e arquivos
 no caso de comunicação entre processos, a intervenção do kernel é necessária para
proteção e sincronização
Threads de usuário
São suportadas acima do kernel e são implementadas por uma biblioteca
de threads no nível do usuário

 A biblioteca fornece suporte à:

 criação e destruição de threads

 envio de mensagens

 escalonamento de threads

 salvamento e recuperação de contexto

 gerenciamento das threads é feito pela aplicação

 sem intervenção do SO
Threads de usuário
 O kernel desconhece a existência de threads:
 As atividades de criação e escalonamento são feitas no espaço do
usuário
 Assim, os threads do usuário são mais rápidos de se gerenciar, pois não é
necessário mudar para o modo kernel

 Pode ser implementado em um SO que não suporte threads

 Desvantagem: Estão em um único processo


 Não aproveita os benefícios do multiprocessamento

 Uma chamada ao sistema bloqueia todas as threads do processo


Threads de kernel
 Gerenciamento é feito pelo kernel do SO

 Neste caso, o núcleo mantém as informações

de gerenciamento dos processos e threads

 A transferência de controle entre threads de um mesmo


processo requer uma mudança para o modo kernel

 Assim, o gerenciamento de threads de kernel é mais lento do que threads de


usuário
Threads de kernel
 O bloqueio de um thread não bloqueia os outros

 O kernel pode escalonar os threads em diferentes


processadores

 Aproveitam melhor a capacidade de multiprocessamento

 Pode ser adotada uma abordagem híbrida:

 Um processo pode ter vários threads de kernel e um thread de kernel


pode ter vários threads de usuário.
Modelo de multithreading
 Modelo muitos-para-um
– Mapeia muitas threads de usuários em apenas uma thread
de kernel – gerência de threads realizada a nível de usuário
– Não permite múltiplas threads em paralelo
– Exemplo: threads escalonadas em ambiente virtual em SO
nativo.
Modelo de multithreading
 Modelo um-para-um
– Mapeia para cada thread de usuário a uma thread de kernel
– Permite maior concorrência que o Muitos-para-um
• Não bloqueia todas, quando uma solicita I/O
– Permite múltiplas threads em paralelo (multiprocessadores)
– Desvantagem: exige que um thread de usuário crie um
thread de kernel (prejudica desempenho)
Modelo de multithreading
 Modelo muitos-para-muitos
– Mapeia para múltiplos threads de usuário um número menor ou
igual de threads de kernel
– Permite múltiplas threads em paralelo (multiprocessadores)
– Cuidado para não ter muitas threads dentro de uma aplicação
– Modelo híbrido: Muitos para muitos e thread usuário ligadas
diretamente a nível de kernel
Sistemas Operacionais
Semana 1 – Estrutura, Chamada de Sistemas, Processos e Threads

Prof. Rafael Burlamaqui Amaral

rafael.amaral@inf.ufpel.edu.br

Você também pode gostar