Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida...

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

Transcript of Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida...

Page 1: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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

Page 2: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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!!!

Page 3: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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

Page 4: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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

+

Page 5: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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

Page 6: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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.

Page 7: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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.

Page 8: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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

Page 9: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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.

Page 10: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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

Page 11: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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

Tempo de vida de um processo

Page 12: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

• 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

Page 13: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

• 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

Page 14: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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);}

}

Page 15: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

• 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

Page 16: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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

Page 17: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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

Page 18: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

• 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

Page 19: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

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

Page 20: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

Sistema cliente/servidor -Sockets

Sistema cliente/servidor -Sockets

Page 21: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

• 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.

Page 22: Processoshostel.ufabc.edu.br/~marcelo.nascimento/BC1518/aulas/bc... · 2010-06-07 · Ciclo de vida do processo • Um processo entra no estado de bloqueado quando está esperando

Acesse o link abaixo:

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

Obrigado!!!

Nota de Aula