0% acharam este documento útil (0 voto)
2 visualizações22 páginas

2 - Processos

Um processo em um sistema operacional é uma abstração de um programa em execução, permitindo operações concorrentes mesmo com uma única CPU. Ele é uma entidade ativa que inclui o estado atual do programa, enquanto um programa é uma entidade passiva armazenada em disco. O gerenciamento de processos é essencial para a multiprogramação e a execução eficiente de tarefas no sistema.

Enviado por

Rossini Roberto
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações22 páginas

2 - Processos

Um processo em um sistema operacional é uma abstração de um programa em execução, permitindo operações concorrentes mesmo com uma única CPU. Ele é uma entidade ativa que inclui o estado atual do programa, enquanto um programa é uma entidade passiva armazenada em disco. O gerenciamento de processos é essencial para a multiprogramação e a execução eficiente de tarefas no sistema.

Enviado por

Rossini Roberto
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

O que é um

processo em
um SO?
3
O que é um processo em um SO?
● O conceito mais central em qualquer sistema operacional é o processo:
“uma abstração de um programa em execução.”

● “Eles dão suporte à possibilidade de haver operações (pseudo)


concorrentes mesmo quando há apenas uma CPU disponível.”

● “Sem a abstração de processo, a computação moderna não poderia


existir.”

Fonte: Tanenbaum
4
O que é um processo em um SO?
Considere um servidor da web, em que solicitações de páginas da web chegam de
toda parte.
1. Quando uma solicitação chega, o servidor confere para ver se a página
requisitada está em cache;
a. Se estiver, ela é enviada de volta.
2. Se não, uma solicitação de acesso ao disco é iniciada para buscá-la;
3. Do ponto de vista da CPU, as solicitações de acesso ao disco levam uma
eternidade;
4. Enquanto espera que uma solicitação de acesso ao disco seja concluída, muitas
outras solicitações podem chegar;
5. Está claro que algum método é necessário para modelar e controlar essa
concorrência. Processos (e especialmente threads) podem ajudar nisso.

Fonte: Tanenbaum
5
O que é um processo em um SO?
● Em qualquer sistema de multiprogramação, a CPU muda de um processo
para outro rapidamente;

● Estritamente falando, em qualquer dado instante a CPU está executando


apenas um processo;

● No curso de 1s ela pode trabalhar em vários deles, dando a ilusão do


paralelismo (pseudoparalelismo).

Fonte: Sibelschatz
6
O que é um processo em um SO?
● Programa é uma entidade PASSIVA;

○ Lista de instruções armazenadas em disco.

● Processo é uma entidade ATIVA;

○ torna-se um processo quando um arquivo executável é carregado na


memória.

Enfatizamos que um programa por si só não é um processo.

7
O Modelo de
Processo
8
O modelo de processo
Projetistas de sistemas operacionais através dos anos desenvolveram um
modelo conceitual (processos sequenciais) que torna o paralelismo algo mais
fácil de lidar;

● Nesse modelo, todos os softwares executados no computador, às vezes


incluindo o sistema operacional, são organizados em uma série de
processos sequenciais, ou, simplesmente, processo (jobs).

Um processo é apenas uma instância de um programa em execução,


incluindo os valores atuais do contador do programa, registradores e
variáveis.

9
O modelo de processo
● A pilha do processo que contém dados temporários;

● Um heap, que é a memória dinamicamente alocada


durante o tempo de execução do processo;

● Contador do programa;

● O conteúdo dos registradores do processador.

10
O modelo de processo
A CPU real troca a todo momento de processo em processo, mas é muito mais
fácil pensar a respeito de uma coleção de processos sendo executados em
(pseudo) paralelo;

Esse mecanismo de trocas rápidas é chamado de multiprogramação.

Presumimos que há apenas uma CPU. No entanto, essa suposição não é verdadeira,
tendo em vista que os chips novos são muitas vezes multinúcleos (multicore), com
dois, quatro ou mais núcleos.

11
O modelo de processo

12
O modelo de processo (Estado do Processo)

A diferença entre um processo e um programa é sutil, mas absolutamente crucial.

