Threads. Pedro Cruz. EEL770 Sistemas Operacionais

Documentos relacionados
Threads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012

Na Aula Anterior... O Conceito de Threads

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

EEL770 - Sistemas Operacionais Notas de Aula

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Sistemas Operacionais

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13

Escalonamento. Pedro Cruz. EEL770 Sistemas Operacionais

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

SISTEMAS OPERACIONAIS

Sistemas Distribuídos Aula 3

Threads. Sistemas Operacionais. Charles Tim Batista Garrocho. Instituto Federal de São Paulo IFSP Campus Campos do Jordão. charles.garrocho.

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

Processos e Threads. Ciclo 2 AT3. Prof. Hermes Senger

Sistemas Operacionais

Sistemas Operacionais

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

Sistemas Operacionais

Sistemas Operacionais

Gerência de Processos. Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela

Arquitetura de Computadores Sistemas Operacionais II

Fundamentos de Sistemas Operacionais

Sistemas Operacionais II

Davidson Rodrigo Boccardo

SISTEMAS OPERACIONAIS

Sistemas Operacionais. Processos e Threads

Sistemas Operacionais

UNIVERSIDADE ESTADUAL VALE DO ACARAÚ- UEVA. Assunto: Programação Concorrente.

Programação de Sistemas em Tempo Real

Sistemas Distribuídos Aula 2

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

SISTEMAS DISTRIBUÍDOS PROCESSOS. Slides cedidos pela professora Aline Nascimento

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 07: PROGRAMANDO COM THREADS EM LINGUAGEM C

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais

Capítulo 2 Processos e Threads

EEL770 Sistemas Operacionais

LabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...

Sistemas Operacionais. Aula 1

Introdução. Pedro Cruz. EEL770 Sistemas Operacionais

Sistemas Operacionais. Conceito de Processos

Processo. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO PROCESSOS PROFESSOR CARLOS MUNIZ

Sistemas de Informação. Sistemas Operacionais

TAREFAS IMPLEMENTAÇÃO DE TAREFAS AULA 06 Sistemas Operacionais Gil Eduardo de Andrade

Processos ca 3 pítulo

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 2. Gerência de Processos

Ambientes de Execução

Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos

Sistemas Distribuídos Capítulo 3 - Aula 3

Processos e Threads. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Thread. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Estruturas de Sistemas Operacionais

Sistemas Distribuídos

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 10. Operações nos processos. Processos cooperativos, comunicação entre processos.

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Sistemas Operacionais Aula 7

Unix Processos. Geraldo Braz Junior

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

TAREFAS COMUNICAÇÃO ENTRE TAREFAS AULA 08 Sistemas Operacionais Gil Eduardo de Andrade

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

Sistemas Operacionais

Prof. Kleber R. Rovai

Ferramentas para Programação em Processadores Multi-Core

Sistemas de Entrada e Saída

Sistemas Operacionais. Entrada/Saída

Infra-Estrutura de Software. Entrada / Saída

GERENCIAMENTO DE PROCESSOS E MEMÓRIA

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios

Programação concorrente (processos e threads)

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

Sistemas Operacionais

Concorrência em Processos

Sistemas Operacionais

Comunicação entre processos (2)

INE 5645 Programação Paralela e Distribuída

Disciplina: Introdução aos Sistemas Operacionais Professor: Fernando H. Santorsula

Fundamentos de Sistemas Operacionais

Sistemas Operacionais I

Características Linux - CentOS

Pthreads. O que são threads? Mario João Junior. Uma thread é um fluxo de execução de instruções que pode ser escalonado pelo sistema operacional.

Processos Concorrentes

Sistemas Operacionais

Técnicas Avançadas de Programação

Transcrição:

Threads Pedro Cruz EEL770 Sistemas Operacionais

Nas aulas anteriores A thread ou o thread? Não sei. Já vi todos 2

Chamadas de sistema Pedido de um processo ao Sistema Operacional (SO) Bloqueante Deixa o processo em estado bloqueado Abrir, criar, ler, escrever em arquivos Aceitar conexões Enviar, receber mensagens de outros processos Não bloqueante Não deixa o processo em estado bloqueado Verificar estado de variáveis de ambiente Realizar entrada/saída assíncrona 3

Processo Gerenciamento de recursos Memória I/O Gerenciamento de execução Pilha PSW (program status word) 4

Motivação Processo pode ficar bloqueado Operação de I/O Dispositivo Usuário Computador remoto Processos não compartilham espaços de endereçamento Processo único não pode se aproveitar de múltiplas CPUs 5

Exemplo Navegador Aguarda usuário digitar Não consegue atualizar tela ou trocar aba Não consegue receber dados da rede Aguarda dados da rede Não consegue receber dados do usuário Não consegue atualizar tela ou trocar aba 6

