• Nenhum resultado encontrado

PCB - Process Control Block

N/A
N/A
Protected

Academic year: 2019

Share "PCB - Process Control Block"

Copied!
28
0
0

Texto

(1)

Sistemas

Operacionais

Processos e Threads

Eng. SERGIO VILLARREAL

Objetivos

 Entender o

conceito de processo

, sua

importância e como é implementado pelo SO.

 Identificar os

estados

possíveis de um processo e

suas transições.

 Estabelecer como se decide que processo ocupará o

processador e por quanto tempo

 Entender os desafios que a

concorrência

impõe

(2)

Programa

 Sequencias de instruções compiladas em

linguagem de máquina

Conceito estático

Processo ou tarefa

 Programa em execução.

Conceito dinâmico

 Possui um estado interno bem definido e interage

com outras entidades

Processo - Definições

Instância de um programa em execução

Ambiente de execução de um programa

 Container que armazena todas as informações

necessárias para executar ou continuar a execução de um programa

(3)

PCB - Process Control Block

Estrutura de dados

utilizada pelo

sistema operacional para

representar

e

implementar os processos

Descritor mantido pelo núcleo do sistema

operacional, para armazenar as informações referentes aos processos ativos

Estrutura de um processo

Contexto de hardware

– Conteúdo dos registradores

Contexto de software

– Nome, identificador, dono e outras informações

(4)

Estrutura de um processo

Espaço de memória

Pilha

Código Dados

(5)

Contexto

Estado interno

de um

processo

em

um momento determinado

Vai mudando conforme a tarefa vai sendo

executada

 Inclui informações sobre o estado interno do

processador e sobre os recursos utilizados pela tarefa

Troca de Contexto

Operações realizadas para retirar um

processo da CPU e colocar outro em

execução

 Consiste em salvar a informação de contexto do

(6)

Estados de um processo

Novo: já foi criado, tem PCB porém ainda não foi encaminhado para a fila de prontos

Pronto: esperando a CPU  Execução: utilizando a CPU

Espera: esperando um evento ou que seja completada uma operação de E/S

Encerrado: Completou sua tarefa, não utilizará mais a CPU, porém ainda tem PCB

(7)

Tempo Total de Execução

Tempo de

processamento

(Tempo de CPU)

Tempo de espera de

operações de E/S

Tempo de espera na

fila de prontos

(Escalonamento)

Classificação de Processos

Pela Hierarquia

Independentes

(8)

Classificação de Processos

Pela Interação

Foreground:

Primeiro Plano

Underground:

Segundo Plano

Classificação de Processos

Pelo uso de recursos

CPU Bound:

Orientado a processamento

(9)

ATIVIDADES

 Pesquise sobre a evolução do conceito de tarefas e processo

ao longo da história dos sistemas operacionais

 Enumere todas as atividades que devem ser realizadas em

uma troca de contexto e qual a parte do sistemas operacional que deve executa-la

 Que tipo de decisões deve tomar o despachante?

 Escolha um exemplo de processo e descreva seu ciclo de

vida (Estados e transições)

Escalonamento de

Processos

(10)

Escalonamento

Decisão

sobre

qual será o próximo

processo

da fila de prontos a ocupar a CPU

e por

quanto tempo

Escalonamento

Orientado por

políticas

Difícil de implementar porque nenhum

algoritmo é perfeito

Existem

diversos critérios e algoritmos

que são estudados separadamente mas que

são utilizados em forma conjunta nos

(11)

Critérios

Eficiência:

Maior

taxa de utilização

da CPU

Throughput:

Maior quantidade de

processos

finalizados

por unidade de tempo

Waiting Time:

Menor

tempo de espera

Turnaround:

Menor

tempo de execução.

Tempo

transcorrido desde a criação do processo até a

finalização do seu processamento

Algoritmos de Escalonamento

Colaborativos

– Processo decide quando liberar o processador

Preemptivos

(12)

Algoritmos de Escalonamento

Colaborativos

FCFS: Fisrt Come First Served

SJF: Shortest Job First

Preemptivos

RR: Round Robin

SRTF: Shortest Remaining Time Fisrt

FCFS:

First Come, First Served (FIFO)

Escalona os processos na ordem de

chegada à fila de prontos

• Não utiliza quantum (Colaborativo) e não leva em conta as características nem prioridades das tarefas

• É a forma mais elementar e sua principal vantagem é a simplicidade

(13)

SJF:

Shortest Job First

Escalona primeiro os processos mais

curtos

• Proporciona o menor tempo médio de espera e de execução

• Maior dificuldade: estimar a priori o tempo de duração de cada tarefa

• Pode provocar starvation das tarefas mais longas o que se resolve com mecanismos de envelhecimento das tarefas

RR:

Round Robin

