Anda di halaman 1dari 18

CENTRO ESTADUAL DE EDUCAO TECNOLGICA PAULA SOUZA

Faculdade de Tecnologia Rubens Lara


Superior de Tecnologia em Anlise e Desenvolvimento de Sistemas

Manuel de Pinho Loureno


Vinicius de Moraes Rocha

PROCESSOS

Santos/SP
2015

SUMRIO
1 INTRODUO................................................................................................4
2 SISTEMA OPERACIONAL...........................................................................5
3 PROCESSOS....................................................................................................6
3.1 Processos Sequenciais e Multiprogramao..................................................................6
3.2 Criao e Trmino de Um Processo................................................................................7
3.3 Hierarquia de Processos..................................................................................................7
3.4 Estados dos Processos......................................................................................................8
3.4.1 No-Submetido...........................................................................................................8
3.4.2 Suspenso.....................................................................................................................8
3.4.3 Pronto.........................................................................................................................8
3.4.5 Executando.................................................................................................................9
3.4.6 Espera........................................................................................................................9
3.5 Bloco de Controle de Processo........................................................................................9
3.6 Tabela de Processos.......................................................................................................10
3.7 Tabela de Interrupes...................................................................................................10
3.8 Threads no Processo......................................................................................................11
3.9 Mquina de Estados Finitos..........................................................................................11

4 RELAES ENTRE PROCESSOS............................................................13


4.1 Comunicao Entre Processos......................................................................................13
4.2 Conflito e Disputa Entre Processos...............................................................................13

5 ESCALONAMENTO.....................................................................................14
5.1 Algoritmos de Escalonamento.......................................................................................14
5.2 Escalonamento No Preemptivo e Preemptivo.............................................................15

CONSIDERAES FINAIS............................................................................16
REFERNCIAS BIBLIOGRFICAS............................................................17

1 INTRODUO
O objetivo de um sistema operacional organizar e controlar o hardware e o
software para que o dispositivo funcione de maneira flexvel e previsvel, entretanto,
ele no executa somente os programas que podemos ver. Imagine que os
aplicativos que voc roda renem diversas instrues e comandos, porm, so os
processos que efetivamente executam esses comandos. Em outras palavras, isso
significa que, ao contrrio do que se pensa, um nico aplicativo tem, alm daquela
interface amigvel, uma srie de processos relacionados a ele.
Atualmente, temos uma infinidade de sistemas no mercado, que podem at
contar com caractersticas prprias, mas que em sua estrutura bsica so muito
similares. Portanto, para um desenvolvedor, essencial entender o funcionamento
da mquina, pois o resultado de seu trabalho ter o mesmo tratamento quando
executado. O objetivo deste trabalho mostrar ao leitor uma viso geral de como o
computador lida com o grande nmero de informaes tratadas diariamente.

2 SISTEMA OPERACIONAL
um programa complexo e extremamente importante para um sistema
computacional realizar as suas operaes. Seu principal objetivo criar um
ambiente de trabalho que seja conveniente ao usurio, controlando os recursos e
fornecendo a base sobre a qual os programas aplicativos podem ser escritos.
Suas funes bsicas, entre outras, a de fornecer a uma interface de
comunicao entre o sistema de comunicao e o usurio, gerenciar a operao dos
dispositivos de hardware, gerenciar e manter o sistema de arquivos armazenados,
dar suporte aos programas que so executados, gerenciamento de processos, de
memria, de I/O, gerenciamento de arquivos e diretrios, entre outros.

3 PROCESSOS
Processo um mdulo executvel nico que corre simultaneamente com
outros mdulos executveis. Processos so mdulos separados e carregveis, ao
contrrio de threads, que no podem ser carregadas. Mltiplas threads de execuo
podem ocorrer dentro de um mesmo processo. Alm das threads, o processo
tambm inclui certos recursos, como arquivos e alocaes dinmicas de memria e
espaos de endereamento.
A diferena entre um programa e um processo que o programa um
conjunto finito e esttico de instrues, enquanto os processos so dinmicos,
sofrendo alteraes conforme a execuo. O processo o estado do programa em
um dado momento do processamento.
Todo processo necessita de recursos do sistema para ser executado e o
sistema operacional gerencia a execuo desses processos.

