300 likes | 440 Views
Sistemas Operacionais. Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari. Processos. 20/08/2013. Tópicos abordados. Estrutura do processo Contexto de hardware; Contexto de software; Espaço de endereçamento;
E N D
Sistemas Operacionais Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari
Processos 20/08/2013
Tópicos abordados • Estrutura do processo • Contexto de hardware; • Contexto de software; • Espaço de endereçamento; • Bloco de controle de processo; • Estado de processos; • Processos independentes, subprocessos e threads; • Processos do SO; • Sinais. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Introdução • A Gerência de um ambiente multiprogramável é de responsabilidade do SO; • Programas em execução são processos carregados na memória que concorrem para o uso da CPU; • O conceito de processo é a base para implementação de um SO; • A gerencia de processos é uma das principais funções do SO; • Em sistemas com múltiplos processadores, não existe apenas a gerencia de processos, mas sim a possibilidade de execução paralela de processos diferentes. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Relembrando... • Relembrando a estrutura da CPU: • PC; • IR; • MAR; • MBR; • ULA; • O ciclo de instrução compreende basicamente em dois subciclos: • Ciclo de Busca; • Ciclo de Execução. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Processo • Um programa é uma sequência de instruções; • Um processo é a execução dessa sequência de instruções; • Para que a troca de contexto ocorra, um processo deve conter várias informações extras, além das instruções; • Um processo portanto possui muito mais do que a sequência de instruções: • Espaço de endereçamento; • Contexto de hardware; • Contexto de software. • O conceito de processos permite que sistemas operacionais implemente a concorrência entre programas. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Estrutura do processo • Quando um processo irá iniciar a execução, inicialmente PC é apontado com o endereço de memória da instrução (Ciclo de busca); • Depois de carregado os bits do endereço da instrução a CPU deve decodifica-la; • Uma vez decodificada é executada a instrução e o ciclo recomeça com o incremento ou alteração de PC; • Para o processador, o que ele executa são apenas instruções, independente de qual processo; • É de responsabilidade do SO implementar a concorrência adequada para os processos utilizarem a CPU; • Essa concorrência é crucial em sistemas multiprogramáveis. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Estrutura do processo • Um processo é muito mais do que um programa em execução; • Um processo é um conjunto de informações necessárias para que o SO implemente a concorrência adequada; • Nesse conjunto estão todas as informações do estado atual do processo dentro da CPU; • Essas informações são utilizadas pelo SO para escalonar os processos; • Quando um processo dá lugar a outro na CPU ocorre a troca de contexto; • Essa troca é transparente ao usuário parecendo não existir, pois é muito rápida; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Estrutura do processo Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Estrutura do processo • Em vista geral, um processo é formado pro três partes: • Contexto de Hardware: • Todos os registradores utilizados pelo processo: • Contexto de Software: • Todas as instruções do processo; • Espaço de armazenamento: • Todos os endereços de memória que o processo necessita. • Essas partes juntas mantém todas as informações para a execução do processo; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Estrutura do processo Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Contexto de Hardware • Possui todas as informações referente aos registradores da CPU utilizados pelo processo: • PC; • MAR; • MBR; • IR, etc. • Essas informações são utilizadas na troca de contexto, quando um processo deve ser escalonado; • Seu conteúdo é salvo na memória ao dar lugar a outro processo; • O mesmo conteúdo integralmente deve ser carregado nos registradores quando o processo voltar a execução. • Esse procedimento compreende a troca de contexto. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Contexto de software • Neste contexto possui as características dos recursos do processo como: • Número máximo de arquivos abertos simultaneamente; • Prioridade de execução; • Tamanho de buffer para I/O, etc. • Muitas dessas características são definidas na criação do processo; • Muitas são alteradas durante a execução do processo; • Essas informações ficam geralmente armazenadas em um arquivo do SO chamado de arquivo de usuários; • Esse arquivo é gerido pelo SO. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Contexto de software • O contexto de software é composto por três grupos de informações do processo: • Identificação: • PID – Número do processo atribuído pelo SO na sua criação; • UID – ID do usuário ou processo que criou o processo. • Quotas: • Limites de recursos que o processo pode alocar: • Numero máximo de arquivos abertos, número máximo de endereços de memória, numero máximo de buffer para I/O, etc. • Privilégios: • Define as ações que o processo pode ter sobre ele mesmo, outros processo e sobre o SO. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Espaço de endereçamento • Define todas as áreas de memória que o processo pode utilizar; • Cada processo possui sua própria área de endereçamento; • Outros processos não podem utilizar essa mesma área, pois ela é protegida; • Outros processo podem alterar as informações dessa área, desde que de forma autorizada pelo processo dono desta área de endereçamentos. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Estrutura do processo Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Bloco de controle de processo • O bloco de controle de processo ou BCP contém todas as informações referente ao processo; • É através dessas informações que o SO gerencia o escalonamento de processos; • Na BCP estão as informações do contexto de hardware, de software e de espaço de endereçamento; • A BCP reside na memória principal, em endereços reservados e protegidos pelo SO e define quantos processos podem ser executados simultaneamente; • Toda a gerência de processo se dá por meio de chamadas a rotinas de sistema e realizam operações como: • Criação de processo, eliminação, alteração de características, sincronização suspensão, etc. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
BCP Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Processos independentes, subprocessos e threads • Processos independentes, subprocessos e threads são maneiras de implementar concorrência dentro da aplicação; • Busca-se dividir o código para melhor cooperação da aplicação. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Processos independentes, subprocessos e threads • Processos independentes: • É um processo normal, com BPC própria e completo desvinculo com o processo criador; • Subprocesso: • Existe uma estrutura hierárquica e o processo criador é chamado de processo pai e o processo criado é o processo filho ou subprocesso; • O subprocesso pode criar outros subprocessos abaixo na hierarquia; • Quando um processo pai é eliminado, todos os subprocessos abaixo dele são também extintos; • Subprocessos possuem também sua própria BCP Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Processos independentes, subprocessos e threads • Subprocesso: • O processo pai compartilha suas quotas com os seus subordinados; • Tanto para criação de processo quanto para criação de subprocessos o sistema consome CPU e recursos computacionais; • Ocorre perda de tempo para a eliminação e “desalocação” de recursos; • Outro problema é a comunicação e sincronização entre processos que é de forma custosa e pouco eficiente devido aos espaços de endereçamento independentes. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Processos independentes, subprocessos e threads • Estrutura de Subprocesso: Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Processos independentes, subprocessos e threads • Threads: • Surgiu na tentativa de melhorar o tempo gasto na criação, eliminação e sincronização de processos; • Um processo pode abrigar múltiplos threads, onde cada uma pode possuir partes do código; • Threads compartilham o processador da mesma maneira que os processos; • Cada thread possui seu próprio contexto de hardware, mas compartilham o contexto de software e espaço de endereçamento do processo; • Compartilhar o espaço de endereçamento do processo permite comunicação de threads mais eficiente. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Processos independentes, subprocessos e threads • Processo mutithread: Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Processos do SO • Processos também podem estar associados com o SO, e não somente com aplicações; • SOs que implementam muitos processos são os que possuem microkernel; • Isso permite um núcleo menor e processos que não serão utilizados podem deixar de existir momentaneamente; • Exemplos de processos de SO: • Auditoria e segurança; • Serviços de rede; • Contabilização; • Contabilização de erros; • Gerência de impressão; • Temporização; • Interface de comandos, etc. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Sinais • Sinais são mecanismos utilizados pelo SO para notificar os processos sobre algo; • Seu uso é fundamental para a gerência de processos; • Possibilita a comunicação e sincronização de processos; • Podem ser utilizado junto com temporizadores; • Podem ser gerados por exceções, interrupções, por outros processos, pelo SO ou pelo Hardware; • O SO notifica o processo através de bits de sinalização contidos na BCP; • O sinal está para o processo assim como a interrupção e exceção estão para o processador; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Sinais Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Sinais Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Estado de processos • Fazer na atividade PG 72 • Estado de processos; • Mudança de estado de processos; • Criação e eliminação de processos; • Processos CPU bound e I/O bound • Processos foreground e background; • Formas de criação de processos; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013