(Por Revezamento)

Versão preemptiva do FCFS (Quantum)

• Menos eficiente que o FCFS para tarefas em lote

• Menor tempo de resposta para aplicações

interativas por distribuir melhor a CPU ao longo do tempo

(14)

SRTF:

Shortest Remaining Time Fisrt

Versão preemptiva do SJF (Quantum)

– Menor tempo restante primeiro

– Facilita a estimação do tempo que será utilizado no próximo quantum com base no histórico das últimas ativações do processo

– Favorece às aplicações com muitas operações E/S que não utilizam totalmente seu quantum

Escalonamento por prioridades

Modelo genérico que permite implementar diversos

algoritmos inclusive os já vistos

 A cada tarefa é associada uma prioridade

 Os critérios podem ser fatores internos ou externos

da tarefa aplicados de forma combinada

 Pode ser aplicado em forma preemptiva ou

colaborativa

 Combinado com envelhecimento de tarefas para

(15)

Escalonamento por prioridades

Fatores externos

– Informadas pelo usuário ou pelo administrador

– Ex: Classe do usuário, valor pago, importância

Fatores internos

– Obtidos ou estimados pelo escalonador

– Ex: idade da tarefa, tempo estimado de execução, interatividade, uso de recursos

Comunicação e

Sincronização de

Processos

(16)

Comunicação entre Processos

 Tarefas cooperantes precisam trocar informações entre si  Se existe memória compartilhada a comunicação é feita

utilizando variáveis globais

 Se não existe memória compartilhada ou as tarefas

residem em computadores diferentes a comunicação deve ser feita através do núcleo do sistema operacional mediante chamadas ao sistema

 Os mecanismos de comunicação oferecidos pelo SO são

conhecidos como IPC (Inter Process Communication)

Mecanismos de IPC

Síncronos

– O envio e a recepção da mensagem bloqueia as tarefas envolvidas até a finalização da comunicação

Assíncronos

– Não bloqueante

(17)

Sincronização de Processos

Processos Concorrentes

compartilham

recursos como registros, arquivos,

dispositivos de E/S ou memória.

Podem gerar conflitos e inconsistências

Sincronização de Processos

Condição de Disputa

ou

Race Conditions

:

Quando dois processos desejam utilizar o mesmo recurso ao mesmo tempo

Não são erros do código e somente se manifestam

na execução se acontecem determinadas condições

(18)

Exclusão Mútua

Enquanto um processo acessa os

recursos os outros devem esperar

 Dois programas não podem executar sua região

crítica simultaneamente

 Existem soluções de hardware e de software para

implementar a exclusão mútua.

 Todas exigem que o programador delimite as

regiões críticas

Exclusão Mútua

Região Crítica

: Parte do programa

que acessa os recursos compartilhados

Protocolo de Entrada

:

(19)

Soluções de Hardware

Desativação das Interrupções

– O programa desativa as interrupções antes de entrar na região crítica e as ativa ao sair.

– Mecanismo perigoso porque pode dar muito poder para um programa ineficiente ou malicioso

Instrução Test and Set

– Suportada pelo processador

– Instrução em código de máquina capaz de testar e setear uma variável de forma atômica

– Mecanismo rápido porém inconveniente para programas de usuário por utilizar espera ocupada

Soluções de Software

Semáforos

Variável do SO associada a uma região crítica. Contem a fila de processos que desejam entrar a região critica

Operação para entrar na fila. Bloqueia o processo se o recurso não está livre.

Operação para liberar o recurso. Não é bloqueante

Monitores

(20)

Impasse ou Deadlock

 Situação em que um processo para de responder

porque está esperando um evento que nunca acontecerá

 Acontece em sistemas que utilizam exclusão mútua,

com recursos não preemptivos, que permite pose e espera, e onde pode acontecer espera circular.

 Tratamento

Ignorar: Evitar o custo da prevenção

Prevenção: Mecanismos para evitar uma das quatro condições

Detecção e Correção: Para evitar que o sistema todo pare, o processo que causou o impasse é reiniciado

ATIVIDADES

 Quais dos mecanismos de exclusão mútua apresentados

utilizam espera ocupada e qual é sua desvantagem?

 Pesquise sobre os problemas clássicos de sincronização:

– Produtor consumidor

– Leitor escritor

– Jantar dos filósofos

 Pesquise sobre os mecanismos de sincronização oferecidos

pelas linguagem de programação que você utiliza

(21)

Threads

Eng. SERGIO VILLARREAL

Threads - Motivação

Primeiros sistemas

operacionais suportavam apenas

uma tarefa por processo

 Na medida em que as aplicações se tornaram mais complexas

esta limitação se tornou inconveniente, evidenciando a necessidade de suportar mais de uma tarefa no mesmo contexto

 Exemplos:

