• Nenhum resultado encontrado

Processos

N/A
N/A
Protected

Academic year: 2021

Share "Processos"

Copied!
54
0
0

Texto

(1)

INSTITUTO FEDERAL DE

EDUCAÇÃO, CIÊNCIA E TECNOLOGIA

BAHIA

Sistemas Operacionais

Prf. Msc. Igor de Oliveira Costa

INSTITUTO FEDERAL DE

EDUCAÇÃO, CIÊNCIA E TECNOLOGIA

(2)

PROCESSOS

Um SO executa uma variedade de programas:

• Sistemas Batch

• Programas de usuários ou tarefas

– Processo

• É uma entidade dinâmica e efêmera

• O Processo é um programa em execução.

• Associado a ele temos: espaço de endereçamento, uma lista de posições de memória e um conjunto de

(3)

PROCESSOS

• Primeiros SOs

– Somente um programa era executado em cada momento;

• SOs atuais

– Multiprogramação vários programas executando concorrentemente

(4)

PROCESSOS

• Tabela de Processos

Vetor de estruturas( Uma lista encadeada) de estrutura uma para cada processo.

(5)

PROCESSOS

• Principais chamadas ao sistema de

gerenciamento de processos são aquelas que lidam com a criação e o término de processos.

– Exemplo compilar um programa em C no DEV, após a compilação o compilador se auto finaliza;

• Processos filhos

– É quando um processo cria outro processo, e assim por diante;

(6)

PROCESSOS

• Principais chamadas ao sistema de

gerenciamento de processos são aquelas que lidam com a criação e o término de processos.

– Exemplo compilar um programa em C no DEV, após a compilação o compilador se autofinaliza;

• Processos filhos

– É quando um processo cria outro processo, e assim por diante;

• Processos podem se comunicar quando

trabalham em cooperação, isto é chamado comunicação interprocessos;

(7)
(8)

PROCESSOS

• Cada pessoa a utilizar um sistema é atribuída uma UID(user identification), dessa forma todo processo iniciado tem uma UID de quem iniciou; • Usuários com permissões específicas tem

poderes para finalizar e alterar processos;

• Para visualizar os processos no windows, utiliza-se o gerenciador de tarefas, com o comando crtl + alt + del, no linux o comando PS AUX

(9)
(10)

O Modelo de Processos

Todo software em execução no computador, incluindo o SO, é um processo sequencial, ou simplesmente processo.

Um processo é um programa em execução, incluindo valores atuais do PC, dos registradores e das variáveis.

Conceitualmente, cada processo possui sua CPU virtual.

Na realidade, a CPU está sendo trocada rapidamente de programa para programa.

(11)

O Modelo de Processos

(12)

O Modelo de Processos

Processo x Programa

Analogia Cozinheiro(CPU), Receita(Programa), Ingredientes e Preparação do Bolo.

(13)
(14)
(15)

Criação de Processos

• Os sistemas operacionais precisam assegurar de algum modo a existência de todos os processos necessários.

• Em sistemas que executam apenas uma única aplicação, é possível ter todos os processos que serão necessários,

presentes quando sistema é ligado (alimentado).

• Para sistemas de propósito geral é necessário algum modo de criar e terminar processos durante a operação, quando for preciso.

(16)

• Principais eventos que causam a criação de

processos:

– Inicialização do sistema

– Execução de um sistema de criação de processo – Solicitação do usuário para criar novo processo – Inicialização de um trabalho de lote

(17)

• Inicialização do sistema

Criação de Processos

São processos em primeiro plano, interagem com o

usuário e realizam tarefas para ele. Podem ser

também processos em segundo plano que não

(18)

• Exemplo de processos em segundo plano:

– Processos que fiquem designado para aceitar mensagens eletrônicas;

– Processos que fiquem esperando requisições para páginas web hospedadas naquela máquina;

• Processos que ficam em segundo plano com a finalidade de tratar alguma atividade como

mensagens eletrônicas, páginas WEB, notícia, impressão, entre outros são chamados de

daemons.

(19)

• Execução de um sistema de criação de processos:

– Muitas vezes, um processo em execução emitirá chamadas ao sistema para criar um ou mais novos processos para ajudá-lo em seu trabalho.

– Programas em módulos (Contabilidade, RH, Compras, etc)

– Grande quantidade dados transmitida pela Rede. – Pode ser necessário a criação de processo para

(20)

