Você está na página 1de 59

Sistemas Operativos

Capítulo 3
Tarefas, SMP e Microkernels
Tarefas, SMP e Microkernels
 Processos e Tarefas
 Arquitectura SMP
 Microkernels
 Gestão de Tarefas, Processos e SMP em
W2k
 Gestão de Tarefas e Processos em
Linux

Paulo Neves Sistemas Operativos 2


Processo
 Posse de recursos
 Espaço de endereçamento virtual
 Recursos a ele alojados
 SO utiliza mecanismos de protecção
 Escalonamento/execução
 Estado e prioridade
 Entidade escalonada e despachada pelo SO

Paulo Neves Sistemas Operativos 3


Análise
 Características são independentes entre
si
 Podem ser tratadas de forma independente
pelo SO
 Abordagem tomada por SOs recentes
 W2K
 Linux

Paulo Neves Sistemas Operativos 4


Processo e Tarefa
 Processo
 Posse de recursos
 Tarefa
 Unidade escalonável

Paulo Neves Sistemas Operativos 5


Multitarefa
 Multithreading
 Suporte para diversas tarefas dentro de
um processo
 Distinção entre conceito de tarefa e
processo
 A tarefa é a entidade escalonável e não
o processo  comutação de tarefas

Paulo Neves Sistemas Operativos 6


Processo
 Espaço de endereçamento virtual
 Armazena a sua imagem
 Acesso protegido
 Processadores
 Outros processos
 Ficheiros e recursos de E/S (dispositivos e
canais)

Paulo Neves Sistemas Operativos 7


Tarefa
 Estado de execução da tarefa
 Contexto da tarefa
 Programa independente com PC
 Pilha de execução
 Espaço de armazenamento por tarefa para
variáveis locais
 Acesso à memória e recursos do processo,
partilhado com as outras tarefas deste

Paulo Neves Sistemas Operativos 8


Processo versus Tarefa

Paulo Neves Sistemas Operativos 9


Vantagens de um ambiente
multitarefa
 Tempo de criação versus criação de
processo
 Tempo de terminação versus
terminação de processo
 Comutação de tarefas versus
comutação de processos
 Comunicação intra-processo de tarefas
sem envolver o kernel

Paulo Neves Sistemas Operativos 10


Estados de uma tarefa
 Running, Ready e Blocked
 Memória virtual está relacionado com o
processo em si
 Processo é suspenso  todas as tarefas
são suspensas

Paulo Neves Sistemas Operativos 11


Operações Associadas com a
Mudança Estado I
 Spawn
 Processo criado  criação de uma tarefa
 Tarefa pode criar nova tarefa
 Ponteiro para a primeira instrução
 Contexto de registos e espaço de pilha
 Nova tarefa fica no estado Ready

Paulo Neves Sistemas Operativos 12


Operações Associadas com a
Mudança de Estado II
 Block
 Aguarda ocorrência de evento
 Unblock
 Evento que bloqueou a tarefa ocorre
 Finish
 Tarefa é concluída
 Contexto é desalojado

Paulo Neves Sistemas Operativos 13


Tarefas de Utilizador Puras
 Kernel não sabe da existência de
tarefas
 Livraria para tarefas
 Suporte interno no processo a multitarefa
 Criação interna de novas tarefas
 Gestão interna de tarefas

Paulo Neves Sistemas Operativos 14


Vantagens de Tarefas de
Utilizador Puras
 Não é necessário entrar em modo
kernel
 Evita comutação de modo
 Escalonamento pode ser específico da
aplicação
 Adequação
 Isolamento do escalonador do SO
 Podem ser executadas em qualquer SO
 Livraria é partilhada
Paulo Neves Sistemas Operativos 15
Desvantagens
 Chamadas de sistema bloqueantes
 Bloqueio de todo o processo e suas tarefas
 Não tira partido do multiprocessamento
 Kernel não sabe da existência de tarefas
 Alocação de um processo a um
processador

Paulo Neves Sistemas Operativos 16


Soluções
 Abandonar o modelo de tarefas
 Criação de processos e tarefas
 Perde-se a vantagem
 Performance de comutação
 Jacketing
 Transformação de primitivas bloqueantes
em não bloqueantes

Paulo Neves Sistemas Operativos 17


Tarefas de Kernel
 Trabalho de gestão é efectuado pelo
kernel
 API para as tarefas de kernel
 W2K, Linux e OS/2
 Qualquer aplicação pode ser multitarefa
 Escalonamento com base na tarefa
 Necessária comutação de modo
Paulo Neves Sistemas Operativos 18
Relacionamentos
Relacionamento Descrição SOs exemplo
1:1 Cada tarefa de execução é um processo único MS-DOS, implementações
com o seu próprio espaço de endereçamento e tradicionais do UNIX
recursos
M:1 Um processo define um espaço de endereçamento Windows NT, Solaris, Linux, OS/”,
e posse dinâmica de recursos. Múltiplas tarefas OS/390, MACH
podem ser criadas e executadas dentro do
processo
1:M Uma tarefa pode migrar de um processo para Ra (Clouds), Emerald
outro. Permite a deslocação de uma tarefa entre
sistemas diversos
M:N Combina os atributos das duas abordagens TRIX
anteriores (1:M e M:1)