1. Considere um cientista de computação que gosta de cozinhar e está preparando um


bolo de aniversário para sua filha mais nova;
2. Ele tem uma receita de um bolo de aniversário e uma cozinha bem estocada com todas
as provisões: farinha, ovos, açúcar, extrato de baunilha etc;

Nessa analogia

● A receita é o programa, isto é, o algoritmo expresso em uma notação adequada;


● O cientista de computação é o processador (CPU);
● Os ingredientes do bolo são os dados de entrada.
O processo é a atividade consistindo na leitura da receita, busca de ingredientes e preparo do
bolo por nosso cientista.

13
O modelo de processo (Estado do Processo)

1. Considere um cientista de computação que gosta de cozinhar e está preparando um


bolo de aniversário para sua filha mais nova;

2. Ele tem uma receita de um bolo de aniversário e uma cozinha bem estocada com todas
as provisões: farinha, ovos, açúcar, extrato de baunilha etc;

3. Agora imagine que o filho do cientista de computação aparece correndo chorando,


dizendo que foi picado por uma abelha;

4. O cientista de computação registra onde ele estava na receita (o estado do processo


atual é salvo), pega um livro de primeiros socorros e começa a seguir as orientações;

a. Aqui vemos o processador sendo trocado de um processo (preparo do bolo) para


um processo mais prioritário (prestar cuidado médico), cada um tendo um
programa diferente (receita versus livro de primeiros socorros).

5. Quando a picada de abelha tiver sido cuidada, o cientista de computação volta para o
seu bolo, continuando do ponto onde ele havia parado.
14
O modelo de processo (Estado do Processo)

● A ideia fundamental aqui é que um processo é uma atividade de algum


tipo.

● Ela tem um programa, uma entrada, uma saída e um estado.

● Um único processador pode ser compartilhado entre vários processos, com


algum algoritmo de escalonamento sendo usado para determinar quando
parar o trabalho em um processo e servir outro.

● Em comparação, um programa é algo que pode ser armazenado em disco


sem fazer nada.

15
Criação de
Processos
16
Criação de Processos
Quatro eventos principais fazem com que os processos sejam criados:

1. Inicialização do sistema;

2. Execução de uma chamada de sistema de criação de processo por um


processo em execução;

3. Solicitação de um usuário para criar um novo processo;

4. Início de uma tarefa em lote.

17
Criação de Processos
● Quando um sistema operacional é inicializado, em geral uma série de processos é criada.

● Alguns desses processos são de primeiro plano;

○ processos que interagem com usuários (humanos) e realizam trabalho para eles.

● Outros operam em segundo plano (background) e não estão associados com usuários
em particular, mas em vez disso têm alguma função específica.

○ Por exemplo, um processo de segundo plano pode ser projetado para aceitar
e-mails, ficando inativo a maior parte do dia, mas subitamente entrando em ação
quando chega um e-mail.

● Processos que ficam em segundo plano para lidar com algumas atividades, como e-mail,
páginas da web, notícias, impressão e assim por diante, são chamados de daemons.

18
O Modelo de
Processo
19
O modelo de processo (Estado do Processo)

1. Novo. O processo está sendo criado.

2. Em execução. Instruções estão sendo executadas.

3. Em espera. O processo está esperando que algum evento ocorra (como a


conclusão de um I/O ou o recebimento de um sinal).

4. Pronto. O processo está esperando que seja atribuído a um processador.


Concluído. O processo terminou sua execução.

20
O modelo de processo (Estado do Processo)

21
O modelo de processo (Estado do Processo)

Cada processo é representado, no sistema operacional, por um bloco de


controle de processo (PCB — process control block) — também chamado bloco
de controle de tarefa.

O PCB serve como o repositório de quaisquer


informações que possam variar de um processo para
outro.

22
Término de
Processos
23
Término de Processos
Cedo ou tarde, o novo processo terminará, normalmente devido a uma das
condições a seguir:

1. Saída normal (voluntária);

2. Erro fatal (involuntário);

3. Saída por erro (voluntária);

4. Morto por outro processo (involuntário).

24

Você também pode gostar