SSC0640 Sistemas Operacionais I

Documentos relacionados
Sistemas Operacionais

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Sistemas Operacionais

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

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

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

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13

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

Sistemas Distribuídos

Sistemas Operacionais

Sistemas Distribuídos Aula 3

Sistemas Operacionais

SSC0640 Sistemas Operacionais I

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

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

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

Threads. Pedro Cruz. EEL770 Sistemas Operacionais

Sistemas Operacionais

SSC0640 Sistemas Operacionais I

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

SSC0640 Sistemas Operacionais I

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

Processos ca 3 pítulo

Na Aula Anterior... O Conceito de Threads

Fundamentos de Sistemas Operacionais

SOP - TADS Processos. Revisão Ultima aula

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais

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

Davidson Rodrigo Boccardo

Unix Processos. Geraldo Braz Junior

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

SSC0640 Sistemas Operacionais I

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

Fundamentos de Sistemas Operacionais

Processos e Threads. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

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

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

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Sistemas de Entrada e Saída

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I

Sistemas Operacionais. Rodrigo Rubira Branco

Sistemas Operacionais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Sistemas Operacionais I Parte VI Threads

Computadores e Programação (DCC/UFRJ)

Arquitetura de Sistemas Operativos

Notas da Aula 2 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais II

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

Concorrência em Processos

SSC0640 Sistemas Operacionais I

SISTEMAS OPERACIONAIS

Sistemas Operacionais. Processos e Threads

Prof. Kleber R. Rovai

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

SSC0611 Arquitetura de Computadores

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

SISTEMAS OPERACIONAIS

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Distribuídos

Sistemas Operacionais

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

Processos. Prof. Gustavo Leitão

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

Sistemas Operacionais

Sistemas Operacionais Estrutura do Sistema Operacional. Arquiteturas do Kernel

Sistemas de Informação. Sistemas Operacionais

Questões de Múltipla escolha

Sistemas Distribuídos Capítulo 3 - Aula 3

Sistemas Operacionais I

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

ARQUITETURA DE COMPUTADORES

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais. Conceito de Processos

Sistemas Operacionais I

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

Ferramentas para Programação em Processadores Multi-Core

SOP - TADS Escalonamento de Processos

Sistemas de Entrada e Saída

Sistemas de Computação. Gerenciamento de memória

EEL770 Sistemas Operacionais

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

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

Sistemas de Entrada e Saída

Estruturas de Sistemas Operacionais

Prof. Kleber R. Rovai

Escalonamento de processos

Gerência de memória II

Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Gerência de Processador

Arquitetura de Computadores Sistemas Operacionais II

Organização e Arquitetura de Computadores I

Sistemas de Informação. Sistemas Operacionais

Gerência de Processos. Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela

Sistemas Distribuídos Aula 2

Transcrição:

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 Sistemas Operacionais Modernos de A. Tanenbaum 1

Processos Sistemas Operacionais tradicionais: Cada processo tem um único espaço de endereçamento e um único fluxo de controle Existem situações onde é desejável ter múltiplos fluxos de controle compartilhando o mesmo espaço de endereçamento: Solução: threads 2

Um processo tradicional (pesado) possui um contador de programas, um espaço de endereço e apenas uma thread de controle (ou fluxo de controle); Multithreading: Sistemas atuais suportam múltiplas threads de controle, ou seja, pode fazer mais de uma tarefa ao mesmo tempo, servindo ao mesmo propósito; a) Três processos b) Um processo com três threads Thread Processo As três threads utilizam o mesmo espaço de endereço 3

Thread é uma entidade básica de utilização da CPU. Também conhecidos como processos leves (lightweight process ou LWP); Processos com múltiplas threads podem realizar mais de uma tarefa de cada vez; Processos são usados para agrupar recursos; threads são as entidades escalonadas para execução na CPU A CPU alterna entre as threads dando a impressão de que elas estão executando em paralelo; 4

Cada thread tem sua pilha de execução 5

Itens por Processo Espaço de endereçamento Variáveis globais Arquivos abertos Processos filhos Alarmes pendentes Itens por Thread Contador de programa Registradores (contexto) Pilha Estado Compartilhamento de recursos; Cooperação para realização de tarefas; 6

Processo Unix Threads em um processo Unix 7

