Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Documentos relacionados
Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

Sistemas Operacionais. Capítulo 5 Processos

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Processo. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Sistemas Operacionais

Sistemas Operacionais. Processos e Threads

Processos. Adão de Melo Neto

Figura 01 Programa e Processo

Sistemas Operacionais

Sistemas Operacionais

Estrutura dos Sistemas Operacionais. Sérgio Portari Júnior

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Introdução a Arquitetura de Sistemas Operacionais. Parte 01

Sistemas Operacionais I

Sistemas Operacionais I

Processos. Sistemas Operacionais II. Anderson L. S. Moreira

Sistemas Operacionais

Arquitetura de Sistemas Operacionais

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

SISTEMAS OPERACIONAIS

Sistemas Operacionais

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Matéria do Gavião. Capítulos 3, 5e7

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS

Prof. Kleber R. Rovai

Processos. Estruturas de Controle

Sistemas Operacionais. Interrupção e Exceção

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Matéria do Gavião. Capítulos3, 5e7

SISTEMAS OPERACIONAIS

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 2. Gerência de Processos

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 08. Conceitos sobre processos. Modelos de processos, BCP, contextos, estados de processos.

Fundamentos de Sistemas Operacionais

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais. Processos IC - UFF

Sistemas Operacionais

Processos. Adão de Melo Neto

Questões de Múltipla escolha

Sistema Operacional. Etapa

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Sistemas Operacionais. Conceito de Processos

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

7 Processos. 7.1 Introdução

Threads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

Processos. Processos e Recursos (1) Tabelas de Controle do S.O. Processos e Recursos (2)

Sistemas de Informação. Sistemas Operacionais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Processos. Conceitos Básicos

Sistemas Operacionais. Concorrência

Concorrência em Processos

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Aula 03 - Concorrência. por Sediane Carmem Lunardi Hernandes

Fundamentos de Sistemas Operacionais. Processos. Prof. Edwar Saliba Júnior Março de Unidade Processos

Sistemas de Computação. Processos e escalonamento

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13

SOP Sistemas Operacionais Módulo 04: Processo

Periféricos possuem características diferentes. Periféricos são mais lentos que UCP e Memória Necessita-se de módulos de Entrada/Saída


Sistemas de Informação. Sistemas Operacionais

SISTEMAS DISTRIBUÍDOS PROCESSOS. Slides cedidos pela professora Aline Nascimento

Introdução a Sistemas Operacionais. Adão de Melo Neto

Algoritmos Computacionais

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

ARQUITETURA DE COMPUTADORES

Processos. Processo (1) Processo (2) Processo (3) Conceitos Básicos

Processos. Conceitos Básicos

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios

Notas da Aula 2 - Fundamentos de Sistemas Operacionais

Processos. Prof. Gustavo Leitão

Processos. Conceitos Básicos

Fundamentos de Sistemas Operacionais

Barramento. Prof. Leonardo Barreto Campos 1

Sistemas Operacionais. Maria de Fátima de Freitas Bueno Marcílio

Estruturas de Sistemas Operacionais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO PROCESSOS PROFESSOR CARLOS MUNIZ

Infra-Estrutura de Software. Escalonamento

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador

Sistemas Operacionais

Sistemas Operacionais Conceitos Básicos

Parte I Multiprocessamento

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

Dispositivos de Entrada e Saída

Davidson Rodrigo Boccardo

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Montagem e Manutenção

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

Sistemas Operacionais Gerência de Memória

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Transcrição:

Redes de Computadores INF201 - Fundamentos de Sistemas Operacionais - 2º Período

PARTE II: PROCESSOS E THREADS SUMÁRIO 5. PROCESSO: 5.1 Introdução; 5.2 Estrutura do Processo; 5.3 Estados do Processo; 5.4 Mudanças de Estado do Processo; 5.5 Criação e Eliminação de Processos; 5.6 Processos CPU-bound e I/O-bound; 5.7 Processos Foreground e Background; 5.8 Formas de Criação de Processos; 5.9 Processos Independentes, Subprocessos e Threads; 5.10 Processos do Sistema Operacional; 5.11 Sinais.

