Sistemas Operacionais. Processos e Threads

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

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

Sistemas Operacionais

Figura 01 Programa e Processo

Sistemas Operacionais. Capítulo 5 Processos

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

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

Sistemas de Informação. Sistemas Operacionais

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

Sistemas Operacionais

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

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

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

Sistemas Operacionais

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

Questões de Múltipla escolha

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

Fundamentos de Sistemas Operacionais

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 Capítulo 6 - Threads

SISTEMAS OPERACIONAIS

Sistemas Operacionais

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

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

Sistemas Operacionais. Gerência de Processador

Técnicas Avançadas de Programação

Threads. Sistemas Operacionais. Charles Tim Batista Garrocho. Instituto Federal de São Paulo IFSP Campus Campos do Jordão. charles.garrocho.

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

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Estrutura do Sistema Operacional

Sistema Operacional. Etapa

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

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

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

Sistemas Operacionais

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

Sistemas de Computação. Processos e escalonamento

Sistemas Operacionais (SO)

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

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

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS

SSC510 Arquitetura de Computadores 1ª AULA

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

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

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

Sistemas Distribuídos

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Gerência do Processador. Adão de Melo Neto

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Arquitetura de Sistemas Operativos

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

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

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Estruturas de Sistemas Operacionais

Sistemas Operacionais. Sistema de entrada e Saída

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

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

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Infra-Estrutura de Software. Escalonamento

Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

( ) 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)

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

Sistemas Distribuídos Aula 3

Sistemas Operacionais

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

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

Transcrição:

Sistemas Operacionais Processos e Threads

Sumário 1. Introdução 2. Estrutura do Processo 1. Contexto de Hardware 2. Contexto de Software 3. Espaço de Endereçamento 3. Estados 1. Mudanças de Estado 2. Criação e Eliminação 4. Classificação 1. CPU-Bound e I/O-Bound 2. Foreground e Background 5. Formas de Criação 6. Processos Independentes 7. Subprocessos 8. Threads 1. Ambiente Monothread 2. Ambiente Multithread 3. Threads em Modo Usuário 4. Threads em Modo Kernel 9. Sinais

1. Introdução Um processo pode ser simplificadamente entendido como um programa em execução. A gerência de processos é uma das principais funções de um sistema operacional. Possibilita aos programas: Alocar recursos; compartilhar dados; trocar informações e sincronizar execuções. Nos sistemas multiprogramáveis os processos são executados concorrentemente e compartilham recursos: uso do processador, memória principal e dispositivos de E/S, entre outros.

1. Introdução Nos sistemas com múltiplos processadores é possível a execução simultânea de processos? Sim, nesses sistemas não só existe a concorrência de processos pelo uso do processador como também a possibilidade de execução simultânea de processos nos diferentes processadores.

2. Estrutura do Processo Um processo é formado por três partes que juntas mantêm todas as informações necessárias à execução de um programa.

2.1. Contexto de Hardware O contexto de hardware de um processo armazena o conteúdo dos registradores gerais do processador, além dos registradores de uso específico. Registradores de uso específico: Program Counter (PC), Instruction Register (IR), Stack Pointer (SP) e Registrador de Status. O que ocorre no momento em que um processo perde a utilização do processador? O sistema operacional salva as informações do contexto de hardware do processo para que elas possam posteriormente ser restauradas quando esse processo novamente puder utilizar o processador.

2.1. Contexto de Hardware Mudança de Contexto 1. Processo A em execução 2. Processo B solicita execução. 3. SO salva registradores do processo A 4. SO Carrega registradores do Processo B 5. Processo B em execução 6. Processo A solicita execução. 7. SO salva registradores do processo B. 8. SO carrega registradores do processo A. 9. Processo A em execução.

2.2. Contexto de Software No contexto de software de um processo são especificados limites e características dos recursos que podem ser alocados pelo processo. Muitas dessas características são determinadas no momento da criação do processo. Elas podem ser alteradas durante sua existência. A maior parte das informações do contexto de software do processo provém do arquivo de usuário. O contexto de software é composto por três grupos de informações: Identificação Quotas Privilégios.

2.3. Espaço de Endereçamento O 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. Cada processo possui seu próprio espaço de endereçamento, que deve ser devidamente protegido do acesso dos demais processos. Em aula posteriores, detalharemos o assunto: Gerência de Memória.

2. Estrutura do Processo

2. Estrutura do Processo Como o sistema operacional implementa e controla um processo? O processo é implementado por meio de uma estrutura de dados chamada bloco de controle do processo (Process Control Block - PCB). O PCB de um processo mantém todas as informações sobre: Contexto do hardware. Contexto do software. Espaço de endereçamento. Figura: PCB de um processo Os PCBs de todos os processos ativos residem na memória principal em uma área exclusiva do sistema operacional (SO).

3. Estados Um processo muda de estado durante seu processamento em função de eventos originados por ele próprio (voluntários) ou pelo sistema operacional (involuntários). Figura: Mudança de estado entre processos

3.1. Mudança de Estados a) Pronto para Execução: Cada SO tem seus próprios critérios e algoritmos para a escolha da ordem em que os processos serão executados (política de escalonamento). b) Execução para Espera: devido a eventos gerados pelo próprio processo, como uma operação de E/S. c) Espera para Pronto: quando a operação solicitada é atendida. d) Execução para Pronto: devido a eventos gerados pelo sistema, como o término de fatia de tempo para sua execução (política de escalonamento). Figura: Mudança de estado entre processos

3.1. Mudança de Estados Um processo em estado de pronto ou espera pode não se encontrar na memória principal devido a inexistência de espaço suficiente, como resolver esse problema? Figura: Swapping de memória

