22
BC1518 BC1518 - Sistemas Sistemas Operacionais Operacionais Processos Processos Aula Aula 03 03 2° Quadrimestre uadrimestre de 2010 de 2010 Prof. Marcelo Z. do Prof. Marcelo Z. do Nascimento Nascimento Email: Email: [email protected] [email protected] Roteiro Conceito de processo Bloco de controle de processo Ciclo de vida Escalonamento Criação de processo Término de processo Cooperação entre processos Leituras Sugeridas

Processos - hostel.ufabc.edu.brhostel.ufabc.edu.br/~marcelo.nascimento/.../bc1518-so-processos_v1.pdf · Ciclo de vida do processo Estado do processo: Novo: o processo esta sendo

Embed Size (px)

Citation preview

BC1518 BC1518 -- SistemasSistemas OperacionaisOperacionais

ProcessosProcessosAulaAula 0303

22°°°°°°°° QQuadrimestreuadrimestre de 2010de 2010

Prof. Marcelo Z. do Prof. Marcelo Z. do NascimentoNascimentoEmail: Email: [email protected]@ufabc.edu.br

Roteiro

•Conceito de processo

•Bloco de controle de processo

•Ciclo de vida

•Escalonamento

•Criação de processo

•Término de processo

•Cooperação entre processos

•Leituras Sugeridas

Introdução

� Um SO executa uma variedade de programas:� Sistema Batch – jobs;� Sistema Time-shared – programas de usuário outarefa.

� Permite que múltiplos programas sejam carregados namemória e executados de forma concorrente (SO multiprogramado).

Torna mais eficiente o aproveitamentodos recursos do computador

Torna mais eficiente o aproveitamentodos recursos do computador

Introdução

Exige => SO•maior controle;•mais compartimentalização de vários programas.

Processo

(unidade de trabalho)

Atenção!!!

Conceito - Processo

• Abstração que representa umprograma em execução;

• É uma entidade ativa que utilizaum conjunto de recursos, comoprocessador e registradoresespeciais, para executar umafunção.

Exemplos: cópia de arquivo ou execução de uma rotinade um programa.

Processo na memória

int global = 0;int main (int arg) {

float local;char *ptr;

ptr = malloc(100);local = 0;local += 10*5;…..….foo(); …. /* return addr */….return 0;

}

Alocaçãodinâmica

Variáveis globais

Código do programa

Variáveis locaisEndereço de retorno

Conceito - Diferença

• Programa: Entidade estática e permanente

•Seqüência de instruções;

•Passivo sobre o ponto de vista do SO.

• Processo: Entidade dinâmica e transitório

•Altera o estado a medida que avança em suaexecução;

•Composto por programa (código), dados e contexto(valores).

Conceito - Analogia

• Ex. Cientista fazendo uma torta para o filho.

Receita

CPU

Dados de entrada(ingredientes)

Processo: Atividade que possui entrada, saída e estado(Ler receita, buscar ingredientes e assar).

algoritmo

+

Ciclo de vida do processo

Estado do processo:

� Novo: o processo esta sendo criado (ex. inicializaçãodo sistema, de um programa ou leitura de um arquivo);

� Execução: o processo esta utilizando um processador;� Pronto: o processo está apto a utilizar o processador

quando este estiver disponível;� Bloqueado: o processo está esperando ou utilizando

um recurso qualquer de E/S;� Encerrado: processo termina sua execução (ex.

normal, erro voluntário ou erro fatal involuntário).

Ciclo de vida do processo

Novo

Bloqueado

Pronto

Encerrado

Em execução

Aceitotempo Saída

seleção

Espera porE/S ou evento

Conclusão de E/S ouevento

Ciclo de vida do processo

• Um processo entra no estado de bloqueado quando está esperando que um evento ocorra. Cite diversos eventos que podem fazer um processo entrar em estado bloqueado?

• Um processo pode entrar em estado bloqueado se emitir uma requisição de dados localizados em um dispositivo de latência alta.

• Um processo também pode ficar bloqueado até que ocorra um evento, como a utilização de teclado ou movimentação do mouse pelo usuário.

Bloco de controle de processo

� BCP – (process control block)

� é a representação de um processo num SO (repositório de informações).

� Contém informações necessárias para a execução do processo: Iniciada, Interrompida e Retomada.

� Normalmente, há uma grande estrutura no kernel:� Exemplo: Linux => struct task_struct;

� Usado para gerenciar processos => comutação da CPU.

Bloco de controle de processo

Estado do processo

Ponteiro

Número do processo

Contador do programa