5.1 Introdução A gerência de um ambiente multiprogramável é função exclusiva do sistema operacional que deve controlar a execução dos diversos programas e o uso concorrente do processador e demais recursos. Um programa ao ser executado deve estar sempre associado a um processo. O conceito de processo é a base para a implementação de um sistema multiprogramável. A gerência de processos é uma das principais funções de um sistema operacional.

5.2 Estrutura do Processo O processador é projetado para executar instruções a partir do ciclo de busca e execução. O registrador PC tem a função de armazenar sempre o endereço da próxima instrução a ser executada. Na visão da camada de hardware, o processador executa instruções sem distinguir qual programa encontra-se em processamento. O conceito de processo é essencial para que os sistemas multiprogramáveis implementem o mecanismo de concorrência.

5.2 Estrutura do Processo Algumas definições de processo: Pode ser entendido inicialmente como um programa em execução; É o conjunto necessário de informações para que o sistema operacional implemente a concorrência de programas; Também pode ser definido como o ambiente onde um programa é executado. Em um sistema multiusuário, cada usuário tem seu programa associado a um processo.

5.2 Estrutura do Processo Capítulo 5 - Processo

5.2 Estrutura do Processo A troca de um processo por outro no processador, comandada pelo sistema operacional, é denominada mudança de contexto. O resultado da execução de um mesmo programa pode variar, dependendo do processo em que é executado. A falta de recursos pode impedir a execução com sucesso de um programa. Um processo é formado por três partes, conhecidas como contexto de hardware, contexto de software e espaço de endereçamento, que juntas mantêm todas as informações necessárias à execução de um programa.

5.2 Estrutura do Processo Contexto de Software Contexto de Hardware Programa Espaço de Endereçamento

5.2.1 Contexto de Hardware Armazena o conteúdo dos registradores gerais da UCP, além dos registradores de uso específico, como o PC (Program Counter), o SP (Stack Pointer) e o registrador de status. O sistema operacional gerencia a mudança de contexto, base para a implementação da concorrência em sistemas multiprogramáveis. Essa mudança consiste em salvar o conteúdo dos registradores do processo que está deixando a UCP e carregar nos registradores do processador os valores do novo processo que será executado.

5.2.1 Contexto de Hardware Sistema Operacional Processo A Processo B executando Salva registradores do Processo A Carrega registradores do Processo B executando Salva registradores do Processo B Carrega registradores do Processo A executando

5.2.2 Contexto de Software São especificados limites e características dos recursos que podem ser alocados pelo processo, como: Número máximo de arquivos abertos simultaneamente; Prioridade de execução; Tamanho do buffer para operações de E/S. A maior parte das informações do contexto de software do processo provém de um arquivo do SO, conhecido como arquivo de usuários. O contexto de software é composto por três grupos de informações sobre o processo: identificação, quotas e privilégios.

5.2.2 Contexto de Software Identificação: Cada processo criado pelo sistema recebe uma identificação única (PID - Process Identification) representada por um número. O processo também possui a identificação do usuário ou processo que o criou (Owner). Cada usuário possui uma identificação única no sistema (UID - User Identification), atribuída ao processo no momento de sua criação. A UID permite implementar um modelo de segurança, onde apenas os objetos que possuem a mesma UID do usuário (processo) podem ser acessados.

5.2.2 Contexto de Software Quotas: São os limites de cada recurso do sistema que um processo pode alocar. 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.

5.2.2 Contexto de Software Privilégios: Definem as ações que um processo pode fazer em relação a ele mesmo, aos demais processos e ao sistema operacional. Quando os privilégios afetam: O próprio processo, permitem que suas características possam ser alteradas; Os demais processos, permitem alterar as suas próprias características e as de outros processos; O sistema operacional, permitem alterações relacionadas à operação e à gerência do ambiente. O SO disponibiliza uma conta de acesso com o propósito de gerenciar o SO.