Como cada thread pode ter acesso a qualquer endereço de memória dentro do espaço de endereçamento do processo, uma thread pode ler, escrever ou apagar a pilha de outra thread; Não existe proteção pois: É impossível Não é necessário pois, diferente dos processos que podem pertencer a diferentes usuários, as threads são sempre de um mesmo usuário 8

Razões para existência de threads: Em múltiplas aplicações ocorrem múltiplas atividades ao mesmo tempo, e algumas dessas atividades podem bloquear de tempos em tempos; As threads são mais fáceis de gerenciar do que processos, pois elas não possuem recursos próprios o processo é que tem! Desempenho: quando há grande quantidade de E/S, as threads permitem que essas atividades se sobreponham, acelerando a aplicação; Paralelismo Real em sistemas com múltiplas CPUs. 9

Considere um servidor de arquivos: Recebe diversas requisições de leitura e escrita em arquivos e envia respostas a essas requisições; Para melhorar o desempenho, o servidor mantém uma cache dos arquivos mais recentes, lendo da cache e escrevendo na cache quando possível; Quando uma requisição é feita, uma thread é alocada para seu processamento. Suponha que essa thread seja bloqueada esperando uma transferência de arquivos. Nesse caso, outras threads podem continuar atendendo a outras requisições; 10

Considere um navegador WEB: Muitas páginas WEB contêm muitas figuras que devem ser mostradas assim que a página é carregada; Para cada figura, o navegador deve estabelecer uma conexão separada com o servidor da página e requisitar a figura tempo; Com múltiplas threads, muitas imagens podem ser requisitadas ao mesmo tempo melhorando o desempenho; 11

Benefícios: Capacidade de resposta: aplicações interativas; Ex.: servidor WEB; Compartilhamento de recursos: mesmo endereçamento; memória, recursos; Economia: criar e realizar chaveamento de threads é mais barato; Utilização de arquiteturas multiprocessador: processamento paralelo; 12

Tipos de threads: Em modo usuário (espaço do usuário): implementadas por bibliotecas no espaço do usuário; Criação e escalonamento são realizados sem o conhecimento do kernel; Sistema Supervisor (run-time system): coleção de procedimentos que gerenciam as threads; Tabela de threads para cada processo; Cada processo possui sua própria tabela de threads, que armazena todas a informações referentes à cada thread relacionada àquele processo; 13

em modo usuário 14

em modo usuário Tipos de threads: Em modo usuário Vantagens: Alternância de threads no nível do usuário é mais rápida do que alternância no kernel; Menos chamadas ao kernel são realizadas; Permite que cada processo possa ter seu próprio algoritmo de escalonamento; Podem ser implementado em Sistemas Operacionais que não têm threads Principal desvantagem: Processo inteiro é bloqueado se uma thread realizar uma chamada bloqueante ao sistema; 15

Implementação de threads Implementação em espaço de usuário: Problemas: Como permitir chamadas bloqueantes se as chamadas ao sistema são bloqueantes e essa chamada irá bloquear todas as threads? Mudar a chamada ao sistema para não bloqueante, mas isso implica em alterar o SO -> não aconselhável Verificar antes se uma determinada chamada irá bloquear a thread e, se for bloquear, não a executar, simplesmente mudando de thread Page fault Se uma thread causa uma page fault, o kernel, não sabendo da existência da thread, bloqueia o processo todo até que a página que está em falta seja buscada Se uma thread não liberar a CPU voluntariamente, ela executa o quanto quiser Uma thread pode não permitir que o processo escalonador do processo tenha sua vez 16

Tipos de Threads Tipos de threads: Em modo kernel: suportadas diretamente pelo SO; Criação, escalonamento e gerenciamento são feitos pelo kernel; Tabela de threads e tabela de processos separadas; as tabelas de threads possuem as mesmas informações que as tabelas de threads em modo usuário, só que agora estão implementadas no kernel; 17

em modo kernel 18

em modo kernel Vantagem: Processo inteiro não é bloqueado se uma thread realizar uma chamada bloqueante ao sistema; Desvantagem: Gerenciar threads em modo kernel é mais caro devido às chamadas de sistema durante a alternância entre modo usuário e modo kernel; 19

em modo Usuário x Threads em modo Kernel Threads em modo usuário Threads em modo kernel 20