Você está na página 1de 29

Processos e Threads

Prof. Dr. Jos Lus Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto
Faculdade de Tecnologia de Americana Centro Paula Souza

Tpicos

Conceito de Processos Escalonamento de Processos Operaes em Processos Processos Cooperantes Comunicao entre Processos Comunicao em Sistemas Cliente-Servidor Introduo aos Threads Modelos de Multithreading

Conceito de Processos

Um sistema operacional executa uma variedade de programas:


Sistemas Batch jobs, Sistemas de Tempo Compartilhado - programas de usurios e tarefas.

Processo pode ser, inicialmente, definido como um programa em execuo. Execuo de processo ocorre de maneira seqencial apenas uma instruo por vez executada* Um processo possui (informaes sobre seu estado atual):

Registradores (incluindo contador de instrues), Pilhas e Filas, Seo de dados, Seo de instrues.

Conceito de Processos

2+ processos podem estar associados a um mesmo programa Mas: possuem seqncias de instrues distintas comum ter um processo que crie vrios processos durante sua execuo VERIFICAR SADA DO pstree: [] nmero de processos [{}] nmero de threads

Conceito de Processos
initNetworkManager acpid atd avahi-daemonavahi-daemon avahi-dnsconfd chipcardd4chipcardd4 console-kit-dae63*[{console-kit-dae}] cron cupsd 3*[dbus-daemon] 2*[dbus-launch] dd dhcdbd dhclient3 freshclam gconfd-2 6*[getty] guidance-powerhaldhald-runnerhald-addon-acpi hald-addon-cpuf hald-addon-inpu 2*[hald-addon-stor] ica kaccess kded4 kdeinit4firefox-2run-mozilla.shfirefox-2-bin8*[{firefox-2-bin}] ica-launcheravahi-publish-s klauncher ksmserverkwin skype5*[{skype}] xtermbash {ksmserver} icaica 2*[{ica}]

2*[python]

...........

Estados do Processo

Um processo pode assumir vrios estados durante o seu ciclo de vida:


novo: o processo est sendo criado. executando: instrues esto sendo executadas. bloqueado: o processo est aguardando algum evento ou resposta de uma operao de I/O.

pronto: o processo est aguardando para ser processado pela CPU.

encerrado: o processo finalizou suas execues.

Diagrama de Estados do Processo

Figura 4.1

Bloco de Controle de Processos (BCP)

Informaes associadas a cada processo.

Estado do Processo. Contador de Programas. Registradores da CPU. Informaes sobre escalonamento. Informaes sobre gerenciamento de memria. Informaes sobre contabilidade. Informaes sobre estado de I/O.

Bloco de Controle de Processos (BCP)

prioridade contabilidade estado de operaes de E/S TAREFA: 1 - Explorar o /proc do Linux: Associar os dados do PCB com as informaes presentes no /proc Figura 4.2

CPU alternando entre processos

Figura 4.3

Filas de Escalonamento de Processos

Fila de Jobs - conjunto de todos os processos do sistema. Fila de Prontos - conjunto de todos os processos residentes na memria principal, prontos e esperando para serem executados. Fila de Dispositivos - conjunto de processos aguardando por um dispositivo de I/O. Processos migram entre as vrias filas.

Fila de Prontos e de Dispositivos de I/O

Figura 4.4

Representao do Escalonamento de Processos

Figura 4.5

Escalonadores

Escalonador de Longo Prazo (escalonador de jobs)

Seleciona quais processos devero ser colocados na fila de prontos. solicitado quando um novo processo deve ser admitido no sistema. Controla o grau de multiprogramao.

Escalonador de Curto Prazo (escalonador de CPU) Seleciona qual processo dever ser executado aps obter a CPU. constantemente solicitado. Escalonador de Mdio Prazo

Escalonador de Mdio Prazo

Figura 4.6

Escalonadores

Processos podem ser descritos como sendo: Processos I/O Bound

Gasta mais tempo realizando operaes computaes, com ciclos de CPU curtos.

de

I/O

que

Processos CPU Bound

Gasta mais tempo realizando computaes que operaes de I/ O, com ciclos de CPU mais longos.

Mudana de Contexto

Quando a CPU altera para um outro processo, o sistema deve armazenar o estado do processo antigo e carregar o estado armazenado do novo processo. O tempo gasto para a mudana de contexto no til aos processos (overhead). Este tempo gasto dependente das caractersticas do hardware.

Mudana de Contexto

Figura 4.3

Processos Cooperantes

Um Processo Independente no pode afeta ou ser afetado pela execuo de um outro processo. Processos Cooperantes pode execuo de outros processos. afetar e serem afetados pela

Vantagens: Compartilhamento de informao. Speedup computacional Modularidade Convenincia

Comunicao entre Processos (IPC)

Mecanismos para os processos viabilizarem a comunicao e a sincronizao. Sistema de Mensagens - processo comunica-se com os demais sem utilizar-se de memria compartilhada. O IPC fornece duas operaes: send(message) mensagem de tamanho fixo ou varivel. receive(message) Um processo deve estabelecer um canal de comunicao e em seguida iniciar a troca de mensagens atravs do send/receive.

Sincronizao

A passagem Bloqueante.

de

mensagem

pode

ser

Bloqueante

No

A abordagem Bloqueante considerada sncrona. A abordagem No Bloqueante considerada assncrona. As primitivas bloqueantes. send/receive podem ser bloqueantes ou no

Bufferizao

As filas de mensagens implementam uma destas trs abordagens: Zero Capacity: sem capacidade de armazenamento o emissor deve esperar pelo receptor - Rendezvous Bounded Capacity: tamanho finito de n mensagens. emissor deve esperar se o canal estiver cheio Unbounded Capacity: tamanho infinito o emissor nunca espera

Processos Pesados e Leves

Benefcios

Capacidade de Resposta Compartilhamento de Recursos Economia Utilizao de arquiteturas multiprocessadas.

Nveis e Modelos

Nveis de Threads

Thread de Nvel do Usurio

O gerenciamento de threads feito por uma biblioteca no nvel do usurio.

Thread de Nvel do Kernel

O gerenciamento feito pelo prprio kernel do sistema operacional.

Modelos de Multithreading

Muitos para Um (many-to-one) Um para Um (one-to-one) Muitos para Muitos (many-to-many)

Modelo Muitos para Um

Muitos threads do nvel de usurio so mapeados em um nico thread de kernel. Usado em sistemas que no suportam threads de kernel.

Modelo Um para Um

Cada thread de nvel do usurio mapeado para um thread de nvel do kernel.

Modelo Muitos para Muitos

Permite que muitos threads de nvel do usurio sejam mapeados para muitos threads de nvel do kernel. Permite que o sistema operacional crie um nmero suficiente de threads de kernel.

Processos e Threads
Prof. Dr. Jos Lus Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto
Faculdade de Tecnologia de Americana Centro Paula Souza