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

Documentos relacionados
Arquitetura de Computadores Sistemas Operacionais II

Sistemas Operacionais

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

SISTEMAS OPERACIONAIS

SOP Sistemas Operacionais Módulo 04: Processo

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

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

Sistemas Operacionais

Programação de Sistemas em Tempo Real

SISTEMAS OPERACIONAIS

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais. Processos e Threads

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

Notas da Aula 2 - Fundamentos de Sistemas Operacionais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO PROCESSOS PROFESSOR CARLOS MUNIZ

Prof. Kleber R. Rovai

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais. Conceito de Processos

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

Sistemas Operacionais

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

SOP - TADS Processos. Revisão Ultima aula

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

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

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13

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

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

Sistemas de Informação. Sistemas Operacionais

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

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

Sistemas Operacionais

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Arquitetura de Computadores. Processamento Paralelo

Unix Processos. Geraldo Braz Junior

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

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador

Sistemas Operacionais I

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

Sistemas Distribuídos Aula 3

Sistemas Operacionais

Processos. Conceitos Básicos

SSC0640 Sistemas Operacionais I

Disciplina: Introdução aos Sistemas Operacionais Professor: Fernando H. Santorsula

Threads. Pedro Cruz. EEL770 Sistemas Operacionais

Sistemas Operacionais I

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009

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

Sistemas Operacionais. Gerência de Processador

Sistemas Operacionais Aula 7

Sistemas Operacionais. Processos IC - UFF

Sistemas de Computação. Processos e escalonamento

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

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

SSC0640 Sistemas Operacionais I

Técnicas Avançadas de Programação

Processos. Adão de Melo Neto

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

Davidson Rodrigo Boccardo

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

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Processos. Conceitos Básicos

Sistemas Operacionais (SO)

Sistemas Operacionais

Sistemas Operacionais

Montagem e Manutenção

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

Processos. Conceitos Básicos

Processos e Threads. Ciclo 2 AT3. Prof. Hermes Senger

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

Curso: Redes de Computadores

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

Ferramentas para Programação em Processadores Multi-Core

Concorrência em Processos

Sistemas Operacionais

Capítulo 2 Processos e Threads

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sistemas Operacionais

Processos. Prof. Gustavo Leitão

Sistemas de Informação. Sistemas Operacionais

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

Sistemas Operacionais. Capítulo 5 Processos

Sistemas de Informação. Sistemas Operacionais

Sistemas de Computação O Sistema Operacional Unix

Infra-Estrutura de Software. Escalonamento

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Processos ca 3 pítulo

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Sistemas Operacionais Aula 3

2º Grupo Capitulo 11 Página 517 a 530 Camada do Núcleo a Manipuladores. Alunos Wanderson da Silva Serradilha Sérgio Vilela Maia Rúlio Márcio

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

ENADE 2011 SISTEMAS OPERACIONAIS

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

INE 5645 Programação Paralela e Distribuída

Capítulo 2 Processos e Threads

Sistemas Operacionais II

Transcrição:

DCA-108 Sistemas Operacionais Capítulo 2 Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno Necessidade de Multiprogramação Conceito de Processo Objetivo Apresentar de forma sistemática os principais conceitos associados com multiprogramação. Ciclo de vida de processo Estados de processo Thread Luiz Affonso Guedes 3 Luiz Affonso Guedes 4 Recordando Cenário Atual Uma ou mais CPUs, controladores de devices conectedos via uma barramento comum, acessando memórias compartilhadas. Execução concorrente de CPUs e devices competindo por recursos. Recordando Os 4 componentes de sistema computacional Nosso objetivo de estudo Luiz Affonso Guedes 5 Luiz Affonso Guedes 6

