SISTEMAS OPERACIONAIS



Documentos relacionados
8 Threads. 8.1 Introdução

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Introdução à Computação: Sistemas de Computação

SO: Gerenciamento de Processos

Programação Concorrente Processos e Threads

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

PROCESSOS. Prof. Maicon A. Sartin

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Arquitetura e Organização de Computadores

Sistemas Operacionais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Sistemas Operacionais. Prof. André Y. Kusumoto

Gerência do Processador

Gerenciamento de memória

Arquitetura de Computadores II

Arquitetura de Sistemas Operacionais

Sistemas Operacionais Conceitos Básicos

Sistemas Operacionais. Roteiro. Tipos de Tarefas (temporal) Marcos Laureano

Estrutura Interna do KernelUNIX Sistema O. Estrutura Interna de Arquivos (1) Estrutura Seqüência. User application. Standard Unix libraries

Sistema Operacional Correção - Exercício de Revisão

Sistemas Operacionais Processos e Threads

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Capítulo 4 Gerência de Processador

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Processos. Estruturas de Controle

Sistemas Operacionais

Universidade Federal do Rio de Janeiro Pós-Gradução em Informática. Microarquiteturas de Alto Desempenho. Multithreading. Gabriel P. Silva.

(Aula 15) Threads e Threads em Java

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Arquitetura dos Sistemas Operacionais

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton

Slide. ! Multiprocessamento! Modelo de processo. Dep. Ciência da Computação. Slide. ! Alternância de processos. ! Relação Programa x Processo

Sistema de arquivos. Dispositivos com tecnologias variadas. CD-ROM, DAT, HD, Floppy, ZIP SCSI, IDE, ATAPI,... sistemas de arquivos em rede

03 GERÊNCIA DO PROCESSADOR

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

Métodos de Sincronização do Kernel

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Gerenciamento de Processos

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Nível do Sistema Operacional

Escalonamento de CPU 2 Quadrimestre

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

Sistemas Operacionais

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Gerenciamento Básico B de Memória Aula 07

Infra-Estrutura de Software. Introdução. (cont.)

Sistemas Operacionais

Sistemas Operacionais

Conceitos Básicos sobre Sistemas Operacionais

Edeyson Andrade Gomes.

ARQUITETURA DE COMPUTADORES

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Classificação Quanto. Sistemas de Lotes (2) Sistemas de Lotes (3)

Sistemas Operacionais I

SISTEMAS OPERACIONAIS

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Escalonamento de processos

FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado. Memória Armazenamento Sistema de Arquivos

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Sistemas Operacionais

Processos e Threads (partes I e II)

Processos. Adão de Melo Neto

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

Escalonamento no Linux e no Windows NT/2000/XP

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais

Sistemas Operativos I

GERENCIAMENTO DO PROCESSADOR. Prof. Maicon A. Sartin

AULA 16 - Sistema de Arquivos

Arquitetura de Sistemas Operacionais

É a associação de mais de um fluxo de execução em um único processo.

Fundamentos de Sistemas Operacionais

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software. Prof. MSc.

Sistemas Operacionais 2014 Sistema de E/S. Alexandre Augusto Giron

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto

REDES DE COMPUTADORES HISTÓRICO E CONCEITOS

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo.

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

Sistemas Operativos. Sumário. Escalonador da CPU. ! Filas Multinível. ! Filas Multinível com Feedback. ! Escalonamento em multiprocessadores

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Introdução a Computação 07 Sistemas operacionais. Márcio Daniel Puntel marcio.puntel@ulbra.edu.br

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS. 2º TRIMESTRE Patrícia Lucas

Introdução aos Sistemas Operacionais. Computador = hardware + software. Como é formado o meu computador? E como estes componentes se comunicam?

Capítulo 8 Arquitetura de Computadores Paralelos

Sistemas Operacionais

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Capítulo 4 Gerenciamento de Memória

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

Sistemas Operacionais Arquivos

Transcrição:

SISTEMAS OPERACIONAIS Processos e Threads Andreza Leite andreza.leite@univasf.edu.br

