Sistemas Operacionais Processos e Threads



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

Sistemas Operacionais

Processos e Threads (partes I e II)

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

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

Gerência de Processador

Gerência do Processador

Sistemas Operacionais

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

Arquitetura de Sistemas Operacionais

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

Sistemas Operacionais

Arquitetura e Organização de Computadores

Gerência do Processador

Programação Concorrente Processos e Threads

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

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

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

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

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

7 Processos. 7.1 Introdução

Escalonamento no Linux e no Windows NT/2000/XP

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador

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

Processos. Adão de Melo Neto

Sistemas Operacionais

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

03 GERÊNCIA DO PROCESSADOR

Gerência de processos Requisitos fundamentais

Sistemas Operacionais

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Sistemas Operacionais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

4. GERÊNCIA DE PROCESSADOR (Escalonamento de processos)

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

Sistemas Operacionais. Prof. André Y. Kusumoto

Introdução aos Sistemas

1.2 Tipos de Sistemas Operacionais

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

Gerência de Processador

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

Sistemas Operacionais

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

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

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

TI Básico. Sistemas Operacionais. Professor: Ricardo Quintão Site:

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.

Capítulo 4 Gerência de Processador

Tipos de sistemas operacionais

SISTEMAS OPERACIONAIS

PROCESSOS. Prof. Maicon A. Sartin

Sistemas Operacionais. Prof. André Y. Kusumoto

Organização de Computadores 1

Sistemas Operacionais

Estruturas do Sistema de Computação

Sistemas Operacionais. Prof. André Y. Kusumoto

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS

Sistemas Operacionais Introdução. Professora: Michelle Nery

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

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

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

Capítulo 8 Arquitetura de Computadores Paralelos

Organização e Arquitetura de Computadores

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

Arquitetura de Computadores. Sistemas Operacionais IV

Sistemas Operacionais Gerência de Dispositivos

Sistemas Operacionais. Escalonamento de Processo. Prof. Dr. Márcio Andrey Teixeira

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

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

Estrutura, Processos e Threads

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

AULA 5 Sistemas Operacionais

Sistemas Operacionais Conceitos Básicos

Processos. Estruturas de Controle

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Memória Virtual. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Sistemas Operacionais

SO: Gerenciamento de Processos

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr

GERENCIAMENTO DO PROCESSADOR. Prof. Maicon A. Sartin

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

SISTEMAS OPERACIONAIS GERÊNCIA DE TAREFAS

Arquitetura e Organização de Computadores I

8 Threads. 8.1 Introdução

Transcrição:

Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br 1

Estrutura de um Sistema Operacional 2

GERÊNCIA DE PROCESSOS Um processo é um programa em execução. Sua constituição é: 1. Código executável; 2. Pilha de execução; 3. Contador de programa; 4. Ponteiro de pilha; 5. Valores dos registradores; O Sistema Operacional tem como principais funções: Criar e excluir os processos do usuário e do sistema; Suspender e retornar processos; Fornecer mecanismos para sincronizar os processos; Fornecer mecanismos para comunicação de processos; As informações de cada processo são armazenadas na Tabela de Processos. Um processo pode criar outros processos. Dessa maneira, um processo que gera outro processo é chamado processo-pai. Já o processo que foi gerado a partir de outro processo é chamado processo-filho. 3

ESTADOS DE UM PROCESSO Novo o processo está sendo criado; Em execução (Run) as instruções estão sendo executadas; Em espera (Blocked) o processo está bloqueado esperando a ocorrência de um evento para poder voltar a ser executado. Muitas vezes ele fica esperando o término de uma operação de I/O ou um sinal de algum processo; Pronto (Ready) o processo está aguardando ser selecionado para uso do processador; Encerrado o programa terminou sua execução. 4

5

Espera Ocupada x Bloqueio Na espera ocupada, o processo está constantemente gastando CPU (testando uma determinada condição). No bloqueio, o processo desiste de usar a CPU e é acordado quando a condição desejada se torna verdadeira. 6

BLOCO DE CONTROLE DE PROCESSO Cada processo é representado no sistema operacional por um bloco de controle de processo (PCB Process Control Block). Estado do Processo informa o estado atual do processo; Contador de Programa indica o endereço da próxima instrução a ser executada para este processo; Registradores de CPU informa os registradores a serem utilizados pelo sistema. A quantidade e categorias de registradores variam de acordo com a arquitetura do computador em uso. As informações contidas nos registradores devem ser salvas quando ocorrer uma interrupção; Informações de Escalonamento de CPU indica a prioridade do processo, ponteiros para filas de escalonamento e demais informações do algoritmo de 7 escalonamento;

ESCALONAMENTO DE PROCESSOS O objetivo da multiprogramação é ter processos em execução o tempo todo, visando maximizar o uso do processador. Para isto o tempo de uso do processador é compartilhado entre todos os processos em execução. A viabilidade está no fato de que nenhum processo usa os mesmos recursos ao mesmo tempo, ou mesmo que algumas operações de I/O demoradas deixam o processador ocioso. 8

Prontos e de Dispositivos. Os círculos são os recursos e as elipses eventos. As setas representam os fluxos. Todo novo processo é alocado na Fila de Processos Prontos, onde aguarda ser selecionado para execução. Podem ocorrer os seguintes eventos: O processo emite uma requisição de uso de um dispositivo de I/O e é alocado na fila do mesmo; O processo pode criar um outro filho, chamado processo filho, e espera o seu término; O processo pode ser removido a força da CPU como resultado de uma interrupção e ser alocado na fila de processos prontos; 9