Recordando Objetivos de sistema operacional Executar programas de forma conveniente para o usuário. Gerenciar os recursos de software e hardware como um todo. Utilizar os recursos de hardware de forma eficiente e segura. Conclusão da Revisão Para se construir SO eficientes, há a necessidade Multiprogramação! Luiz Affonso Guedes 7 Luiz Affonso Guedes 8 Objetivos da Multiprogramação Tornar mais eficiente o aproveitamento dos recursos do computador. Execução simultânea de vários programas. Diversos programas são mantidos na memória. O próprio SO é um programa! Conseqüências da Multiprogramação Necessidade de controle e sincronização dos diversos programas. Necessidade de se criar conceitos e abstração novas Modelagem Implementação Luiz Affonso Guedes 9 Luiz Affonso Guedes 10 Conceitos Fundamentais Processos Interrupção Sincronização, comunicação, controle e proteção entre processos Definição de Processo Processo é o mesmo de Programa? Programa Estrutura estática Instruções + Dados Processo Entidade Ativa Instância de um Programa em execução. Processos = Programa + Identificador + Entrada + Saída + Estado Dois Processos podem executar instâncias diferentes do mesmo Programa. Luiz Affonso Guedes 11 Luiz Affonso Guedes 12

Estrutura de Processo na Memória Definição de Processo Processo é então um programa em execução! O SO trata com processos e não com programas. Tipos de Processos Do usuário Do SO, deamons Luiz Affonso Guedes 13 Luiz Affonso Guedes 14 Multiprocessos Necessidade de mudança de contexto entre processos Ciclo de Vida de Processos Como são programas em execução, eles têm começo, meio e fim. Início (criação) Executando Término Luiz Affonso Guedes 15 Luiz Affonso Guedes 16 Criação de Processo Momento do início da sua execução Associar recursos ao processo Identificador único (PID) caracterizado por um número inteiro Associar com um programa. Registrar o processo no SO (tabela de Processos) Essa tabela contém todos os dados necessários para se gerência um processos Exemplo de criação fork( ); (unix) CreateProcess ( ); windows32 Criação de Processo Ao se iniciar o computador, o SO cria vários processo. Em unix, ao se iniciar uma seção, o SO cria o processo init (PID=1) Luiz Affonso Guedes 17 Luiz Affonso Guedes 18

Processo em Execução Quando em execução, há basicamente dois modos de operação: Ciclo de processador quando está utilizando a cpu Ciclo de E/S quando está esperando por algum dado de E/S Processo em Execução Característica de Processos CPU-Bound Ciclo de CPU >> Ciclo de E/S Aplicações científicas. I/O-Bound Ciclo de E/S >> Ciclo de CPU Acesso a banco de dados. Processos mistos Luiz Affonso Guedes 19 Luiz Affonso Guedes 20 Término de Processo Relacionamento entre Processos Final de Execução Normal Por erro Overflow, divisão por zero, falta de memória Necessidade de liberar os recursos alocados ao processo. Como matar processos Por outro processo Comando kill no Unix Log-off do usuário Processos independentes Não há nenhum vínculo entre eles. Não compartilham arquivo, dados, etc. Grupo de Processos Há alguma relacionamento. Filiação Compartilhamento de recursos Dependência Luiz Affonso Guedes 21 Luiz Affonso Guedes 22 Hierarquia entre Processos Hierarquia entre Processos Por exemplo, no Unix cria-se um processo via a primitiva fork(); O criador é o Pai O processo criado é o Filho Árvore de processos típica do Solares Pai fork() Filho Luiz Affonso Guedes 23 Luiz Affonso Guedes 24

Hierarquia entre Processos Criação de Processo em POSIX O que ocorre quando um processo morre? A árvore de processos é alterada? É destruída toda a árvore? O processo Avó herda os netos? E se o Avó já estiver morto? Como gerenciar a árvore de processos? Luiz Affonso Guedes 25 Luiz Affonso Guedes 26 Criação de Processo em POSIX Estados de um Processo Após ser criado, o processo necessita entrar em ciclo de processador. Mas, se o processador já estiver ocupado com outro processo? Se um processo necessitar fazer uma operação de E/S, ele ainda vai ficar ocupando a CPU? Um processo pode ficar ocupando a CPU indefinidamente? Como modelar essas questões? Luiz Affonso Guedes 27 Luiz Affonso Guedes 28 Estados de um Processo Estados de um Processo Modelo de máquina de estados Quem controla a execução dos processos? No nível mais baixo do SO estão a manipulação de interrupção e o mecanismo de escalonamento de processos Luiz Affonso Guedes 29 Luiz Affonso Guedes 30

