Capitulo 6 Threads. Conceito dum Processos
|
|
|
- Helena Sanches Sabala
- 10 Há anos
- Visualizações:
Transcrição
1 Capitulo 6 Threads Processos versus Threads Utilidade de Threads Implementação de Threads Posix Threads Criação Attached and Detached Threads Locks Exemplos 6.1 Conceito dum Processos O conceito dum Processo pode ser dividido em dois : 1: Um conjunto de recursos necessários para a execução duma programa. Por exemplo : um espaço de endereçamento (virtual address space) que contêm o texto do programa e os seus dados uma tabela de Descritores de Ficheiros abertos informação sobre processos filhos código para tratar de sinais (signal handlers) informação sobre o próprio ( Permissões, Nome do Utilizador, Inventário) etc. 2 Uma linha ou contexto de execução, chamada Thread Uma thread tem um programa counter (pc) que guarde informação sobre a próxima instrução a executar Registadores valores das variáveis actuais Stack contem a história de execução com um frame para cada procedimento chamado mas não terminado 6.2 1
2 Criação de processos concorrentes utilizando a construção fork-join O processo filho é uma cópia exacta do processo que chama a rotina fork(), sendo a única diferença um identificador de processo (pid) diferente Programa principal FORK Spawned processes (giria de windows) FORK pid = fork() if (pid == 0) código executado pelo filho else código executado pelo pai if (pid == 0) exit (0); else wait (0); //esperar pelo filho.. JOIN 6.3 JOIN pai filho e pai do FORK JOIN JOIN JOIN Inter Process Communication Pipes, Shared Memory, Signal etc. Dois Processos partilhando um CPU conceito realidade context switch 6.4 2
3 O Modelo de Threads Os dois conceitos necessários para a execução duma programa, conjunto de recursos e contexto de execução podem ser separados: Assim 1. Processos são usados para agrupar recursos. 2. Threads são as entidades escalonadas para execução no CPU. 6.5 Processos versus Threads Heavyweight Process: programas completamente separados com suas próprias variáveis, pilha e alocação de memória IP Pilha stack Código Heap Rotinas de interrupção Arquivos Threads: lightweight processes rotinas compartilham o mesmo espaço de memória e variáveis globais Pilha stack Pilha stack IP IP Código Heap Rotinas de interrupção Arquivos 6.6 3
4 Processos versus Threads Per Thread Items Per Process Items Program Counter Address Space Stack Global Variables Register Set Open Files Child Threads Child Processes State (ready,blocked..) Timers Signals Semaphores Accounting Information 6.7 Duas Threads partilhando um CPU conceito Thread pronto para executar 0 x address space common runtime Text programa R0 Thread Em execução codigo biblioteca Environ $USER=A1 dados Rn realidade context switch PC SP x y registers CPU high y stack stack memoria 6.8 4
5 Beneficios de Threads vs Processos A criação e terminação duma thread nova é em geral mais rápida do que a criação e terminação dum processo novo. A comutação de contexto entre duas threads é mais rápido do que entre dois processos. A comunicação entre threads é mais rápida do que a comunicação entre processos - porque as threads compartilham tudo: espaço de endereçamento, variáveis globais etc. Multi-programação usando o modelo de threads é mais simples e mais portável do que multi-programação usando múltiplos processos. 6.9 Thread Usage (1) Office Processador de Texto com três threads. Quantos threads tem microsoft word no SO windows?
6 Thread Usage (2) : Web Server A multithreaded Web server 6.11 Thread Usage (2) Esboço do Código para um Web Server (a) Dispatcher thread Enquanto (VERDADE) Obter_proximo_pedido( &buf ); Iniciar_Worker_Thread( buf ); Threads múltiplas podem estar a executar simultaneamente para aproveitar arquitecturas como hyperthreading, multi-core e smp etc. Pode haver um conjunto de threads (thread pool) prontas para executar evitando assim o tempo de iniciar uma thread. Compare com a funcionamento do programa sshd numa maquina linux (secure shell daemon). Aqui, para cada nova ligação através dum programa cliente tipo putty o programa faz fork 6.12 (b) Worker thread Enquanto (verdade) Esperar_Trabalho ( &buf ); Look_for_page_cache(&buf,&page); If (page_not_in_cache (&page) Read_page_from_disk( &buf, &page); Return _page( &page ); 6
7 Thread Usage (3) : Matrizes Multiplicação de matriz : A.B=C O calculo dum elemento da Matriz C, envolve a multiplicação duma linha de Matrizx A com a coluna da Matriz B. a c b e d g f a. e b. g h c. e d. g a. f c. f b. h d. h Repare que cada elemento da Matriz C pode ser calculado indepenedentemente dos outros, portanto podem ser facilmente calculados por threads diferentes Links Very shortly, threads are "lightweight" processes (see the definition of a process in the Linux Kernel book) that can run in parallel. This is a lot different from standard UNIX processes that are scheduled and run in sequential fashion. More threads information can be found here or in the excellent Linux Parallel Processing HOWTO by Professor Hank Dietz. From The linux-kernel mailing list FAQ (REG) When people talk about threads, they usually mean kernel threads i.e. threads that can be scheduled by the kernel. On SMP hardware, threads allow you to do things truly concurrently (this is particularly useful for large computations). However, even without SMP hardware, using threads can be good. It can allow you to divide your problems into more logical units, and have each of those run separately. For example, you could have one thread read blocking on a socket while another reads something from disk. Neither operation has to delay the other. Read "Threads Primer" by Bill Lewis and Daniel J. Berg (Prentice Hall, ISBN ). Bibliografia acerca de threads (linux kernel developers)
8 Implementação de Threads Existem duas abordagens principais para a implementação de threads. Kernel-level Threads -- System Calls. User-Level Threads -- Thread Libraries. Existem vantagens e desvantagens em ambos os casos. Também existe sistemas operativos que implementam threads usando uma abordagem mista dos dois métodos principais, por exemplo Solaris da Sun Implementação de Threads no Kernel do SO threads geridas pelo kernel
9 Implementação dethreads no Kernel (KLT) Vantagens e Desvantagens Vantagens O kernel pode simultaneamente escalonar várias threads do mesmo processo em vários processadores (reais ou virtuais) As rotinas do próprio kernel podem aproveitar threads. Desvantagens: A troca entre threads implica acções do kernel e isto tem um custo que pode ser significativo Execução de KLT s
10 Implementação de Threads no User Space Uma biblioteca de threads implementada ao nível de utilizador Implementação de Threads no User Space Vantagens e Desvantagens de ULT (User Level Threads) Vantagens A troca de Threads não envolve o kernel Não há o custo adicional de execução do kernel O OS não precisa de oferecer apoio para threads portanto é mais simples. Escalonamento pode ser especifico para uma aplicação Uma biblioteca pode oferecer vários métodos de escalonamento portanto uma aplicação poderá escolher o algoritmo melhor para ele. ULTs podem executar em qualquer SO As bibliotecas de código são portáveis Desvantagens Muitas das chamadas ao sistema são bloqueantes e o kernel bloqueia processos neste caso todos as threads dum processo podem ser bloqueados. O kernel vai atribuir o processo a apenas um CPU portanto duas threads dentro do mesmo processo não podem executar simultaneamente numa arquitectura com múltiplas processadores
11 Execução de ULT s 6.21 KeInitThread Initialized KiReadyThread Ready process swapped Transition k stack swapped KiInsertDeferredReadyList KiRetireDpcList/KiSwapThread/ KiExitDispatcher KiProcessDeferredReadyList KiDeferredReadyThread no avail. processor Deferred Ready Ready PspCreateThread KiReadyThread KiInsertDeferredReadyList KiSetAffinityThread KiSetpriorityThread Thread scheduling states on Windows KiUnwaitThread KiReadyThread Waiting Idle processor or preemption Standby KiSelectNextThread KiQuantumEnd KiIdleSchedule KiSwapThread KiExitDispatcher NtYieldExecution preemption Affinity ok Affinity not ok Terminated KeTerminateThread Running preemption Kernel Thread Transition Diagram [email protected] /04/06 v0.4b 11
12 Pthreads API The POSIX standard defines an application programming interface (API) for writing multithreaded applications. This interface is known more commonly as pthreads. For more information, see the LinuxThreads README and the LinuxThreads Frequently Asked Questions. Getting Started With POSIX Threads Tutorial numa maquina linux >more /usr/include/pthread.h > man pthread_create etc 6.23 Criação de Threads: usando Pthreads Interface portável do sistema operacional, POSIX, IEEE Programa principal pthread_create( &thread1, NULL, proc1, &arg); thread1 proc1(&arg); Código da thread return(&status); pthread_join( thread1, NULL ou *status);
13 Pthread Join A rotina pthread_join() espera pelo término de uma thread específica for (i = 0; i < n; i++) pthread_create(&thread[i], NULL, (void *) slave, (void *) &arg);...thread mestre for (i = 0; i < n; i++) pthread_join(thread[i], NULL); 6.25 Detached Threads (desunidas) Pode ser que uma thread não precisa saber do término de uma outra por ela criada, então não executará a operação de união. Neste caso diz-se que o thread criado é detached (desunido da thread pai progenitor) Programa principal pthread_create(); Thread pthread_create(); Thread Término Término pthread_exit pthread_create(); 6.26 Thread Término 13
14 Acesso Concorrente às Variaveis Globais Quando dois ou mais threads podem simultaneamente alterar às mesmas variaveis globais poderá ser necessário sincronizar o acesso a este variavel para evitar problemas. Código nestas condição diz-se uma secção critica Por exemplo, quando dois ou mais threads podem simultaneamente incrementar uma variável x /* codigo Secção Critica */ x = x +1 ; Uma seção crítica pode ser protegida utilizando-se pthread_mutex_lock() e pthread_mutex_unlock() 6.27 Rotinas de lock para Pthreads Os locks são implementados com variáveis lock mutuamente exclusivas, variáveis mutex declaração : pthread_mutex_t mutex1; inicialização : pthread_mutex_init (&mutex1, NULL ); NULL specifies a default attribute for the mutex. Uma variável mutex criada dinamicamente (via malloc) deverá ser destruída com a função pthread_mutex_destroy() Protegindo uma secção critica utilizando pthread_mutex_lock() e pthread_mutex_unlock() pthread_mutex_lock ( &mutex1) ;. seção crítica. pthread_mutex_unlock( &mutex1 );
15 Exemplos Visualizar threads Ferramentas de visualização windows process explorer linux / macintosh comando ps Multiplicação de Matrizes Somar um vector 6.29 Exemplo: SOMAR Somar os elementos de um array, a[1000] int sum, a[1000] sum = 0; for (i = 0; i < 1000; i++) sum = sum +a[i]; O problemas será implementada usando, multi-processos com unix IPC multi-thread com pthreads e multi-threads com java threads
16 Implementação utilizando dois processos UNIX Inter Process Communication (IPC) O cálculo é dividido em duas partes, uma para a soma dos elementos pares e outra para os ímpares Processo 1 Processo 2 sum1 = 0 sum2 = 0 for (i = 0; i < 1000; i = i+2) for (i = 1; i < 1000; i= i+2) sum1 = sum1 + a[i] sum2 = sum2 + a[i] Cada processo soma o seu resultado (sum1 ou sum2) a uma variável compartilhada sum que acumula o resultado e deve ser ter seu acesso protegido Estrutura de dados utilizada sum Array a[] addr 6.31 Shared Memory Needed : Array_size * sizeof(int) + 1 int (global sum) // + Semaforo #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> #define array_size 1000 void P(int *s); void V(int *s); int main() int shmid, s, pid; char *shm; int *a, *addr, *sum; int partial_sum; int i; int init_sem_value =1 ; s = semget(ipc_private, 1, (0600 IPC_CREAT)); if (s == -1) perror( semget ); exit(1); if (semctl(s, 0, SETVAL, init_sem_value) < 0) perror( semctl ); exit(1); shmid = shmget(ipc_private,((array_size+1)*sizeof(int)),ipc_creat 0600); if (shmid == -1) perror( shmget ); exit (1); shm = (char *) shmat(shmid, NULL, 0); if (shm == (char*)-1) perror( shmat ); exit(1);
17 addr = (int *) shm; sum = addr; //sum at first address addr++; a = addr; //vector at others *sum = 0; //vamos arranjar alguns dados para somar for (i = 0; i < array_size; i++) *(a+i) = i+1; pid = fork(); if (pid ==0) partial_sum=0; for (i=0; i<array_size; i=i+2) partial_sum+=*(a+i); else partial_sum=0; for (i=1; i<array_size; i=i+2) partial_sum+=*(a+i); printf( soma parcial = %d \n,partial_sum); NOW.. WAIT FOR CHILD TO FINISH, PRINT RESULT, FREE Shared Memory //esperar pela terminação do filho if (pid == 0) exit (0); else wait(0); printf( A soma total é %d \n, *sum); /* remover memoria partilhada e semafor */ if (semctl(s, 0, IPC_RMID,1) == -1) perror( semctl ); exit(1); if (shmctl(shmid, IPC_RMID, NULL) == -1) perror( shmctl ); exit(1); //actualizar a soma global P(&s); *sum += partial_sum; V(&s); 6.33 Implementação das funções wait and signal dum semaforo s s é um inteiro- reside em memoria partilhada void V(int *s) struct sembuf sembuffer, *sops; sops = &sembuffer; sops->sem_num =0; sops->sem_op = 1; sops->sem_flg = 0; if (semop(*s, sops, 1) < 0) perror ( semop ); exit (1); return; void P(int *s) struct sembuf sembuffer, *sops; sops = &sembuffer; sops->sem_num = 0; sops->sem_op = -1; sops->sem_flg = 0; if (semop(*s, sops, 1) < 0) perror ( semop ); exit (1); return;
18 Implementação utilizando Pthreads São criadas n threads, cada uma obtém os números de uma lista, os soma e coloca o resultado numa variável compartilhada sum A variável compartilhada global_index é utilizada por cada thread para selecionar o próximo elemento de a Após a leitura do índice, ele é incrementado para preparar para a leitura do próximo elemento Estrutura de dados utilizada global_index sum Array a[] addr 6.35 #define array_size 1000 #define no_threads 10 int a[array_size]; int global_index = 0; int sum = 0; pthread_mutex_t mutex1; void * slave ( void *nenhum ) int local_index, partial_sum =0; do pthread_mutex_lock(&mutex1); local_index = global_index; global_index++; pthread_mutex_unlock(&mutex1); if (local_index < array_size) partial_sum += *(a+local_index); while (local_index < array_size); pthread_mutex_lock(&mutex1); sum+= partial_sum; pthread_mutex_unlock(&mutex1); return(null); main() int i; pthread_t thread [no_threads] ; pthread_mutex_init(&mutex1, NULL); for (i = 0; i < array_size; i++) a[i] = i+1; for (i = 0; i < no_threads; i++) if (pthread_create(&thread[i], NULL, slave, NULL)!= 0) perror( Pthread_create falhou ); exit(1); for (i = 0; i < no_threads; i++) if (pthread_join(thread[i], NUL)!= 0) perror( Pthread_join falhou ); exit(1); printf( A soma é %d \n, sum)
19 public class Adder public int [] array; private int sum = 0; private int index = 0; private int number_of_threads = 10; private int threads_quit; public Adder () threads_quit = 0; array = new int[1000]; initializearray(); startthreads() public synchronized int getnextindex() if (index < 1000) return (index ++); else return (-1); public synchronized void addpartialsum(int partial_sum) sum = sum + partial_sum; if (++threads_quit == number_of_threads) System.out.println( a soma dos números e +sum); 6.37 Implementação em Java O algoritmo de somar é igual ao algoritmo usado na implementação usando pthreads quer dizer utilize uma variável compartilhada aqui chamada index. private void initializearray() int i; for (i = 0; i < 1000; i+=) array[i] = i; public void startthreads () int i = 0; for (i = 0; i < 10; i++) AdderThread at = new adderthread(this, i); at.start(); public static void main(string args[]) Adder a = new Adder(); //end class Adder class AdderThread extends Thread int partial_sum = 0; Adder_parent; int number; public AdderThread (Adder parent, int number) this.parent = parent; this.number = number; public void run () int index = 0; while ( index!= -1) partial_sum = partial_sum + parent.array[index]; index = parent.getnextindex(); parent.addpartialsum(partial_sum); System.out.println ( Soma parcial da thread + number + é + partial_sum);
Pthreads API. Criação de Threads: usando Pthreads
Pthreads API The POSIX 1003.1-2001 standard defines an application programming interface (API) for writing multithreaded applications. This interface is known more commonly as pthreads. 6.1 Criação de
Linguagem de Programação I
Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Exemplo: Explorar Templates e Exceções Incrementar com o uso de STL 2 Crie uma função verificarpalindromo()
Sistemas Operacionais I
UFRJ IM - DCC Sistemas Operacionais I Unidade II - Threads 24/04/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Threads Processos Threads Conceituação Descrição e Imagem de uma Thread Tipos de thread
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
Programação com Posix Threads
9 Programação com Posix Threads Revisão: Data: 11-03-2016 Cap. 9 1/6 Programação multi-threaded com Pthreads 9.1. O que é uma thread? Um processo represente a execução pelo sistema operativo dum programa.
OO Engenharia Eletrônica
OO Engenharia Eletrônica - Programação em C/C++ Slides 18: Introdução à Multithreading. Introdução à Multithreading: execução concorrente de tarefas. Exemplos usando a biblioteca pthread que é de acordo
1. Discute as vantagens e desvantagens dum sistema de memória paginada, indicando também a importância do sistema dispôr duma memória cache.
Frequência II, 3 de Junho de 2011 Grupo A: Gestão de Memória (7 Valores) 1. Discute as vantagens e desvantagens dum sistema de memória paginada, indicando também a importância do sistema dispôr duma memória
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
Sistemas Operacionais
Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura
(Aula 15) Threads e Threads em Java
(Aula 15) Threads e Threads em Java Um fluxo computacional. A programa maioria de execução, dos seqüencial programas o qual simples consiste realiza tem uma de essa um certa único tarefa Grande característica:
PROCESSOS. Prof. Maicon A. Sartin [email protected]
PROCESSOS Prof. Maicon A. Sartin [email protected] 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
Máquinas virtuais. Máquina virtual de um processo. Máquinas virtuais (3) Máquina virtual de sistema. Máquinas virtuais (1) VMware para Windows e Linux
System API Máquinas virtuais System ISA (Instruction Set Architecture) Aplicações Chamadas ao sistema Sistema de Operação Hardware User ISA (Instruction Set Architecture) Uma máquina virtual executa software
Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal [email protected] www.ezequielzorzal.com
Sistemas Operacionais Aula 06: Threads Ezequiel R. Zorzal [email protected] www.ezequielzorzal.com Objetivos Introduzir o conceito de thread Discutir as APIs das bibliotecas de threads Pthreads, Win32
Sistemas Operativos Cap. IV Threads. Prof. José Rogado [email protected] Universidade Lusófona
Sistemas Operativos Cap. IV Threads Prof. José Rogado [email protected] Universidade Lusófona Threads Necessidades e Conceito Modelos de Multithreading Problemas de Threading As Pthreads Windows
Universidade da Beira Interior. Sistemas Distribuídos
Folha 6-1 Sincronização de Threads A sincronização de Threads em Java é baseada no conceito do Monitor (de Hoare). Cada objecto Java tem associado um monitor (ou lock ) que pode ser activado se a palavra
É a associação de mais de um fluxo de execução em um único processo.
Profa. Rita Rodorigo Threads Um processo é uma abstração que reúne uma série de atributos como espaço de endereçamento descritores de arquivos abertos, quotas, etc. Um processo possui ainda uma área de
Arquitetura de Computadores. Introdução aos Sistemas Operacionais
Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4
Processos e Threads (partes I e II)
Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa
Programação Concorrente em java - Exercícios Práticos Abril 2004
Programação Concorrente em java - Exercícios Práticos Abril 2004 1. Introdução As threads correspondem a linhas de controlo independentes no âmbito de um mesmo processo. No caso da linguagem JAVA, é precisamente
MAC422/5753 Sistemas Operacionais
MAC422/5753 Sistemas Operacionais Prof. Marcel P. Jackowski Aula #8 Sincronização: Semáforos, Barreiras e Monitores Jantar dos Filósofos Cinco filósofos que somente comem e pensam Cada um deles precisa
Capítulo 8. Software de Sistema
Capítulo 8 Software de Sistema Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Objectivos Conhecer o ciclo de desenvolvimento da linguagem Java
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,
Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Processo Profº Antonio Carlos dos S. Souza Estrutura do Processo Contexto de Software Contexto de Hardware Programa Espaço
Unidade IV: Ponteiros, Referências e Arrays
Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática
http://www.csl.mtu.edu/cs4411/www/notes/process/fork/create.html
http://www.csl.mtu.edu/cs4411/www/notes/process/fork/create.html FORK() SYSTEM CALL * UTILIZADO PARA CRIAR SUBPROCESSO * PROCESSO QUE CRIA É PAI * PROCESSO CRIADO É O FILHO * APÓS A CRIAÇÃO AMBOS OS PROCESSO
Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática
Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]
Programação Sistemas
Programação Sistemas Fios de Execução Programação de Sistemas Threads : 1/28 Porquê o paralelismo? (1) 1. Crescentes necessidades de computação têm sido satisfeitas com aumento do número de transístores
7 Processos. 7.1 Introdução
1 7 Processos 7.1 Introdução O conceito de processo é a base para a implementação de um sistema multiprogramável. O processador é projetado apenas para executar instruções, não se importando com qual programa
Infra-Estrutura de Software. Introdução. (cont.)
Infra-Estrutura de Software Introdução (cont.) O que vimos Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como
Processos. Adão de Melo Neto
Processos Adão de Melo Neto 1 EXECUTE O SEGUINTE Baixa a aula dos dias 20 MAR 15 e 08 MAI 15 e salve no computador. Feche o browser Inicialize o vmware player e inicialize a máquina virtual ubuntu Inicialize
Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo. http://www.dei.isep.ipp.pt/~orlando/so2/processos.
Página 1 de 5 Processos Consiste num método de descrição das actividades de um sistema operativo; Todo o software incluído no sistema operativo é organizado num grupo de programas executáveis. Cada um
Sistemas Operacionais
Sistemas Operacionais Aula 08 Processos Prof. Maxwell Anderson www.maxwellanderson.com.br Introdução Conceitos já vistos em aulas anteriores: Definição de Sistemas Operacionais Funções: máquina virtual
Sobre a apresentação (About(
Capítulo 4: Threads Sobre a apresentação (About( the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2005. Esse apresentação foi modificada por Cristiaino
Um processo sob UNIX ocupa uma área de memória formada basicamente por 3 partes:
Processos O UNIX é um sistema operacional multitarefa (suporta multiprogramação). Isso significa que ele é capaz de gerenciar a execução simultânea de vários programas. O termo processo é usado para caracterizar
Introdução à Ciência da Computação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Introdução à Ciência da Computação Aula 05 Rogério Eduardo Garcia ([email protected])
Gerência de processos Estudos de caso - BSD Unix
Gerência de processos Estudos de caso - BSD Unix Escalonamento preemptivo com prioridades dinâmicas Prioridades entre 0 e 127 0 a 49 kernel 50 a 127 usuário 32 filas de pronto Processos executando em modo
Aspectos de Sistemas Operativos
Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho Serviços de um sistema operativo Interface com o utilizador Chamadas ao sistema Programas de sistema
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
Java. Marcio de Carvalho Victorino www.dominandoti.eng.br
Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a
Escalonamento no Linux e no Windows NT/2000/XP
Escalonamento no Linux e no Windows NT/2000/XP 1 Escalonamento no Linux Os requisitos do escalonador do Linux eram: Apresentar boa performance em programas interativos, mesmo com carga elevada; Distribuir
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
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
(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
Sistema Operacional Correção - Exercício de Revisão
Prof. Kleber Rovai 1º TSI 22/03/2012 Sistema Operacional Correção - Exercício de Revisão 1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções? Não funcionaria.
Grupo I [4v] executaprograma();
Número: Nome: LEIC/LERC 2012/13-1º Exame de Sistemas Operativos 15/Janeiro/2013 Identifique todas as folhas. Responda no enunciado, apenas no espaço fornecido. Justifique todas as respostas. Duração: 2h30m
Algoritmos e Programação Estruturada
Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.
Sistemas Operacionais Processos e Threads
Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br [email protected] 1 Estrutura de um Sistema Operacional 2 GERÊNCIA DE PROCESSOS Um processo
Sistemas Operacionais
Sistemas Operacionais Aula 07 Arquitetura de Sistemas Operacionais Prof. Maxwell Anderson www.maxwellanderson.com.br Introdução Conceitos já vistos em aulas anteriores: Definição de Sistemas Operacionais
Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo [email protected]
Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo [email protected] Breve Histórico A linguagem de programação C foi criada na década de 70, por Dennis Ritchie, que a implementou,
Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2011 / 2012. Gestor de Processos
Gestor de Processos Núcleo do Sistema Operativo Sistemas Operativos 2011 / 2012 Gestor de Processos Entidade do núcleo responsável por suportar a execução dos processos Gestão das Interrupções Multiplexagem
Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados
Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados Tipo de dados, tipo abstrato de dados, estruturas de dados Termos parecidos, mas com significados diferentes Tipo de dado Em linguagens de programação
Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO
Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.
Sistemas Operacionais
Sistemas Operacionais Gerência de processos Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Introdução Multiprogramação Permite a execução de diversos processos concorrentemente Maior
Conceitos de Sistemas Operacionais: Chamadas de Sistema. Prof Rafael J. Sandim
Conceitos de Sistemas Operacionais: Chamadas de Sistema Prof Rafael J. Sandim Conceitos de Sistema Operacional Interface entre o SO e os Programas de usuário é definida pelo conjunto de instruções estendidas
8 Threads. 8.1 Introdução
1 8 Threads 8.1 Introdução Uma thread, também chamada de tarefa, pode ser definida como uma parte ou rotina de um processo em execução que compartilha o mesmo espaço de endereçamento, mas tem seu próprio
Capítulo 2 Processos e Threads Prof. Fernando Freitas
slide 1 Capítulo 2 Processos e Threads Prof. Fernando Freitas Material adaptado de: TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3ª edição. Disponível em: http://www.prenhall.com/tanenbaum_br slide
LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO
LABORATÓRIO DE SISTEMAS OPERACIONAIS PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO Sistemas Operacionais Conteúdo retirado de: SOsim: SIMULADOR PARA O ENSINO DE SISTEMAS OPERACIONAIS Luiz Paulo Maia
Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software
Resumo até aqui Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma máquina estendida abstrações SO como um
Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração: 1945-1955
O que vimos Infraestrutura de Software Introdução (cont.) Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma
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.
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
Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;
CAPÍTULO VI THREADS 6.1 INTRODUÇÃO Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread; O sistema operacional Toth, em 1979, foi o primeiro a implementar
Programação de Computadores I. Ponteiros
Ponteiros Prof. Edwar Saliba Júnior Outubro de 2012 Unidade 13 Ponteiros 1 Identificadores e Endereços Na linguagem C, uma declaração de variável faz associação entre um identificador e endereços de memória;
Sistemas 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
Introdução. Sistemas Operacionais
FATEC SENAC Introdução à Sistemas Operacionais Rodrigo W. Fonseca Sumário Definição de um S.O. Características de um S.O. História (evolução dos S.O.s) Estruturas de S.O.s Tipos de Sistemas Operacionais
Sincronização. Cooperação entre Processos
Sincronização Parte II Programação Concorrente Cooperação entre Processos Vários processos executam em conjunto uma ou mais tarefas, nas quais Competem por recursos Indicam uns aos outros a: Ausência/existência
Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron [email protected]
Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron [email protected] Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema
Sistemas Operacionais
Sistemas Operacionais Gerência do processador 2 a edição Capítulo 4 Revisão: Fev/2003 Sumário Implementação do conceito de processos e threads Escalonamento Escalonadores não -preemptivos Escalonamento
FBV - Linguagem de Programação II. Um pouco sobre Java
FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base
SO: 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
Programação de Sistemas
Programação de Sistemas Pai Natal Programação de Sistemas Pai Natal : 1/16 Problema (1) Considere o Pai Natal ( Santa Claus ) se encontra a dormir na sua loja em Rovaniemi-Lapónia finlandesa, sendo acordado
MÓDULO 02 PROCESSOS E THREADS PROCESSOS e THREADS
MÓDULO 02 PROCESSOS E THREADS PROCESSOS e THREADS 1. ATIVIDADE 01 Verificar a criação de um processo filho (que imprime de 51 a 100) que rodará concorrentemente com o processo pai (que imprime de 1 a 50)
Aula 30 - Sockets em Java
Aula 30 - Sockets em Java Sockets Sockets são estruturas que permitem que funções de software se interconectem. O conceito é o mesmo de um soquete (elétrico, telefônico, etc...), que serve para interconectar
Programação Paralela e Distribuída (DCC/UFRJ)
Programação Paralela e Distribuída (DCC/UFRJ) Aula 7: Programação com memória compartilhada usando OpenMP 1, 8, 10 e 15 de abril de 2015 OpenMP (Open MultiProcessing) Projetado para sistemas de memória
Sistemas Operativos: Threads
Sistemas Operativos: Threads Pedro F. Souto ([email protected]) March 8, 2012 Sumário Conceito de Thread Uso de threads Implementação de Threads Escalonamento de Threads Leitura Adicional Processos em Unix
PADI 2015/16. Aula 1 Introdução à Plataforma.NET
PADI 2015/16 Aula 1 Introdução à Plataforma.NET 1 Sumário 1. Framework.NET Arquitectura 2. Linguagem C# 2.0 Sintaxe C# vs. Java vs. C++ 3. IDE: MS Visual Studio 2005 ou superior Ferramentas Console/Win
