AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Documentos relacionados
SSC0640 Sistemas Operacionais I

Sistemas Operacionais

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

Sistemas Operacionais

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13

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

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

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

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

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

Chapter 4: Threads. Operating System Concepts 8th Edition

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

Sistemas Distribuídos Aula 3

Threads. Pedro Cruz. EEL770 Sistemas Operacionais

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

Na Aula Anterior... O Conceito de Threads

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

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

Capítulo 2 Processos e Threads

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais. Processos e Threads

Sistemas Operacionais I Parte VI Threads

Sistemas Operacionais (SO)

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

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

Sistemas Operacionais

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

Sistemas Distribuídos

Sistemas Operacionais

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

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais

Sistemas Operacionais II

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

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

Sistemas Operacionais I

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

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

Sistemas de Informação. Sistemas Operacionais

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

Unix Processos. Geraldo Braz Junior

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

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

Sistemas Operacionais I

Sistemas Operacionais

Concorrência em Processos

Gerenciamento de memória

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

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

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação. Processamento Paralelo Threads. Aluno: Wagner Palacio

Resumo: Sistemas Operacionais Abertos

Estruturas de Sistemas Operacionais

Características Linux - CentOS

Segmentação de Memória

Sistemas Operacionais Aula 7

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

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

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

Fundamentos de Sistemas Operacionais

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Sistemas Operacionais Prof. Fabrício Sérgio de Paula

Curso: Redes de Computadores

Sistemas Operacionais

Prof. Kleber R. Rovai

Sistemas de Entrada e Saída

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

Computadores e Programação (DCC/UFRJ)

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

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Unidade 2. Processos Threads Concorrência em Java

Notas da Aula 2 - Fundamentos de Sistemas Operacionais

SISTEMAS OPERACIONAIS

Sistemas Operacionais. Rodrigo Rubira Branco

Técnicas Avançadas de Programação

Arquitetura de Sistemas Operativos

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

Processos ca 3 pítulo

Davidson Rodrigo Boccardo

Infra-Estrutura de Software. Escalonamento

Montagem e Manutenção

Ferramentas para Programação em Processadores Multi-Core

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

ENADE 2011 SISTEMAS OPERACIONAIS

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

Sistemas Distribuídos. Processos. Edeyson Andrade Gomes

Sistemas Operacionais

INE 5645 Programação Paralela e Distribuída

Conceitos básicos sobre computadores

Capítulo 11 Estudo de Caso 2: Windows 2000

Programação Concorrente com Thread Java. Luiz Affonso Guedes Sistemas Distribuidos

INE5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA - Prova 1 12/05/2014 Aluno: Bosco

Algoritmos e Lógica de Programação Sistemas Operacionais

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

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

Transcrição:

AULA Nº 08 SISTEMAS OPERACIONAIS Threads

Contextualizando Na aula passada Sincronização de Processos Aula de hoje Threads

O Modelo de Processo 1) Utilizado para agrupar recursos 2) Um espaço de endereço (0 até algum endereço máximo do processo) e uma única linha de execução (Thread) 3) Agrupamento de recursos (espaço de endereço com texto e dados do programa; arquivos abertos, processos filhos, tratadores de sinais, alarmes pendentes etc)

Modelo da Thread 1) Um espaço de endereço e múltiplas linhas de controle 2) Conjunto de threads compõe as linhas de execuções de um processo 3) Threads compartilham um mesmo espaço de endereço (sendo menos independentes que processos) 4) Possuem recursos particulares (PC, registradores, pilha)

Threads (Vantagens) 1) Em muitas aplicações há múltiplas atividades ao mesmo tempo 2) Podemos decompô-las em atividades paralelas 3) Algumas tarefas precisam do compartilhamento do espaço de endereçamento 4) CPU-bound e I/O-bound podem se sobrepor, acelerando a aplicação (fica a dica ao programador)

Threads (Vantagens) 1) São mais rápidas de criar e destruir que processos 2) Algumas vezes até 100 vezes mais rápidas 3) Úteis em sistemas com múltiplas CPUs -> paralelismo real