Plano de Aula 2 Gerenciamento de Processos Threads Aplicações com múltiplas Threads Concorrência e Compartilhamento Modelos de Sistemas

3 Processo em memória: Pilha: Memória para alocação: Dados de variáveis locais a sub-rotinas 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 as variáveis do processo, declaradas como globais no programa. Área do usuário vs. área do sistema. Pilha Heap 0110 0111 01111 11 0 111111 0000101 1 Hello World! Managing Memory! A B Sistema Operacional Espaço de Endereçamento

4 Processo: Um programa em execução Uma unidade de escalonamento Um fluxo de execução Um conjunto de recursos gerenciadospelo S.O. Registradores (PC, SP, ) Memória Descritores de arquivos Etc A troca de contexto é uma operação pesada Deve acontecer cada vez que há decisão de escalonamento Pilha Heap 0110 0111 01111 11 0 111111 0000101 1 Hello World! Managing Memory! A B Sistema Operacional

5 Thread: Linha de execução dentro de um processo Seqüência independente de comandos de um programa. Fluxo de Execução Compartilham recursos do processo Idéia simples: associar mais de um fluxo de execução a um processo: Compartilhamento de recursos do processo (PCB -ProcessControl Block) O PCB deve incluir uma lista de threads!

6 Processos & Threads fork() pthread create() Pilha Pilha Pilha Pilha Heap Heap Heap Heap 0110 0111 01111 11 0 111111 0000101 1 0110 0111 01111 11 0 111111 0000101 1 0110 0111 01111 11 0 111111 0000101 1 0110 0111 01111 Hello World! Managing Memory! Hello World! Managing Memory! Hello World! Managing Memory! Hello World! Managing Memory! A B A B A B A B Sistema Operacional Sistema Operacional Sistema Operacional Sistema Operacional

7 Thread: Vantagens: São processos leves Troca de contexto mais rápida; Tempo de criação menor Diminui o tempo de resposta do sistema; Maior facilidade para mesclar threads I/O-bound com threads CPU-bound. Usa eficientemente as arquiteturas multi-processadas/multicores.

8 Principais aplicações: Aplicações de processamento paralelo CPU bound: ganho com várias CPU I/O bound: ganho sempre Se uma thread está bloqueada a outra pode executar Aplicações que acessam dispositivos secundários lentos (disco local ou remoto) e não querem ficar esperando síncronos - pela resposta para poder continuar executando.

9 Principais aplicações: Aplicações que controlam múltiplos servidores ou múltiplos clientes. Melhorar funcionalidade e performance da interface gráfica.

10 Características: Herança de recursos alocados pelo processo. Menos custo ao SO para instanciação. Arquivos, Portas de Comunicação, Memória, Ponteiros Possuem contador de programas, ponteiro, contexto, prioridade, etc; Disputam, entre sí, pelo processador. Podem executar em paralelismo real multiprocessamento ou virtual multiprogramação.

11 Funcionamento: Pode criar threads filhas (secundárias). Remoção automática após término da função. pthread create() pthread create() pthread create() pthread_cond_signal

12 Funcionamento:

13 Diferenças de Processos Convencionais THREADS de um mesmo processo compartilham o mesmo Espaço de Endereçamento. Não existe proteção garantida entre threads de um mesmo processo Uma Thread pode ler, escrever, ou até mesmo eliminar uma pilha de outra Thread do mesmo processo

14 Diferenças de Processos Convencionais Threads de um mesmo processo herdam desde os arquivos abertos, temporizadores, sinais, semáforos, variáveis globais, etc. Uso de THREADS Paralelismo combinado com execução serial

15 Metas: Performance Tempo total de computação Criação de Threads e Troca de Contexto OVERHEAD CPU-Bound Única Thread ou Múltiplas? Sincronização. Vazão (Throughput) Produtividade

16 Modelos de Alocação Dinâmica Thread é alocada por demanda Cria, usa e descarta Boa escalabilidade Pode criar novas até o limite do SO Desempenho é reduzido com tempo de criação da Thread