(22)

Threads - Definições

Recurso que permite que um processo se

divida a si mesmo

em várias

tarefas

que são executadas

simultaneamente

 Processos dentro de um processo

 Linhas de execução independentes de um

processo

Threads - Características

 Threads de um mesmo processo

compartilham

o contexto de software e o espaço de endereçamento e tem seu

próprio

contexto de hardware

 Podem ser implementadas pela aplicação ou

contar com suporte do sistema operacional e do hardware

 Threads são representadas no núcleo do SO

(23)

Threads - Operação

 Threads compartilham processador da

mesma forma que os processos

 Passam pelos mesmos estados  Devem ser escalonados

 Nas trocas de contexto somente deve ser

guardado o contexto de hardware

 Se comunicam através da memoria

compartilhada sem intervenção do SO

Threads - Vantagens

 São mais fáceis de criar e terminar (até 100 vezes

mais rápido)

Trocas de contexto rápidas

 Facilitam o compartilhamento de recursos entre

tarefas (Mesmo contexto)

 Permitem o processamento paralelo em

(24)

Ambiente Multithreads

 Não existem processos associados a programas, apenas

threads

 O processo tem pelo menos um thread

 O programador divide o programa em sub-rotinas

assíncronas (podem ser executadas concorrentemente) e associa cada uma a um thread

 Inicialmente é executado o thread 0 que é o programa principal

 Quando o programa chama as sub-rotinas são criados os

threads

Tipos de Threads

Threads de usuários:

– Thread executando dentro de um processo

– Corresponde a cada tarefa do processo

Threads de núcleo

– Fluxos de execução reconhecidos e gerenciados pelo sistema operacional

– Correspondem a tarefas que o núcleo deve realizar

(25)

Implementação de Threads

Modelo N:1

– Thread implementados no nível do usuário

Modelo 1:1

– Thread implementados no nível do núcleo

Modelo N:M

– Thread híbridos que combinam as características dos dois anteriores

Threads Modelo N:1

ULT –User Level Threads – Escalonados pelo programador

Suportados por bibliotecas da linguagem de programação

 O núcleo não sabe da existência dos threads, percebe um único fluxo de execução

 N threads do processo são mapeados em apenas um thread

de núcleo N:1

(26)

Threads Modelo N:1

Threads Modelo 1:1

KLT –Kernel Level Threads – Escalonados pelo núcleo

Suportados pelo núcleo do sistema operacional

 O núcleo sabe da existência dos threads, e gerencia o fluxo de execução de cada um

 Cada thread no processo é mapeado em um thread do

núcleo 1:1

Favorece às aplicações com muitas operações E/S já que apenas o thread é bloqueado na espera continuando a execução do processo e permite a execução paralela em sistemas multicore

(27)

Threads Modelo 1:1

Threads Modelo N:M

Modelo híbrido

 N threads do processo são mapeados em um número

menor de threads de núcleo N:M

Combina as vantagens dos dois modelos

 Favorese às aplicações interativas sem perder a

escalabilidade

(28)

ATIVIDADES

 Pesquise sobre tecnologias de hardware que dão suporte à

implementação de threads e determine que relação guardam com o sistema operacional

 Pesquise sobre o suporte ao uso de threads oferecidos pelas

linguagem de programação que você utiliza

 Faça considerações sobre como a utilização de threads

permite criar programas mais eficientes

 Elabore uma tabela comparando as características dos

modelos de implementação dos threads

 Determine de que forma afeta ao programador a forma de

implementação dos threads

Fim Apresentaçaõ

Referências

Documentos relacionados

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

Apesar do glicerol ter, também, efeito tóxico sobre a célula, ele tem sido o crioprotetor mais utilizado em protocolos de congelação do sêmen suíno (TONIOLLI

Após a utilização da história em quadrinhos e a sua leitura em sala de aula, os alunos receberam uma apostila simples como observaremos na próxima pagina na figura 11, contendo

São por demais conhecidas as dificuldades de se incorporar a Amazônia à dinâmica de desenvolvimento nacional, ora por culpa do modelo estabelecido, ora pela falta de tecnologia ou

O desenvolvimento desta pesquisa está alicerçado ao método Dialético Crítico fundamentado no Materialismo Histórico, que segundo Triviños (1987)permite que se aproxime de

nas cavidades médias para resina composta, 57,29% consideram a hibridização o agente mais im- portante para proteção do complexo dentino-pulpar; 28,12% indicam primeiramente

Considering that this study revealed that the dimensions of the coracoid process are not relevant criteria for selecting the best surgical option, it seems important to study

Em função disso, realizamos um estudo de coorte retrospectiva em pacientes idosos admitidos a partir do serviço de emergência de um hospital público universitário do sul do