Threads (Exemplos) 1) Processador de texto 2) Processos separados não funcionam - o documento tem que estar compartilhado 3) Threads para: Identação, fonte, correção, mudança de linha, etc.

Threads (Exemplo: Servidor Web) 1) O despachante (i) lê as requisições de trabalho que chegam, (ii) escolhe uma thread operário ociosa e (iii) entrega a requisição. A thread operário (iv) lê a cache, caso não encontre a informação, (v) inicializa uma leitura de disco

Processos vs. Threads 3 Processos com uma thread cada 1 Processo Com três threads

Processos vs. Threads Cada thread tem sua própria pilha de execução (pois chamam rotinas diferentes), embora compartilhe o espaço de endereçamento e todos seus dados

Problemas com as Threads 1) Como cada thread pode ter acesso a qualquer endereço de memória dentro do espaço de endereçamento do processo; a) uma thread pode ler, escrever ou apagar a pilha ou as variáveis globais de outra thread b) Exemplo: a = b + c; x = a + y; 2) Necessidade de sincronizar a execução

Estados de Threads

Threads Implementação com Pacote PTreads do POSIX

Threads Implementação com Pacote PTread do POSIX

Threads Implementação em Java Estendendo a class Thread Criar thread: Instanciar classe que herda da classe `Thread class Thread possui todo o código para criar e executar threads

Threads Implementação em Java Joining a Thread 1) Permite a uma thread esperar que outra termine 2) A thread principal esperará thread2 morrer

Threads Implementação em Java Sleeping a Thread 1) A thread atual fica bloqueada por um número de milisegundos 2) Precisa capturar InterruptedException

Tipos de Threads 1) No Modo Usuário 2) No Modo Núcleo 3) Híbrido

Threads no Modo Usuário 1) Implementadas totalmente no espaço do usuário 2) Por meio de uma biblioteca (criação, exclusão, execução etc, não necessariamente gerenciamento) 3) Criação e escalonamento são realizados sem o conhecimento do kernel 4) Para o kernel, é como se rodasse um programa monothread 5) Gerenciadas como processos no Kernel

Threads no Modo Usuário 1) Cada processo possui sua própria tabela de threads 2) Como uma tabela de processos, gerenciada pelo runtime 3) Controla apenas as propriedades da thread (PC, ponteiro da pilha, registradores, estado etc)

Escalonamento-Thread Usuário 1) O núcleo escolhe um processo e passa o controle a ele que escolhe uma thread 2) A gerência da thread fica no espaço do usuário e o núcleo só escalona em nível de processo

Modelo N:1

Threads no Modo Núcleo 1) Suportadas diretamente pelo SO 2) Criação, escalonamento e gerenciamento são feitos pelo kernel 3) O núcleo possui tabela de threads (com todas as threads do sistema) e tabela de processos separadas 4) As tabelas de threads possuem as mesmas só que agora estão implementadas no kernel 5) Os algoritmos mais usados são Round Robin e Prioridade

Threads no Modo Núcleo 1) Agora, as tabelas de threads estão no núcleo 2) Gerenciar threads em modo kernel é mais caro devido à alternância entre modo usuário e modo kernel 3) Mudança de contexto pode ser envolvido na mudança de threads 4) Criar e destruir threads no núcleo é mais caro 5) Exemplo: Linux, Família Windows, OS/2, Solaris 9 (mapeia 1 thread usuário para 1 de kernel, i.e. 1:1)

Escalonamento Threads Núcleo 1) O núcleo escolhe a thread diretamente 2) A thread é quem recebe o quantum, sendo suspensa se excedê-lo 3) Thread bloqueada por E/S não bloqueia o processo 4) Permite múltiplas threads em paralelo

Threads Híbridas 1) Seguem o modelo N para M: 2) N threads de usuário são mapeadas em M <= N threads de núcleo 3) Ex.: Solaris até versão 8, HP-UX, Tru64 Unix

Concluindo Foram abordados nesta aula: Threads Concluímos o Capítulo 2 de Sistemas Operacionais Modernos; Tanenbaum, A. S. 4ª Edição