3.1 Processos Sequenciais e Multiprogramao


Processos sequenciais so basicamente programas em execuo, com uma
fila de threads, interagindo com outros processos na concorrncia pela CPU.
Em um sistema de multiprogramao temos frequentemente a situao onde
vrios processos esto prontos para serem executados. Quando mais de um
processo est Pronto, o sistema operacional deve decidir qual processo deve ser
executado primeiro. A parte do sistema operacional que toma esta deciso
chamada de scheduler, e o algoritmo que usado chamado de scheduler
algorithm. A cada interrupo do relgio o sistema operacional toma o controle e
decide se o processo que est sendo executado deve continuar a ser executado ou
deve ser suspenso para que outro processo passe a ser executado. A estratgia que
permite

que

um

processo

que

est

sendo

temporariamente chamada de preemptive schedule.

executado

seja

suspenso

3.2 Criao e Trmino de Um Processo


Com a inicializao do sistema operacional so criados vrios processos.
Alguns deles so processos em primeiro plano, interagindo com o usurio.
Concomitantemente so criados so criados processos secundrios, que, apesar de
no interagirem com o usurio diretamente, possuem alguma funo acessria com
os processos primrios.
Geralmente um processo em execuo emite chamadas ao SO para criar
novos processos, geralmente para complementar as suas atividades, como por
exemplo criar um processo para trazer dados via rede e armazen-los em um local
compartilhado na memria e um outro processo para remover os dados e processlos.
Um processo, alm disso, pode ser criado atravs de uma requisio do
prprio usurio ou ainda para incio de um job em lote, onde em um grande sistema
computacional o operador pode submeter jobs em lote e o sistema cria um novo
processo pra executar o prximo job na fila de entrada

3.3 Hierarquia de Processos


Quando um processo cria outro (Processo filho), eles continuam associados,
com o prprio processo filho podendo criar mais processos. A isso se d o nome de
hierarquia de processos. Alertando que processos filhos possuem apenas um
processo pai, mas um processo pai pode ter vrios processos filhos. O fato de ser
um processo filho no impede que o mesmo tambm tenha processos filhos
No Unix, um processo, todos os seus filhos e descendentes formam um grupo
de processo. Quando um usurio envia um sinal do teclado, o sinal entregue para
todos os membros do grupo de processo associado com o teclado. Individualmente,
cada processo pode capturar o sinal, ignor-lo ou tomar uma ao predefinida, por
exemplo, ser cancelado pelo sinal. Exemplos de sinais enviados pelo teclado so:
CTRL + C, CTRL + ALT + DEL etc.

Cada processo do Windows possui um identificador prprio chamado de


handle, algo como uma hierarquia ocorre somente quando um processo gera outro,
a partir desse ponto o processo filho ganha uma ligao com o identificador do
processo pai. O conceito de hierarquia quebrado quando um processo pai passa
seu handle para outro processo que o que acontece no Windows, assim o
processo filho quebra sua antiga ligao com o processo pai e gera uma nova
ligao com seu novo processo pai

3.4 Estados dos Processos


Um processo pode se encontrar nos seguintes estgios:
3.4.1 No-Submetido
o processo que ainda no est submetido a CPU, est nas mos do
usurio. At onde interessa ao sistema ele no existe, porque o usurio ainda no o
submeteu. Ele simplesmente apresentado como sendo o primeiro passo na vida
de um processo. O Sistema Operacional, naturalmente, no reconhece esse estado.
Pode por exemplo, ser um arquivo executvel que est armazenado no HD.
3.4.2 Suspenso
o processo que j foi submetido, porm permanece suspenso at que o
horrio ou evento programado ao usurio venha acontecer. Processo suspenso
aquele que est no aguardo de uma entrada de dados.
3.4.3 Pronto
O processo j foi submetido e est pronto para receber a CPU, porm ainda
aguarda o escalonador de processos para ter controle da CPU. Processos que esto
esperando E/S no se aplicam a esse estado.

10