Paulo Neves Sistemas Operativos 19


Arquitecturas I
 SISD
 Único processador
 Único fluxo de instruções
 SIMD
 Máquina única controla vários
processadores
 Memória associada a cada elemento

Paulo Neves Sistemas Operativos 20


Arquitecturas II
 MISD
 Sequência única de dados
 Conjunto de processadores, cada um
executa uma sequência de instruções
diferente
 MIMD
 Conjunto de processadores
 Diferentes sequências de instruções
 SMP
Paulo Neves Sistemas Operativos 21
Resumo das Arquitecturas

Paulo Neves Sistemas Operativos 22


Symmetric Multiprocessing
 Kernel pode ser executado em qualquer
processador
 Cada processador efectua auto-
escalonamento
 MIMD com memória partilhada complica
o SO

Paulo Neves Sistemas Operativos 23


Arquitectura SMP

Paulo Neves Sistemas Operativos 24


Considerações no desenho do
SO
 Utilizador deve ver a máquina como
uniprocessador
 Processos ou tarefas simultâneas em
concorrência
 Escalonamento
 Sincronização
 Gestão de memória
 Fiabilidade e tolerância a falhas
Paulo Neves Sistemas Operativos 25
Microkernels
 Pequeno núcleo do SO
 Fundação para extensões modulares
 Definição ambígua
 Tamanho?
 Como desenhar device drivers?
 Operações em modo kernel ou utilizador?
 Aproveitar código ou fazer do nada?

Paulo Neves Sistemas Operativos 26


Kernel em camadas versus
Microkernel

Paulo Neves Sistemas Operativos 27


Benefícios I
 Interfaces uniformes
 Sistema de passagem de mensagens
 Interface uniforme para solicitações
 Extensibilidade
 Novo hardware
 Novos serviços
 Portabilidade
 Código específico do processador reside no
kernel
Paulo Neves Sistemas Operativos 28
Benefícios II
 Fiabilidade
 Maior software  menor fiabilidade
 Pequeno kernel pode ser mais facilmente
testado
 Suporte a SDs
 Clusters controlados por um SO distribuído
 IDs únicos  imagem ao nível do
microkernel é única
Paulo Neves Sistemas Operativos 29
Benefícios III
 Suporte para SOs orientados ao objecto
 Fornecimento de disciplina ao desenho do
microkernel
 Possibilita o desenvolvimento de extensões
modulares

Paulo Neves Sistemas Operativos 30


Composição do Microkernel
 Funções que dependem do hardware
 Gestão de memória
 Comunicação inter-processo
 Gestão de E/S
 Gestão de interrupções

Paulo Neves Sistemas Operativos 31


Sistema de Gestão de
Memória Virtual
 Encontra-se fora do kernel
 No kernel existe o sistema de
mapeamento de endereços
 Virtual  físico
 Gestor de Memória Virtual
 Decide
 Páginas a substituir
 Páginas a trazer da memória secundária
Paulo Neves Sistemas Operativos 32
Gestão de Tarefas, Processos
e SMP em W2k
 Estrutura simples e generalista dos
processos
 Implementação como objectos
 Processo pode conter uma ou mais tarefas
 Os objectos (tarefas e processos) têm
integradas capacidades de sincronização

Paulo Neves Sistemas Operativos 33


Relação entre Processos e
Recursos

Paulo Neves Sistemas Operativos 34


Processos versus Tarefas I
 Processo
 Corresponde a um trabalho do utilizador
 Detentor dos recursos
 Tarefa
 Unidade de trabalho despachável
 Comutação de tarefas

Paulo Neves Sistemas Operativos 35


Processos versus Tarefas II

Paulo Neves Sistemas Operativos 36


Objecto processo – atributos I
 Process ID
 Security descriptor
 Descrição de quem criou, quem pode usar
ou ganhar acesso ao objecto, quem não
pode aceder
 Base priority
 Uma prioridade de base para as tarefas

Paulo Neves Sistemas Operativos 37


Objecto processo – atributos
II
 Default processor affinity
 Conjunto de processadores nos quais as
tarefas podem ser executadas
 Quota limits
 Quantidade máxima de memória paginada
e não paginada, espaço do ficheiro de
páginas e tempo de processador que pode
utilizar

Paulo Neves Sistemas Operativos 38


Objecto processo – atributos
III
 Execution Time
 Tempo total de execução de tarefas
 I/O counters
 Variáveis
 Guardam número e tipo de operações E/S
 VM operation counters
 Mesmo que o anterior, mas sobre memória
virtual

Paulo Neves Sistemas Operativos 39


Objecto processo – atributos
IV
 Exception/debugging ports
 Canais de comunicação inter-processo
 Envio, por parte do gestor de processos,
