Upload
phunghanh
View
220
Download
0
Embed Size (px)
Citation preview
Conceitos sobre ProcessosDisciplina: Sistemas Operacionais
Prof. Filipe Arantes [email protected]
Introdução aos Processos
● Muitos sistemas na natureza realizam operações em simultâneo (ou concorrentemente), tal como o corpo humano.
Introdução aos Processos
● Os computadores também executam operações concorrentemente.
● Os SOs utilizam as abstrações de processo e thread para manter os controles de atividades que são executados simultaneamente.
Definição de Processo
● Há dois conceitos fundamentais sobre processos, segundo DEITEL et al. (2013);– 1°: “um processo é uma entidade”;
– 2°: “um processo é um programa em execução”;
1º: um processo é uma entidade
● Cada processo tem seu próprio espaço de endereço que, normalmente consiste em:– Região de Texto:
– Região de Dados:
– Região de Pilha:
1º: um processo é uma entidade
● Cada processo tem seu próprio espaço de endereço que, normalmente consiste em:– Região de Texto:
● Armazena o código que o processador executa.
– Região de Dados:
– Região de Pilha:
1º: um processo é uma entidade
● Cada processo tem seu próprio espaço de endereço que, normalmente consiste em:– Região de Texto:
– Região de Dados:● Armazena variáveis e memória alocada dinamicamente que o
processo usa durante a execução.
– Região de Pilha:
1º: um processo é uma entidade
● Cada processo tem seu próprio espaço de endereço que, normalmente consiste em:– Região de Texto:
– Região de Dados:
– Região de Pilha:● Armazena instruções e variáveis locais para chamadas ativas ao procedimento.● O conteúdo da pilha cresce à medida que um processo emite chamadas
aninhadas ao procedimento e diminui quando o procedimento chamado retorna.
2º: Um processo é um programa em execução
● Um programa é uma entidade inanimada; somente quando um processador lhe “sopra vida” é que ele se torna a entidade ativa que chamamos de processo.
Introdução
● O SO deve assegura que cada processo receba uma quantidade suficiente de tempo do processador.
● Nos SOs o número de processos verdadeiramente executados em concorrência é OBRIGATORIAMENTE igual ao número de processadores, MAS, em geral, há um número maior de processos do que processadores.
● Portanto, alguns processos podem ser executados e outros não.● Ao longo de seu tempo de vida, o processo passa por uma série de
Estados de Processos distintos.
Estados de Processos
● Vários eventos podem fazer que um processo mude de estado;
● Os estados mais comuns são:– Execução:
– Pronto:
– Bloqueado:
Estados de Processos
● Vários eventos podem fazer que um processo mude de estado;
● Os estados mais comuns são:– Execução: processo executando no processador;
– Pronto:
– Bloqueado:
Estados de Processos
● Vários eventos podem fazer que um processo mude de estado;
● Os estados mais comuns são:– Execução:
– Pronto:
– Bloqueado:
Estados de Processos
● Vários eventos podem fazer que um processo mude de estado;
● Os estados mais comuns são:– Execução:
– Pronto: processo pronto para execução se houver processador disponível;
– Bloqueado:
Estados de Processos
● Vários eventos podem fazer que um processo mude de estado;
● Os estados mais comuns são:– Execução:
– Pronto:
– Bloqueado: processo esperando algum evento antes de prosseguir.
Estados de Processos
● Por questão de simplicidade, consideramos um sistema uniprocessador apenas que um processo pode ser executado por vez;
● Mas diversos outros podem estar prontos e outros bloqueados; ● O SO mantém uma lista de prontos e uma lista de bloqueados;● A lista de prontos é ordenada por prioridades;● A lista de bloqueados é desordenada;
Exercícios
1)Os termos “processos” e “programa” são sinônimos?
2)Como o SO impede que um processo monopolize um processador?
3)Qual a diferença entre processos que estão acordados e processos que estão adormecidos?