17 Modelos de Alocação Estática Threads são pré-alocadas Aumenta o desempenho eliminando o overhead de criação antes do uso Baixa escalabilidade pois o número de Threads é predeterminado

18 Modelos de Alocação Híbrido Pré-aloca n Threads Se todas forem usadas, aloca mais por demanda

19 Modelos de Programação Mestre/ Trabalhador Thread principal Mestre Atribuição de tarefas às Threads Trabalhadoras Thread Trabalhadora sinaliza estado Livre ou Ocupada. Filas Disponibilização, pelo Mestre, de novas tarefas. Trabalho em Grupo Tarefas divididas Macro-Tarefas são divididas em micro-tarefas (Threads) concorrentes Linha de Montagem Tipo Pipeline

20 Fluxos de Execução Modelos de Programação

21 Fluxos de Execução Modelos de Implementação Nível do Kernel Nível do Usuário Multiplexação

22 Modelos de Implementação Nível do Kernel Modelo 1:1 (Ex. Windows 2000, XP, Vista, Unix) Thread visível ao processo possui uma Thread correspondente no Kernel.

23 Modelos de Implementação Nível do Usuário Modelo N:1 Exemplo: DOS + Windows 3.11 Threads visíveis ao processo são mapeadas como uma simples Thread no Kernel. Multiplexação M threads de processo multiplexadas para N thread Kernel. Multiplexação de threads de usuário sobre threads de núcleo

24 Modelos de Implementação Multiplexação O programador pode decidir quantas threads de núcleo usar e quantas threads de usuário multiplexar sobre cada uma. Nesse modelo cada thread de núcleo possui um conjunto de threads de usuário que aguarda por sua vez para usá-lo.

25 Implementação no Esp. End. do usuário (N:1) O sistema operacional não precisa suportar threads Por exemplo, SO monoprogramado Threads executam sobre o sistema de run-time O Kernel possui uma única Thread O run-time escalona as Threads visíveis ao programador para a Thread do Kernel

26 Implementação no Esp. End. do usuário (N:1) A troca de contexto é extremamente rápida - entre threads de um mesmo processo - até que outro seja escalonado Escalonamento personalizado Melhor escalabilidade Facilidade de alocação de espaço para tabelas e pilhas no espaço do usuário

27 Implementação no Esp. End. do usuário (N:1) Problemas no bloqueio de threads Problemas na utilização do tempo do processador

28 Implementação no Núcleo (1:1) Não é necessário um sistema de run-time Uma tabela de threads por processo Troca de contexto pode ser feita entre threads de processos diferentes Bloqueio de threads simplificado Execução preemptiva

29 (a) N: 1 (c) M:N (b) 1:1, com um contexto de processo (d) Múltiplos contextos de processo

30 Exemplos de Utilização Implementação de Servidor de Arquivos. Thread única Requisições atendidas em série Baixo Throughput Múltiplas Threads Modelo Mestre/Trabalhador O Mestre recebe as requisições dos clientes e as encaminha para as Threads de trabalho Cada Thread pode atender a uma requisição diferente

31 Exemplos de Utilização Implementação de Servidor de Arquivos. Múltiplas Threads 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

32 Sincronização de Threads Sincronização via sinais ou semáforos Thread fica bloqueada esperando sinais O bloqueio da Thread caso essa não seja a única do processo NÃO bloqueia o processo

33 Sincronização de Threads Modelo Produtor-Consumidor Paralelismo Inerente Compartilhamento de recurso Buffer de mensagens Utilização de Threads maximiza a utilização do Buffer

34 Produtor/Consumidor In Out Thread Buffer Processo Thread

35 Gerência de Threads Threads Estáticas O número de threads é definido quando o programa é escrito ou compilado Uma pilha de tamanho fixo é associada a cada thread Menor flexibilidade

36 Gerência de Threads Threads Dinâmicas Threads criadas e destruídas em tempo de execução Alocação por demanda O tamanho da pilha é passado como parâmetro para a chamada de sistema de criação de thread

37 Compartilhamento de Dados Área de dados global do Processo é compartilhada por suas Threads Dados armazenados num espaço de endereçamento comum