Sistemas Operacionais

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

SISTEMAS OPERACIONAIS
Sistemas Distribuídos
Sistemas Operacionais Aula II
Sistemas Operacionais
Sistemas Operacionais
IC - UFF Sistemas Operacionais Threads. IC - UFF Processos e threads Vimos o conceito de processo englobando duas características básicas: propriedade.
Infra-estrutura de Software - Aula de Revisão -
Sistemas Operacionais
Sistemas operacionais
Sistemas operacionais
Arquitetura e organização de computadores
Arquitetura e organização de computadores
Threads (Linha de execução )
Profa. Priscila Facciolli
Processos no Unix e Linux
Escalonamento Linux.
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
SSC SISTEMAS OPERACIONAIS I
Estruturas de Controle
Concorrência Aula X.
Sistemas Operacionais Turmas MBI1 e NBI2. Prof: Marcelo Mendes.
Curso Técnico em Manutenção e Suporte em Informática
Threads.
Sistemas Operacionais
Unidade 1-1 Processos e Threads
Fundamentos da Arquitetura de Computadores
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistema Operacional Processos
Concorrência entre Threads Java
Sistemas Operacionais Profª Adriana Vettorazzo
Conteúdo 1. Introdução Threads 2. Ambiente Monothread 3. Ambiente Multithread 4. Arquitetura e Implementação 5. Modelos de Programação.
Unidade 2 - Parte 1 Programação Concorrente
Escalonamento de Processos
Conteúdo Processos e threads Partes do processo
IC - UFF Sistemas Operacionais 4. Threads Texto base: capítulo 4 Operating Systems: Internals and Design Principles W. Stallings.
Sistemas Operacionais
Processos.
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Aula 9 Regiane Kawasaki
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Computação L1: Infra-Estrutura Básica
Capítulo VIII Ambientes de Execução
Prof. Alexandre Monteiro Recife
Escalonamento de Processos e Threads
Processos.
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Sistemas Operacionais
Prof. Werley T. Reinaldo 26/05/  Sistemas Operacionais:  Visão geral  As diferentes imagens do SO:  Visão Usuários;  Visão Projeto.  Multiprogramação;
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Multiprocessamento Sérgio Cavalcante CIn GRECO - CIn / UFPE.
Registradores.
SISTEMAS OPERACIONAIS MACH EPOS
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Sistemas Operacionais
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Administração de Sistemas Operacionais 1 -Windows
Sistemas Operacionais
Bruna Cavallero Martins Universidade Católica de Pelotas.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Transcrição da apresentação:

Sistemas Operacionais Threads Prof. Diovani Milhorim

Threads Lembrando… Escalonamentos preemptivos Um processo pode ter sua execução interrompida e voltar para a fila dos prontos. Exemplos: Round-Robin (fatia de tempo/quantum). Com prioridades para desempatar… Prioridades / múltiplas filas com realimentação. Com Round-Robin para desempatar.

Threads Lembrando… Um processo = uma imagem dinâmica de um processo em execução. Um processo = um conjunto de recursos de HW alocados pelo Sis. Op. = uma unidade a escalonar. A imagem do processo na memória é constituída de vários segmentos.

Threads Bloco Descritor de Processo A estrutura de dados que representa o processo no Sis. Op. É chamada “Process Control Block” (PCB) Contém as informações necessárias: Registradores, memória, disco (arquivos) Prioridade Estado Histórico (contabilidade) Ponteiro para um outro PCB (lista encadeada) O Sis. Op. deve manter listas de processos Listas encadeadas; A estrutura PCB é usada para tal; Mantém-se um ponteiro sobre o primeiro e/ou o último PCB.

Threads Imagem do processo

Threads A imagem do processo Texto: contém as instruções binárias do código executável do processo (imagem). Dados: espaço para as variáveis do processo, declaradas como globais no programa. Heap: memória para alocação sob-demanda durante a execução Alocação dinâmica Pilha: memória para alocação: De variáveis locais a sub-rotinas Do endereço de retorno de uma sub-rotina. Área do usuário vs. área do sistema.

Threads O processo é… Um programa em execução Uma unidade de escalonamento Um fluxo de execução Um conjunto de recursos (contexto) gerenciados pelo Sis. Op. Registradores Memória Descritores de arquivos Etc… A troca de contexto é uma operação pesada Deve acontecer cada vez que há decisão de escalonamento

Threads Threads é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas simultaneamente. Idéia simples: associar mais de um fluxo de execução a um processo: Compartilhamento de recursos do PCB O PCB deve incluir uma lista de threads!

Threads Em uma máquina multiprocessada ou em um cluster de computadores, podemos ter vários processos (inclusive de uma mesma aplicação) rodando ao mesmo tempo (vale salientar que em máquinas monoprocessadas o que ocorre é um pseudoparalelismo). Entretanto, na prática, precisamos de uma granularidade ainda menor, isto é, precisamos de paralelismo dentro de um mesmo processo. Esse paralelismo interno ao processo é obtido com o uso de Threads.

Threads

Threads Na realidade, uma thread é análoga a um processo tendo em vista que ambos são uma execução seqüencial de um conjunto de instruções. Contudo, uma thread é considerada leve pelo fato de rodar dentro do contexto do processo, aproveitando-se do compartilhamento dos recursos alocados para o ambiente do programa.

Threads Portanto, uma thread é um subconjunto das informações pertinentes a um processo e as threads de um mesmo processo compartilham recursos entre si: Itens por processo Itens por threads Espaço de endereçamento Variáveis globais Arquivos abertos Processos filhos Alarmes pendentes Sinais e tratadores de sinais Uso de recursos Contador de Programa Registradores Pilha Estado

Threads Cada thread tem sua própria pilha de execução. Threads são bem mais fáceis de criar e destruir, o que implica em um ganho de performance considerável.

Threads Há dois tipos de threads: de usuário e de sistema (núcleo). O sistema (núcleo) não sabe da existência de threads Núcleo gerencia processos monothread Cada processo tem sua própria tabela de threads Um sistema supervisor, dentro do processo, gerencia os threads Salva estado Faz escalonamento Melhor desempenho Threads devem se comportar educadamente -> Ceder a vez quando não puderem continuar.

Threads Threads de usuário:

Threads Threads de sistema: O núcleo conhece as threads e as gerencia Núcleo tem tabela de threads e tabela de processos Bloqueio de threads = chamadas ao sistema Núcleo escolhe outro thread do mesmo processo ou um thread de outro processo

Threads Threads de sistema:

Threads Grande parte das aplicações existentes usam o conceito de multitarefa (multithread). Por exemplo, quando estamos usando um navegador WEB (Internet Explorer, Netscape, ...), ao mesmo tempo em que estamos lendo um texto, também podemos estar efetuando o download de arquivos e ouvindo música. Para cada uma dessas atividades, o navegador cria threads que executarão em (pseudo)paralelamente.

Threads Grande parte das aplicações existentes usam o conceito de multitarefa (multithread). Por exemplo, quando estamos usando um navegador WEB (Internet Explorer, Netscape, ...), ao mesmo tempo em que estamos lendo um texto, também podemos estar efetuando o download de arquivos e ouvindo música. Para cada uma dessas atividades, o navegador cria threads que executarão em (pseudo)paralelamente.