Programação Paralela. Processos. Processos. Processos. Processos. Unidade 2
|
|
|
- Lucas Gabriel Antônio Aleixo de Escobar
- 8 Há anos
- Visualizações:
Transcrição
1 Unidade 2 Programação Paralela Definição Um programa em execução em uma máquina Identificado pelo seu PID ( (Process Identifier) Execução dos Um processador pode executar somente um processo a cada instante Em um S.O. multi-tarefa tarefa,, processos se alternam no uso do processador cada processo é executado durante um quantum de tempo Se houver N processadores, N processos podem ser executados simultaneamente 2 Escalonamento de O escalonador do S.O. seleciona o(s) processo(s) que deve(m) ser executado(s) pelo(s) processador(es) Algoritmo de Escalonamento Define a ordem de execução de processos com base em uma fila, prioridade, deadline, Em geral, os sistemas adotam uma política de melhor esforço para atender a todos os processos de maneira justa e igualitária do sistema e aplicações críticas (um alarme, por exemplo) exigem maior prioridade 3 Ciclo de vida simplificado de um processo Suspenso Criado Pronto Morto 4 Estados de um Processo Pronto: : processo pronto para ser executado, mas sem o direito de usar o processador : : sendo executado pelo processador Suspenso: : aguarda operação de I/O,, liberação de um recurso ou fim de tempo de espera trocam de estado de acordo com: Algoritmo de escalonamento Troca de mensagens Interrupções de hardware ou software 5 Troca de Contexto / Preempção O processo em execução é suspenso, e um outro processo passa a ser executado Ocorre por determinação do escalonador ou quando o processo que estava sendo executado é suspenso O contexto do processo suspenso deve ser salvo para retomar a execução posteriormente 6 1
2 O contexto de um processo compreende: O estado do processo Informações para escalonamento Dados para contabilização de uso Um segmento de código Um segmento de dados Os valores dos registradores O contador de programa Uma pilha de execução Arquivos, portas e outros recursos alocados É possível distinguir o motivo da suspensão Dormindo: em espera Criado temporizada Bloqueado: aguarda I/O Dormindo Bloqueado Em Espera Em espera: aguarda uma condição ser satisfeita Pronto Morto Chamadas do Sistema Operacional Unix Criar um Processo: fork() cria uma cópia do processo atual exec() carrega o código do processo int pid = fork(); // cria cópia do processo if (pid < 0) // erro na criação // trata o erro else if (pid > 0) // é o processo pai // executa código do pai else if (pid == 0) // é o processo filho exec( /bin/filho, 0); // executa código do filho 9 Chamadas do Sistema Operacional Unix Suspender a Execução: sleep(<tempo>) ou wait() reinicia com kill(< (<pid>,sigwait) Obter Identificador do Processo: getpid() Aguarda o Fim dos Criados: join() Finalizar o Processo: exit(<retorno>) Destruir um Processo: kill(< (<pid>,sigkill) 10 Interação com o Usuário no Unix são criados através da interface gráfica ou de comandos digitados na Shell Comandos bloqueiam a Shell, a não ser que sejam seguidos de um & Os processos em execução são listados com o comando ps ef (ps aux em versões antigas) são destruídos com kill -99 <pid< pid> 11 Chamadas da API do Windows Criar um Processo: CreateProcess(<nome>, <comando>, ) ou CreateProcessAsUser(<usuário>,<nome>, ) Obter o Identificador do Processo: GetCurrentProcessId() Suspender a Execução: Sleep(<tempo>) Finalizar o Processo: ExitProcess(<retorno>) Destruir um Processo: TerminateProcess(<pid>, <retorno>) 12 2
3 Interação com o Usuário no Windows são criados através da interface gráfica ou de comandos digitados no Prompt O Prompt não bloqueia aguardando aplicações Windows, que executam em outra janela são listados/destruídos pelo Gerenciador de Tarefas 13 Definição (linhas) de execução são atividades concorrentes executadas por um processo Um processo pode ter uma ou mais threads pertencentes a um mesmo processo compartilham recursos e memória Suporte a nativas do S.O. Suporte de programação multi-thread thread Linguagem de programação multi-threaded threaded 14 Cada thread tem seu estado e segue um ciclo de vida particular Criada A vida da thread depende do seu processo Pronta Escalonamento Por Processo: escalonador aloca tempo para execução dos processos, que definem como usar este tempo para executar suas threads P 1 P 2 P 3 Dormindo Bloqueada Em Espera t 11 t 12 t 21 t 22 t t 31 t 32 t Por Thread: : escalonador define a ordem na qual as threads serão executadas Morta t 11 t 31 t 21 t 32 t 23 t 12 t 22 t 16 Troca de Contexto Quando duas threads de um mesmo processo se alternam no uso do processador, ocorre uma troca de contexto parcial Numa troca parcial, o contador de programa, os registradores e a pilha devem ser salvos Uma troca de contexto parcial é mais rápida que uma troca de contexto entre processos Uma troca de contexto completa é necessária quando uma thread de um processo que não estava em execução assume o processador X Troca de Contexto Área de Memória Comunicação Código Suporte em S.O. s Suporte em Ling. Prog. Completa Independente Inter-Processo Independente Quase todos Quase todas Parcial Compartilhada Intra-Processo Mesmo código Os mais atuais As mais recentes 18 3
4 POSIX Padrão adotado pelos UNIX e outros S.O. s Criar uma Thread: pthread_create( ( <thread< thread>, <atrib>, <rotina>, <args< args>); Obter Ident.. da Thread: pthread_self() Suspender Execução: pthread_delay_np(<tempo>) Finalizar a Thread: pthread_exit (<retorno>) Linux usa as mesmas rotinas, mas cria um processo por thread não é 100% POSIX 19 no Windows Criar uma Thread: CreateThread (<atribs atribs>, <tam_stack< tam_stack>, <rotina>, <params< params>, <flags< flags>,< >,<thread_id>) Obter Ident.. da Thread: GetCurrentThreadId() Suspender Execução: Sleep(<tempo>) ou SuspendThread (<thread thread>) retomar com ResumeThread(<t>) ou SwitchToThread(<t>) Finalizar a Thread: ExitThread(<retorno>) Destruir uma Thread: TerminateThread (<thread thread>,<retorno>) 20 Máquina Virtual Java, e Cada instância da JVM corresponde a um processo do sistema operacional hospedeiro A JVM não possui o conceito de processos apenas implementa threads internamente Ao ser iniciada, a JVM executa o método main() do programa na thread principal, e novas threads podem ser criadas a partir desta de uma mesma JVM compartilham memória, portas de comunicação, arquivos e outros recursos Implementação de no Java Green Usadas em sistemas sem suporte a threads e escalonamento implementados pela máquina virtual Java Nativas Usa threads nativas e escalonador do S.O. Usada nos sistemas suportados oficialmente Linux, Solaris e Windows Ideal em máquinas com >1 processador Ciclo de Vida de no Java Intervalo de tempo acaba Dormindo Suspensa por um intervalo de tempo Fim de I/O Bloqueada Operação de I/O Condição satisfeita Em Espera Criada Pronta Thread iniciada Escalonador (JVM ou S.O.) Aguarda uma condição Thread concluída Estados das em Java Pronta: : poderia ser executada, mas o processador está ocupado : : em execução Suspensa: Bloqueada: : aguarda operação de I/O Em Espera: : aguarda alguma condição Dormindo: : suspensa por um tempo Morta 4
5 na Linguagem Java O conceito de thread está presente em Java através da classe java.lang lang.thread,, que é um tipo predefinido da linguagem Java também oferece : Mecanismos para sincronização e controle de concorrência entre threads Classes para gerenciamento de grupos (pools)) de threads Classes da API que podem ser acessadas concorrentemente ( (thread-safe) Classe Thread e interface Runnable public class Thread extends Object implements Runnable { // Métodos da classe thread public interface Runnable { public void run(); // Código executado por uma thread Principais métodos de java.lang lang.thread Construtores: Thread(), Thread (Runnable), Thread(String), Thread(Runnable Runnable,, String), Método run() ():: contém o código executado pela Thread; ; herdado da interface Runnable; implementado pela Thread ou por um objeto passado como parâmetro para seu construtor Método start() ():: inicia a Thread em paralelo com a Thread que a criou, executando o código contido no método run() Criando no Java usando herança Definir uma classe que estenda Thread e implemente o método run() public class MyThread extends Thread { // código da thread Criar thread e chamar start() (),, que executa run() MyThread t = new MyThread(); // cria a thread t.start(); // inicia a thread Criando no Java usando herança Definir uma classe que implemente Runnable public class MyRun implements Runnable { // código da thread Criar uma Thread passando uma instância do Runnable como parâmetro e chamar start() Thread t = new Thread (new MyRun()); // cria a thread t.start(); // inicia thread Criando no Java sem usar herança Criar um Runnable,, definindo o método run() (), instanciar a thread passando o Runnable e chamar start() Runnable myrun = new Runnable() { // cria o runnable // código da thread ; new Thread(myRun).start(); // cria e inicia a thread 5
6 Criando no Java sem usar herança Criar uma Thread,, definindo o método run() (), e chamar start() Thread mythread = new Thread() { // cria a thread // código da thread ; mythread.start(); // executa a thread Nome da Thread Identificador não-único da Thread Pode ser definido ao criar a Thread com Thread(String) ou Thread(Runnable Runnable,, String) Se não for definido na criação, o nome da Thread será Thread Thread-n (com n incremental) Pode ser redefinido com setname(string) Pode ser obtido através do método getname() Prioridade da Thread Valor de 1 a 10; 5 é o default Thread herda prioridade da 8 thread que a criou 7 Modificada com setpriority(int) 6 Obtida com getpriority() 5 Escalonamento 4 com prioridades 3 iguais são escalonadas em 2 round-robin robin,, com cada uma 1 ativa durante um quantum 10 9 A B C D E F G H I J K L M N O P Q Outros métodos de java.lang lang.thread Obter Referência da Thread em Execução: currentthread() Suspender Execução: sleep(long long), interrupt() Aguardar Fim da Thread: join(), join(long long) Verificar Estado: isalive() (), isinterrupted() Liberar o Processador: yield() Destruir a Thread: destroy() public class ThreadSleep extends Thread { private long tempo = 0; public ThreadSleep(long tempo) { this.tempo = tempo; // Construtor // Código da Thread System.out.println(getName() +" vai dormir por "+ tempo +" ms."); try { sleep(tempo); System.out.println(getName() + " acordou."); catch (InterruptedException e) { e.printstacktrace(); for (int i=0; i<10; i++) // Cria e executa as new ThreadSleep((long)(Math.Random()*10000)).start(); Gerenciando a execução de threads Executores gerenciam grupos de Interfaces Executor e ExecutorService (que estende a primeira; é mais completa) São criados através da classe Executors: SingleThreadExecutor usa uma thread para executar atividades seqüencialmente FixedThreadPool usa um grupo de threads de tamanho fixo para executar atividades CachedThreadPool cria threads sob demanda 6
7 Exemplo de uso de Executor import java.util.concurrent.*; public class ExecutorTest { ExecutorService exec = Executors.newFixedThreadPool(10); for (int i=0; i<10; i++) { // Cria e executa as threads exec.execute(new ThreadSleep((long)(Math.Random()*10000))); // Encerra o executor assim que as threads terminarem exec.shutdown(); Escalonamento de atividades Um ScheduledExecutorService permite escalonar a execução de atividades, definindo um atraso para início da atividade e/ou um período de repetição entre execuções SingleThreadScheduledExecutor usa uma thread para todas as atividades escalonadas ScheduledThreadPool cria um grupo de threads para executar as atividades Escalonamento com ScheduledExecutor import java.util.concurrent.*; public class ScheduleThread extends Thread { public void run () { System.out.println(getName() + " executada."); ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor(); for (int i=0; i<10; i++) { long tempo = (long) (Math.random()*10000); System.out.println("Thread-" + i + " será executada em "+ tempo + "ms."); // Escalona a execução da thread exec.schedule(new ScheduleThread(), tempo, TimeUnit.MILLISECONDS); exec.shutdown(); Execução periódica com ScheduledExecutor import java.util.concurrent.*; public class CountdownThread extends Thread { private long tempo = 0, contagem = 10, espera = 5, intervalo = 1; public CountdownThread(long tempo) { this.tempo = tempo; public void run () { System.out.println(tempo +"segundos para o encerramento."); tempo--; ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor(); exec.scheduleatfixedrate(new CountdownThread(contagem), espera, intervalo, TimeUnit.SECONDS); try { exec.awaitexecution(contagem+espera, TimeUnit.SECONDS); catch (InterruptedException ie) { ie.printstacktrace(); exec.shutdown(); Grupos de A classe ThreadGroup define um grupo de que são controladas conjuntamente O grupo da Thread é definido usando o construtor Thread(ThreadGroup ThreadGroup,, ) // Cria grupo de ThreadGroup mygroup = new ThreadGroup("My"); // Cria e as insere no grupo Thread mythread1 = new MyThread(myGroup,"MyThread"+i); Thread mythread2 = new MyThread(myGroup,"MyThread"+i); // Interrompe todas as do grupo group.interrupt(); Variáveis locais em A classe ThreadLocal permite criar variáveis locais para (ou seja, que têm valores distintos para cada Thread) // Cria variável local static ThreadLocal valorlocal = new ThreadLocal(); // Define o valor da variável para esta Thread valorlocal.set(new Integer(10)); // Obtém o valor de var correspondente a esta Thread int valor = ((Integer) valorlocal.get()).intvalue(); // valor = 10 // Outra thread pode acessar a mesma variável e obter outro valor int valor = ((Integer) valorlocal.get()).intvalue(); // valor = 0 7
Unidade 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
Threads, Gerenciamento de Threads. Pool de Threads, Grupo de Threads Variáveis Locais à Threads
Threads, Gerenciamento de Threads Pool de Threads, Grupo de Threads Variáveis Locais à Threads Tarefa para Adormecimento e Despertar de Threads public class ThreadSleep extends Thread { private long tempo
Threads. 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
Programação Concorrente com Thread Java. Luiz Affonso Guedes Sistemas Distribuidos
Programação Concorrente com Thread Java Luiz Affonso Guedes Sistemas Distribuidos Definições Básicas Threads são sub-procesos no sistema operacional. É menos custoso gerenciar threads do que processos.
THREADS EM JAVA. George Gomes Cabral
THREADS EM JAVA George Gomes Cabral THREADS Fluxo seqüencial de controle dentro de um processo. Suporte a múltiplas linhas de execução permite que múltiplos processamentos ocorram em "paralelo" (em computadores
PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 11 - Threads e Concorrência
Aula 11 - Threads e Concorrência Conteúdo Programático desta aula Apresentar os Conceitos de Threads, Concorrência e Sincronização. Verificar a aplicabilidade destes conceitos no mercado, bem como sua
Capí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 [email protected] Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno
Sistemas 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
Programação Orientada a Objetos em Java. Threads Threads Threads. Threads
Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Threads Threads Threads Threads Professor: César Melo Slides baseados
Sistemas 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
Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads.
Threads Folha 5-1 Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads. Uma Thread é similar a um processo no sentido em que corresponde a um conjunto de instruções
14/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
Processos 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,
Java Threads. Introdução
Java Threads [email protected] 1 Introdução O único mecanismo de concorrência suportado explicitamente pela linguagem Java é multi-threading. threading. Os mecanismos de gerenciamento e sicronização
Sistemas 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
Prof. Kleber R. Rovai
Msn: [email protected] 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
Fundamentos de Programaçã. ção Concorrente
Java 2 Standard Edition Fundamentos de Programaçã ção Concorrente Helder da Rocha www.argonavis.com.br 1 Programação concorrente O objetivo deste módulo é oferecer uma introdução a Threads que permita
Sistemas 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
Threads e Concorrência em Java (Material de Apoio)
Introdução Threads e Concorrência em Java (Material de Apoio) Professor Lau Cheuk Lung http//www.inf.ufsc.br/~lau.lung INE-CTC-UFSC A maioria dos programas são escritos de modo seqüencial com um ponto
SOP - 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 [email protected] Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula Processos [1/3] Conceito:
Fundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.
Sistemas 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
LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?
LabSO Gerência de AULA 3 Flávia Maristela ([email protected]) Romildo Martins ([email protected]) Porque eu preciso entender este assunto? Para entender como um computador consegue executar
Programação Concorrente em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM
Programação Concorrente em Java Profa Andréa Schwertner Charão DLSC/CT/UFSM O que é programação concorrente? Um programa, múltiplos fluxos de execução Quando usar programação concorrente? Desempenho Ex.:
Sistemas 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
Técnicas Avançadas de Programação
Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos
Escalonamento de Processos Estratégias de Escalonamento de Processos
Estratégias de Escalonamento de s Rossano Pablo Pinto, MSc. FATEC - Americana 15/0/008 O que é um sistema multiprogramável? compartilha a CPU entre diversos processos é desejável que os processos obtenham
Estratégias de Escalonamento de Processos
Estratégias de Escalonamento de Processos Rossano Pablo Pinto, MSc. FATEC - Americana 15/02/2008 Prof. Ms. Rossano Pablo Pinto - FATEC Ame 1 O que é um sistema multiprogramável? compartilha a CPU entre
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Sistemas Operacionais Prof. Fabrício Sérgio de Paula
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Sistemas Operacionais Prof. Fabrício Sérgio de Paula Tópicos Conceitos Modelos multithreads Bibliotecas Opções de criação
Processos. 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
Thread. 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: [email protected] fevereiro, 2013 1 / 41 Sumário 1 Introdução 2 Ambientes Monothread 3 Ambientes Multithread
JAVA. Professor: Bruno Toledo
JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código
Universidade Federal da Paraíba
Universidade Federal da Paraíba Mestrado em Informática Fora de Sede Universidade Tiradentes Aracaju - Sergipe Disciplina Sistemas Operacionais Professor Jacques Philippe Sauvé Aluno José Maria Rodrigues
Estrutura 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
Resumo: Sistemas Operacionais Abertos
Resumo: Sistemas Operacionais Abertos Prof. Michael A. Pontes Processos Um processo é um programa em execução. Enquanto um processo é executado, ele muda de estado. O estado de um processo é definido pela
Sistemas Distribuídos e Paralelos
Sistemas Distribuídos e Paralelos Aula #6: Programação paralela em sistemas de memória compartilhada. ISUTIC - 2016 Eng. Alexander Rodríguez Bonet Aula de hoje Regiões paralelas. Cláusulas de âmbito. Partilha
Trabalhando 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
Sistemas 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
ENADE 2011 SISTEMAS OPERACIONAIS
ENADE 2011 SISTEMAS OPERACIONAIS SOs: conteúdos comuns Gerência de processos/processador Comunicação Concorrência e Sinc. de Processos Gerenciamento de Memória Alocação de Recursos e Deadlocks Sistemas
Notas 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
Sistemas de Computação. Processos e escalonamento
Processos e escalonamento Sistema operacional Programa que age como intermediário entre o usuário de um computador e o hardware Objetivos: Executar programas do usuário e facilitar a resolução de problemas
Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos
Conceito de Processo Módulo 4: Processos Um Sistema Operacional executa uma variedade de programas: Sistemas de processamento em lotes (batch) processa jobs Sistemas de tempo partilhado (time shared) roda
INE5645 Programação Paralela e Distribuída - Prova 1 22/10/2012 Aluno: Parte 1 Controle de Concorrência Conceitos Básicos (2,5)
INE5645 Programação Paralela e Distribuída - Prova 1 22/10/2012 Aluno: Parte 1 Controle de Concorrência Conceitos Básicos (2,5) 1.1 (Verdade/Falso) Itens próprios de processos são: Espaço de endereçamento,
Programação Concorrente
+ XV Jornada de Cursos CITi Aula 2 Programação Concorrente Benito Fernandes Fernando Castor João Paulo Oliveira Weslley Torres + Agenda Conceitos básicos de Threads em Java Benefícios de Thread Estados,Métodos,
Threads Aula 04 2 Quadrimestre
BC1518 - Sistemas Operacionais Threads Aula 04 2 Quadrimestre de 2010 Prof. Marcelo Z. do Nascimento Email: [email protected] Roteiro Threads: Visão Geral Benefícios Tipos Modelos de multithread
Questões de Múltipla escolha
ATPS Sistemas Operacionais Professor Matheus de Lara Calache Valor total do trabalho: 10 Cada resposta vale 0,34. Questões de Múltipla escolha 1) Processos podem ser organizados em filas como Fila de Prontos
(Aula 17) Threads em Java
(Aula 17) Threads em Java Difícil As Threads thread threads de emjava classificar sãogerenciadaspelajvm. podemser com user criadasdas thread ou kernel Profa. Patrícia A seguintesmaneiras: Fazendo extend
Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.
5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo
SOP - TADS Escalonamento de Processos
SOP - TADS Escalonamento de Processos Prof. Ricardo José Pfitscher [email protected] Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Cronograma Conceito de Escalonamento
Programação Paralela e Distribuída
INE 5645 Programação Paralela e Distribuída Professor: Lau Cheuk Lung (turma A) INE UFSC [email protected] Conteúdo Programático 1. Introdução 2. Programação Paralela 3. Controle de Concorrência 4.
Algoritmos de escalonamento
Algoritmos de escalonamento Escalonamento de Processos Sistemas Interativos Algoritmos para Sistemas Interativos: First-Come-First-Served (FIFO) Round-Robin; Prioridade; Múltiplas Filas; Utilizam escalonamento
Capítulo 2 Processos e Threads
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.5 Escalonamento 1 Processos O Modelo de Processo Multiprogramação de quatro programas
Sistemas Operacionais
Sistemas Operacionais ESCALONAMENTO DE PROCESSOS Processos e Recursos Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que executam no sistema. A questão
Sistemas Operacionais Aula 3
Sistemas Operacionais Aula 3 Anderson L. S. Moreira [email protected] http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer
Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli
Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; Tudo no mundo real pode ser representado por meio do conceito de "objeto": uma planta, uma mesa, uma pessoa, um sentimento,
Definição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU
Definição? Algoritmo de Escalonamento de CPU 6 Terminado? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU? Executado quando ocorre estouro de Quantum ou interrupção do processo (I/O,
Escalonamento de Processos
Porque é necessário escalonar? Escalonamento de s s precisam ser executados s concorrem a PU Escalonador: omponente (implementação) do sistema operacional etermina a ordem de dos baseado num algoritmo
Gerência de Recursos. Gerência do Processador
Gerência de Recursos Gerência do Processador Escalonamento Não-Preemptivos e Preemptivos Preempção - possibilidade de o SO interromper um processo em execução e substituí-lo por um outro. O Escalonamento
9 Classes Abstractas e Interfaces
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Programação Concorrente
INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC [email protected] Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica
Figura 01 Programa e Processo
02 PROCESSOS 2.1 Introdução Para poder controlar a execução dos diversos programas e o uso concorrente do processador e dos demais recursos um programa deve sempre estar sempre associado a um processo.
Estrutura do Sistema Operacional
Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 04 Estrutura do Sistema Operacional 2 1 Estrutura do Sistema Operacional
Segundo trabalho prático de implementação Sistema de reserva de assentos
Segundo trabalho prático de implementação Sistema de reserva de assentos 1. Descrição do problema Computação Concorrente (MAB-117) 2016/2 Prof. Silvana Rossetto 1 DCC/IM/UFRJ 17 de novembro de 2016 Um
Gerência do Processador. Adão de Melo Neto
Gerência do Processador Adão de Melo Neto 1 Introdução Sistemas Multiprogramáveis: Múltiplos processos podem permanecer na memória principal compartilhando o uso da CPU. POLÍTICA DE ESCALONAMENTO Como
Estrutura dos Sistemas Operacionais. Adão de Melo Neto
Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional -São partes do SO -São ferramentas de apoio ao usuário -São formas de acessar as rotinas do kernel O Sistema Operacional é formado
Processos 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
Sincronização e Comunicação entre Processos. Adão de Melo Neto
Sincronização e Comunicação entre Processos Adão de Melo Neto 1 MOTIVAÇÃO 2 INTRODUÇÃO Em um sistema multiprogramado (concorrente) os processos alternam sua execução (ou seja, são executados alternadamente
Programação Concorrente Processos e Threads
Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por
Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações
Programação Orientada por Objectos com Java www.fe.up.pt/~aaguiar [email protected] 1 Multithreading 154 Objectivos Ser capaz de: Explicar os conceitos básicos de multithreading Criar threads múltiplos
Sistemas Operativos: Escalonamento de Processos
Sistemas Operativos: Escalonamento de Processos Pedro F. Souto ([email protected]) March 29, 2011 Sumário Escalonamento de Processos O Problema Algoritmos de Escalonamento de Processos Leitura Adicional Padrão
Noções de Processos. Plano da aula. Serviços oferecidos. Definição & Objetivos. Definição & Objetivos. Sistemas Operacionais : introdução
Plano da aula Noções de Processos Marcelo Johann Introdução Histórico Multiprogramação Noção de processo Definição Ciclo de vida do processo Suporte de Hardware para multi-programação Mecanismo de interrupção
Sistemas 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
Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos
Infra Estruturas Computacionais Professor: André Ferreira [email protected] Material baseado: Prof.ª Renata Vilas e outros Estados dos processos novo admissão condição satisfeita pronto carga
Sistemas Operacionais. Escalonamento de processos
Sistemas Operacionais Escalonamento de processos 1 Escalonamento de Processos Sistemas Interativos Algoritmos para Sistemas Interativos: First-Come-First-Served (FIFO) Round-Robin; Prioridade; Múltiplas
SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (http://flaviovdf.github.io)
SO: Escalonamento Sistemas Operacionais 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Aonde Estamos Processos Chapt 3 Threads Chapt 4 Vamos pular o Chapt 5 brevemente Sincronização e comunicação
Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 3. Escalonamento
Aula 3 Escalonamento Escalonamento Porque? Quando? Como? Critérios? Políticas de escalonamento Como avaliar? Referências: Capítulo 5: 5.1 a 5.3, 5.6 Porque Escalonar? Escalonamento controla compartilhamento
Arquitetura de Sistemas Operativos
Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Threads Conceito Um processo é um programa em execução. A execução de um processo é sequencial: pode-se caracterizar um processo pelo
Threads em Java. Sistemas Operacionais - Laboratório Professor Machado
Threads em Java Sistemas Operacionais - Laboratório Professor Machado 1 Conceitos de Programação Concorrente Uma unidade concorrente é um componente de um programa que não exige a execução seqüencial,
