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

Documentos relacionados
Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 3. Escalonamento

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

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

SISTEMAS OPERACIONAIS

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

Sistemas Operacionais. Conceito de Processos

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Sistemas Operacionais

Técnicas Avançadas de Programação

Davidson Rodrigo Boccardo

Infra-Estrutura de Software. Escalonamento

Sistemas Operacionais. Processos e Threads

Sistemas Operacionais. Capítulo 5 Processos

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

Sistemas Distribuídos Aula 3

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Arquitetura de Sistemas Operativos

Sistemas Operacionais

Processos. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,

Sistemas Operacionais

Sistemas Distribuídos Aula 2

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

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

Sistemas de Computação. Processos e escalonamento

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

Sistemas Operacionais. Escalonamento de Processos

Sistemas Operacionais I

Sistemas Operacionais

Sistemas Operacionais Aula 07: Scheduling da CPU. Ezequiel R. Zorzal

Processos. Conceitos Básicos

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

Processos. Estruturas de Controle

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

Sistemas Operacionais

Sistemas Operativos: Implementação de Processos

Sistemas Operacionais I

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

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)

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

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Fundamentos de Sistemas Operacionais

EEL770 - Sistemas Operacionais Notas de Aula

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

Processos. Processo (1) Processo (2) Processo (3) Conceitos Básicos

Processos. Conceitos Básicos

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

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

Introdução a Arquitetura de Sistemas Operacionais. Parte 01

Sistemas Operacionais

Questões de Provas de Períodos Anteriores

SO: Gerenciamento de Processos

Processos. Conceitos Básicos

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

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

Concorrência em Processos

Questões de Múltipla escolha

Sistemas Operacionais Escalonamento. Carlos Ferraz Jorge Cavalcanti Fonsêca

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

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

Processos. Escalonamento de Processos

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13

TAREFAS IMPLEMENTAÇÃO DE TAREFAS AULA 06 Sistemas Operacionais Gil Eduardo de Andrade

Processos. Processos e Recursos (1) Tabelas de Controle do S.O. Processos e Recursos (2)

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 1. Introdução

Disciplina: Sistemas Operacionais

Programação de Sistemas em Tempo Real

Sistemas Operacionais de Tempo Real. Sérgio Campos

Sistemas Operacionais

Processos. Escalonamento de Processos

Processos. Objetivos do Escalonamento. Políticas de Escalonamento. Algoritmos de Escalonamento. Maximizar a taxa de utilização da UCP.

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

Processos. Escalonamento de Processos

EEL770 Sistemas Operacionais

Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. Padrão de Execução dum Processo

Sistemas Operativos: Implementação de Processos

SOP - TADS Processos. Revisão Ultima aula

Infra-estrutura de Software. Escalonamento. Decidindo qual processo vai executar

Computadores e Programação (DCC/UFRJ)

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

ENADE 2011 SISTEMAS OPERACIONAIS

Sistemas Operacionais Aula 7

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

Arquiteturas de Computadores

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Escalonamento no Unix. Sistemas Operacionais

Escalonamento. Decidindo qual processo vai executar. Infra-estrutura de Software

SISTEMAS OPERACIONAIS

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

Sistemas Operacionais

INE 5645 Programação Paralela e Distribuída

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

Unidade III Gerência de Processos

Transcrição:

Aula 2 Gerência de Processos

Gerência de Processos O que são Processos e Threads? Porque são necessários? Como são implementados? Como são controlados? Escalonamento Referências: Capítulo 4: 4.1 a 4.5

Concorrência Porque executar vários programas simultaneamente? Permitir que vários usuários usem a máquina ao mesmo tempo Multiprocessadores: completar a tarefa mais rapidamente Muitas coisas acontecem ao mesmo tempo: E/S Tempo passa Múltiplos usuários... e o SO tem que coordenar estas atividades Multiprocessamento resolve estes problemas É implementado usando-se processos e threads

Processos Um processo é um fluxo de controle seqüencial e seu espaço de endereçamento Informalmente, um processo é a execução de um programa junto com dados usados por ele Pontos importantes: Execução seqüencial Tudo o que pode interagir com o processo (espaço de endereçamento): Registradores Memória usada Arquivos

