sistemas operacionais - escola politécnicaemoreno/undergraduate/cc/sisop/class_fil… ·...

42
Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno

Upload: others

Post on 08-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Sistemas Operacionais

Gerência de processosControle e descrição de processos

Edson [email protected]

http://www.inf.pucrs.br/~emoreno

Page 2: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Sumário

Representação e controle de processos pelo SO

Estrutura de dados

Formas de uso da estrutura pelo SO

Threads

Page 3: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Requisitos de um SO

Tarefa Fundamental

Gerenciamento de tarefas/processos

O SO deve:

Entrelaçar a execução de múltiplos processos

Alocar recursos para processos, e proteger recursos entre processos

Habilitar a troca de informações entre processos

Permitir a sincronização entre processos.

Page 4: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Conceitos já explorados

Computadores consistem de um conjunto de recursos de hardware

Aplicações são desenvolvidas para realizar alguma tarefaespecífica

Não é eficiente a escrita de aplicações específicas para uma dada plataforma de hardware

SO prove interface a serem exploradas pelas aplicações

Page 5: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Gerenciamento de processos

Recursos disponíveis para todas aplicações

Processador é compartilhado entre todas aplicações em

execução

O processador e os dispositivos de ES devem ser utilizados de

forma eficiente

Page 6: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Processo

Mas o que é mesmo um processo?

Uma instância de um dado programa em execução

Elementos básicos de um processo

Código (instruções)

Conjunto de dados (variáveis)

Atributos que descrevem o estado do processo

Pronto para execução (ready), execuntando (running), suspenso (blocked)

Page 7: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Processo em execução Elementos disponíveis por processo quando em execução

Identificador

Estado

Prioridade

Program counter (PC)

Ponteiro para a memória

Dados de contexto

Informação do estado da ES

Processos gerenciados a partir de uma tabela de processos

Entradas definida pelos blocos de controle de processo

Page 8: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Bloco de controle do processo

Contém os elementos do processo

Identificação, estado, codigo, dados, pilhas, ...

Criado e gerenciado pelo SO

Processos de usuário não devem ter acesso

Permite o suporte para múltiplos processos

Cada bloco descreve espaço de endereçamento

Page 9: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Trace de um processo

O comportamento de um processo individual

Observado a partir da seqüência de instruções executados por este

Sequencia define uma lista de instruções

Lista é chamada Trace

Page 10: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Execução de processos

Considere

Três processos em execução

Todos estão em memória

Dispatcher está presente na memória

Page 11: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Trace visto dos processos

Cada processo roda até sua execução final

Page 12: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Trace visto do processador

TimeoutI/O

TimeoutTimeout

Page 13: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Sumário

Representação e controle de processos pelo SO

Estrutura de dados Objetivo: gerenciamento dos processos

Formas de uso da estrutura pelo SO

Threads

Page 14: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Processos e recursos

Page 15: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Estruturas de controle do SO

Para o SO gerenciar processos e recursos

Deve haver informações sobre o estado corrente

Processo

Recurso

Tabelas

Construídas para cada entidade que o SO gerencia

Page 16: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Tabelas de controle do SO

Page 17: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Tabelas de memória

Usado para manter o rastro de uso das memórias

Memória principal

Memória secundária.

Deve incluir informações tais como:

Alocação de memória principal/secundária para processos

Atributos de proteção para acesso compartilhado a regiões de memória

Informações necessárias para gerenciamento de memória virtual

Page 18: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Tabelas de ES

Usadas para gerenciar dispositivos de ES

O SO precisa saber:

Se o dispositivo está disponível ou associado a algum processo

O estado de operação do dispositivo de ES

A localização da região da memória principal usada para

transferência entre origem e destino da ES

Page 19: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Tabela de arquivos

Tabela prove informações sobre

A existência de arquivos

A localização deste na memória secundária

O estado atual (e.g. se aberto ou fechado)

Tabela muito utilizada principalmente pelo SO para

gerenciamento do sistema de arquivos

Page 20: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Tabela de processos

Utilizado pelo OS para gerência dos processos

Contém os seguinte detalhes

Estado corrente

Identificação

Localização na memória

Etc

Bloco de controle do processo

Armazena a imagem do processo

Código, dado, pilha e atributos

Page 21: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Atributos do processo

Grupos de informação do bloco de controle do processo:

Identificação do processo

Cada processo recebe um valor numérico único

Estado do processador

Conteúdo dos registradores

Registradores visíveis pelo programador

Registradores de controle e estado

Ponteiros de pilha

Palavra de estado do processo

Informações de estado (e.g. Registrador EFLAGS do Pentium)

Controle do processo

Informação adicional necessária pelo OS para controlar e coordenar os processos

Estado e escalonamento, estrutura de dado, comunicação entre processos, ...

Page 22: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Sumário

Representação e controle de processos pelo SO

Estrutura de dados

Formas de uso da estrutura pelo SO

Threads

Page 23: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Modos de execução

A maioria dos processadores

Dá suporte a pelo menos dois modos execução

Modo usuário

Modo com menos privilégios

Programas dos usuários normalmente executado neste modo

Modo sistema

Modo com mais privilégios

Provê segurança no acesso a recursos de mais baixo nível

E.g. Manuseio da tabela de processos

Kernel/Núcleo do SO

Page 24: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Criação de um processo