• Solicitação do usuário para criar novo

processo

– Em sistemas interativos, abertura de várias janelas do mesmo sistema a CPU está

desempenhado processos diferentes para cada janela.

(21)

• Início de um job em lote

– Essa situação para programas em lote, nesses sistemas os usuários podem submeter até

remotamente jobs em lote para o sistema.

• Tecnicamente todos os casos um novo

processo é criado por um processo existente

executando uma chamada ao sistema de

(22)

Finalização dos Processos

• Condições de término do Processo

– Saída normal (voluntária) – Saída com erro (voluntária) – Erro Fatal (involuntária)

(23)
(24)

Hierarquia de Processos

• Processos pais criam processos filhos, processos filhos podem criar seus próprios processos

• Formam uma hierarquia

– UNIX chama esta hierarquia de ”grupo de processos“ • Windows não possui conceitos para hierarquia de

processos

(25)

Estados dos Processos

• Em um SO com multiprogramação, um

processo, durante sua existência, passa por

uma série de estados;

– Novo: O processo é criado;

– Execução/rodando: está associado a um

processador que está executando suas instruções; – Pronto: aguarda sua vez para executar

(26)

– Bloqueado/espera: o processo aguarda que

ocorra algum evento para continuar a execução. (termino E/S, recepção do sinal);

– Término: o processo terminou sua execução;

• Desde o instante que um processo é iniciado,

o seu estado passa alternar várias vezes.

– 1 – A CPU fica disponível para o processo, que passa do estado de pronto para o de execução.

(27)

 2 – O processo necessita de algo que NÃO está disponível para continuar a ser executado, assim, passa de em execução para

bloqueado, aguardando a satisfação de sua necessidade;

 Ex: cat livro1 livro2 livro3 |grep SO

– 3 - A necessidade do processo é satisfeita, podendo então passar de bloqueado/espera para pronto.

– 4 – O uso da CPU exclusivamente por um processo deve ser evitado, para isso o SO gerência um tempo máximo em execução contínua, após o qual o

(28)

– 5 – Término

(29)

Concorrência

• Em ambientes multipragramáveis/multitarefa,

vários programas podem ser residentes na

memória, concorrendo pela utilização do

processador. Assim, quando um programa

solicita uma operação de E/S outro programa

poderá utilizar o processador.

(30)

Concorrência

E/S CPU Tempo E/S CPU Tempo Sistema Monotorefa Sistema Multitarefa

Livre 1 2 1

(31)

Implementação dos Processos

• Para implementar o modelo de processos o SO mantém uma tabela de processos (array de

estruturas) podendo ser chama de blocos de controle de Processo (BCP).

• A entrada de cada processo contém informações do PC, registradores, pilha, informações sobre o escalonamento e tudo mais que precisa ser salvo.

(32)
(33)

• Ideia Básica:

• Processos: programa em execução que

contém um único fluxo de execução.

• Threads: programa em execução com

múltiplos fluxos de execução.

(34)

• Um thread é uma sequência de instruções que vão ser executadas num programa;

• Os threads encontram-se dentro de um

processo, utilizando os recursos desse processo; • Em duas ou mais tarefas que podem ser

executadas simultaneamente.

• Uma linha de execução permite que o usuário de um determinado programa, por exemplo, utilize uma funcionalidade do ambiente enquanto

outras linhas de execução realizam outros cálculos e operações.

(35)

Modelo de Thread

• Possuir várias threads executando em paralelo em um processo é análogo a ter vários processos

executando em um computador.

• As threads contidas em um mesmo processo

compartilham o endereço de memória, registradores e outros recursos.

(36)
(37)

Modelo de Thread

 Itens compartilhados por todas as threads em um

(38)
(39)
(40)

• Um benefício do uso das linhas de execução (Thread)

• É pelo fato do processo poder ser dividido em mais de uma linha de tarefas;

• Quando uma linha está esperando determinado dispositivo de I/O ou qualquer outro recurso do sistema, o processo como um todo não fica

parado, pois quando uma linha de execução entra no estado de bloqueio uma outra thread aguarda na fila de PRONTO para executar.

(41)

Utilização de Threads

• Entidades paralelas que compartilham espaço

de endereço;

• É mais fácil de criar e destruir que processos,

criar um thread é cem vezes mais rápido do

que criar processos;

(42)

Utilização de Threads

(43)
(44)