de mensagens quando uma tarefa causa
uma excepção
 Exit status
 Razão para a terminação do processo

Paulo Neves Sistemas Operativos 40


Objecto Tarefa – atributos I
 Thread ID
 Thread context
 Conjunto de registos e outros dados
voláteis
 Dynamic priority
 Prioridade actual da tarefa
 Base priority
 Valor mínimo para a prioridade da tarefa

Paulo Neves Sistemas Operativos 41


Objecto Tarefa – atributos II
 Thread processor affinity
 Conjunto de processadores onde a tarefa
pode ser executada
 Sub conjunto da afinidade do processo
 Thread execution time
 Tempo acumulado de execução
 Modo utilizador e modo kernel

Paulo Neves Sistemas Operativos 42


Objecto Tarefa – atributos III
 Alert flag
 Uma flag que indica se deve executar uma
chamada a um procedimento assíncrono
 Suspension count
 Número de vezes que a tarefa foi suspensa
sem ter sido resumida
 Impersonation token
 Permite realizar operações para outro
processo
Paulo Neves Sistemas Operativos 43
Objecto Tarefa – atributos IV
 Termination port
 Canal de comunicação inter-processo
 Envio, por parte do gestor de processos, de
uma mensagem quando a tarefa termina
 Thread exit status
 A razão para a terminação da tarefa

Paulo Neves Sistemas Operativos 44


Multitarefa
 Execução concorrente de tarefas
 Múltiplas tarefas por processo
 Suporte SMP sobre tarefas
 Tarefas dentro de processos comunicam
entre si no espaço de endereçamento
deste
 Tarefas de diferentes processos
comunicam através de memória
partilhada
Paulo Neves Sistemas Operativos 45
Estados de uma Tarefa I

Paulo Neves Sistemas Operativos 46


Estados de uma Tarefa II
 Ready
 Pode ser escalonada para execução
 Standby
 Seleccionada para execução num
processador específico
 Aguarda libertação desse processador
 Running
 Tarefa encontra-se em execução

Paulo Neves Sistemas Operativos 47


Estados de uma Tarefa III
 Waiting
 Tarefa foi bloqueada
 Espera por um evento
 Sincronização
 Auto-suspensa por ordem de um subsistema
 Transition
 Espera por recursos, apesar de estar
pronta para execução

Paulo Neves Sistemas Operativos 48


Estados de uma Tarefa IV
 Terminated
 Por si própria
 Por outra tarefa
 Processo terminou
 Pode ser retirada do sistema ou retida pelo
Executive

Paulo Neves Sistemas Operativos 49


SMP
 Tarefas podem ser executadas em
qualquer processador
 Inclusivamente as de kernel
 Execução paralela de diversas tarefas
do mesmo processo
 Política de afinidade suave
 Tenta alocar o mesmo processador
(performance)
 Política de afinidade forte
Paulo Neves Sistemas Operativos 50
Gestão de Tarefas e Processos
em Linux
 Task_struct representa um processo
 Tabela de processos
 Vector linear com ponteiros para
task_structs

Paulo Neves Sistemas Operativos 51


Estrutura task_struct I
 Estado
 Estado do processo
 Informação de escalonamento
 Normal e real time  diversos sub-níveis
 Identificadores
 Processo, utilizador e grupo
 Comunicação inter-processo
 Mecanismos iguais ao UNIX SVR4
Paulo Neves Sistemas Operativos 52
Estrutura task_struct II
 Ligações
 Pai
 Processos com o mesmo pai
 Filhos
 Tempo e temporizadores
 Sistema de ficheiros
 Ponteiros para ficheiros abertos

Paulo Neves Sistemas Operativos 53


Estrutura task_struct III
 Memória virtual
 Define a memória virtual alojada
 Contexto específico do processador
 Registos e pilha
 Constituí o contexto do processo

Paulo Neves Sistemas Operativos 54


Estados de um Processo em
Linux

Paulo Neves Sistemas Operativos 55


Estados de um Processo I
 Running
 Engloba Ready e Executing
 Interruptible
 Bloqueado, aguarda um evento
 Uninterruptible
 Bloqueado, espera directamente sobre o
hardware
 Não aceita sinais

Paulo Neves Sistemas Operativos 56


Estados de um Processo II
 Stopped
 Processo foi parado
 É resumido após acção positiva de outro
processo
 Por exemplo modo de debug
 Zombie
 Processo terminado
 Task_struct não foi destruída

Paulo Neves Sistemas Operativos 57


Tarefas em Linux
 Criação de processo
 Cópia dos atributos do pai
 Clonagem de processos
 Partilha de recursos com outro processo
 Partilha de espaço de endereçamento
 Funcionamento como tarefas do mesmo processo
 NO ENTANTO A NOÇÃO DE TAREFA NÃO
EXISTE EM LINUX

Paulo Neves Sistemas Operativos 58


Questões

Paulo Neves
?
Sistemas Operativos 59