Passos seguindo pelo OS para a criação de um processo

Associar um identificador único a um processo

Alocar espaço em memória para o processo

Gerar a configuração inicial (inicialização) do bloco de controle

do processo

Configurar as ligações necessárias

E.g. Manutenção das tabelas de processos para redefinição de estados

Cria ou expande outras estruturas de dado

Page 25: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Troca entre processos

Questões de projeto que surgem

Que eventos disparam a troca de um processo?

Distinção entre troca de modo e de processo.

O que o OS deve ser realizado com as estruturas de dados sob

seu controle para realizar a troca de processo?

Page 26: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Troca entre processos

Troca entre processo

Pode ocorre a qualquer momento

Realizado pelo SO

SO deve ter ganho controle do processor

Alguns possíveis evento que dêem controle ao SO são:

Mecanismo Causa Uso

Interrupção Externa à execução da

instrução atual

Reação a um evento externo assíncrono

Trap Associada à execução

da instrução atual

Tratamento de um erro ou de uma condição de exceção

Chamada de sistema Requisição explícita Chamada a uma função do sistema operacional

Page 27: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Troca entre processo Passos para a troca de um processo:

1. Salvamento de contexto1. Dispachter é chamado para realizar a operação

2. Atualização do bloco de controle do processo em remoção1. Salvamento das principais informações para retomada: e.g. PC e

registradores visíveis pelo programador

3. Deslocamento do bloco de controle do processo para a filaapropriada de acordo com o novo estado

1. Bloqueado ou pronto, dependendo do motivo da troca

4. Seleção de um novo processo a ser executado1. Execução do algoritmo de escalonamento

5. Atualização do bloco de controle do processo selecionado1. Mudança do estado

6. Atualização da estrutura de gerenciamento da memória1. Atualização dos regs para código, dado, pilha

7. Restauração de contexto do processo selecionado1. Atualização dos regs do processador para retomada

Page 28: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

E o SO, ele também é um processo?

Se o SO é apenas uma coleção de programas e se ele é

executado pelo processador tanto quanto os demais

programas, o SO é um processo?

Se é verdadeira a afirmação, como ele é controlado?

Quem ou o que o controla?

Page 29: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Execução do SO

Formas de execução:

Non-Kernel

Junto com processos do usuário

Baseado em processos

Page 30: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Execução Non-Kernel

Executa o kernel fora de qualquer processo

O conceito de processo aplicado apenas em programa de usuário

Código do SO é executado como uma entidade separada que opera em modo privilegiado

Page 31: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Junto com processo do usuário

OS dentro do contexto de um processo de

usuário

Não precisa trocar de processo para executar

a rotina do SO

Page 32: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Baseado em processos

Implementa o SO como uma coleção de processos

Page 33: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Sumário

Representação e controle de processos pelo SO

Estrutura de dados

Formas de uso da estrutura pelo SO

Threads

Page 34: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Processos e Threads Processos tem duas características:

Propriedade de recursos – Processo inclui um espaço de endereçamento virtual para manter a imagem do processo

Escalonamento / execução – segue uma execução quepode ser entrelaçada com outros processos

Threads x Processo

A unidade em disparo (dispatching unit) é referida como Thread ou processo leve

A unidade de proprietária de recurso é referida como processo ou tarefa

Page 35: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Multithreading

Habilidade do SO em dar suporte a múltiplo “caminhos” de

execução de forma concorrente em um mesmo processo

Page 36: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Thread única / múltiplas MS-DOS suportava apenas um processo

composto de uma única thread.

Alguns sistemas UNIX, suportammúltiplos processos de usuário, masapenas uma thread por processo

Ambiente Java run-time suporta um únicoprocesso com múltiplas threads

Múltiplos processos e múltiplas threads podem ser encontradas em SOs tais comoWindows, Solaris e algumas versõesmodernas do UNIX

Page 37: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Processos

Um espaço virtual contém a imagem do processo

Acesso protegido a

Processadores,

Outros processo,

Arquivos,

Recursos de ES

Page 38: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Thread(s) em um processo Cada thread tem

Um estado de execução (running, ready, etc.)

Contexto está salvo quando não está em execução (running)

Uma pilha de execução

Algumas variáveis locais por thread

Acesso a memória e recursos de seu processo Compartilhada entre todas threads de um processo

Thread pode ser vista como um programa rodando com seupróprio program counter, mas dentro de um processo

Page 39: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Threads x Processos

Page 40: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Benefício de emprego de threads

Menor tempo de criação quando comparado a processos

Menos tempo para terminar uma thread do que um processo

Troca entre duas threads leva menos tempo

Threads podem se comunicar sem invocar o kernel

4

0

Page 41: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Threads

Ações afetam as threads de um dado processo

O SO deve gerenciar isto no nível de processo.

Exemplos:

Suspender um processo envolve suspender todas threads deste processo

Término de um processo exige o término de todas threads do processo

Atividades similares a processo

Threads tem estados de execução

Podem sincronizar com outra

Page 42: Sistemas Operacionais - Escola Politécnicaemoreno/undergraduate/CC/sisop/class_fil… · Kernel/Núcleo do SO. Criação de um processo ... Threads podem se comunicar sem invocar

Estados de execução

Estados associados com threads

Geração (Spawn)

Bloqueio

Desbloqueio

Término

Desaloca o registrador de contexto e pilhas