Processos
Estudantes:
Alberto Companhia
Docente:
Índice
Introdução ....................................................................................................................................... 3
Processo .......................................................................................................................................... 4
Tipos de Processo ........................................................................................................................... 5
Representação ................................................................................................................................. 5
Memória compartilhada .................................................................................................................. 6
Vantagens ........................................................................................................................................ 6
Interface padronizada ...................................................................................................................... 6
Hierarquia de processos .................................................................................................................. 6
Estados de processos ....................................................................................................................... 7
Não Submetido................................................................................................................................ 7
Suspenso ......................................................................................................................................... 8
Pronto .............................................................................................................................................. 8
Executando...................................................................................................................................... 8
Espera .............................................................................................................................................. 8
Término de Completo ..................................................................................................................... 9
Criação de Processos....................................................................................................................... 9
Processos ......................................................................................................................................... 9
Bloco de Controlo de Processo (BCP) .......................................................................................... 10
Elementos do BCP ........................................................................................................................ 10
Localização dos processos ............................................................................................................ 10
Estados do processo em Linux ...................................................................................................... 11
Alguns comandos que podem ser utilizados ................................................................................. 11
Fork no UNIX ............................................................................................................................... 11
Conclusão...................................................................................................................................... 12
Bibliografia ................................................................................................................................... 13
3
Introdução
Processo
Processos são módulos separados e carregáveis, ao contrário de threads, que não podem ser
carregadas. Múltiplas threads de execução podem ocorrer dentro de um mesmo processo. Além
das threads, o processo também inclui certos recursos, como arquivos e alocações dinâmicas de
memória e espaços de endereçamento.
A comunicação entre processos é o grupo de mecanismos que permite aos processos transferirem
informação entre si. A capacidade de um sistema operacional executar simultaneamente dois ou
mais processos é chamada multiprocessamento. Se existirem dois ou mais processos executados
em simultâneo e disputam o acesso a recursos partilhados, problemas da concorrência podem
ocorrer. Estes problemas podem ser resolvidos pelo gerenciamento adequado de múltiplas linhas
de execução ou processos através da sincronização (multitarefa) ou por outros recursos (como a
troca de contexto).
A execução de um processo ocorre de maneira sequencial, ou seja, uma instrução após a outra. A
qualquer instante, apenas uma instrução de um determinado processo é executada. Os processos
também exercem a atividade de executar operações concorrentes mesmo que possua apenas uma
Unidade Central de Processamento disponível.
Embora dois processos possam estar associados a um mesmo programa, são considerados duas
sequências de execução distintas. Por exemplo, cópias de um programa de correio eletrônico
podem estar sendo executadas por vários usuários ou o mesmo usuário pode estar usando
diversas cópias de um processador de texto. Cada um desses programas em execução constitui
um processo distinto e, por mais que o texto de alguns programas possa ser o mesmo, o estado de
cada um será diferente. É comum ter um processo que crie muitos processos durante sua
execução, criando uma hierarquia entre processos pais e filhos.
5
Tipos de Processo
Dentre os processos, podemos destacar dois principais tipos que estão relacionados a seu local de
execução, no caso CPU e Entrada e Saída de dados.
Processos CPU bound (orientados à CPU): são processos que utilizam muito o
processador, em que o tempo de execução é definido pelos ciclos de processador.
Processos I/O bound (orientados à E/S): são processos que realizam muitas operações de
entrada e saída de dados, em que o tempo de execução é definido pela duração destas.
IDEAL: existir um balanceamento entre processos CPU-bound e I/O-bound;
Representação
O sistema operacional mantém a maior parte da informação sobre processos dentro de estruturas
de dados chamadas Bloco de controlo de processos
O sistema operacional mantém esses processos separados e aloca recursos necessários para cada
um deles, diminuindo as chances de um processo atrapalhar o outro (e.g., deadlock). O sistema
operacional pode além disso prover mecanismos para comunicação entre processos, permitindo
assim interação e comportamento mais seguro entre os processos.
Memória compartilhada
Vantagens
Interface padronizada
Hierarquia de processos
Em alguns sistemas, quando um processo cria outro, o processo pai e o processo filho continuam,
de certa forma, associados. Os processos filhos pode criar mais processos, formando assim uma
hierarquia de processos, porém nela apenas existirá um processo pai e ter ou não um ou mais
processos filhos.
7
Este tipo de organização dificulta a propagação de vírus em nossos sistemas operacionais, pois
quando um processo pai é “morto” seja pelo sistema ou pelo próprio usuário, todos que
estiverem abaixo dele na hierarquia serão mortos também.
Por outro lado, o Windows não apresenta esse conceito de hierarquia, nele todos os processos
são iguais. Algo parecido com uma hierarquia ocorre somente quando um processo é criado. Ao
pai é dado um identificador especial, que ele pode usar para controlar o filho. Contudo, ele é
livre para passar o identificador para alguns outros processos, invalidando, assim, a hierarquia.
Estados de processos
Não Submetido
É o processo que ainda não está submetido à CPU, está nas mãos do usuário. "Até onde interessa
aos sistemas, ele não existe, porque o usuário ainda não o submeteu. Ele é simplesmente
apresentado como sendo o primeiro passo na vida de um processo. O Sistema Operacional,
naturalmente, não reconhece esse estado.[1]". Pode por exemplo, ser um arquivo executável que
está armazenado no HD.
8
Suspenso
É o processo que já foi submetido, porém permanece suspenso até que o horário ou evento
programado ao usuário venha acontecer. Processo suspenso é aquele que esta no aguarde de uma
entrada de dados.
Pronto
O processo já foi submetido e está pronto para receber a CPU, porém ainda aguarda o
escalonador de processos para ter controlo da CPU. Processos que estão esperando E/S não se
aplicam a esse estado.
Executando
A execução propriamente dita. 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.
Como podemos notar, a instrução scanf (uma requisição de entrada e saída) é gerada se não
fosse possível colocar o processo em estado de espera; caso o usuário não entrasse com nenhum
valor, o programa ficaria suspenso e não liberaria a CPU para outros processos.
9
Completo
Criação de Processos
Início do sistema;
Solicitação do usuário;
Término de Processos
Os processos podem terminar de forma voluntária e involuntária. Aqui estão alguns exemplos de
motivos para os processos cessarem sua execução e sua forma:
BCP é a estrutura de dados que contém a informação a cerca de um processo se denomina bloco
de controlo de processos (BCP)
Elementos do BCP
O BCP permite ao sistema operacional localizar toda a informação dos processos. O conjunto
de BCP forma as tabelas de processos. O vão do processo usa-se como índice nas tabelas dos
processos.
Processos ficam em estruturas que os classificam conforme seu estado. Processos Prontos
à serem escalonados para a execução ficam na lista/fila de prontos.
11
Fork no UNIX
O Fork no Unix cria um processo filho, que diferencia – se a partir do processo pai somente em
suas PID e PPID. O fork consome tempo e memória requerida para duplicar as tabelas do
processo pai. Se funcionar, a PID do processo filho é devolvido para o pai e retorna-se um 0 para
o filho. Caso contrário, um -1 é retornado no contexto pai, e não se cria o processo filho.
12
Conclusão
Ao fim deste trabalho nos destacamos processo com sendo a comunicação entre processos é o
grupo de mecanismos que permite aos processos transferirem informação entre si. A capacidade
de um sistema operacional executar simultaneamente dois ou mais processos é chamada
multiprocessamento. Se existirem dois ou mais processos executados em simultâneo e disputam
o acesso a recursos partilhados, problemas da concorrência podem ocorrer.
13
Bibliografia
http://www.cultura.ufpa.br/dicas/definição/processo/li-libib.htm
Willian, Shay “sistemas operacionais” (1996), sao Paulo: Brazil, Makron Books