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