Baixe o app para aproveitar ainda mais
Prévia do material em texto
Escola de Arquitetura de Engenharia e TI Ciência da Computação Sistemas Operacionais Sistemas Operacionais GERENCIAMENTO DE PROCESSOS INTRODUÇÃO Roteiro ❑ Introdução ❑ Processo – Conceito ❑ Estado do Processo ❑ Criação/Novo ❑ Pronto ❑ ExecuçãO ❑ Espera ❑ Concluído ❑ PCB (Bloco de Controle de Processo) Introdução ❑ Os primeiros sistemas computadorizados permitiam que apenas um programa fosse executado de cada vez. Introdução ❑ Esse programa tinha controle total do sistema e tinha acesso a todos os recursos do sistema. ❑ Em contraste, sistemas computadorizados dos dias atuais permitem que vários programas sejam carregados na memória e executados concorrentemente. Introdução ❑ Essa evolução exigiu controle mais rígido e maior compartimentalização dos diversos programas. ❑ Essas necessidades resultaram na noção de um Processo, (programa em execução.) Introdução ❑ Um processo é a unidade de trabalho em um sistema moderno de tempo compartilhado. ❑ Unidade de Trabalho – programa. Introdução ❑ Um sistema, portanto, consiste em uma coleção de processos: ▪ Processos do sistema operacional executando código do sistema. ▪ Processos do usuário - executando código do usuário. Introdução ❑ Potencialmente, todos esses processos podem ser executados de forma concorrente. ❑ Com a CPU alternando entre os processos, o sistema operacional pode tornar o computador mais produtivo. Processo - Conceito ❑ Uma questão que surge na discussão sobre sistemas operacionais envolve como caracterizar todas as atividades da CPU. ❑ Um processo é uma abstração de um programa em execução. O Processo ❑ Um sistema batch executa jobs, enquanto um sistema de tempo compartilhado (tempo para cada processo) possui programas do usuário ou tarefas. ❑ Os termos tarefa (job) e processo são usados para indicar a mesma ideia no contexto de atividades. Estado do Processo ❑ Quando um processo é executado, ele mu dade estado. ❑ O estado de um processo é definido, em p arte, pela atividade corrente do processo. Estado do Processo ❑ Um processo pode estar em um d os seguintes estados: • Criação/Novo. • Pronto. • Em execução • Em espera. • Concluído. Estado do Processo ❑ Um processo pode estar em um dos seguintes est ados: • Novo - O processo está sendo criado, passa a fazer parte dos processos prontos a serem executados. CRIAÇÃO /NOVO PRONTO ESPERA EXECUÇÃO CONCLUÍDO Estado do Processo ❑ Um processo pode estar em um dos seguintes e stados: • Pronto - O SO escolhe (através de critérios e algoritmos próprios) o processo que será executado na CPU. CRIAÇÃO /NOVO PRONTO ESPERA EXECUÇÃO CONCLUÍDO Estado do Processo ❑ Um processo pode estar em um dos seguintes es tados: ▪ Execução - Trata da execução em si do processo (pode passar para o estado de espera quando aguarda operação de E/S ou em caso de suspensão do processo). CRIAÇÃO /NOVO PRONTO ESPERA EXECUÇÃO CONCLUÍDO Estado do Processo ❑ Um processo pode estar em um dos seguintes es tados: ▪ Espera - Um processo em espera passa para pronto quando a operação solicitada ou recurso esperado é concedido. CRIAÇÃO /NOVO PRONTO ESPERA EXECUÇÃO CONCLUÍDO Estado do Processo ❑ Um processo pode estar em um dos seguintes es tados: ▪ Espera→Pronto→Execução CRIAÇÃO /NOVO PRONTO ESPERA EXECUÇÃO CONCLUÍDO Estado do Processo ❑ Um processo pode estar em um dos seguintes es tados: ▪ Execução - O processo em execução passa para o estado de terminado quando o processo finaliza sua execução. CRIAÇÃO /NOVO PRONTO ESPERA EXECUÇÃO CONCLUÍDO Estado do Processo ❑ Um processo pode estar em um dos seguintes es tados: ▪ Concluído - finaliza a execução do processo. CRIAÇÃO /NOVO PRONTO ESPERA EXECUÇÃO CONCLUÍDO Bloco de Controle do Processo ❑ Cada processo é representado no sistema operacional por um bloco de controle de processo. ❑ PCB - Process Control Block - também conhecido como bloco de controle de tarefa. Bloco de Controle do Processo ❑ Um PCB contem muitas informações associadas a um processo específico, a saber: • Estado do processo. • Contador de programa (Program Counter). • Registradores da CPU. • lnformação de escalonamento de CPU. Bloco de Controle do Processo ❑ Bloco de Controle de Processo Estado do Processo Número do Processo Contador do Programa Registradores Limites de Memória Lista de arquivos abertos ... Threads ❑ O modelo de processo discutido até agora sugere que um processo é um programa que executa ap enas um thread. ❑ Quando um processo está executando um progra ma de processamento de texto, um único thread de instruções está sendo executado. Threads ❑ Esse thread de controle único permite que o pro cesso execute apenas uma tarefa de cada vez. ❑ Assim não é possível digitar caracteres e executar o corretor ortográfico dentro do mêsmo processo. Threads ❑ Boa parte dos SO’s modernos partem do conceito de processo para permitir que um processo tenha múltiplos threads de execução e, assim, desempenhe mais de uma tarefa de cada vez. ❑ Esse recurso é particularmente benéfico em sistemas multicores, em que múltiplos threads podem ser executados em paralelo. Threads ❑ Em um sistema que suporte threads, o PCB é expandido de modo a incluir informações para cada thread. ❑ Também são necessárias outras alterações no sistema como um todo para que ele suporte th reads. Scheduling (escalonar) de Processos ❑ O objetivo da multiprogramação é ter processos em execução o tempo todo, para maximizar a utilização de CPU. ❑ O objetivo do tempo compartilhado é alternar a CPU entre processos de forma tão frequente que os usuários possam interagir com cada programa durante sua execução. Scheduling de Processos ❑ Para um sistema uniprocessador, nunca haverá mais de um processo em execução. ❑ Se houver mais processos, os demais terão de esperar até que a CPU esteja liberada e possa ser reescalonada. Filas de Scheduling ❑ À medida que os processos entram no sistema, são colocados em uma fila de jobs. ❑ Essa fila consiste em todos os processos do sistema. ❑ Os processos que estão residindo na memória principal e estão prontos e esperando para executar. ❑ São mantidos em uma lista chamada fila de processos prontos. Filas de Scheduling ❑ Essa fila geralmente é armazenada como uma Lista Encadeada. ❑ Um cabeçalho de fila de processos prontos contém ponteiros ao primeiro e Último PCBs na lista. Filas de Scheduling ❑ Estendemos cada PCB para incluir um campo de ponteiro apontando para o próximo PCB na fila de processos prontos. Schedulers A fila de prontos e várias filas de dispositivo de I/O Filas de Scheduling Diagrama mostrando a alternância da CPU de um processo para outro Schedulers (escalonador) ❑ Para fins de scheduling, o sistema operacional deve selecionar p rocessos das filas, de alguma forma. ❑ O processo de seleção é executado pelo scheduler apropriado (algoritmos específicos). DÚVIDAS? SISTEMA OPERACIONAL Intervalo. 15min. SISTEMA OPERACIONAL
Compartilhar