Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sistemas Operacionais A - Cap.5 - Processo Cezar Augusto Crummenauer…
Sistemas Operacionais A - Cap.5 - Processo
Cezar Augusto Crummenauer
Uma das aplicações mais importantes do SO
Um programa deve estar associado a um processo
Em sistemas multiprocessadores, existe, além da concorrência por um processado, a possibilidade de executar um processo em dois processadores simultaneamente
Estrutura do processo
O hardware não pode distinguir os processos. Isso é dever do SO
A troca de processos pelo sistema operacional é denominada de troca de contexto
Formado por 3 partes
Contexto de software
Especificações dos limites e características dos recursos que podem ser alocados pelo processo
Número máximo de arquivos que podem ser abertos simultaneamente
Prioridade de execução
Tamanho do buffer para operações de E/S
Arquivo de usuários
Local onde são especificados os limites de recursos para cada processo
Formado por três grupos de informações sobre o processo
Identificação
PID - representação numérica - alguns sistemas podem usar um nome também
UID - Dono do processo
Implementar um modelo de segurança, onde apenas objetos de mesmo UID podem ser acessados
Quotas
Limites de recursos que cada processo pode alocar
Se a cota for insuficiente, o processo poderá ser executado lentamente, interrompido durante o processamento ou mesmo não ser executado
Tipos
Número máximo de arquivos abertos simultaneamente
Tamanho máximo de memória principal
Número máximo de operações pendentes
Número máximo de buffer para operações E/S
Número máximo de processos, subprocessos e threads que podem ser criados
Privilégios
Definem as ações que um processo pode fazer a ele mesmo, aos demais processos e ao sistema operacional
Processos que podem fazer alterações em si próprios podem modificar características como prioridade, limites de alocação na memória, etc
Processos que podem alterar outros processos podem alterar características como a prioridade de outros processos
Processos que podem alterar o sistema são os mais poderosos, pois estão relacionados com a gerência do ambiente como a desativação do sistema, alteração de regras de segurança, criação de outros processos privilegiados, etc
Contexto de hardware
Armazena o conteúdo dos registradores da UCP
Espaço de endereçamento
Área de memória pertencente ao processo
Deve haver proteção ao espaço de memória de cada processo
Estrutura de um processo
Contexto de software
PID
UID (Dono - owner)
Prioridade de execução
Data/Hora de criação
Tempo de processador
Quotas
Privilégios
Nome
Contexto de hardware
Registradores gerais
Registradores PC
Registradores SP
Registradores de status
Espaço de endereçamento
Espaços de memória principal alocados
PCB - Bloco de controle de processos
Mantém todas as informações sobre o contexto de hardware, software e espaço de armazenamento de cada processo
Estados de um processo
Tipos
Espera (wait) - blocked
Quando aguarda por algum evento (como hora e data) ou recurso (como E/S) para prosseguir
Execução (running)
Em processamento pela UCP
Pronto (ready)
Uso de prioridades
Está aguardando para ser processado
Estado de criação
Estado de término
Processos são organizados em listas encadeadas
Mudança de estado de um processo
Basicamente, existem quatro tipos de mudança
Pronto -> Execução
Execução -> Espera
Espera -> Pronto
Execução -> Pronto
Um processo pode mudar de estado em função de eventos originados por ele próprio (eventos voluntários) ou pelo sistema operacional (eventos involuntários)
Um processo em estado de pronto ou de espera pode não se encontrar na memória principal. Parte do contexto do processo é levado para a memória secundária - swapping (swap out - sai da RAM e swap in - vai para a RAM)
Processos CPU-bound e I/O-bound
Processos permitem que os programas...
Alocar recursos
Compartilhar dados
Trocar informações
Sincronizar suas execuções
Processos foreground e background
Foreground: Permite a comunicação direta do usuário com o processo durante o seu processamento através de dispositivos como teclado, monitor e mouse
Terminal > entrada > terminal
Background: Não permite a interação do usuário com o processamento. Encontrado no processamento batch
Arquivo de entrada > processamento > arquivo de saída
Formas de criação de projetos
Logon interativo
Via linguagem de comandos
Via rotina do sistema operacional
Processos independentes, subprocessos e threads
São maneiras diferentes de implementar a concorrência dentro de uma aplicação
Processos independentes
Maneira mais simples de implementar
Não há vínculo com o processo criador
Exige a alocação de um PCB com contextos de hardware e de software e espaços de endereçamento próprios
Subprocessos
Criados dentro de uma estrutura hierárquica
Processo criador é chamado de processo-pai, enquanto o novo processo é chamado de processo-filho ou subprocesso
Cada subprocesso pode criar outros subprocessos
Existe dependência entre o processo criador e o subprocesso. Caso o processo-pai deixe de existir, os subprocessos são automaticamente eliminados
De modo semelhante aos processos independentes, subprocessos possuem seu próprio PCB
Subprocessos compartilham quotas com o processo-pai
threads
O uso de processos independentes e subprocessos demandam consumo de diversos recursos do sistema
Como a alocação de contextos, consumindo tempo de CPU. Também são utilizados recursos para a desalocação
A comunicação e sincronização entre processos é pouco eficiente, uma vez que cada processo possui seu próprio espaço de armazenamento
Foi introduzido na tentativa em reduzir o tempo gasto na criação, eliminação e troca de contextos entre processos, bem como economizar recursos no sistema como um todo
Em um ambiente multthread, um único processo pode suportar múltiplos threads, cada qual associado a uma parte do código da aplicação
Cada thread possui seu próprio contexto de hardware, porem compartilha o contexto de software e o espaço de armazenamento
O compartilhamento do espaço de endereçamento permite que a comunicação de threads dentro de um mesmo processo seja mais rápida
Processos do sistema operacional
Utilizar processos para implementar serviços do SO reduz o tamanho do núcleo, contribuindo para torna-lo mais estável
Possibilidade de desativar processos indesejáveis (dentro da necessidade)
Exemplos de serviços do SO que podem ser implementados através de processos
Auditoria e segurança
Serviços de rede
Contabilização do uso de recursos e de erros
Gerência de impressão e de jobs batch
Temporização
Comunicação de eventos
Interface de comandos (shell)
Sinais
Permite notificar processos de eventos gerados pelo sistema operacional
Fundamental para a gerência de processos, além de possibilitar a comunicação e a sincronização entre processos
Sinal Ctrl+C para interromper a execução de um programa
Interrupção > SO > sinal > processo
Podem ser utilizados em conjunto com temporizadores
SO notifica o processo através de bits de sinalização localizado no PCB
Um processo não responde instantaneamente a um sinal
Os sinais ficam pendentes até que o processo for selecionado para execução
O tratamento de sinais é semelhante ao tratamento de exceções
O sinal está para o processo assim como as interrupções e exceções estão para o sistema operacional