ESCALONADORES Nos sistemas multitarefa, vários processos são submetidos à execução. Como existe apenas um único processador, aqueles que estão aptos a serem executados imediatamente são colocados em um spool (espaço de armazenagem em disco), onde são mantidos até serem executados. O escalonador de longo prazo seleciona alguns processos para ocuparem a memória. O escalonador de curto prazo seleciona um dos processos da memória para utilizar o processador, por isso ele também é chamado de escalonador de CPU. 10

A diferença entre esses escalonadores está na freqüência de execução. Enquanto o segundo é executado com altíssima freqüência devido ao curto de período de tempo de uso de um processo por vez, o primeiro é executado sem muita freqüência. É tarefa do escalonador de longo prazo formar o banco de processos a serem escalonados. Conseqüentemente, é importante que ele faça uma cuidadosa seleção dos processos. Para fazer esta seleção, foi feita uma nova divisão de categoria de processos: Processos Limitados por I/O (I/O Bound) são processos que predominantemente fazem operações de I/O durante a sua execução; Processos Limitados por CPU (CPU Bound) predominantemente, eles fazem operações com a CPU. 11

É altamente recomendado que o escalonador de longo prazo faça uma combinação com processos de ambas categorias. Esta recomendação tem por objetivo maximizar o uso dos recursos computacionais. A título de exemplificação, toma-se a hipótese de que há uma grande quantidade de processos limitados por I/O na memória. Existe uma grande probabilidade de não haver processos na fila de processos prontos para execução, conseqüentemente o processador estará sendo subutilizado. Por outro lado, se houver muitos processos limitados por CPU, a probabilidade dos recursos ficarem ociosos é grande. Além disso, pode haver processos que poderiam utilizá-los e não o fazem por não estarem na memória. 12

PROCESSOS COOPERATIVOS Os processos concorrentes que estão executando no sistema operacional podem ser concorrentes ou cooperativos. Um processo é independente se não afeta a execução de outros processos. Basicamente, qualquer processo que não compartilha dados ou recursos é independente. Caso um processo afete outro, então ele é cooperativo. Existem várias razões para construir um ambiente favorável aos processos cooperativos: Compartilhamento de Informações vários usuários podem estar interessados na mesma informação. É preciso fornecer mecanismos para que possam utilizá-la sem causar danos uns aos outros ou à própria informação; Velocidade de Computação dividir uma tarefa em partes menores pode fazer com que ela seja executada mais rápida. É importante que cada parte não utilize os mesmos recursos; Modularidade a construção do sistema em forma modular facilita a manutenção do mesmo e até a gerência de memória e processos do sistema operacional; 13

As decisões de escalonamento de CPU podem ocorrer de quatro maneiras: 1. Quando o processo passa do estado de execução para o estado de espera (bloqueado); 2. Quando um processo passa do estado de execução para o estado pronto; 3. Quando um processo passa do estado bloqueado para o estado pronto; 4. Quando um processo termina. 14

DISPATCHER O dispatcher é o processo que fornece o controle da CPU para o processo selecionado pelo escalonador. Ele deve fazer a mudança de contexto, ou seja, verificar e salvar quais os valores de variáveis, registradores, posição no programa e recursos do processo que está deixando a CPU e acionar o contexto exigido pelo novo processo. O tempo de mudança de contexto é chamado de latência de dispatcher. 15

processos independentes, subprocessos e threads Nos processos independentes não existe vínculo entre o processo criado e o seu criador. Cada processo possui seu próprio contexto de hardware, contexto de software e espaço de endereçamento. Já os subprocessos são criados dentro de uma hierarquia, onde existe uma dependência entre o processo criador e o o subprocesso. Caso o processo pai deixe de existir o processo filho deixará também, apesar de cada processo possuir sua própria PCB. Diferentemente dos dois exemplos anteriores, os threads compartilham o espaço de endereçamento e o contexto de software, porém cada thread possui seu próprio contexto de hardware. 16

RESUMO Tempo de processador é o tempo que um processo leva no estado de execução durante o seu processamento. Tempo de espera é o tempo total que um processo permanece na fila de pronto durante o seu processamento, aguardando ser executado. Tempo de turnaround é o tempo que um processo leva desde sua criação até o seu término. Tempo de resposta é o tempo decorrido entre uma requisição ao sistema ou à aplicação e o instante em que a resposta é exibida. 17

O escalonador seleciona processos que estejam no estado de pronto e os coloca em execução, obedecendo os critérios estabelecidos (tempo, prioridade) 18

Algoritmo de Escalonamento FIRST-COME,FIRST-SERVED (PRIMEIRO A CHEGAR, PRIMEIRO SERVIDO) -FIFO JOB MAIS CURTO PRIMEIRO (Caso haja dois curtos iguais=fifo) ESCALONAMENTO POR PRIORIDADE prioridade pode ser definida de forma interna ou externamente. Para definir internamente são necessários parâmetros para análise como, por exemplo: limite de tempo, requisitos de memória, quantidade de arquivos abertos pelo processo e o surto médio de CPU do processo. ROUD ROBIN Um quantum pode ter duração de 10 a 100 milisegundos, novamente depende da implementação do sistema operacional. 19

20

21

22

23

24

25