Ideia Processos menores dentro de um processo Processos menores aguardam desbloqueios Processo maior não é bloqueado Redução do tempo de ociosidade da CPU Melhorias na interatividade com usuário Dados são compartilhados Recursos são compartilhados 7

Processos vs Threads Processos Recursos Execução Threads fio/linha/carretel Execução Processos leves 8

Thread Vinculada a um processo Compartilha recursos com o processo Possui sua própria pilha de execução Desse ponto de vista, é um processo em separado Pode coexistir com outras threads do mesmo processo Compartilha dados globais com membros do processo 9

Thread Estado de execução Executando, Pronta, Bloqueada... Contexto Pilha de execução Acesso aos recursos do processo Compartilhado com as outras threads do mesmo processo 10

Criação de uma thread Criação das variáveis necessárias, no espaço do processo que a criou Pilha de execução Código que será executado pela thread Variáveis locais 11

Processos vs Threads visão do desenvolvedor Seu processo compete com processos de outros desenvolvedores Competição pode ser destrutiva Processos não são necessariamente bem comportados Operacional é o árbitro Sua thread compete com as SUAS threads Competição saudável Threads são bem comportadas O desenvolvedor é o árbitro 12

Portable Operating System Interface POSIX Família de padrões da IEEE para sistemas operacionais IEEE 1003.1.c define threads 13

Threads POSIX Pthread_create Cria uma thread Pthread_exit Conclui uma thread Pthread_join Espera que uma thread termine Pthread_yield Libera a CPU para executar outra thread Pthread_attr_init Inicializa atributos do thread Pthread_attr_destroy Destrói atributos da thread 14

Atributos de threads Normalmente os default são suficientes Só podem ser modificados na inicialização da thread Exemplos Tamanho da pilha Endereço da pilha Preservação da thread depois de seu término Prioridade 15

Estados de uma thread Nova Acabou de ser criada Pronta Está aguardando ser executada Executando Está sendo executada pela CPU Bloqueada Está aguardando alguma operação de I/O Terminada Thread já foi executada 16

Estados de threads Thread iniciada Evento ocorre Pronta Bloqueada Selecionada para execução Dispensada para execução Aguarda evento Executando Thread terminada Nova Terminada 17

Threads - implementação Espaço do usuário Espaço do núcleo Implementação híbrida 18

Espaço usuário Operacional ignora as threads Compatibilidade Biblioteca implementa gerenciamento de threads Sistema de tempo de execução Processos devem ter uma tabela de threads Bloqueios locais de threads são avisadas ao sistema de tempo de execução Sistema de tempo de execução chaveia as threads 19

Vantagens do espaço de usuário Chaveamento de threads é local Não precisa de chaveamento para modo núcleo Muito mais rápido Algoritmo de chaveamento é local Pode ser customizado para necessidade local 20

Problemas do espaço de usuário Chamadas bloqueantes não podem ser tratadas Algumas opções pouco elegantes Select Chamada UNIX que verifica se buffers de I/O estão cheios» Se estiverem, chamada não bloqueará Chamadas bloqueantes ocorrem sem motivo Cada thread deve ser bem educada Não existe, entre as threads, um escalonador onipotente Thread não pode ser impedida de utilizar todos os recursos 21

Threads no espaço de núcleo Gerenciamento único de threads Criação de threads é mais custoso Chaveamento de threads Onisciente Onipotente Onipresente Em modo núcleo Chamadas bloqueantes podem ser tratadas 22

Threads híbridas Várias threads no núcleo que podem ser bifurcadas em threads de usuário Fonte: Tanenbaum 23

Ativação pelo escalonador Threads são implementadas no espaço de usuário Chamadas de sistema bloqueantes são notificadas ao processo (ao sistema de tempo de execução) Upcall Sistema de tempo de execução realiza chaveamento de threads 24

Threads pop-up Threads executados no espaço de núcleo para tratar eventos Criadas no momento em que o evento é disparado Rápidas de criar Executadas no espaço do núcleo Não há chaveamento 25

Armadilhas de códigos multithread Variáveis globais Consistência Bibliotecas que não podem ser acessadas simultaneamente Sinais e outros eventos por processo Qual thread deveria receber um sinal recebido por um processo? Pilha de execução Operacional gerencia a pilha de um processo Processo deve gerenciar as pilhas de threads implementadas no espaço de usuário 26

Threads visão do desenvolvedor Código obrigatoriamente sequencial fica na mesma thread Código paralelizável pode ficar em threads diferentes Compromisso Grau de paralelização Sobrecarga Criação Memória Chaveamento entre threads Gerenciamento de recursos 27

Threads Pedro Cruz EEL770 Sistemas Operacionais