5.2.3 Espaço de Endereçamento É a área de memória pertencente ao processo onde instruções e dados do programa são armazenados para execução. 5.2.4 Bloco de Controle do Processo A partir do PCB (Process Control Block), o SO mantém todas as informações sobre os contextos de hardware e software e o espaço de endereçamento de cada processo. Os PCBs de todos os processos ativos residem na memória principal em uma área exclusiva do sistema operacional.

Características da Estrutura de um Processo owner (UID) nome PID registradores gerais prioridade de execução registrador PC data/ hora de criação Contexto de Software Contexto de Hardware tempo de processador registrador SP quotas privilégios Programa Espaço de Endereçamento registrador de status endereços de memória principal alocados

5.2.4 Bloco de Controle do Processo (PCB) ponteiros Estado do processo Nome do processo Prioridade do processo Registradores Limites de memória Lista de arquivos abertos.

5.2.4 Bloco de Controle do Processo (PCB) Capítulo 5 - Processo

5.3 Estados do Processo Os processos passam por diferentes estados ao longo do seu processamento, em função de eventos gerados pelo SO ou pelo próprio processo. São três diferentes estados: Execução (running): está sendo processado pela UCP; Pronto (ready): aguarda apenas para ser executado. O SO é responsável por determinar a ordem e os critérios pelos quais os processos em estado pronto devem fazer uso do processador (escalonamento); Espera (wait): aguarda por algum evento externo ou por algum recurso para prosseguir seu processamento. Em alguns SOs, o estado de espera pode ser chamado de bloqueado (blocked).

5.3 Estados do Processo Lista de processos em estado de pronto. PCB# 5. PCB# 1 Lista de processos em estado de espera. PCB# 9.. PCB# 2 PCB# 4

5.4 Mudanças no Estado do Processo Um processo muda de estado durante seu processamento em função de eventos originados por ele próprio (eventos voluntários) ou pelo sistema operacional (eventos involuntários). Pronto Execução; Execução Espera; Espera Pronto; Execução Pronto.

5.4 Mudanças no Estado do Processo Estado de Execução b d a c Estado de Espera Estado de Pronto

5.4 Mudanças no Estado do Processo Um processo em estado pronto ou de espera pode não se encontrar na memória principal. A técnica conhecida como swapping, retira processos da memória principal (swap out) e os traz de volta (swap in) seguindo critérios de cada SO. 5.5 Criação e Eliminação de Processos A criação de um processo ocorre a partir do momento em que o SO adiciona um novo PCB à sua estrutura e aloca um espaço na memória para uso. Na eliminação, todos os recursos associados ao processo são desalocados e o PCB eliminado pelo SO.

5.4 Mudanças no Estado do Processo Estado de Execução residente não residente Estado de Espera Estado de Pronto Estado de Espera Estado de Pronto

5.5 Criação e Eliminação de Processos Estado de Execução Estado de Término Estado de Espera Estado de Pronto Estado de Criação

5.5 Criação e Eliminação de Processos Criação (new): um processo é dito em estado de criação quando o sistema operacional já criou um novo PCB, porém ainda não pode colocá-lo na lista de processos do estado de pronto. Terminado (exit): um processo no estado terminado não poderá ter mais nenhum programa executado no seu contexto, porém o SO ainda mantém suas informações de controle presentes em memória. Pode ocorrer por razões como: Término normal de execução; Eliminação por um outro processo; Eliminação forçada por ausência de recursos disponíveis.

5.6 Processos CPU-bound e I/O-bound Processos podem ser classificados como: CPU-bound (ligado à UCP): quando passa a maior parte do tempo no estado de execução, utilizando o processador, ou no estado de pronto. É encontrado em aplicações científicas que efetuam muitos cálculos. I/O-bound (ligado à E/S): quando passa a maior parte do tempo no estado de espera, pois realiza um elevado número de operações de E/S. É encontrado em aplicações comerciais, que se baseiam em leitura, processamento e gravação.

5.6 Processos CPU-bound e I/O-bound Capítulo 5 - Processo