3.4.5 Executando
A execuo propriamente dita. O cdigo est sendo processado. Se ocorrer
durante a execuo uma requisio de E/S o processo colocado no estado de
espera e outro processo da fila de prontos poder ento concorrer a CPU.
3.4.6 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 no houvesse esse estado, pois como ele no est concorrendo CPU ao
executar um E/S, pode-se ento coloc-lo no estado de espera para que os demais
processos do estado pronto possam concorrer a CPU.

3.5 Bloco de Controle de Processo


O processo implementado pelo Sistema Operacional atravs de uma
estrutura de dados chamada Bloco de Controle de Processo (Process Control Block
PCB). A partir do PCB, o Sistema Operacional mantm todas as informaes sobre
o contexto de hardware, contexto de software e espao de endereamento de cada
processo.
Inclui-se nesta estrutura de dados as seguintes informaes: Identificador do
processo (PID), Registradores da CPU (incluindo o Contador de Programa (PC)), o
espao de endereamento do processo, a prioridade do processo, o status do
processo, informaes sobre escalonamento do processo, informaes de I/O,
ponteiro para o prximo PCB, etc.
Durante a troca de contexto, o processo em execuo interrompido e
dada a chance para um outro processo correr. O ncleo deve parar o processo que
est em execuo, copiar os valores dos registos de hardware para seu PCB, e
atualizar os registros de hardware com os valores do PCB do novo processo.

11

3.6 Tabela de Processos


Todas as informaes sobre um processo so mantidas na tabela de
processos, a qual contm campos que dizem respeito gerncia do processo,
gerncia da memria e gerncia de arquivos.
A tabela de processos possui uma entrada por processo e os campos nela
contidos variam de sistema operacional para sistema operacional
Alguns campos tpicos de um processo, sob a gide de cada gerenciamento,
podem ser os seguintes:
- Gerenciamento de Processos: Registros, Contador de programa, Palavra de
estado do programa, ponteiro da pilha, estado do processo, prioridade, parmetros
de escalonamento, ID do processo, processo pai, grupo de processo, sinais,
momento em que um processo foi iniciado, tempo de CPU usado, tempo de CPU do
processo filho e tempo do alarme seguinte.
- Gerenciamento de memria: Ponteiros para informaes sobre o segmento
de cdigo, de dados e de pilhas.
- Gerenciamento de arquivo: Diretrio-raiz, diretrio de trabalho, descritores
de arquivo, ID do usurio e ID do grupo.

3.7 Tabela de Interrupes


uma tabela que ir conter uma linha (entrada) para cada interrupo ou trap
que possa ocorrer no sistema. Cada entrada da tabela contm dois valores: um para
ser carregado no PC (program counter) e outro para ser carregado no registrador de
estado. O registrador de estado normalmente referido como PSW (Processor
Status Word) e j foi citado anteriormente. Trata-se de um registrador especial que
fornece basicamente duas informaes: quais as interrupes que esto habilitadas
e qual o modo de execuo atual da UCP.
Quando ocorre uma interrupo ou um trap, a UCP salva automaticamente os
contedos do PC e da PSW na pilha do programa que estava em execuo e
carrega novos valores nesses dois registradores, a partir da entrada correspondente

12

da tabela de interrupes
Ao receber um pedido de interrupo a CPU consulta a tabela de interrupes
para consultar as instrues que servem para aquela interrupo em especfico,
removendo o vetor de interrupo do barramento e salvando temporariamente e
depois consulta um novo contador de programa (PC) com a ajuda desta tabela.

3.8 Threads no Processo


O conceito de thread foi introduzido na tentativa de reduzir o tempo gasto na
criao, eliminao e troca de contexto de processos nas aplicaes concorrentes,
bem como economizar recursos do sistema como um todo. Em um ambiente
multithread, um nico processo pode suportar mltiplos threads, cada qual
associado a uma parte do cdigo da aplicao. Neste caso no necessrio haver
diversos processos para a implementao da concorrncia. Threads compartilham o
processador da mesma maneira que um processo, ou seja, enquanto um thread
espera por uma operao de E/S, outro thread pode ser executado.
Cada thread possui seu prprio contexto de hardware, porm compartilha o
mesmo contexto de software e espao de endereamento com os demais threads do
processo. O compartilhamento do espao de endereamento permite que a
comunicao de threads dentro de um mesmo processo seja realizada de forma
simples e rpida.