Registradores

Limites de memória

Lista de arquivos aberto..

•estado corrente do processo;•identificação do processo (PID);•ponteiro para o processo-pai(parent process);•prioridade do processo;•lista de ponteiros para as regiõesalocadas de memória;•conteúdo dos registradores do processador.

Essas informações sãoimportantes para a troca de processos que ocorre na CPU

Bloco de controle de processo

� Estado do processo: novo, pronto, em execução, parado, etc

� Contador de programa: endereço da próxima instrução.

� Registradores da CPU: variam em número e em tipo, dependendo da arquitetura de computadores. Incluemacumuladores, registradores e pilha. Quando ocorreuma interrupção, essa informação deve ser salvajuntamente com o contador do programa.

Bloco de controle de processo

� Informações de escalonamento: prioridade do processo.

� Informações de gerenciamento de memória: inclui osvalores de registradores base e limite, tabela de páginas, etc.

� Informação de contabilização: inclui o montante de

tempo de CPU e de tempo real utilizado, número de jobs, etc.

� Informação de estado de I/O: lista de dispositivos de

E/S alocados a esse processo, arquivos abertos, etc.

Bloco de controle de processoComutação de Contexto

Bloco de controle de processoComutação de Contexto

• O tempo de comutação de contexto pode ser purosobrecarga;• Nenhum trabalho será realizado.

• O tempo de comutação depende bastante do suportede hardware;

• Alguns sistemas com Sun UltraSPARC fornecemmultiplos conjuntos de registradores -> rápidacomutação.

Tipos de tarefas

• O processos ou tarefas podem ser descritos daseguinte forma:

– Processo I/O-bound – gasta mais tempos fazendoE/S que cálculo, muito pouco tempo de ocupação de CPU;

– Processo CPU-bound – gasta mais tempo fazendocálculo, longo tempo de CPU.

Schedulers

• Scheduler de longo prazo (job scheduler) – selecionaqual processo deverá ser carregado da memória paraexecução.

• Scheduler de curto prazo (or CPU scheduler) –seleciona um dos processos prontos para execução e aloca a CPU para ele.

• A distinção entre estes dois é a frequência de suaexecução.

• Em alguns SOs, o Scheduler de longo prazo pode nãoexistir ou ser mínimo (ex. UNIX).

Filas de Scheduling

• Fila de Jobs – consiste em todos os processos queestão no sistema.

• Fila Pronta – conjunto de processos residente namemória principal que estão prontos e em espera paraentrar em execução. Implementado na forma de listaencadeada.

• Fila de Dispositivos – conjunto de processosesperando por um dispositivo de E/S

• Processos migram entre as várias filas

Fila Pronta e Várias Filas de Dispositivos de I/O

Tempo de vida de um processo

• Os SOs precisam assegurar de algum modo a existência de todos os processos necessários.

• Então, ocorrem eventos:• Início do sistema;

• Execução de uma chamada ao sistema de criaçãode processo por um processo em execução;

• Uma requisição do usuário para criar um novo processo;

• Inicio de um job em lote.

Criação

• Quando o SO é carrega, em geral, vários processossão criados.

• Tratado por:

• primeiro plano (usuários - foreground)

• segundo plano (função específica - background)

• Exemplo:

• Email: aceitar mensagens eletrônicas, ficainativo na maior parte do tempo, mas é ativadoquando uma mensagem chega.

Criação

• Processos em segundo plano com a finalidade de tratar alguma atividade são chamados de daemons;

• Exemplo:

•Windows -> digitando CTRL-ALT-DEL mostra o queestá em execução.

• Um processo pode emitir chamadas ao sistema paracriar um ou mais processo para ajudá-lo no trabalho.

Criação

Criação

• Processo Pai cria processo filho, o qual, pode criaroutros processo formando uma árvore de processos

• Execução:– Pai e filho executam concorrentemente;– Pai espera até que o filho termine;

• Recursos compartilhados podem ser tratados: – Pai e filho compartilham todos os recursos;– Filho compartilha um sub conjunto dos recursos do pai;– Pai e filho não compartilham recursos

Criação do Processo: Unix

• Processo cria outro processo (filho) usando a chamadade sistema fork

– Filho é uma cópia do pai;– Basicamente, o filho carrega outro programa dentrode seu espaço de endereço usando a chamada exec;

– Pai espera seu filho terminar.

Programa em C: Fork()

