Sistemas Operacionais

Documentos relacionados
AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

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

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

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

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

Sistemas Distribuídos Aula 3

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

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

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

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

Sistemas Operacionais

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

Prof. Kleber R. Rovai

Fundamentos de Sistemas Operacionais

Sistemas Distribuídos

SISTEMAS OPERACIONAIS

Sistemas Operacionais

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

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

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

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais. Processos e Threads

Sistemas Operacionais

Computadores e Programação (DCC/UFRJ)

Sistemas de Informação. Sistemas Operacionais

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

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas de Entrada e Saída

Introdução aos Sistemas Operacionais

Sistemas Operacionais I Parte VI Threads

Sistemas Operacionais Estrutura do Sistema Operacional. Arquiteturas do Kernel

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

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

Sistemas Operacionais. Gerência de Processador

Notas da Aula 2 - Fundamentos de Sistemas Operacionais

SSC0611 Arquitetura de Computadores

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

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

Fundamentos de Sistemas Operacionais

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

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

Sistemas Distribuídos Capítulo 3 - Aula 3

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

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

Thread. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Sistemas de Informação. Sistemas Operacionais

Questões de Múltipla escolha

Gerência de Recursos. Gerência do Processador

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

Processos ca 3 pítulo

SOP - TADS Escalonamento de Processos

Fundamentos de Sistemas Operacionais

Estrutura dos Sistemas Operacionais. Sérgio Portari Júnior

Sistemas Operacionais Aula 3

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

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios

1B Conceitos Básicos: Indique Verdade/Falso

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 08. Conceitos sobre processos. Modelos de processos, BCP, contextos, estados de processos.

Infra-Estrutura de Software. Escalonamento

Transcrição:

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 Threads

Processos Sistemas Operacionais Tradicionais Cada processo possui um espaço de endereçamento e um único fluxo de controle

Processos Processo em Memória Pilha Memória para alocação Dados de variáveis locais de uma sub-rotina Dados do endereço de retorno de uma sub-rotina Heap Memória para alocação sob demanda durante a execução Alocação dinâmica Código Objeto Contém as instruções binárias do código executável do processo Dados Espaço para variáveis do processo, declaradas como globais no programa PILHA HEAP 0011 0001 1000 1100 1001 1110 Olá Mundo! A B Sistema Operacional

Processos Sistemas Operacionais Tradicionais Programa em execução Possui um espaço de endereçamento e um único fluxo de controle Conjunto de recursos gerenciado pelo SO Registradores Memória Descritores de arquivos... A troca de contexto é uma operação onerosa Acontece cada vez que há decisão de escalonamento Existem situações onde é desejável ter múltiplos fluxos de controle/execução compartilhando o mesmo espaço de endereçamento Solução: threads

Threads Thread Linha de execução dentro de um processo Sequência independente de comandos de um programa Compartilham recursos de um processo Objetivo: associar mais de um fluxo de execução a um processo

Threads Multithreading: sistemas atuais suportam múltiplas threads de controle a) Três Processos b) Um processo com 3 threads Thread Processo Único processo com 3 threads As 3 threads utilizam o mesmo espaço de endereçamento

Threads Thread é uma entidade básica de utilização da CPU Também conhecidos como processos leves 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

Threads Estados: executando, pronta, bloqueada Comandos para manipular threads: Thread_create; Thread_exit; Thread_wait; Thread_yield;...

Threads Cada thread tem sua pilha de execução

Threads Itens por Processo Espaço de endereçamento Variáveis globais Arquivos abertos Processos filhos Alarmes pendentes Itens por Thread Contador de programa Registradores Pilhas Estado Compartilhamento de recursos Cooperação para realização de tarefas

Threads 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 É 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

Threads Razões de existir 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 I/O, as threads permitem que essas atividades se sobreponham, acelerando a aplicação Paralelismo Real em sistemas com múltiplas CPUs

Threads - Exemplos Servidor de Arquivos Recebe diversas requisições de leitura e escrita em arquivos e envia resposta a essas requisições Para melhorar desempenho, o servidor mantém um 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 thread seja bloqueada esperando uma transferência de arquivo Nesse caso, outras threads podem continuar atendendo a outras requisições

Threads - Exemplos Servidor de Arquivos Thread única Requisições atendidas em série Baixo Throughput

Threads - Exemplos Servidor de Arquivos Múltiplas Threads Modelo Cliente/Servidor O Servidor recebe as requisições dos clientes e as encaminha para as Threads de trabalho Cada Thread pode atender a uma requisição diferente Várias Threads podem executar ao mesmo tempo, compartilhando o processador Enquanto uma thread está bloqueada, outra thread pode ser posta para executar Executam em paralelo em sistemas multiprocessados Todas as Threads compartilham uma mesma cache de arquivo

Threads - Exemplos 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 consumo de tempo Com múltiplas threads, muitas imagens podem ser requisitadas ao mesmo tempo, melhorando o desempenho

Threads - Exemplos Editor de Texto Editores mostram documentos formatados que estão sendo criados em telas (vídeo) No caso de um livro, por exemplo, todos os capítulos podem estar em apenas um arquivo, ou cada capítulo pode estar em arquivos separados Diferentes tarefas podem ser realizadas durante a edição do livro Várias threads podem ser utilizadas para diferentes tarefas

Threads - Exemplos Threads para diferentes tarefas

Threads benefícios Capacidade de resposta: aplicações interativas Exemplo: Servidor Web Compartilhamento de recursos mesmo endereçamento, memória, recursos Economia criar e realizar chaveamento de threads é mais barrato Utilização de arquiteturas multiprocessador processamento paralelo

Tipos de Threads De usuário (Dos, Windows 3.1) Implementada por biblioteca no nível do usuário Criação e escalonamento são realizados sem o conhecimento do kernel Sistema supervisor (run-time system) Tabela de threads para cada processo Processo inteiro é bloqueado se uma thread realizar uma system call

Tipos de Threads Thread de Usuário

Tipos de Threads Threads de 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 SO que não tem threads Principal desvantagem Processo inteiro é bloqueado se uma thread realizar uma chamada bloqueante ao sistema

Tipos de Threads Threads de usuário Implementação em espaço de usuário Problemas: Como permitir chamadas bloqueantes se as chamadas ao sistema são bloqueantes e essa 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 Se uma thread não liberar a CPU voluntariamente, ela executa o quanto quiser Uma thread pode não permitir que o escalonador tenha sua vez

Tipos de Threads De kernel (Windows 2000, XP, Vista, Unix) Suportadas diretamente pelo SO Criação, escalonamento e gerência são feitos pelo kernel Tabela de threads e tabela de processos separadas Processo inteiro não é bloqueado se uma thread realizar uma system call

Tipos de Threads Thread de Kernel

Tipos de Threads 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

Threads de Usuário X Threads de Kernel

Threads Modelos Multithreading Muitos-para-um Mapeia muitas threads de usuário em apenas uma thread de kernel Não permite múltiplas threads em paralelo

Threads Modelos Multithreading Muitos-para-muitos Mapeia para múltiplas threads de usuário um número menor ou igual de threads de kernel Permite múltiplas threads em paralelo