• Um browser é um exemplo de uma aplicação multithreaded

• Várias coisas podem ocorrer ao mesmo tempo:

– Scroll

– Download de um applet – Download de uma imagem – Tocar uma animação

– Tocar um som

– Imprimir uma página em background – Download de uma nova página

(45)

Implementando Threads no

Espaço do Usuário

(46)

Implementando Threads no

Kernel

(47)

Implementação de Threads

• Na área do Usuário

– Vantagens:

• É mais rápida

• Tem o escalonamento personalizado

• Possui possibilidade de implementação em sistemas operacionais que não suportam nativamente este recurso;

• No Kernel

– Vantagens:

• Permite chamadas Blocks individuais, sem bloquear processo como um todo;

(48)

Comunicação entre Processos

• Frequentemente dois processos precisam se comunicar

– A saída de um processo será utilizado como entrada para outro

• Problemas Encontrados

• Como as informações podem ser passadas?

• Como resolver conflitos de programas competindo pelo

mesmo recurso?

• Tratamento de dependências:

– Se o processo A recebe como entrada a saída do processo B então o processo A não pode executar até que o B tenha produzido sua saída

(49)

Comunicação entre Processos

(50)

• Vejamos o seguinte problema:

– Spool de impressão (fila de documentos a serem impressos)

– Variáveis compartilhadas:

• in aponta para a próxima entrada livre no spool onde o próximo arquivo a ser impresso será armazenado

• out aponta para o nome do próximo arquivo a ser impresso.

– Um processo 1 lê o valor de in (por exemplo 2) e é

interrompido. Um outro processo 2 vai usar o spool e também lê o valor de in = 2, envia seu arquivo para impressão e segue com sua execução.

Comunicação entre Processos

(51)

– Antes de o arquivo ser impresso, o controle retorna para o processo 1 que submete seu arquivo a ser impresso para a posição que ele

tinha lido de in (na ocasião 2). Assim, este último arquivo sobrescreve a anterior enviado pelo processo 2.

Comunicação entre Processos

(52)

Regiões Críticas

• Uma forma de impedir a ocorrência de condições de corrida é

simplesmente impedindo que dois ou mais processos leiam ou escrevam na mesma variável compartilhada ao mesmo tempo, em outras palavras, se deseja a exclusão mútua.

• Muitas vezes o programa está ocupado realizando alguma computação que não gera condições de corrida, em outros casos está acessando variáveis compartilhadas.

• A parte do programa que ecessa variáveis ou recursos compartilhados é chamada de região crítica.

(53)

Regiões Críticas

• Se pudermos organizar os processos de forma que nunca dois processos estejam em regiões críticas ao mesmo tempo,

eliminamos as possibilidades de condições de corrida.

• Entretanto, esta condição não é necessária para garantir que processos paralelos cooperem corretamente e eficientemente. Temos que garantir as quatro seguintes condições:

 Não existem dois processos simultâneos em uma região crítica  Nenhuma suposição pode ser feita em relação ao número ou

(54)

Referências

Documentos relacionados

O romance Usina, diferentemente dos demais do conjunto da obra pertencente ao ciclo-da-cana-de-açúcar, talvez em função do contexto histórico em que se insere, não

É perceptível, desta forma, o constante aumento do aprofundamento dos personagens: os “príncipes” têm agora não só nome e falas, mas personalidades bem desenvolvidas,

O candidato poderá obter informações e orientações sobre o Simulado Virtual, tais como Editais, processo de inscrição, horário de prova, gabaritos, ranking e resultados

Neo Decapeptyl pode ser usado como tratamento alternativo quando a orquiectomia (retirada dos testículos) ou a administração de estrógenos não são indicados ou não são aceitos

Este trabalho tem como objetivo geral avaliar a quantidade de água pluvial que pode ser aproveitada após infiltrar em um pavimento permeável de concreto

ALGELO - Produção de gelo suplementado com extractos de algas Instituto Politécnico de Leiria DeTOxVega - Descontaminação quarta gama Inst. Superior de Agronomia Productalga

RESUMO - O trabalho objetivou avaliar a qualidade das sementes de arroz utilizadas pelos agricultores em cinco municípios (Matupá, Novo Mundo, Nova Guarita, Alta Floresta e Terra

No caso em estudo, observa-se que 65% das famílias são compostas por quatro ou mais moradores, ou seja, são entregues moradias consideradas inadequadas, ou ainda