340 likes | 542 Views
Unidade 4: Processos. Conceito de Processos Agenciamento de Processos Operações em cima de Processos Processos cooperativos Comunicação entre processos. Conceito de Processos. Um sistema operacional executa uma programas variados : tarefas em lote (batch)
E N D
Unidade 4: Processos • Conceito de Processos • Agenciamento de Processos • Operações em cima de Processos • Processos cooperativos • Comunicação entre processos Operating System Concepts
Conceito de Processos • Um sistema operacional executa uma programas variados : • tarefas em lote (batch) • programas de usuários em tempo compartilhado • O uso das palavras tarefa (job) e processo é quasisinônimo. • Processo – um programa em execução; a execução deve proceder de forma seqüencial. • Um processo inclui: • contador de programa • pilha • segmentos de código e segmentos de dados Operating System Concepts
Estado de um processo • Enquanto um processo executa, ele muda de estado • novo: O processo esta sendo criado. • rodando: Instruções estão sendo executadas. • esperando: O processo espera algum evento. • pronto: O processo está esperando de tomar conta da CPU. • Terminado: O processo terminou execução. Operating System Concepts
Diagram of Process State Operating System Concepts
Segmento de Controle do Processo (PCB) Contem informações asociados ao processo. • Estado do Processo • informação sobre agenciamento • Contador de Programa • registros da CPU • seletores de segmentos usados • informações estatísticas • informação sobre estado de entrada/saída Operating System Concepts
Process Control Block (PCB) Operating System Concepts
Chaveamento da CPUde um Processo para outro Processo Operating System Concepts
Filas de Scheduling de Processos • Fila de Tarefas – conjunto de todos os processos do sistema. • Fila de Prontas – conjunto de todos os processos que estão na memória, prontos para rodar. • Fila de Dispositivos – conjunto de processos esperando por um dispositivo de entrada/saída. • Processos são passados de uma fila para outra. Operating System Concepts
A fila de Prontas e várias filas de Dispositivos Operating System Concepts
Representação de Scheduling de Processos Operating System Concepts
Schedulers • Longo prazo – seleciona qual processo é colocado na file de Prontas. • Curto prazo (ou scheduler da CPU) – seleciona qual processo deve ser o próximo a ser executado e aloca a CPU. Operating System Concepts
Adicionando Scheduling a médio prazo Operating System Concepts
Schedulers (Cont.) • Scheduler a curto prazo é chamado freqüentemente (millisegundos) (deve ser rápido). • Scheduler a longo prazo é chamado com pouco freqüência (segundos, minutos) (pode ser devagar). • O scheduler a longo prazo controla o grão de processamento multitarefa. • Processos podem ser descritos como: • I/O-bound process – passa mais tempo fazendo entrada/saída do que cálculos, muitas rajadas curtas de uso da CPU. • CPU-bound process – passa mais tempo fazendo cálculos; poucas e muito longas rajadas de uso da CPU. Operating System Concepts
Troca de Contexto • Quando uma CPU chaveia para outro processo, o sistema tem que preservar o estado do processo antigo e carregar o estado do novo processo. • Troca de contexto é overhead; o sistema não faz nenhum trabalho útil durante a troca. • O tempo de troca depende do suporte de hardware disponível. Operating System Concepts
Criação de Processos • Processos pai criam processos filho, as quais novamente ciram outros processos, formando uma árvore de processos. • Compartilhamento de recursos • Pai e filho compartilham todos os recursos; • Filhos compartilham um subconjunto dos recursos do pai; • Pai e filho não compartilham nenhum recurso. • Execução • Pai e filho executam em paralelo; • Pai espera até filho termine. Operating System Concepts
Criação de Processos (Cont.) • Espaço de endereçamento • Filho cópia do pai; • Filho recebe um novo programa carregado para ele. • Exemplo UNIX • chamada ao sistema fork cria novo processo • a chamada execve é usada depois de um fork para substituir o espaço de memória do processo com um programa novo. Operating System Concepts
Uma árvore típica de processos num sistema UNIX Operating System Concepts
Terminação de Processos • O processo executa a última instrução e faz a chamada de sistema exit para o sistema operacional. • Devolvendo dados para o pai (via wait). • Os recursos do processo são desalocados pelo sistema operacional. • Pai pode cancelar a execução de processos filho (abort). • filho excedeu recursos alocados; • a tarefa asociada ao filho não é mais necessária; • pai termina. • O sistema operacional não permite que o filho continue se o pai termina; • Terminação em cascata. Operating System Concepts
Processos cooperativos • Processos independentes não podem afetar a execução de outro processo. • Processos cooperativos podem afetar or são afetados por outro processo. • Vantagem da cooperação de processos • compartilhar infomações • aceleração de cáclculo • modularidade • simplicidade Operating System Concepts
O problema produtor-consumidor • Um paradigma para processos cooperativos: o produtor produz informação que é consumida pelo consumidor. • buffer sem limite não coloca limite prático no limite do tamanho do buffer • buffer limitado suponha qhe o tamanho do buffer é limitado. Operating System Concepts
Buffer limitado –Solução com memória compartilhada • Dados compartilhados varn; typeitem = … ; varbuffer. array [0..n–1] ofitem; in, out: 0..n–1; • processo produtor repeat … produce an item in nextp … whilein+1 modn = outdono-op; buffer [in] :=nextp; in :=in+1 modn; untilfalse; Operating System Concepts
Buffer limitado (Cont.) • Consumer process repeat whilein = outdono-op; nextc := buffer [out]; out := out+1 modn; … consume the item in nextc … untilfalse; • Solution is correct, but can only fill up n–1 buffer. Operating System Concepts
Threads • Um thread (ou processo leve) é uma unidade básica de utilização da CPU; ele consiste de: • contador de programa • conjunto de registros • espaço de pilha • Um thread compartilha os seguintes elementos com seus threads pares: • segmento de código, • segmento de dados, • recursos do sistema operacional. O conjunto forma uma task. • Um processo pesado tradicional é igual a uma task com um único thread. Operating System Concepts
Threads (Cont.) • Dentro de uma tarefa threadeada, enquanto um thread está bloqueado, um outro thread da mesma tarefa pode estar rodando. • Cooperação de múltiplos threads dentro da mesma tarefa resulta em vazão maior e desempenho melhor. • Aplicações que precisam compartilhar um buffer comum beneficiam do uso de threads (exemplo produtor-consumidor). • Threads fornecem um mecanismo que permite que processos seqüenciais efetuem chamadas bloqueiantes ao sistema conseguindo mesmo assim paralelismo na execução. • Threads como recurso do Kernel (Mach and OS/2). • Threads a nível de usuário: recurso em cima do kernel através de um conjunto de chamadas de biblioteca (Project Andrew from CMU). • Abordagem híbrida com threads do kernel ou do usuário (Solaris2). Operating System Concepts
Multiple Threads within a Task Operating System Concepts
Threads Support in Solaris 2 • Solaris 2 is a version of UNIX with support for threads at the kernel and user levels, symmetric multiprocessing, and real-time scheduling. • LWP – intermediate level between user-level threads and kernel-level threads. • Resource needs of thread types: • Kernel thread: small data structure and a stack; thread switching does not require changing memory access information – relatively fast. • LWP: PCB with register data, accounting and memory information,; switching between LWPs is relatively slow. • User-level thread: only need stack and program counter; no kernel involvement means fast switching. Kernel only sees the LWPs that support user-level threads. Operating System Concepts
Solaris 2 Threads Operating System Concepts
Comunicação entre processos (IPC) • Um mecanismo para permitir processos de se comunicarem e de sincronizarem seus ações. • Sistema de mensagens - permite comunicação sem uso de variáveis compartilhadas. • Um mecanismo de IPC apresenta duas funções: • send(message) – mensagem de tamanho fixo ou variável • receive(message) • Se P e Q querem comunicar, eles precisam de: • estabelecer uma ligação de communicação entre eles • trocar mensagens usando send/receive • Implementação de uma ligação de comunicação • físico (memória compartilhada, barramento) • lógico (atributos) Operating System Concepts
Questões de Implementação • Como cria-se uma ligação? • Uma ligação pode estar asociada a mais do que dois processos? • Quantas ligações podem existir entre cada para de processos que estão se comunicando? • Qual é a capacidade de uma ligação? • O tamanho de uma mensagem que passa pelo link é fixo ou variável? • A ligação é unidirecional ou bidirecional? Operating System Concepts
Comunicação Direta • Processos precisam chamar um ao outro explicitamente: • send (P, mensagem) – envie uma mensagem para processo P • receive(Q, message) – recebe uma mensagem de processo Q • Propriedades de uma ligação de comunicação • Ligação criada automaticamente; • uma ligação é associada com exatamente um par de processos; • Existe exatamente uma ligação por par de processos; • A ligação pode ser unidirecional, mas normalmente é bidirecional. Operating System Concepts
Comunicação Indireta • Mensagens são direcionados a e recebidos de caixas de correio (também chamado portas). • Cada caixa de correio tem uma id única; • Processos podem comunicar somente se eles compartilham uma caixa de correio. • Propriedades de uma ligação de comunicação • ligação existe somente se os processos compartilham uma caixa de correiro; • uma ligação pode ser associada a muitos processos; • Cada para de processos pode ter vários ligações. • Ligação pode ser unidirecional ou bidirecional. • Operações • criar uma nova caixa de correio • evniar e receber mensagens • destruir a caixa de correio Operating System Concepts
Comunicação Indireta (Continuação) • Compartilhamento de caixas de correio • P1, P2, e P3 compartilham a caixa de correio A. • P1, envia; P2e P3 recebem. • Quem recebe a mensagem? • Solução • Permitir que uma ligação seja associada com no máximo dois processos; • Permitir que somente um processo a cada vez executa uma operação de recepção; • Permitir ao sistema de selecionar um receptor arbitrariamente. O remetente é avisado quem era o receptor. Operating System Concepts
Enfileiramento (Buffering) • Uma fila de mensagens pertencendo à ligação. 1. Capacidade nula – 0 mensagens;Remetente precisa esperar o receptor (rendezvous). 2. Capacidade limitada – tamanho finito de n mensagens Remetente precisa esperar se fila está cheia; 3. Capacidade ilimitada – tamanho infinito Remetente nunca espera. Operating System Concepts
Condições de excepção – Tratamento de Erros • Processo termina • Mensagem perdida • Mensagem bagunçada Operating System Concepts