Você está na página 1de 30

SISTEMAS OPERATIVOS

Processos e “Threads”
3˚ Ano Laboral
Docente: Sara Maria Massessuane
O que é um Processo?
Processos e “Threads”
Processos
No contexto da informática, é um programa de computador em
execução.
Um processo define a unidade de processamento concorrente,
que é executada num dado instante num processador, utilizando
um contador de programa lógico, usando o único contador de
programa físico (registro no processador), valores em
registradores, variáveis do programa e uma pilha de execução.
Atividades que devem ser executadas dentro de um programa.
Processos e “Threads”
O modelo de processo é baseado em dois conceitos
independentes: agrupamento de recursos e fluxo de
execução.
Por recursos entende-se arquivos abertos, processos filhos,
alarmes pendentes…
O processo deve facilitar o gerenciamento desses recursos.
 Em SO tradicionais, cada processo tem um único fluxo de execução.
O que é um Programa?
Processos e “Threads”
programa
Um programa é um algoritmo expresso por uma linguagem
adequada ao computador que contém atividades que devem ser
executadas e são chamadas de processos. Um programa (um
software) corresponde a um conjunto de processos.
Programa Vs Processo
Diferença entre processo e programa
• Programa pode ter várias instâncias em execução (em
diferentes processos).
• Um processo é unico.
Tipos de Processos
Processo em Primeiro Plano
• Tem interacção directa com usuário
• Ex: Ler um arquivo;
• Ex: Iniciar um programa(linha de comando ou m duplo clique no mouse)
Tipos de Processos
Processo em Segundo Plano/ Background
• Não tem uma interacção directa com usuário
• Serve a uma quantidade grande de usuário.

Ex: Recepção e envio de email. (servidor de email).


Ex: Serviços de Impressão. (Servidor de Impressão)
Componentes de um Processo
• Conjunto de Instruções
• Espaço de endereçamento
Espaço reservado para que o endereço possa ler e escrever(0 até máximo).
• Contexto de hardware
Valor em que o hardware vai conter referente ao processo
• Contexto de Software
Atributos em gerais como, como listas de arquivos abertos, variáveis, etc.
Componentes de Processo
Espaço de endereçamento
 Texto - Código executável de programa que estão dentro
da memoria principal
 Dados - Variáveis temporárias que são armazenadas por
processo
 Pilha de Execução – Armazena o endereço de rotinas
diferentes que o processo percorre.
Tabela de Processo
Em um ambiente multiprogramado, existe múltiplos processos
em execução.
• Também chamada de BCP (Bloco Controle de Processo).
• Contem informação de contexto de cada processo (Ponteiro
de arquivos abertos, posição do próximo byte a ser lido em
cada arquivo, etc).
• Contem informações necessárias para trazer o processo de
volta a CPU caso SO tenha que transferi-lo de execução.
• Contem estado de um processo em um determinado processo.
Tabela de Processo
•O BCP só não guarda o conteúdo do espaço de
endereçamento de processo.
• Assim, um processo é constituído de seu espaço de
endereçamento e BCP (com seus registadores, etc.)
representando uma na tabela de processo.
Característica de Processo
Processos CPU-bound
• Este processo utiliza mas o CPU que dispositivo de E/S.
• Tempo de execução e definida pelos ciclos de processo.
Processos I/O-bound
• Utiliza mas dispositivos de E/S que CPU.
• Tempo de execução e definido pela duração das
operações.
comunicação entre processos
A comunicação entre processos ou Ipc (inter process
communication ) é o grupo de mecanismo que permite aos
processos transmitirem informação entre si.

• É extremamente util devido ao facto de um processo possuir


sua própria região de memória onde os outros processos não
tem a permissãa de acessar aquele espaço de memória.
Estado de um processo
Não-Submetido - É o processo que ainda não está
submetido a CPU, está nas mãos do usuário." .
Suspenso - É o processo que já foi submetido, porém
permanece suspenso até que o horário ou evento
programado ao usuário venha acontecer.
Pronto - O processo já foi submetido e está pronto para
receber a CPU, porém ainda guarda o escalonador de
processos para ter controle da CPU.
Estado de um processo
Executando - O código está sendo processado. Se ocorrer
durante a execução uma requisição de E/S o processo é
colocado no estado de espera e outro processo da fila de
prontos poderá então concorrer a CPU.
Espera - É o processo que foi colocado na fila de espera de E/S
devido ao processador de E/S ser mais lento que a CPU
principal. O processo tornaria a CPU mais escrava dele se não
houvesse esse estado, pois como ele não está concorrendo à
CPU ao executar um E/S, pode-se então colocá-lo no estado de
espera para que os demais processos do estado pronto possam
concorrer a CPU.
Completo - Neste estado temos a finalização do processo.
Estado de um processo
O que é uma Escalonamento?
Escalonamento
Escalonamento é o que dita a política de prioridade entre os
processos.
• A troca de processo é feita por escalonador do processo.
• Escalonador é um processo que escolhe qual sera o proximo processo a ser
executado.
O que é uma Threads?
Threads
• Linha de execução dentro de um processo
• Processos posssuem várias threads.
Threads
Os modelos de processo possuem:
• Agrupamento de recursos.
• Um espaço de endereço (0 até algum endereço máximo de
processo) e uma única linha de execução(threads).
Threads
Os modelos das Threaads possuem:
Um espaço de endereço e múltiplas linhas de controle.
Conjunto de threads compõem as linhas de execução de um
processo.
Threads compartilham um mesmo espaço de endereço
(sendo menos independentes que processo).
Vantagem da Threads
• São processos “leves”
• Troca de contexto mais rápida;
• Tempo de criação menor
• Diminui o tempo de resposta do sistema;
• Em algumas ocasiões podem ser 100 vezes mas rápidas que
um processo.
Vantagem da Threads
• Threads compartilha espaço de endereçamento com as outras
threads.
• Um processo não compartilha espaço de endereçamento com
outros processos.
Threads
Principais aplicações:
• Aplicações de processamento “paralelo”
• CPU bound: ganho com várias CPU
• Aplicações que acessam dispositivos secundários lentos (disco
local ou remoto) e não querem ficar esperando –síncronos -
pela resposta para poder continuar executando.
• Aplicações que controlam múltiplos servidores ou múltiplos
clientes.
• Melhorar funcionalidade e performance da interface gráfica.
Threads
Características:
• Possuem contador de programas, ponteiro, contexto,
prioridade, etc;
• Disputam, entre sí, pelo processador
Tipos de Threads
User-Level Thread (ULT)
• São escalonadas pelo programador, tendo a grande vantagem
de cada processo ter como usar um algoritmo de
escalonamento que melhor se adapte a situação.
• SO não tem a obrigação de fazer o escalonamento destas
threads.
• São geralmente mais rápidas que as Kernel-Level Thread , pois
dispensam a chamada ao SO para escalonar evitando assim
uma mudança total de contexto do processador memória e
diversas outros níveis para alternar os processos.
Tipos de Threads
Kernel-Level Thread
• As KLT são escalonadas diretamente pelo SO.
• São mais lentas que as Threads ULT pois a cada chamada elas
necessitam consultar o SO, exigindo assim a mudança total do
contexto do processador memória e outros níveis necessários
para alternar um processo.

Você também pode gostar