3.2. Criação e Eliminação Diagrama de estados resultante da inclusão de dois novos estados: término e criação.

4.1. Classificação CPU-bound e I/O-bound Os processos podem ser classificados como CPU-bound ou I/O-bound: CPU-bound: o processo passa a maior parte do tempo no estado de execução, utilizando o processador, ou pronto. I/O-bound: o processo passa a maior parte do tempo no estado de espera, pois realiza um elevado número de operações de E/S.

1. Processo Foreground 4.2. Classificação Foreground e Background 2. Processo Background

5. Formas de Criação A seguir são apresentadas as três principais formas de criação de processos. 1) Logon Interativo: O usuário, por intermédio de um terminal, fornece ao sistema um nome de identificação (username) e uma senha (password). 2) Linguagem de comandos: É criado por intermédio de comandos da linguagem de comandos associada ao sistema operacional. 3) Rotina dos sistema operacional: Pode ser criado a partir de qualquer programa executável com o uso de rotinas do sistema operacional.

6. Processos Independentes 1) Processos Independentes A maneira mais simples de implementar a concorrência em sistemas multiprogramáveis. 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. Contextos de hardware, de software e espaço de endereçamento próprios.

7. Subprocessos

8. Threads Um processo pode ter várias threads. Cada thread possui seu próprio contexto de hardware. Comunicação de threads dentro de um mesmo processo é realizada de forma mais simples e rápida. Compartilhamento do espaço de endereçamento.

8.1. Ambiente Monothread Nesse ambiente, as aplicações concorrentes são implementadas apenas com o uso de múltiplos processos independentes ou subprocessos.

8.1. Ambiente Monothread Um exemplo do uso de concorrência pode ser encontrado nas aplicações de gerenciamento de e-mails. Permite dividir uma aplicação em partes que podem trabalhar de forma concorrente. Um usuário pode estar lendo suas mensagens antigas, ao mesmo tempo que pode estar enviando mensagens e recebendo novas mensagens.

8.1. Ambiente Monothread Ao adotar múltiplos processos para a concorrência: Cada funcionalidade do software implicaria em um novo processo. Isso demanda diversos recursos (na criação e término do processo). Desvantagens de utilizar múltiplos processos para efetuar a concorrência: Cada processo possui o seu próprio espaço de endereçamento. A comunicação se torna difícil e lenta. Compartilhar recursos, como arquivos abertos, não é simples.

8.2. Ambiente Multithread Em uma ambiente com múltiplos threads: Os programas não são associados a processos. Os programas são associados a threads. Cada processo pode ter múltiplos threads em execução compartilhando o mesmo espaço de endereçamento.

8.2. Ambiente Multithread Um processo com três threads em execução compartilhando o mesmo espaço de endereçamento.

8.2. Ambiente Multithread De forma simplificada: Um thread pode ser definido da seguinte forma: Uma função de um programa que pode ser executada de forma assíncrona - executada concorrentemente ao programa que a invoca. Um ambiente multithread possibilita a execução concorrente de funções dentro de um mesmo processo.

8.2. Ambiente Multithread

8.2. Ambiente Multithread No ambiente multithread, Cada processo pode responder a várias solicitações concorrentemente, ou mesmo simultaneamente - caso haja mais de um processador. A grande vantagem no uso de threads é: Possibilidade de minimizar a alocação de recursos do sistema. Diminuição do overhead (na criação, troca e eliminação de processos).

8.2. Ambiente Multithread Threads são implementados por meio de uma estrutura de dados denominada Thread Control Block TCB. O TCB armazena: Contexto de hardware Prioridade e estado de execução do thread.

8.2. Ambiente Multithread O uso de multithreads proporciona uma série de benefícios. Os programas concorrentes com múltiplos threads são mais rápidos do que com múltiplos processos. Criação de thread, troca de contexto e eliminação geram menor overhead. A comunicação é mais rápida e eficiente (mesmo espaço de endereçamento). Os diversos threads podem utilizar processador de forma concorrente (melhor uso dos recursos computacionais).

8.2. Ambiente Multithread Exemplo: Múltiplos threads para atender várias solicitações de serviço remoto simultaneamente.

8.2. Ambiente Multithread O conjunto de rotinas disponíveis para que uma aplicação utilize as facilidades dos threads é chamado de pacotes de threads. Existem diferentes abordagens na implementação dos pacotes de threads em um sistema operacional. Influência no desempenho, na concorrência e na modularidade das aplicações multithreads. Threads podem ser oferecidos por: 1) Modo usuário: uma biblioteca de rotinas fora do núcleo do SO; 2) Modo kernel: pelo próprio núcleo do SO; 3) Modo híbrido: ou uma combinação de ambos.

8.3. Threads em modo usuário Threads são implementados por uma biblioteca (criação de threads, troca de mensagens e escalonamento) e não pelo SO.

8.4. Threads em modo kernel Threads são implementados pelo núcleo do SO e podem ser escalonados individualmente.

9. Sinais O mecanismo de sinais assemelha-se ao tratamento de interrupções e exceções. Porém com propósitos diferentes. O sinal está para o processo. Interrupções e exceções estão para o sistema operacional.

[Fim] Processos e Threads É muito melhor arriscar coisas grandiosas, alcançar triunfos e glórias, mesmo expondo-se a derrota, do que formar fila com os pobres de espírito que nem gozam muito nem sofrem muito, porque vivem nessa penumbra cinzenta que não conhece vitória nem derrota. Theodore Roosevelt Próximo Módulo: Comunicação entre Processos