Prévia do material em texto
Público Sistemas Operacionais Processo e Threads Público Processos, Conceitos e Gerenciamento01 Hierarquia, Processos e Threads Público ● Um processo é uma instância de um programa de computador que está sendo executada. ● Dependendo do sistema operacional (SO), um processo pode ser feito de várias linhas de execução que executam instruções concorrentemente. Introdução Processos Público ● A estrutura de um sistema operacional é carregado todas as vezes em que o computador for ligado ou reiniciado. ● Esse procedimento se chama ativação de sistema ou boot. ● O SO é composto basicamente por um conjunto de rotinas como núcleo do sistema, chamado de kernel, que tem por função realizar o controle e tratamento de interrupções e exceções, criar e eliminar processos e threads, sincronizar a comunicação entre eles e escalonar e controlá-los. Introdução Processos Público ● Um processo é uma instância de um programa de computador que está sendo executada. ● Dependendo do sistema operacional (SO), um processo pode ser feito de várias linhas de execução que executam instruções concorrentemente. ● É de responsabilidade desse conjunto de rotinas gerenciar memória, sistemas de arquivos, dispositivos de E/S, permitir suporte a redes locais de distribuídas, realizar a contabilização das ações do sistema e também a sua auditoria e segurança. ● Introdução Processos Público ● Para cada uma das rotinas que o sistema executará, há um mecanismo de controle de chamadas de sistema, o system call, que pode ser explícito ou implícito. ● No explícito há uma instrução de qual chamada deverá ser executada no próprio programa, através da implementação de uma função que carrega os seus respectivos parâmetros. ● Na implícita há a inserção de um comando da linguagem de programação. ● O system call é responsável por verificar os parâmetros da solicitação e enviar a sua respectiva resposta com o estado do processo, concluído ou se houve algum erro e precisa retornar a pilha de processos. Introdução Processos Público ● Quando um processo cria outro, o processo-pai e o processo- filho ficam associados. ● O filho pode gerar outros processos criando assim uma hierarquia de processos. ● No Unix, um processo-pai, seus filhos e descendentes formam um grupo de processos. ● Por exemplo, quando um usuário envia um sinal do teclado (como CTRL + ALT + DEL), este sinal é entregue para todos os processos que compõem o grupo de processos do teclado. Hierarquia de Processos Público ● O Windows não possui uma hierarquia de processos. ● Cada um possui um identificador próprio e quando um processo cria outro existe uma ligação entre eles mas ela é quebrada quando o processo- pai passa seu identificador para outro processo. ● Quando um processo-pai é “morto”, os processos vinculados a ele não são mortos. Hierarquia de Processos Público Estados do Processo Um processo está em execução quando está sendo processado pela CPU. Os processos são alternados para a utilização do processador. Execução Bloqueado Um processo está no estado de espera quando aguarda por um evento externo (um comando do usuário, por exemplo) ou por um recurso (uma informação de um dispositivo de entrada/saída, por exemplo) para executar. Pronto Um processo está no estado de pronto quando possui todas as condições necessárias para executar e está aguardando. O sistema operacional é quem define a ordem e os critérios para execução dos processos. Público ● O processo está em execução enquanto é processado pela UCP (Unidade Central de Processamento), sendo que os processos revezam o tempo de processamento controlado pelo sistema operacional. ● Quando o processo se encontra no estado de pronto, quer dizer que o processo está aguardando para ser processado, enquanto o estado de espera acontece quando o processo aguarda um recurso para continuar o processamento. ● Os processos em espera são organizados no sistema em listas encadeadas e de acordo com o tipo de evento ocorrido. Quando recebem os recursos necessários, mudam para o estado de pronto. Introdução Processos Público Os processos são classificados em dois tipos: ● CPU-bound: ocupa mais recursos da unidade central de processamento, passa mais tempo em execução. Facilmente encontrado em aplicações com maior quantidade de operações de cálculo. ● I/O-bound (Input/Output): este processo passa a maior parte do tempo em estado de espera. Encontrado em aplicações comerciais em que é necessário realizar muitas tarefas de leitura, gravação e processamento. Classificação de Processos Público ● Para implementar o modelo de processos o sistema operacional mantém um quadro de processos contendo informações sobre o estado do processo, seu contador de programa, o ponteiro da pilha, a alocação de memória, o status dos arquivos abertos, entre outros, que permitem que o processo reinicie do ponto em que parou. Implementação de Processos Público ● O conceito de thread foi desenvolvido com o intuito de reduzir o tempo que se leva para criar um novo processo em aplicações concorrentes, bem como o uso de recursos. ● Isso é possível em função de um processo permitir que sejam criados ao menos um thread, o que o torna um processo monothread (processo suporta apenas um thread) ou multithread (um processo suporta a criação de vários threads). Processo Thread Público ● Quando falamos em thread quer dizer que um processo ou os seus subprocessos estão ocupando o mesmo endereço em memória, reduzindo o tempo de comunicação entre processos. ● Compartilham os contextos de software e de armazenamento o que configura o contexto de hardware aplicado de maneira independente para cada processo que é criado de forma que haja um thread correspondente a cada um. Processo Thread Público ● A partir do conceito de múltiplos threads é possível projetar e implementar aplicações concorrentes de forma eficiente, pois um processo pode ter partes diferentes do seu código, sendo executadas concorrentemente com um overhead menor do que utilizando múltiplos processos. ● Como os threads de um processo compartilham o mesmo espaço de endereçamento, a comunicação entre threads não envolve mecanismos lentos de intercomunicação entre processos, aumentando, consequentemente, o desempenho da aplicação. Processo Thread Público ● Quando um processo é criado é preciso alocar os recursos, o que consome muito tempo de processamento e se o thread permite alocar no mesmo endereço de memória um processo e os seus subprocessos, isso faz com que haja a otimização desse tempo que seria gasto com a criação de outros processos e alocação de recursos para eles que trabalharão de forma concorrente. Processo Thread Público ● As definições de ações de threads devem ser estabelecidas no momento do planejamento da arquitetura do sistema operacional e são implementadas por desenvolvedores que associarão cada ação de um thread ao respectivo tipo de processo ou comportamento que o sistema deve ter. ● Um bloco de controle de threads é conhecido como TCB (Thread Control Block). ● O TCB é responsável por controlar a prioridade e o estado de execução, além de conter os bits de estado do thread. Processo Thread Público ● Quando se implementa um thread é preciso saber para qual arquitetura está sendo desenvolvida e como se dará a sua implementação. ● Um thread influencia em desempenho de máquina, processos e concorrência. ● Os threads podem ser implementados em bibliotecas externas ao kernel, ou seja, no modo usuário ou pelo próprio núcleo do sistema (modo kernel) e por ambos os modos (modo híbrido). Processo Thread Sistemas Operacionais Processos, Conceitos e Gerenciamento Introdução Processos Introdução Processos (2) Introdução Processos (3) Introdução Processos (4) Hierarquia de Processos Hierarquia de Processos (2) Estados do ProcessoIntrodução Processos (5) Classificação de Processos Implementação de Processos Processo Thread Processo Thread (2) Processo Thread (3) Processo Thread (4) Processo Thread (5) Processo Thread (6)