880 likes | 1.11k Views
Processos. Prof. Alexandre Monteiro Recife. Contatos. Prof. Guilherme Alexandre Monteiro Reinaldo Apelido: Alexandre Cordel E-mail/ gtalk : alexandrecordel@gmail.com greinaldo@fbv.edu.br Site: http://www.alexandrecordel.com.br/fbv Celular: (81) 9801-1878. Introdução a Processos.
E N D
Processos Prof. Alexandre Monteiro Recife
Contatos • Prof. Guilherme Alexandre Monteiro Reinaldo • Apelido: Alexandre Cordel • E-mail/gtalk: alexandrecordel@gmail.com greinaldo@fbv.edu.br • Site: http://www.alexandrecordel.com.br/fbv • Celular: (81) 9801-1878
Introdução a Processos • Em um sistema multiprogramado vários programas estão na RAM e são executados concorrentemente • A CPU permuta entre programas, executando cada um por dezenas/centenas de milisegundos. • Uma CPU só pode executar um programa por vez. • Mas no curso de 1’’ uma CPU pode executar diversos programas ilusão de paralelismo (pseudoparalelismo) • Verdadeiro paralelismo = sistema multiprocessado
Introdução a Processos • O conceito de processo é a base para a implementação de um sistema multiprogramável • A gerência de um ambiente multiprogramável é função do SO, o qual controla a execução dos programas e o uso concorrente da CPU • Neste contexto um programa esta associado a um processo • OBS: Apesar de denominações como tarefa ou job ainda serem usadas com o mesmo sentido, o termo processo é atualmente o mais utilizado. • job= tarefa = processo
Introdução a Processos • Vantagens da Multiprogramação: • Aumento da taxa de utilização do processador • Melhor utilização dos recursos em geral • Redução do tempo de execução de um conjunto de programas • Dá a ideia ao usuário de que ele possui uma máquina só para si.
Tipos de Processo • Independentes: não podem afetar a execução dos outros processos. • Cooperativos: podem afetar ou ser afetados pela execução de outros processos. • Vantagens: • Compartilhamento de informações • Aumento da veloc. de computação (speedup) • Modularidade • Conveniência
ProcessosO Modelo de Processo • Multiprogramação de 4 programas • Modeloconceitual de 4 processossequenciais, independentes • Somente um programaestáativo a cadamomento
Introdução a Processos • 4 programas na memória de um sistema multiprogramadoe a abstração em processos.
Introdução a Processos • 4 programas na memória de um sistema multiprogramadoe a abstração em processos.
Introdução a Processos • 4 programas na memória de um sistema multiprogramadoe a abstração em processos.
Introdução a Processos • Para que a troca de programa ocorra sem problemas é necessário que todas as informações do programa interrompido sejam guardadas • Todas as informações importantes à execução de um programa são parte do processo, por exemplo: • seu espaço de endereçamento, • seu tempo de processador e • sua área de disco
Introdução a Processos • Um processo é formado por três partes • Contexto de Hardware • Contexto de Software • Espaço de endereçamento • Estas três partes mantêm todas as informações necessárias à execução de um programa • Quando um processador troca de processo caracteriza uma mudança de Contexto de Execução
Contexto de Hardware • Armazena o conteúdo dos registradores gerais da CPU, além dos registradores de uso específico, por exemplo: • Contador de programa (ProgramCounter- PC) • Armazena o endereço de memória onde se encontra a próxima instrução a ser executada • Apontador da pilha (StackPoiter - SP) • A pilha contém valores que podem ser inteiros, reais ou endereços. • O SP aponta para o topo da pilha • Status (Estado do Processo) • Contém diversos flags que auxiliam à tomar decisões após instruções
Contexto de Hardware • Quando um processo está em execução, o seu contexto de HW está armazenado nos registradores da CPU. • No momento em que o processo perde a utilização da CPU, o sistema salva as informações no contexto de HW do processo • A troca de um processo por outro na CPU é denominada mudança de contexto. • Esta consiste em salvar o conteúdo dos registradores do processo que está deixando a CPU e carregá-los com os valores referentes ao do novo processo.
(1) (2) (3) (4) (5) (6) (7)
Contexto de Hardware • A troca de contexto resume-se em substituir o contexto de HW de um processo A pelo de outro processo B.
Contexto de Software • Especifica as características e limites dos recursos que podem ser alocados pelo processo, como: • O número máximo de arquivos abertos simultaneamente, • A prioridade de execução e • O tamanho do buffer para E/S • Muitas informações do contexto de SW são provenientes de um arquivo do SO conhecido como arquivo de contas • Ele é gerenciado pelo Administrador do sistema e contém os limites dos recursos que cada processo pode alocar.
Contexto de Software • É formado por 3 grupos de informações: • Identificação • Quotas • Privilégios
Contexto de Software - Identificação • Grupo Identificação • Cada processo criado pelo sistema recebe uma identificação única • PID – ProcessIdentification • Através do PID o SO e outros processos podem fazer referência a qualquer processo existente • O processo também possui a identificação do usuário ou processo que o criou (owner). • Cada usuário possui uma identificação no sistema • UID – UserIdentification
Contexto de Software - Identificação • A UID permite implementar um modelo de segurança, onde apenas os objetos (processos, arquivos, áreas de memória,...) que possuem a mesma UID do usuário (ou processo pai) podem ser acessado.
Contexto de Software - Quotas • Grupo Quotas • As quotas são os limites de cada recurso do sistema que um processo pode alocar • Caso uma cota seja insuficiente, o processo poderá: • Ser executado lentamente • Interrompido durante seu processamento • Ou até nem ser executado
Contexto de Software - Quotas • Grupo Quotas • Alguns exemplos de quotas: • Número máximo de arquivos abertos simultaneamente • Tamanho máximo de memória principal e secundária que o processo pode alocar • Número máximo de operações de E/S pendentes • Tamanho máximo do buffer para operações de E/S • Número máximo de processos, subprocessos e threads que podem ser criados
Contexto de Software - Privilégios • Grupo Privilégios • Os privilégios ou direitos definem as ações que um processo pode fazer em relação a ele mesmo, aos demais processo e ao SO. • Alterar a prioridade de execução • Modificar os limites alocados de memória • Alteração de regras de segurança • Criação de outros processos privilegiados • Modificação de parâmetros de configuração do sistema
Contexto de Software - Privilégios • Grupo Privilégios • Privilégio que afetam o SO são os mais amplos e poderosos. • A maioria do SO possui uma conta de acesso SUPER privilegiada • Windows = administrator • UNIX = root
Espaço de Endereçamento • É a área de memória do processo onde as instruções e os dados do programa são armazenadas para execução • Cada processo possui seu espaço de endereçamento
PCB - Bloco de Controle do Processo • O processo é implementado pelo SO através de uma estrutura de dados (Lista Encadeada) chamada de Bloco de Controle do Processo (ProcessControlBlock - PCB) • A partir do PCB, o SO mantém as informações sobre o contexto de HW, o contexto de SW e o espaço de endereçamento de cada processo. • O PCB possui todas as informações necessárias para que a execução do processo possa ser iniciada, interrompida e retomada conforme determinação do SO, sem prejuízo para o processo.
PCB - Bloco de Controle do Processo • Algumas informações típicas que o PCB possui são: • Identificador de processo (pid); • Estado atual do processo; • Cópia do conteúdo do registrador contador de programa (PC – ProgramCounter); • Cópia do conteúdo dos demais registradores do processador; • PID do processo pai (parentprocess); • Ponteiro para a pilha; • Tempo em que o processo iniciou; • Tempo utilizado do processador; • Informações sobre diretório raiz e de trabalho. • OBS: Os PCBs de todos os processos residem na memória principal em uma área exclusiva do SO
PCB na Memória (Lista Encadeada) AddressWindowing Extensions
Estado do Processo • Para haver o compartilhamento da CPU em um sistema multiprogramável, os processos passam por diferentes estados ao longo do seu processamento • A troca de estado ocorre em função de eventos gerados pelo próprio processo (voluntário) ou pelo SO (involuntário) • Os estados em que um processo pode se encontrar variam de sistema para sistema mas, de uma maneira geral, pode-se citar: • Executando (Running) • Pronto (ready) • Bloqueado (blocked) – Também conhecido com Espera (Wait) • Terminado (exit)
Estados do Processo:Executando (running) • Um processo está no estado executando quando ele está sendo executado pelo processador. • Em ambientes com uma única CPU, somente um processo pode estar sendo executado em um certo instante. • Em ambientes com mais de uma CPU, existe a possibilidade de mais de um processo estar sendo executado ao mesmo tempo • Neste tipo de sistema um mesmo processo também pode ser executado simultaneamente em mais de uma CPU
Estados do Processo:Pronto (ready) • O processo está temporariamente parado para que outro processo possa ser executado. • O processo encontra-se pronto para a execução, aguardando apenas a liberação do processador para que ele seja executado; • Em geral existem vários processos no sistema no estado de pronto organizados em listas encadeadas; • Os processos são encadeados pela sua importância/prioridade
Estados do Processo:Bloqueado (blocked) – Espera (wait) • Um processo está no estado bloqueado/espera quando aguarda a ocorrência de algum evento ou recurso externo para poder prosseguir, por exemplo: • O término de uma operação de E/S • Espera de uma data e/ou hora para continuar sua execução • O sistema também organiza os vários processos no estado de bloqueado/espera em listas encadeadas • Em geral, os processos são separados em listas de espera associadas a cada tipo de evento
Processosx Programas • Diferençasutil mas crucial. • Um processo é um programaemexecução. • CPU chaveamconjuntos de processos, o quechamamos de multiprogramação. • Analogia da Receita de Bolo: • A receita é o programa (algoritmos). • O cozinheiro/programador é o processador (CPU) • Osingredientessãoos dados de entrada. • O processo é a atividadedesempenhadapelocozinheiro (lerreceita, buscar e misturaringredientes, assar o bolo)
Processosx Programas • Agora imagine que no meio do preparo o filho do cozinheirocheguechorando e dizendoqueumaabelha o picou: • O cozinheiroregistra de ondeestá (estadoatual do processo é salvo). • Pegalivro de primeirossocorros e começa a seguir as instruções. • Quando o problema da picada de abelhativersidotratado, o processador (cozinheiro) voltaao bolo. • Nessepontovemosque o processadoralternou de um processo para outro de maisaltaprioridade
Processos • Um processoconstituiumaatividadecomposta de: • Programa • Entrada • Saída • Estado. • Um programasendoexecutadoduasvezes, issocontacomodoisprocessos. Apesar do SO compartilhar o código do programaemmemória.
Criação de Processos • Principaiseventosquelevam à criação de processos • Início do sistema • Execução de chamadaaosistema de criação de processos • Solicitação do usuário para criar um novo processo • Início de um job emlote • Processos e Foreground (primeiroplano): interagem com usuários • Processos e Background (segundoplano): funçãoespecífica, quenão se associam com o usuários (Daemons)
Criação de Processos • Sistemas Antigos: só o sistema podia criar novos processos • Sistemas Atuais: os usuários podem criar novos processos e destruir dinamicamente • SO deve fornecer chamadas para a manipulação e gerência de processos • Quando um novo processo é criado o seu PCB é preparado com as informações básicas e colocado na fila de prontos.
Criação de Processos • Novosprocessoderivam do ProcessoPai, sendocriadaumacópia dos endereços de memória para ProcessosFilhos • UNIX (fork: cria novo processo e execve: sobrepõeespaço de endereçamento) • Windows (CreateProcess) • Pai e Filho tem seusEndereços de Memóriadistintos, principalmente para escrita. • No UNIX hápoucocompartilhamento, no Windows osespaçossãodistintosdesde o início da criação do ProcessoFilho.
Criação de Processos • Processos Pais criam processos Filhos, que podem criar novos processos=> gerando uma árvore de processos • Compartilhamento de Recursos: • Pais e Filhos compartilham os mesmo recursos • Filhos compartilham um subconjunto de recursos do Pai • Pais e Filhos não compartilham recurso algum • Execução • Pai e Filhos executam concorrentemente • Pai aguarda até que o filho termine • Espaço de endereçamento • Filho é uma cópia do Pai (Firefox) • Filho tem um novo programa carregado (Google Chrome)
Árvore de Processos Windows
Término de Processos Condiçõesquelevamaotérmino de processos • Saída normal (voluntária) • Saídaporerro (voluntária) • Erro fatal (involuntário) • Cancelamentopor um outro processo (involuntário)