3.9 Mquina de Estados Finitos


Uma mquina de estados finitos (FSM - do ingls Finite State Machine) ou
autmato finito um modelo matemtico usado para representar programas de
computadores ou circuitos lgicos. O conceito concebido como uma mquina
abstrata que deve estar em um de seus finitos estados. A mquina est em apenas
um estado por vez, este estado chamado de estado atual. Um estado armazena
informaes sobre o passado, isto , ele reflete as mudanas desde a entrada num
estado, no incio do sistema, at o momento presente. Uma transio indica uma
mudana de estado e descrita por uma condio que precisa ser realizada para

13

que a transio ocorra. Uma ao a descrio de uma atividade que deve ser
realizada num determinado momento.
Um estado descreve um n de comportamento do sistema em que est
espera de uma condio para executar uma transio. Normalmente, um estado
introduzido quando o sistema no reage da mesma forma para uma mesma
condio. No exemplo de um sistema de rdio de carro, quando se est ouvindo
uma estao de rdio, o estmulo "prximo" significa ir para a prxima estao. Mas
quando o sistema est no estado de CD, o estmulo "prximo" significa ir para a
prxima faixa. O mesmo estmulo desencadeia aes diferentes, dependendo do
estado atual. Em algumas representaes de estado finito mquina, tambm
possvel associar aes a um estado:
- Ao de entrada: o que realizado ao entrar no estado,
- Ao de sada: o que executado ao sair do estado.
A transio um conjunto de aes a serem executadas quando uma
condio for cumprida ou quando um evento recebido. Mquinas de estado so
utilizadas para descrever circuitos sequenciais. Diferentemente de um contador que
em geral conta eventos, uma mquina de estado costuma ser usada para controlar o
evento.

14

4 RELAES ENTRE PROCESSOS


Processos interagem para trabalhar conjuntamente em um sistema trocando
dados, utilizando servios de comunicao fornecidos pela mquina e pelo SO e
seguindo protocolos de comunicao para que possam entender-se entre si.

4.1 Comunicao Entre Processos


A comunicao entre processos, em ingls Inter-Process Communication
(IPC), o grupo de mecanismos que permite aos processos transferirem informao
entre si.
A execuo de um processo pressupe por parte do SO, entre outras coisas,
a criao de um contexto de execuo prprio que, de certa forma, abstrai o
processo dos componentes reais do sistema. Devido a esta virtualizao dos
recursos, o processo no tem conhecimento acerca dos outros processos e, como
tal, no consegue trocar informao.
Essa comunicao pode se dar por Pipes nomeados (fila), Pipes
unidirecionais, fila de mensagens, memria compartilhada, Sockets, que so portas
de comunicao locais ou de rede (SSL: Verso segura), Suportes de RPC(Remote
Procedure Call), que permitem chamar procedimentos e mtodos remotamente e
canais de eventos, que permitem notificar threads e processos dos eventos
ocorridos no sistema.

4.2 Conflito e Disputa Entre Processos


Uma disputa entre processos ocorre quando dois ou mais processos
concorrem para a utilizao dos recursos do sistema, ao passo que o conflito ocorre
no momento em que desta disputa ocorrer o uso simultneo de um mesmo recurso.
A disputa entre processamento pode ser resolvida com alguns critrios
bsicos, como a afinidade com o processador ou o respeito a ordem do
processamento.

15

5 ESCALONAMENTO
Quando um sistema precisa organizar as ordens de execuo do processo. O
escalonador do SO utiliza alguns critrios de escalonamento, como: a taxa de
utilizao de CPU, que a frao de tempo durante a qual ela est sendo ocupada;
throughput que so nmeros de processos terminados por unidade de tempo;
turnaround que o tempo transcorrido desde o momento em que o software entra e
o instante em que termina sua execuo; tempo de resposta: intervalo entre a
chegada ao sistema e incio de sua execuo; tempo de espera: soma dos perodos
em que o programa estava no seu estado pronto.

5.1 Algoritmos de Escalonamento