5.7 Processos Foreground e Background Processo Foreground: é aquele que permite a comunicação direta do usuário com o processo durante o seu processamento. O processamento interativo tem como base processos foreground. Processo Background: é aquele onde não existe a comunicação com o usuário durante o seu processamento. O processamento do tipo batch é realizado através de processos background. É possível associar o canal de saída de um processo ao canal de entrada de um outro processo. Neste caso, dizemos que existe um pipe ligando os dois processos.

5.7 Processos Foreground e Background (a) Processo Foreground entrada saída terminal terminal (b) Processo Background entrada saída arquivo de entrada arquivo de saída

5.7 Processos Foreground e Background Pipe: entrada do Processo A Processo A saída do Processo A entrada do Processo B Processo B saída do Processo B

5.8 Formas de Criação de Processos Logon Interativo: o usuário, por intermédio de um terminal, fornece ao sistema um nome de identificação (username ou logon) e uma senha (password). O processo também pode ser eliminado interativamente quando o usuário realiza o procedimento de logout ou logoff. Via Linguagem de Comandos: um usuário pode, a partir do seu processo, criar novos processos por intermédio de comandos. Via Rotina do Sistema Operacional: um processo pode ser criado a partir de qualquer programa executável com o uso de rotinas do SO. A rotina de criação de processos depende do SO e possui diversos parâmetros.

5.9 Processos Independentes, Subprocessos e Threads Processos Independentes: não existe vínculo do processo criado com o seu criador. A criação de um processo independente exige a alocação de um PCB. Subprocessos: são processos criados dentro de uma estrutura hierárquica. Neste modo, o processo criador é denominado processo-pai, enquanto o novo processo é chamado de subprocesso ou processo-filho. Características de Subprocessos: dependência hierárquica, compartilhamento de quotas, consumo de recursos do sistema e comunicação/sincronização entre processos consideradas pouco eficientes.

5.9 Processos Independentes, Subprocessos e Threads Processo A Processo B Processo C Processo D Processo E

Exemplo de Uso de Subprocesso: Um processo responsável por acesso a banco de dados, onde vários usuários solicitam consultas; Caso um usuário solicite um relatório impresso de todos os registros, os demais usuários teriam que aguardar o fim da tarefa. Usando subprocesso cada consulta ao banco acarretaria na criação de um subprocesso, melhorando o desempenho da aplicação.

5.9 Processos Independentes, Subprocessos e Threads Threads: este conceito foi introduzido na tentativa de reduzir o tempo gasto em criação, eliminação e troca de contexto de processos nas aplicações concorrentes. Em um ambiente multithread, um único processo pode suportar múltiplos threads, cada qual associado a uma parte do código executável. Threads compartilham o processador da mesma maneira que um processo. Cada thread possui seu próprio contexto de hardware, porém compartilha o mesmo contexto de software e espaço de endereçamento com os demais threads do processo.

Contexto de software Capítulo 5 - Processo 5.9 Processos Independentes, Subprocessos e Threads Contexto de hardware Contexto de hardware Contexto de hardware Thread 1 Thread 2 Espaço de endereçamento Thread 3

5.10 Processos do Sistema Operacional O conceito de processo, além de estar associado a aplicações de usuários, pode também ser implementado na própria arquitetura do sistema operacional. Alguns serviços que o SO pode implementar 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).

5.11 Sinais É um mecanismo que permite notificar processos de eventos gerados pelo SO ou por outros processos. Sinais podem ser utilizados em conjunto com temporizadores, no intuito de sinalizar ao processo algum evento associado ao tempo. A maior parte dos eventos associados a sinais são gerados pelo SO ou pelo hardware. Em alguns casos, os eventos são gerados a partir de outros processos. Quando um sinal é tratado, o contexto do processo é salvo e a execução desviada para um código de tratamento de sinal, geralmente no núcleo. É possível que um processo bloqueie temporariamente ou ignore sinais.

5.11 Sinais [ctrl-c] interrupção Sistema Operacional sinal Processo

5.11 Sinais Processo Processo Sinais Sistema Operacional Interrupções Exceções Hardware