Filas Associadas ao Estados Mecanismo de Escalonamento de Processos Fila de Prontos Fila de Bloqueados por cada dispositivo Luiz Affonso Guedes 31 Luiz Affonso Guedes 32 Máquina de Estado Ampliada Controle de Alocação da Memória admissão pronto suspenso evento bloqueado suspenso criação ativo suspenso admissão evento ativo seleção fim pronto executando destruído bloqueado suspenso timeover/ voluntário evento fim Todos processos estão na memória principal? E se não houver espaço para todos, o que fazer? Disco Suspensão/swap recuperação Memória Principal ativação timeout/ bloqueio/ CPU Luiz Affonso Guedes 33 Luiz Affonso Guedes 34 Mecanismo de Escalonamento de Processos Melhorado Tabela de Processos Luiz Affonso Guedes 35 Luiz Affonso Guedes 36

Comunicação entre Processos Memória Compartilhada Troca de Mensagens Pipes e Sockets Eficiência no Uso de Processos Overhead de criação de processos Overhead de mudança de contexto Comunicação entre processos (IPC) mais complexa Luiz Affonso Guedes 37 Luiz Affonso Guedes 38 Processos com Fluxos Simples Processos com Múltiplos Fluxos Luiz Affonso Guedes 39 Utilizar vários fluxos (threads) num mesmo processo. Manter a abstração de Processo Diminuir overhead de gerência e mudança de contexto Luiz Affonso Guedes 40 Idéia Básica Processos Leves Utilizar vários fluxos (threads) num mesmo processo. Aliviar a carga de criação, gerência e mudança de contexto. Conceito de Thread Pilha + PC + Registradores de uso geral Abstração similar a Processos Unidade de execução passa ser uma função Comunicação via variáveis globais Luiz Affonso Guedes 41 Luiz Affonso Guedes 42

Implementação de Threads Implementação no nível do usuário Implementação no núcleo Thread no Nível do Usuário Modelo N:1 Todo gerenciamento é feito no nível de aplicação Implementada como biblioteca O SO gerencia os Processos apenas, as threads são gerenciadas pela aplicação A mudança de contexto é gerenciada no nível de usuário. O algoritmo de escalonamento é implementado nonível de aplicação. Luiz Affonso Guedes 43 Luiz Affonso Guedes 44 Thread no Nível do Usuário Modelo N:1 Thread no Nível do Usuário Vantagens Criação e gerência mais leve, pois não há a necessidade de se acessar o núcleo. O SO cuida dos Processos e a Biblioteca das Threads Possibilita multithreading em SO sem este suporte Desvantagens Uma Thread pode bloquea todo o seu Processo. Não explora paralelismo em máquinas com vários processadores. Luiz Affonso Guedes 45 Luiz Affonso Guedes 46 Thread no Nível do Sistema Thread no Nível do Sistema Modelo 1:1 Implementação no núcleo do SO O SO gerencia os Processos e as Threads Troca de contexto entre Threads é efetuado pelo SO. O SO é quem faz o escalonamento de Processos e Threads O conceito de threads é incorporado no projeto e implementação do SO Luiz Affonso Guedes 47 Luiz Affonso Guedes 48

Thread no Nível do Sistema Vantagens Permite paralelismo real. Evita possíveis bloqueios desnecessários de threads. Pois o controle é do núcleo e não da aplicação Aplicações menos dependentes de implementações específicas de bibliotecas. Desvantagens Maior overhead na criação e gerência de threads, pois essas operações requerem acesso ao núcleo do SO. Implementações Híbridas de Thread Modelo M:N Combina características vantajosas das duas abordagens anteriores. Há dois níveis de escalonamento Nível do Usuário e Nível do Sistema. Há M threads do usuário e N threads do sistema. Geralmente M > N A dificuldade reside em como mapear as threads do usuário na threads do sistema. Luiz Affonso Guedes 49 Luiz Affonso Guedes 50 Implementações Híbridas de Thread Por que Utilizar Threads? Uso mais eficiente dos recursos do sistema Menores overheads de criação, destruição e mudança de contexto do que os processos. Mecanismos de comunicação mais simples. Threads em geral implementam funções. Threads compartilhas as variáveis globais do seu processo Por outro lado, há a necessidade de se ter mais cuidado ao acesso dessas variáveis, para manter a consistência da aplicação. Luiz Affonso Guedes 51 Luiz Affonso Guedes 52