SO: Gerenciamento de Processos



Documentos relacionados
Sistemas Operacionais Conceitos Básicos

SISTEMAS OPERACIONAIS

PROCESSOS. Prof. Maicon A. Sartin

Fundamentos de Sistemas Operacionais

8 Threads. 8.1 Introdução

Processos. Estruturas de Controle

Arquitetura de Sistemas Operacionais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Gerenciamento de Processos

Sistemas Operacionais Processos e Threads

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

Sobre a apresentação (About(

(Aula 15) Threads e Threads em Java

Sistemas Operacionais

Programação Concorrente Processos e Threads

Sistemas Operacionais I

Threads. 8 de janeiro de 2015

Sistemas Operacionais

7 Processos. 7.1 Introdução

Arquitetura e Organização de Computadores

Threads Aula 04 2 Quadrimestre

Introdução a Computação 07 Sistemas operacionais. Márcio Daniel Puntel marcio.puntel@ulbra.edu.br

Processos. Adão de Melo Neto

É a associação de mais de um fluxo de execução em um único processo.

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Escalonamento de processos

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Slide. ! Multiprocessamento! Modelo de processo. Dep. Ciência da Computação. Slide. ! Alternância de processos. ! Relação Programa x Processo

Universidade Federal do Rio de Janeiro Pós-Gradução em Informática. Microarquiteturas de Alto Desempenho. Multithreading. Gabriel P. Silva.

Sistemas Operativos. Sumário. Escalonador da CPU. ! Filas Multinível. ! Filas Multinível com Feedback. ! Escalonamento em multiprocessadores

SISTEMAS OPERACIONAIS

Arquitetura de Computadores II

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Processos e Threads Por Hermes Senger / Hélio Crestana Guardia

Sistemas Operacionais

Sistema Operacional Correção - Exercício de Revisão

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Ciclo de Vida de um Processo

Infra-Estrutura de Software. Introdução. (cont.)

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr

Sistemas Operacionais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Gerência do Sistema de Arquivos. Adão de Melo Neto

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

Capítulo 1. Introdução

Processos e Threads (partes I e II)

Programação Concorrente Conceitos Multiprogramação Threads

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Sistemas Operacionais

Sistemas Operacionais

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

Sistemas Operacionais

Introdução à Computação: Sistemas de Computação

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo.

Sistemas Operacionais. Capítulo 5 Processos

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

2 Modelos de Implementação

Nível da Arquitetura do Conjunto das Instruções

Sistemas Operacionais

Capítulo 4 Gerência de Processador

TI Básico. Sistemas Operacionais. Professor: Ricardo Quintão Site:

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Gerenciamento de Entrada e Saída (E/S)

Gerenciamento de Processos

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Métodos de Sincronização do Kernel

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Escalonamento de CPU 2 Quadrimestre

Sistemas Operacionais. Prof. André Y. Kusumoto

Gerenciamento de memória

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Edeyson Andrade Gomes.

Sistemas de Informação. Sistemas Operacionais

Introdução à Computação: Sistemas Operacionais II

Projeto: Camada Independente de Dispositivo

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Transcrição:

SO: Gerenciamento de Processos Adriano J. Holanda http://holanda.xyz 10/8/2015

O que é um processo Um processo é um programa (código objeto armazenado em alguma mídia) em.

O que é um processo Um processo é um programa (código objeto armazenado em alguma mídia) em. Processo é composto por: código do programa em arquivos abertos sinais pendentes dados internos do núcleo do SO estado do processador espaço de endereço uma ou mais threads de seção de dados contendo variáveis globais

Bloco de controle do processo Process Block Control (PCB) Bloco de Controle do Processo Processo é composto por: código do programa em arquivos abertos sinais pendentes dados internos do núcleo do SO estado do processador espaço de endereço uma ou mais threads de seção de dados contendo variáveis globais estado do processo número do processo contador de programa registradores limites de memória lista de arquivos abertos...

Bloco de controle do processo no Linux Process Block Control (PCB) Processo é composto por: código do programa em arquivos abertos sinais pendentes dados internos do núcleo do SO estado do processador Bloco de Controle do Processo no Linux espaço de endereço uma ou mais threads de seção de dados contendo variáveis globais

Estados de um processo Estados Novo O processo está sendo criado. Executando As instruções estão sendo executadas. Esperando O processo está esperando pela ocorrência de algum evento (como um término ou uma interrupção). Pronto O processo está esperando para ser designado a um processador. Terminado O processo terminou sua.

Transição dos estados de um processo cria PCB novo

Transição dos estados de um processo cria PCB novo enviado para a fila pronto

Transição dos estados de um processo cria PCB novo executando enviado para a fila pronto escalonado para

Transição dos estados de um processo cria PCB novo escalonado para a fila executando enviado para a fila pronto escalonado para

Transição dos estados de um processo esperando requisição E/S cria PCB novo escalonado para a fila executando enviado para a fila pronto escalonado para

Transição dos estados de um processo esperando requisição E/S cria PCB novo término E/S escalonado para a fila executando enviado para a fila pronto escalonado para

Transição dos estados de um processo esperando requisição E/S apaga PCB término cria PCB novo término E/S escalonado para a fila executando término do processo enviado para a fila pronto escalonado para

Sequência dos PCBs processo 0 processo 1 cria PCB0 salva PCB0 recarrega PCB1 apaga PCB1 recarrega PCB0... pronto executando esperando terminado

Threads Adriano J. Holanda http://holanda.xyz 10/8/2015

Modelos Única thread processo código dados arquivos registradores pilha (stack) thread

Modelos Múltiplas threads processo código dados arquivos Benefícios Responsividade; registrador registrador registrador Compartilhamento de recursos; stack stack stack Economia; Utilização de arquiteturas multiprocessadas. thread thread thread

Espaço de endereçamento do usuário sem threads espaço de endereçamento do usuário stack escreve_saida: FILE arquivo char conteudo código main() { ; ; }

Espaço de endereçamento do usuário sem threads espaço de endereçamento do usuário stack calcula: int resultado int numero código main() { ; ; }

Espaço de endereçamento do usuário com threads espaço de endereçamento do usuário executando Thread1: stack escreve_saida: FILE arquivo char conteudo Thread2: stack calcula: int resultado int numero código main() { ; ; }

Espaço de endereçamento do usuário com threads espaço de endereçamento do usuário Thread1: stack escreve_saida: FILE arquivo char conteudo executando Thread2: stack calcula: int resultado int numero código main() { ; ; }

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Sequência de escalonamento Sem threads Com threads, um processador thread 1 thread 2 Com threads, vários processadores thread 1, CPU 1 thread 2, CPU 2

Exemplos de utilização de threads Win32 PThreads