Threads Um processo tem duas partes: Ativa: fluxo de controle Passiva: espaço de endereçamento Um thread consiste somente no fluxo de controle: Também chamado processo leve (diet?) Porque? Espaço de endereçamento custa caro Muitas vezes processos usam dados compartilhados, e usar-se vários threads no mesmo espaço de endereçamento é mais eficiente

Nomenclatura Processo (Unix): Espaço de endereçamento + fluxo de controle Thread: Fluxo de controle Tarefa (task): Espaço de endereçamento Um processo é uma tarefa com um único thread Uma tarefa pode conter vários threads Um thread pertence a uma única tarefa Confusão: frequentemente se usa processo ou tarefa quando se quer dizer thread

Implementação Tarefa contém: Espaço de endereçamento virtual Ambiente (arquivos, nomes, etc) Thread contém: Registradores (incluindo PC) Pilha de execução (stack) Todos os threads de uma tarefa acessam a mesma memória Até a pilha de execução de um thread pode ser acessada por outro thread

Pilhas de Execução p2() { }; p1(c) int c; { int a,b; p2(); }; main() { p1(c); }; end. ret. b a c end. ret. Pilha de execução do processo

Diversas combinações Uma tarefa, um thread: SOs simples como o DOS: um usuário faz uma coisa por vez Uma tarefa, vários threads: Núcleo do SO: coordena diversas atividades, mas proteção não é necessária Várias tarefas, um thread por tarefa: Unix original Diversos usuários com um programa cada Várias tarefas, vários threads por tarefa: Caso mais comum

Vários threads, uma CPU? Cada thread tem a ilusão de ter uma CPU dedicada, mas só existe uma CPU. O Escalonador é o programa que controla qual thread executa a cada instante: while (true) { espera_evento(); salva_thread_corrente(); escolhe_novo_thread(); carrega_novo_thread(); }

Escalonador Cada thread é representado por um PCB Process Control Block que contém: Estado do processo: Running, Ready e Blocked; Número do processo (thread); Program Counter; Registradores; Localização da pilha de execução; Priodidades de execução; etc...

Escalonador while (true) { espera_evento(); salva_thread_corrente(); escolhe_novo_thread(); carrega_novo_thread(); } Eventos podem causar reescalonamento: Internos: Thread espera por E/S Thread espera por outro thread Thread resolve dormir Externos: Interrupções de E/S Timer: o thread corrrente já executou demais

Escalonador O escalonador altera o estado do thread: Interrupção Ready Escolha Runnin g Evento Blocke d Evento Ready: Pronto para executar Running: Executanto Blocked: Esperando por algum evento

Escalonador while (true) { espera_evento(); salva_thread_corrente(); escolhe_novo_thread(); carrega_novo_thread(); } Salva o estado do thread corrente no PCB Registradores; PC; Localização da pilha de execução

Escalonador while (true) { espera_evento(); salva_thread_corrente(); escolhe_novo_thread(); carrega_novo_thread(); } Escolher um thread entre os que estão Ready. Várias políticas de escalonamento existem: FIFO Round-robin Priodidades (fixas ou dinâmicas)...

Escalonador while (true) { espera_evento(); salva_thread_corrente(); escolhe_novo_thread(); carrega_novo_thread(); } Carrega o estado thread corrente do PCB e coloca nos registradores Salvar o estado do thread antigo e carregar o estado do próximo é chamado troca de contexto: Overhead alto Necessário para proteção Ocorre com frequência muito alta Tem que ser otimizado

Escalonador P0 Escalonador P1 Interrupção Salva estado de P0 Carrega estado de P1 Salva estado de P1 Carrega estado de P0

Resumo Concorrência: Processos e threads Processo: fluxo de controle + espaço de endereçamento Thread: fluxo de controle Implementação via Escalonador: Estado do thread: Running, Ready, Blocked Escalonador decide qual thread será executado: Troca é causada por eventos; Escolha de novo thread depende de política de escalonamento; Troca de contexto