EEL770 Sistemas Operacionais
|
|
- Baltazar Capistrano
- 4 Há anos
- Visualizações:
Transcrição
1 EEL770 Sistemas Operacionais Parte 2: Concorrência Conceitos básicos e ciclo de vida de threads Prof. Rodrigo de Souza Couto
2 Concorrência Múltiplas atividades que podem ocorrer ao mesmo tempo Exemplos Um servidor de grande porte recebe requisições de milhares de usuários ao mesmo tempo Uma aplicação de cálculo científico divide o processamento em diversas tarefas Programar software concorrente requer cuidados e conhecimento de Sistemas Operacionais
3 Threads Uma thread é uma unidade básica de utilização da CPU ID de thread Contador de programa (PC) Um conjunto de registradores Pilha de execução Nas aulas anteriores, um processo tinha única thread Mas um processo pode ter várias threads Threads de um mesmo processo compartilham Seção de código Seção de dados Arquivos abertos Outros recursos do S.O. como arquivos abertos e sinais 3
4 Processo com uma única thread Código Dados Arquivos Registradores Pilha thread Figura adaptada de [4] 4
5 Processo com múltiplas threads Código Dados Arquivos Registradores Registradores Registradores Pilha Pilha Pilha thread thread thread Figura adaptada de [4] 5
6 Exemplo de uso de threads Exibição de mapa, com diferentes tarefas concorrentes Figura retirada de [1] 6
7 SO como ilusionista Abstração de infinitas CPUs Figura retirada de [1] 7
8 Não seria possível fazer software concorrente só com processos? 8
9 Não seria possível fazer software concorrente só com processos? Possível é, mas poderia implicar em perda de desempenho Threads compartilham espaço de endereçamento Útil quando tarefas concorrentes utilizam os mesmo dados Não é necessário utilizar técnicas de IPC Threads são mais rápidas de criar e destruir P.ex., não é necessária a cópia de dados exigida pelo fork Em alguns livros, threads são referidas como processos leves Processos podem ser vistos como uma forma de proteger uma thread ou um conjunto de threads 9
10 Quando usar threads? Para expressar tarefas concorrentes Alguns programas são naturalmente concorrentes P.ex., servidor web, aplicação de mapa vista anteriormente, etc. Para prover responsividade Deixar tarefas executando em segundo plano enquanto outras podem receber entradas do usuário P.ex., interface gráfica, na qual botões como "cancelar" devem estar sempre disponíveis 10
11 Quando usar threads? Para aumento de desempenho, em arquiteturas com múltiplas CPUs Cada thread pode ser executada por uma CPU diferente Para aumento de desempenho, em aplicações com tarefas de E/S Enquanto uma thread está bloqueada por E/S, a outra está executando o processamento Ganho de desempenho até em arquiteturas com uma CPU 11
12 Exemplo de quantidade de threads no Windows 10 Para fazer no seu, use a ferramenta 12
13 Abstração de Threads Uma thread é um sequência única de execução que representa uma tarefa escalonável separadamente Cada thread pode ser vista como uma programa sequencial S.O. pode executar ou suspender a thread a qualquer momento Cada thread executa em uma CPU virtual, com velocidade imprevisível e variável Ou seja, thread pode levar mais tempo ou menos tempo para executar, dependendo do escalonamento de outras threads 13
14 Exemplo de execução de thread Figura retirada de [1] 14
15 Exemplo de execução de thread Figura retirada de [1] 15
16 API para threads baseada no padrão POSIX void pthread_create(thread,func,arg) Cria uma thread, armazenando sua referência no argumento thread Thread executa função func, que recebe os argumento de arg Análogo à combinação fork + exec para processos Chamada assíncrona Programa que chamou não espera retorno da função para prosseguir 16
17 API para threads baseada no padrão POSIX pthread_join(thread) Espera a finalização da thread referenciada por thread pthread_yield() A thread que chamar essa função pode desistir de sua vez na CPU, em favor de alguma outra thread Vai para o final da fila de threads prontas Multi-threading cooperativo void pthread_exit(ret) Finaliza a thread que chamou e coloca em ret uma referência para o valor de retorno 17
18 Exemplo de uso da thread Programa criará diversas threads para chamar a função go Função receberá o número da thread, imprimirá na tela esse número, e retornará o número mais 100 void * go(void *n){ int *ret = (int *)n; printf("hello from thread %d\n", *ret); *ret += 100; pthread_exit(ret); Adaptado de [1] 18
19 Exemplo de uso da thread Programa criará diversas threads para chamar a função go Função receberá o número da thread, imprimirá na tela esse número, e retornará o número mais 100 Função declarada como ponteiro Recebe ponteiro para void. Permite função receber qualquer estrutura de void * go(void *n){ dados int *ret = (int *)n; printf("hello from thread %d\n", *ret); *ret += 100; pthread_exit(ret); Adaptado de [1] 19
20 Exemplo de uso da thread Programa criará diversas threads para chamar a função go Função receberá o número da thread, imprimirá na tela esse número, e retornará o número mais 100 void * go(void *n){ int *ret = (int *)n; printf("hello from thread %d\n", *ret); *ret += 100; pthread_exit(ret); Para esta implementação específica, ponteiro void é transformado em ponteiro para inteiro Finaliza a thread, retornando o ponteiro ret Adaptado de [1] 20
21 #define NTHREADS 10 int main(void) { int inputvalues[nthreads]; static pthread_t threads[nthreads]; pthread_attr_t attributes[nthreads]; int *returnvalues[nthreads]; int i; Cria 10 threads for (i = 0; i < NTHREADS; i++){ pthread_attr_init(&attributes[i]); inputvalues[i] = i; pthread_create(&threads[i],&attributes[i], go, &inputvalues[i]); for (i = 0; i < NTHREADS; i++){ pthread_join(threads[i],(void**)&returnvalues[i]); printf("thread %d returned with %d\n", i, *returnvalues[i]); printf("main thread is done.\n"); return 0; Adaptado de [1] 21
22 #define NTHREADS 10 int main(void) { int inputvalues[nthreads]; static pthread_t threads[nthreads]; pthread_attr_t attributes[nthreads]; int *returnvalues[nthreads]; int i; for (i = 0; i < NTHREADS; i++){ pthread_attr_init(&attributes[i]); inputvalues[i] = i; pthread_create(&threads[i],&attributes[i], go, &inputvalues[i]); for (i = 0; i < NTHREADS; i++){ pthread_join(threads[i],(void**)&returnvalues[i]); printf("thread %d returned with %d\n", i, *returnvalues[i]); printf("main thread is done.\n"); return 0; Adaptado de [1] Inicialização de atributos da thread 22
23 #define NTHREADS 10 int main(void) { int inputvalues[nthreads]; static pthread_t threads[nthreads]; pthread_attr_t attributes[nthreads]; int *returnvalues[nthreads]; int i; for (i = 0; i < NTHREADS; i++){ pthread_attr_init(&attributes[i]); inputvalues[i] = i; pthread_create(&threads[i],&attributes[i], go, &inputvalues[i]); for (i = 0; i < NTHREADS; i++){ pthread_join(threads[i],(void**)&returnvalues[i]); printf("thread %d returned with %d\n", i, *returnvalues[i]); printf("main thread is done.\n"); return 0; Adaptado de [1] Criação da thread 23
24 #define NTHREADS 10 int main(void) { int inputvalues[nthreads]; static pthread_t threads[nthreads]; pthread_attr_t attributes[nthreads]; int *returnvalues[nthreads]; int i; for (i = 0; i < NTHREADS; i++){ pthread_attr_init(&attributes[i]); inputvalues[i] = i; pthread_create(&threads[i],&attributes[i], go, &inputvalues[i]); for (i = 0; i < NTHREADS; i++){ pthread_join(threads[i],(void**)&returnvalues[i]); printf("thread %d returned with %d\n", i, *returnvalues[i]); printf("main thread is done.\n"); return 0; Adaptado de [1] Espera por cada uma das threads, sequencialmente 24
25 #define NTHREADS 10 int main(void) { int inputvalues[nthreads]; static pthread_t threads[nthreads]; pthread_attr_t attributes[nthreads]; int *returnvalues[nthreads]; int i; for (i = 0; i < NTHREADS; i++){ pthread_attr_init(&attributes[i]); inputvalues[i] = i; pthread_create(&threads[i],&attributes[i], go, &inputvalues[i]); for (i = 0; i < NTHREADS; i++){ pthread_join(threads[i],(void**)&returnvalues[i]); printf("thread %d returned with %d\n", i, *returnvalues[i]); printf("main thread is done.\n"); return 0; Adaptado de [1] Envia identificador da thread e endereço no qual será armazenado ponteiro de retorno 25
26 #define NTHREADS 10 int main(void) { int inputvalues[nthreads]; static pthread_t threads[nthreads]; pthread_attr_t attributes[nthreads]; int *returnvalues[nthreads]; int i; for (i = 0; i < NTHREADS; i++){ pthread_attr_init(&attributes[i]); inputvalues[i] = i; pthread_create(&threads[i],&attributes[i], go, &inputvalues[i]); for (i = 0; i < NTHREADS; i++){ pthread_join(threads[i],(void**)&returnvalues[i]); printf("thread %d returned with %d\n", i, *returnvalues[i]); printf("main thread is done.\n"); return 0; Adaptado de [1] Ponteiro para ponteiro deve ser passado como void** 26
27 #define NTHREADS 10 int main(void) { int inputvalues[nthreads]; static pthread_t threads[nthreads]; pthread_attr_t attributes[nthreads]; int *returnvalues[nthreads]; int i; Vejam o código disponível no site! Reparem que o Makefile precisa chamar -pthread for (i = 0; i < NTHREADS; i++){ pthread_attr_init(&attributes[i]); inputvalues[i] = i; pthread_create(&threads[i],&attributes[i], go, &inputvalues[i]); for (i = 0; i < NTHREADS; i++){ pthread_join(threads[i],(void**)&returnvalues[i]); printf("thread %d returned with %d\n", i, *returnvalues[i]); printf("main thread is done.\n"); return 0; Adaptado de [1] 27
28 Possível saída do código anterior Hello from thread 1 Hello from thread 0 Hello from thread 7 Hello from thread 2 Hello from thread 4 Hello from thread 5 Hello from thread 6 Hello from thread 8 Hello from thread 3 Hello from thread 9 Thread 0 returned with 100 Thread 1 returned with 101 Thread 2 returned with 102 Thread 3 returned with 103 Thread 4 returned with 104 Thread 5 returned with 105 Thread 6 returned with 106 Thread 7 returned with 107 Thread 8 returned with 108 Thread 9 returned with 109 Main thread is done. 28
29 Possível saída do código anterior Hello from thread 1 Hello from thread 0 Hello from thread 7 Hello from thread 2 Hello from thread 4 Hello from thread 5 Hello from thread 6 Hello from thread 8 Hello from thread 3 Hello from thread 9 Thread 0 returned with 100 Thread 1 returned with 101 Thread 2 returned with 102 Thread 3 returned with 103 Thread 4 returned with 104 Thread 5 returned with 105 Thread 6 returned with 106 Thread 7 returned with 107 Thread 8 returned with 108 Thread 9 returned with 109 Main thread is done. for (i = 0; i < NTHREADS; i++){ pthread_join(threads[i],(void**)&returnvalues[i]); printf("thread %d returned with %d\n", i, *returnvalues[i]); Programa detecta finalização das threads na ordem do seu índice 29
30 Possível saída do código anterior Hello from thread 1 Hello from thread 0 Hello from thread 7 Hello from thread 2 Hello from thread 4 Hello from thread 5 Hello from thread 6 Hello from thread 8 Hello from thread 3 Hello from thread 9 Thread 0 returned with 100 Thread 1 returned with 101 Thread 2 returned with 102 Thread 3 returned with 103 Thread 4 returned with 104 Thread 5 returned with 105 Thread 6 returned with 106 Thread 7 returned with 107 Thread 8 returned with 108 Thread 9 returned with 109 Main thread is done. Execução das threads não necessariamente segue a ordem. Por quê? 30
31 Possível saída do código anterior Hello from thread 1 Hello from thread 0 Hello from thread 7 Hello from thread 2 Hello from thread 4 Hello from thread 5 Hello from thread 6 Hello from thread 8 Hello from thread 3 Hello from thread 9 Thread 0 returned with 100 Thread 1 returned with 101 Thread 2 returned with 102 Thread 3 returned with 103 Thread 4 returned with 104 Thread 5 returned with 105 Thread 6 returned with 106 Thread 7 returned with 107 Thread 8 returned with 108 Thread 9 returned with 109 Main thread is done. 1-Não há garantia que as threads serão escalonadas na ordem que são criadas 2-Mesmo que seja escalonada na ordem que é criada, thread pode ser interrompida antes de imprimir, dando lugar a outra thread. 31
32 Uma outra possível saída Hello from thread 0 Hello from thread 1 Hello from thread 2 Hello from thread 3 Hello from thread 4 Hello from thread 5 Hello from thread 6 Thread 0 returned with 100 Hello from thread 8 Hello from thread 9 Thread 1 returned with 101 Thread 2 returned with 102 Hello from thread 7 Thread 3 returned with 103 Thread 4 returned with 104 Thread 5 returned with 105 Thread 6 returned with 106 Thread 7 returned with 107 Thread 8 returned with 108 Thread 9 returned with 109 Main thread done. Thread 0 finalizou antes mesmo das threads 7,8 e 9 imprimirem 32
33 Uma outra possível saída Hello from thread 0 Hello from thread 1 Hello from thread 2 Hello from thread 3 Hello from thread 4 Hello from thread 5 Hello from thread 6 Thread 0 returned with 100 Hello from thread 8 Hello from thread 9 Thread 1 returned with 101 Thread 2 returned with 102 Hello from thread 7 Thread 3 returned with 103 Thread 4 returned with 104 Thread 5 returned with 105 Thread 6 returned with 106 Thread 7 returned with 107 Thread 8 returned with 108 Thread 9 returned with 109 Main thread done. Thread 0 finalizou antes mesmo das threads 7,8 e 9 imprimirem 33
34 Thread Control Block (TCB) Análogo ao PCB para processos Armazenada estado e metadados relacionados a uma thread Um PCB aponta para múltiplos TCBs 34
35 Estruturas de dados da thread 35
36 Ciclo de vida da thread 36
37 Material Utilizado [1] Livro Operating Systems: Principles & Practice Thomas Anderson e Michael Dahlin [2] Livro Fundamentos de Sistemas Operacionais. Editora LTC SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. 37
Threads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012
1 2005-2009 Volnys Bernal 1 2005-2009 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Interface de threads Interfaces de threads de usuário x threads de núcleo
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Multithreading (multiprogramação leve) Aula 04 Forma diferente de enxergar a abstração de processo = Conjunto de recursos relacionados endereçamento, arquivos, filhos,
Leia maisSistemas Operacionais
Sistemas Operacionais Programação Concorrente Introdução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Introdução Programa Seqüencial Representado por apenas um processo Existe apenas
Leia maisSistemas Operacionais
Sistemas Operacionais 04 Processos Introdução Um sistema de computação quase sempre tem mais atividades a executar que o número de processadores disponíveis. Diferentes tarefas têm necessidades distintas
Leia maisNa Aula Anterior... O Conceito de Threads
GSI018 Sistemas Operacionais 12/09/2016 Na Aula Anterior... Nesta Aula Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Comunicação entre Processos Pipes;
Leia maisDavidson Rodrigo Boccardo
Fundamentos em Sistemas de Computação Davidson Rodrigo Boccardo flitzdavidson@gmail.com Componentes de um SO Gerenciamento de Processos Sistema de Arquivos Gerenciamento de Entrada/Saída Gerenciamento
Leia maisSistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca
Sistemas Operacionais Processos Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Copyright Carlos Ferraz Processo Conceito: Um programa em execução 1. Ao digitar hello, os caracteres
Leia maisSistemas Operacionais
Introdução Inst tituto de Info ormátic ca - UF FRGS Sistemas Operacionais i Multithreading Aula 04 Necessidade de executar atividades concorrentes, porém cooperantes ou que compartilhem dados endereçamento
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 9 Threads Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Threads Uma thread
Leia maisSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Introdução a Processos Andreza Leite andreza.leite@univasf.edu.br Plano da Aula 2 Introdução a Processos Threads vs Processos Características dos Processos Estados dos Processos 3
Leia maisThreads em Ambiente LINUX. Estudo e testes com a biblioteca pthreads
Universidade Federal do ABC Disciplina: BC 1518 Sistemas Operacionais (SO) Prática: Threads Atividade 3 Threads em Ambiente LINUX Objetivo Estudo e testes com a biblioteca pthreads Threads Como vimos em
Leia maisSistemas Distribuídos Aula 3
Sistemas Distribuídos Aula 3 Aula passada Processos IPC Características Ex. sinais, pipes, sockets Aula de hoje Threads Kernel level User level Escalonamento Motivação: Servidor Web Considere Servidor
Leia maisSistemas Operacionais
Sistemas Operacionais Slides adaptados de Prof. Dr. Marcos José Santana, Prof. Dra. Regina Helena Carlucci Santana e Sarita Mazzini Bruschi baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum
Leia maisSistemas Operacionais I
UFRJ IM - DCC Sistemas Operacionais I Unidade II - Processos 24/04/2014 Prof. Valeria M. Bastos 1 Organização da Unidade Processos Conceituação Estruturas de Controle Modos de execução do S.O. Estados
Leia maisProcesso. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software
Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições
Leia maisProcesso. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software
Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições
Leia maisSistemas Operacionais I
UFRJ IM - DCC Sistemas Operacionais I Unidade II - 18/9/2009 Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1 Conceituação Estruturas de Controle Modos de execução do S.O. Estados de um
Leia maisSistemas Operacionais. Universidade Federal de Minas Gerais. Aula 2. Gerência de Processos
Aula 2 Gerência de Processos Gerência de Processos O que são Processos e Threads? Porque são necessários? Como são implementados? Como são controlados? Escalonamento Referências: Capítulo 4: 4.1 a 4.5
Leia maisORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 07: PROGRAMANDO COM THREADS EM LINGUAGEM C
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 07: PROGRAMANDO COM THREADS EM LINGUAGEM C Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMANDO
Leia maisArquitetura de Computadores Sistemas Operacionais II
Definição de Processo Arquitetura de Computadores Sistemas Operacionais II Processo é o mesmo de Programa? Programa Estrutura estática Instruções + Dados Processo Entidade Ativa Instância de um Programa
Leia maisSSC0640 Sistemas Operacionais I
SSC0640 Sistemas Operacionais I 11ª Aula Threads Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano baseados no livro
Leia maisSistemas Operacionais. Conceito de Processos
Sistemas Operacionais Conceito de Processos Processos Conceito de processo Estado de um processo Troca de contexto e PCB Fila de Processo Escalonador Comunicação entre processos Processo Um sistema operacional
Leia maisFerramentas para Programação em Processadores Multi-Core
Ferramentas para Programação em Processadores Multi-Core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Arquiteturas multi-core Programação multithread Prática
Leia maisINTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13
INTRODUÇÃO AOS SISTEMAS OPERACIONAIS outubro/2013 SEMANA 13 Conceitos sobre s. Visão geral, s de usuário e de, modelos de multiing, ciclo de vida. Exemplos nos sistemas operacionais. 1 - Introdução Thread
Leia maisProf. Kleber R. Rovai
Msn: klrovai@hotmail.com E-mail: Skype: klrovai 2 1 Programa: sequência de instruções com diferentes fluxos de execução comandos condicionais e interativos (entidade passiva); Processo: um programa em
Leia maisProcessos e Threads. Ciclo 2 AT3. Prof. Hermes Senger
Processos e Threads Ciclo 2 AT3 Prof. Hermes Senger Nota O presente material foi elaborado com base no material didático do livro Sistemas Operacionais, 3ª edição, de H.M.Deitel, P.J. Deitel, D.R. Choffnes,
Leia maisProcessos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend
Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos
Leia maisConcorrência em Processos
Concorrência em Processos Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Baseado nas aulas do professor Alberto Costa Neto da UFS 1 O que fazer com essa apresentação
Leia maisSOP - TADS Processos. Revisão Ultima aula
SOP - TADS Processos Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula Revisão de hardware Processador
Leia maisEEL770 - Sistemas Operacionais Notas de Aula
EEL770 - Sistemas Operacionais Notas de Aula Pedro Cruz 1 Universidade Federal do Rio de Janeiro - PEE/COPPE/GTA cruz@gta.ufrj.br 1. Introdução Este texto contém notas de aula sobre a disciplina EEL770
Leia maisUnidade 2. Processos Threads Concorrência em Java
Unidade 2 Programação Concorrente Processos Threads Concorrência em Java Processos Definição Um programa em execução em uma máquina. Identificado pelo seu PID (Process Identifier). A unidade de processamento
Leia maisThreads. Pedro Cruz. EEL770 Sistemas Operacionais
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
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017. ALUNO Prof. Bosco
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO Prof. Bosco 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) Sockets são abstrações utilizadas nos protocolos de comunicação
Leia maisSistemas Operacionais
Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F. Martimiano e nas transparências
Leia maisLeandro Soares de Sousa (DSc.) Página: Aula 04 - desenvolvimento multithread
Tópicos Especiais Leandro Soares de Sousa (DSc.) e-mail: lsousa@id.uff.br Página: http://www.ic.uff.br/~lsousa Aula 04 - desenvolvimento multithread Mais e mais ferramentas! 2 Processos e Threads: desenvolvimento
Leia maisChapter 4: Threads. Operating System Concepts 8th Edition
Chapter 4: Threads Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2009. Esse apresentação foi modificada por Cristiano
Leia maisProcessos. Processo (1) Processo (2) Processo (3) Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Leia maisProcessos. Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Leia maisLeandro Soares de Sousa (DSc.) Página: Parte II
Tópicos Especiais em Sistemas Computacionais Leandro Soares de Sousa (DSc.) e-mail: leandro.uff.puro@gmail.com Página: http://www.ic.uff.br/~lsousa Parte II Mais e mais ferramentas! 2 Processos e Threads:
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 7: Implementação de Processos e Threads Diego Passos Revisão Programação Concorrente e Multiprogramação SOs modernos permitem diversos processos em memória. Cada
Leia maisSistemas Operacionais
ANHANGUERA Sistemas Operacionais Prof. Esp. Rafael Gross Processos Sumário Introdução Conceito de processo Estrutura do processo Estados do processo Mudanças de estado do processo Criação e eliminação
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) Sockets são abstrações utilizadas nos protocolos de comunicação UDP e TCP,
Leia maisProcessos. Adão de Melo Neto
Processos Adão de Melo Neto 1 Processos Introdução Para se poder controlar o uso concorrente (ao mesmo tempo) do processador, da memória e dos dispositivos de E/S, um programa deve sempre estar sempre
Leia maisSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Conteúdo Introdução ao S.O Gerenciamento de processos. Gerenciamento de memória. Dispositivos de Entrada/Saída. Sistemas de arquivos. Gerenciamento de processos Processos Um processo
Leia maisTrabalhando com Processos e Threads em Ambiente LINUX
Objetivo Universidade Federal do ABC Disciplina: BC 1518 Sistemas Operacionais (SO) Prática: Processo/Threads Atividade 3 Trabalhando com Processos e Threads em Ambiente LINUX 1.Trabalhar com comandos
Leia maisProcessos ca 3 pítulo
Processos capítulo 3 Introdução: Threads Para executar um programa, o sistema operacional cria um determinado números de processos virtuais. O sistema operacional mantém uma tabela de processos que contém
Leia maisProcessos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião
Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa. Para monitorar
Leia maisIntrodução aos Sistemas Operacionais. Threads
Introdução aos Sistemas Operacionais Threads Eleri Cardozo FEEC/Unicamp O que é uma Thread? Uma thread (linha de controle) é uma unidade de execução e de controle, alocação e compartilhamento de recursos
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 03/07/2017 ALUNO
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 03/07/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) A comunicação entre processos consiste em transmitir uma mensagem entre o
Leia maisFerramentas para Programação em Processadores Multi-Core
Ferramentas para Programação em Processadores Multi-Core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Arquiteturas multi-core Ferramentas de programação Prática
Leia maisSistemas de Informação. Sistemas Operacionais
Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE I SUMÁRIO 2. PROCESSO: 2.1 Introdução; 2.2 Estrutura do Processo; 2.3 Estados do Processo; 2.4 Mudanças de Estado do Processo; 2.5
Leia maisSistemas Operacionais I Parte VI Threads
Sistemas Operacionais I Parte VI Threads Roteiro Introdução Benefícios Ciclo de Vida Estados Modelos Multithreading Modelo Muitos para Um Modelo Um para Um Modelo Muitos para Muitos Sistemas com Threads
Leia maisProcessos. Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Leia maisSistemas Distribuídos
Sistemas Distribuídos Processos Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 - Processos Conceito originado do campos de sistemas operacionais no qual, em geral, são definidos como programas em execução
Leia maisUNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação. Processamento Paralelo Threads. Aluno: Wagner Palacio
UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação Processamento Paralelo Threads Aluno: Wagner Palacio Turma: 3º período Professor: Giordano Cabral Recife, 29 de maio de 2012
Leia maisThread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41
Thread Sistemas Operacionais Leonard B. Moreira UNIVERSIDADE ESTÁCIO DE SÁ e-mail: leonardbarreto@gmail.com.br fevereiro, 2013 1 / 41 Sumário 1 Introdução 2 Ambientes Monothread 3 Ambientes Multithread
Leia maisProcesso. Prof. Paulo Cesar F. de Oliveira, BSc, PhD
Prof. Paulo Cesar F. de Oliveira, BSc, PhD 1 Seção 1.1 Introdução 2 Receita do Bolo Programa (Algoritmo) Ingredientes: dados de entrada Quem prepara (confeiteiro): CPU atividade de: Ler a receita Buscar
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) Sockets são abstrações utilizadas nos protocolos de comunicação UDP e TCP,
Leia maisINE 5645 Programação Paralela e Distribuída
INE 5645 Programação Paralela e Distribuída Prof. João Bosco M. Sobral INE - UFSC bosco@inf.ufsc.br Urian K. Bardemaker PPGCC - INE - UFSC uriank@gmail.com Unidade 2 Programação Concorrente Processos Threads
Leia mais14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo
Conceito de processo Os computadores executam várias operações ao mesmo tempo. - Compilar um programa; - Enviar um arquivo para a impressora; - Exibir uma página web; - Reproduzir músicas; - Receber mensagens
Leia maisIntrodução ao OpenMP
Introdução ao OpenMP Threads em CPU multicore Rogério A. Gonçalves 1,2 Alfredo Goldman 2 1 Departamento de Computação (DACOM) Universidade Tecnológica Federal do Paraná (UTFPR) 2 Departamento de Ciência
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 03/07/2017 ALUNO
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 03/07/2017 ALUNO 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) A comunicação entre processos consiste em transmitir uma mensagem entre o
Leia maisProgramação concorrente (processos e threads)
Programação concorrente (processos e threads) Programação concorrente Por que precisamos dela? Para utilizar o processador completamente Paralelismo entre CPU e dispositivos de I/O Para modelar o paralelismo
Leia maisSistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional
Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional Processador INTRODUÇÃO Projetado apenas para executar instruções Não é capaz de distinguir qual programa está em execução Processo
Leia maisSistemas Distribuídos Capítulo 3 - Aula 3
Sistemas Distribuídos Capítulo 3 - Aula 3 Aula passada Arquitetura de SDs Estilo Arquitetônico Arquitetura de Sistemas Sistemas Autogerenciáveis Aula de hoje Threads Threads em SDs Processos Clientes Processos
Leia maisProcessos Concorrentes
Processos Concorrentes Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright
Leia maisSistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional
Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional ARQUITETURA E IMPLEMENTAÇÃO Pacote de Threads Conjunto de rotinas disponíveis para que uma aplicação utilize as facilidades dos threads.
Leia maisRedes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período
Redes de Computadores INF201 - Fundamentos de Sistemas Operacionais - 2º Período PARTE II: PROCESSOS E THREADS SUMÁRIO 5. PROCESSO: 5.1 Introdução; 5.2 Estrutura do Processo; 5.3 Estados do Processo; 5.4
Leia maisAULA Nº 08 SISTEMAS OPERACIONAIS. Threads
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
Leia maisThreads. threads em Linux Taisy Weber
Threads threads em Linux Taisy Weber Ambiente UNIX Processos: revisão de conceitos básicos processos no SO UNIX programação criação (exec, fork, etc), sincronização (wait), eliminação, processos zombie
Leia maisSistemas 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 Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 06 Processos 2 1 Processos A gerência de um ambiente multiprogramável é
Leia maisSistemas Operacionais II
Sistemas Operacionais II Windows Conceitos Básicos Geraldo Braz Junior Departamento de Informática - UFMA 2 Introdução Job Coleção de um ou mais processos gerenciados como uma unidade; Define cotas e limites
Leia maisAULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMAÇÃO PARALELA
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 4: Programação Concorrente Diego Passos Últimas Aulas Processos Compostos por: Código (programa). Estado (memória, registradores). Em um sistema com multiprogramação:
Leia maisChamadas de Sistema (SYSCALL)
Chamadas de Sistema (SYSCALL) Eduardo Ferreira dos Santos Engenharia de Computação Centro Universitário de Brasília UniCEUB Abril, 2016 1 / 26 Sumário 1 Estrutura dos Sistemas Operacionais 2 System Calls
Leia maisIntrodução. Pedro Cruz. EEL770 Sistemas Operacionais
Introdução Pedro Cruz EEL770 Sistemas Operacionais Roteiro Informações úteis Motivação Definições Revisão de arquitetura 2 Contato Site da disciplina www.gta.ufrj.br/~cruz/courses/eel770 Email cruz@gta.ufrj.br
Leia maisSistemas Operacionais. Capítulo 5 Processos
Sistemas Operacionais Capítulo 5 Processos Baseado no Livro e Material de Apoio de Arquitetura de Sistemas Operacionais 3ª edição - LTC - 2004 Francis Berenger Machado Luiz Paulo Maia Cap. 5 Processo 1
Leia mais! Os primeiros computadores permitiam a execução de apenas um programa de cada vez, com acesso completo aos recursos do sistema
Background! Os primeiros computadores permitiam a execução de apenas um programa de cada vez, com acesso completo aos recursos do sistema! Os sistemas actuais suportam o carregamento de múltiplos programas
Leia maisSistemas Distribuídos Aula 2
Sistemas Distribuídos Aula 2 Aula passada Logísitica Regras do jogo Definição e características Exemplos Aula de hoje Processos IPC Características Ex. sinais, pipes, sockets Objetivos Processos O que
Leia maisA IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES
A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES Euzébio da Costa Silva 1, Victor Pereira Ribeiro 2, Susana Brunoro Costa de Oliveira 3 1 29520-000, euzebioprogramacao@gmail.com 2 29520-000, victor3ifes@gmail.com
Leia maisSistemas Operacionais
Sistemas Operacionais Prof. Fabio Augusto Oliveira Processos O processador é projetado apenas para executar instruções, não sendo capaz de distinguir qual programa se encontra em execução. A gerência de
Leia maisSO: Gerenciamento de Processos
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
Leia maisEstrutura dos Sistemas Operacionais. Sérgio Portari Júnior
Estrutura dos Sistemas Operacionais Sérgio Portari Júnior - 2016 1 Sistema Operacional - Formas de acessar o KERNEL do SISTEMA OPERACIONAL (SO) - A linguagem de comandos faz parte do SO O Sistema Operacional
Leia maisSistemas Operacionais. Processos e Threads
Sistemas Operacionais Processos e Threads Sumário 1. Introdução 2. Estrutura do Processo 1. Contexto de Hardware 2. Contexto de Software 3. Espaço de Endereçamento 3. Estados 1. Mudanças de Estado 2. Criação
Leia maisSOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU
SOP - TADS Threads Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula Processos [1/3] Conceito:
Leia maisSistemas Operativos 4ª parte - Threads
Sistemas Operativos 4ª parte - Threads Prof. José Rogado jrogado@ulusofona.pt Prof. Pedro Gama pedrogama@gmail.com Universidade Lusófona Adaptação LIG e Notas por Dr. Adriano Couto Threads Objectivos do
Leia maisCapítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais
DCA-108 Sistemas Operacionais Capítulo 2 Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno
Leia maisSISTEMAS DISTRIBUÍDOS PROCESSOS. Slides cedidos pela professora Aline Nascimento
SISTEMAS DISTRIBUÍDOS PROCESSOS Slides cedidos pela professora Aline Nascimento INTRODUÇÃO Diferentes tipos de processos desempenham papel crucial em sistemas distribuídos. O conceito de um processo é
Leia maisAula 03 - Concorrência. por Sediane Carmem Lunardi Hernandes
1 Aula 03 - Concorrência por Sediane Carmem Lunardi Hernandes 2 1. Introdução Sistemas operacionais podem ser vistos como um conjunto de rotinas executadas concorrentemente de forma ordenada Princípio
Leia maisConcorrência. Prof. Paulo Cesar F. de Oliveira, BSc, PhD
Prof. Paulo Cesar F. de Oliveira, BSc, PhD 1 2 Seção 1.1 Sistemas Monoprogramáveis Multiprogramáveis 3 Monoprogramável Multiprogramável E/S E/S 1 UCP livre UCP 1 2 1 (a ) Sistema Monoprogramável tem po
Leia maisSistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia
Sistemas Operacionais BSI / UAB 2013 Hélio Crestana Guardia Visão do SO SO: camada de software, executado diretamente sobre o hardware (físico ou virtual) Permite que hardware seja usado de forma eficiente
Leia maisThreads. O que é uma Thread? Paralelismo
Threads em Java 1 O que é uma Thread? Paralelismo Threads Multi- threading é o mecanismo de concorrência suportado explicitamente pela linguagem Java. Os mecanismos de gerenciamento e sincronização de
Leia maisNa Aula Anterior... Interrupções por software e hardware; Temporizadores; RTC; Temporizadores via software. Relação Processos Multiprogramação
GSI018 Sistemas Operacionais 26/08/2016 Gerência de Processos Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior... Interrupções por software
Leia maisNotas da Aula 2 - Fundamentos de Sistemas Operacionais
Notas da Aula 2 - Fundamentos de Sistemas Operacionais 1. Ciclo de Vida de um Processo Todo processo passa por 3 fases durante sua vida: criação, execução e término. Um processo pode ser criado por outro
Leia maisProcessos. Processos e Recursos (1) Tabelas de Controle do S.O. Processos e Recursos (2)
Processos e Recursos (1) Processos Estruturas de Controle LPRM/DI/UFES 2 Processos e Recursos (2) Tabelas de Controle do S.O. O S.O. gerencia recursos computacionais em benefício dos diversos processos
Leia maisOO Engenharia Eletrônica
OO Engenharia Eletrônica - Programação em C/C++ Slides 18: Introdução à programação multi-thread. Thread: linha de execução de um processo. Multi-thread: execução de múltiplas threads em um processo. Prof.
Leia maisProcessos. Prof. Gustavo Leitão
Processos Prof. Gustavo Leitão Campus Natal Central Disciplina Programação para Ambiente de Redes Baseada na Aula do Prof. Ricardo Valentim 5/3/2010 Objetivo da Aula 5/3/2010 PLANO DE AULA Processos Processos:
Leia maisPROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com
PROCESSOS Prof. Maicon A. Sartin mapsartin@gmail.com Cenários em Sistemas Multitarefas Um usuário pode executar diversas atividades simultâneas Música Editoração de texto Navegar na Internet Servidor pode
Leia maisSistemas de Informação. Sistemas Operacionais
Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE II SUMÁRIO 3. THREAD: 3.1 Introdução; 3.2 Ambiente Monothread; 3.3 Ambiente Multithread; 3.4 Arquitetura e Implementação; 3.5 Modelos
Leia mais