int main(){

pid_t pid;

pid = fork(); /* fork another process */if (pid < 0) { /* error occurred */fprintf (stderr, "Fork Failed");exit(-1);}else if (pid == 0) { /* child process */execlp ("/bin/ls", "ls", NULL);}else { /* parent process *//* parent will wait for child to complete */wait (NULL);printf ("Child Complete");exit(0);}

}

• WINDOWS -> CreateProcess – biblioteca Win32 possui funções para gerenciamento do processo.

• Pai cria um novo processo filho;

• Requer a carga de um programa especificado no espaço de endereço do processo filho na criação do processo;

• Necessidade de pelo menos 10 parâmetros para suaativação.

Criação

• Processo terminará em razão de:• Saída normal (voluntária)

• Saída por erro (voluntária);•Ex.compilação gcc teste.c (arquivo não existe);

• Erro fatal (involuntário);•Ex. Tentativa de acesso a endereço não autorizado;

• Cancelamento por um outro processo (involuntário).•Ex. Comando kill do Unix.

Término

Cooperação entre processos

• Um processo é cooperativo se puder afetar ou ser afetado pelos outros processos em execução no sistema;

• O que motiva essa cooperação?

– Compartilhamento de informações– Agilidade de computação– Modularidade– Conveniência

• Mecanismo Comunicação interprocesso (IPC)

– Memória compartilhada– Passagem de mensagem

Modelos de Comunicação

Passagem de mensagem Mensagem compartilhada

IPC: Memória compartilhada

• Comunicação entre processos por meio de espaço de memória compartilhada;– Um processo cria um espaço de memória;

• Outros processos acessam a memória compartilhada de seu próprio endereço:– A memória compartilhada é tratada como área compartilhada;– Sincronização é necessário para garantir o acesso concorrente a

essa área.• Vantagens:

– Rápido (velocidade de acesso a memória)– chamadas realizadas apenas para estabelecer memória

compartilhada.• Desvantagem

– Precisa gerenciar conflitos

IPC: Passagem de Mensagem

• Se os processos A e B querem se comunicar, precisam:– Estabelece um canal de comunicação entre eles– Troca de mensagems por meio de:

• send – tamanho de mensagem fixa ou variável• receive - mensagemmessage)

• Vantagem:– Não há conflitos => ótimo para troca de mensagens

especialmente em sistema distribuído.

• Desvantagens– Sobrecarga (cabeçalho mensagem)– Kernel: ocorre vários system calls para troca de mensagem

• O canal de comunicação pode ser

– Direto: precisa nomear explicitamente o destinatário ouemissor:

• send (P, messagem) – envia uma mensagem para o processo P;

• receive (Q, message) – recebe uma mensagem do processo Q.

– Indireto: comunicação via mailboxes (ou portas)• Messagem envida e recebida de mailboxes • Cada mailbox tem um único ID

– Send (A, messagem) – envia mensagem para mailbox A– Receive (A, messagem) – recebe messagem do mailbox A

IPC: Passagem de Mensagem

• Sincronização: passagem de mensagem– Bloqueio (síncrono)

• send ( ) o processo que envia é bloqueado até que a mensagem seja recebida

• receive ( ) o receptor é bloqueado até a mensagem ser recebida

– Não bloqueado (assíncrono)• send ( ) o processo envia a mensagem e continua executando• receive ( ) o receptor recebe uma mensagem válida

IPC: Passagem de Mensagem

Sistema cliente/servidor -Sockets

• O socket é definido com um ponto terminal para a comunicação

• Um par de processos que se comunicam através de uma rede emprega um par de sockets

• Um socket é identificado por um endereço IP concatenado com um número de porta– Exemplo: socket 161.25.19.8:1625 refere a porta 1625 no host 161.25.19.8

Sistema cliente/servidor -Sockets

Sistema cliente/servidor -Sockets

Sistema cliente/servidor -Sockets

• Processo é um programa em execução– SO mantém informações do processo no BCP– Diagramas de estado do processos– Criando e finalizando um processo (fork)

• Escalonamento de processosProcess scheduling– Longo, curto em termos de escalonamento– Fila de escalonamento

• Comunicação interprocessos - IPC– Memória compartilhada– Passagem de mensagem

• Sistema Cliente-Servidor

Aula 03 - Sumário

Leituras Sugeridas

• Silberschatz, A., Galvin, P. B. Gagne, G. Sistemas Operacionais com Java. 7º , edição. Editora, Campus, 2008 .

• Silberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg. Fundamentos de sistemas operacionais. 6 ed. Rio de Janeiro: LTC, 2009.

Acesse o link abaixo:

http://hostel.ufabc.edu.br/~marcelo.nascimento/

Obrigado!!!

Nota de Aula