FIFO (First in, first out) ou FCFS (First come, first served): Onde como seu prprio
nome j diz, o primeiro que chega ser o primeiro a ser executado;

SJF (Shortest Job First): Onde o menor processo ganhar a CPU e atrs do mesmo
formar uma fila de processos por ordem crescente de tempo de execuo;

SRT (Shortest Remaining Time): Neste algoritmo escolhido o processo que possua
o menor tempo restante, mesmo que esse processo chegue metade de uma
operao, se o processo novo for menor ele ser executado primeiro;

Algoritmo Loteria: O Sistema Operacional distribui tokens (fichas), numerados entre


os processos, para o escalonamento sorteado um numero aleatrio para que o
processo ganhe a vez na CPU, processos com mais tokens tm mais chance de
receber antes a CPU.

Escalonamento garantido: Este algoritmo busca cumprir promessas de alocao de


CPU o mais preciso possvel.

RR (Round-Robin): Nesse escalonamento o sistema operacional possui um timer,


chamado de quantum, onde todos os processos ganham o mesmo valor de quantum
para rodarem na CPU. Com exceo do algoritmo RR e escalonamento garantido,
todos os outros sofrem do problema de Inanio (starvation).

16

Mltiplas Filas: So usadas vrias filas de processos prontos para executar, cada
processo e colocado em uma fila, e cada fila tem uma poltica de escalonamento
prpria e outra entre filas.
Todos os algoritmos classificam os processos em estados: Iniciando, Pronto,
Executando, Entrada/ Sada e Terminado.

5.2 Escalonamento No Preemptivo e Preemptivo


Em um escalonamento cooperativo a CPU alocada para executar um
determinado processo e no liberada para outro processo at que o primeiro seja
executado ou entre em estado de espera, aguardando o que deve fazer. Neste tipo
de escalonamento o controle do fluxo de processos est na mo de quem cria os
programas, pois ele determina quando o processo deve ou no liberar os recursos
da CPU.
Por outro lado, o escalonamento preemptivo busca corrigir essa deficincia do
escalonamento cooperativo, ao dividir o tempo de processamento da CPU nos
chamados Time Slices (fatias de tempo), alternando esses perodos para cada
processo. Neste sistema a CPU inicia a execuo de uma fatia e comea a contar o
tempo. Finalizado este tempo o processo colocado em espera e inicia-se uma fatia
do prximo processo, e assim continua at que todos os processos tenham sido
executados completamente. Este processo faz parecer que os programas esto
sendo executados simultaneamente, em virtude de as fatias serem muito curtas e as
suas execues repetidas frequentemente.

17

CONSIDERAES FINAIS
No decorrer desse trabalho foram destacadas as principais caractersticas no
tratamento de tarefas pelos sistemas operacionais.
Ao contrrio do que muitos usurios pensam, um programa de computador
no consiste apenas naquela interface amigvel, mas em uma srie de sequncias
lgicas, que permitem a comunicao em harmonia entre o software e o hardware.
Por fim, foi possvel perceber alm da complexidade envolta na execuo de
um programa, o dinamismo dos processos, que chega ao ponto tal de para o usurio
parecer que eles ocorrem simultaneamente quando na verdade apenas um
processos processado por vez pelo sistema, auxiliado pelo SO.

18

REFERNCIAS BIBLIOGRFICAS
DEITEL H. M., DEITEL P. J. e CHOFFNES D.R.. Sistemas Operacionais. So
Paulo: 2005. Pearson Prentice Hall.
MACHADO, Francis Berenger; MAIA, Luiz Paulo. Arquitetura de Sistemas
Operacionais. 4. ed. Rio de Janeiro: Ltc, 2007
MARULA, Marcelo; BENINI FILHO, Pio Armando. Informtica: Conceitos e
Aplicaes. 3. ed. [s.l.]: rica, 2005
TANENBAUM, Andrew S.. Organizao Estruturada de Computadores. 5. ed. [s.l]:
Pearson Prentice Hall, 2007.
TANEMBAUM, Andrew S.. Sistemas Operacionais Modernos. So Paulo: Pearson
Prentice Hall, 2003.

Anda mungkin juga menyukai