Академический Документы
Профессиональный Документы
Культура Документы
Processos
Processos ee Threads
Threads
Ibria Medeiros
Licenciatura Informtica: Redes e Multimdia
Departamento de Matemtica
Universidade dos Aores
2011/2012
UA
Sistemas Operativos
Sumrio
Sumrio
Conceito de Processo
Escalonamento de Processos
Operaes sobre Processos
Cooperao entre Processos
Gesto de Processos em Linux
Threads
UA
Sistemas Operativos
Sumrio
Sumrio
Conceito de Processo
Escalonamento de Processos
Operaes sobre Processos
Cooperao entre Processos
Gesto de Processos em Linux
Threads
UA
Sistemas Operativos
Conceito de Processo
Conceito de Processo
Um Sistema Operativo executa uma variedade de programas:
UA
Espao de Endereamento
Cdigo Executvel
Seco de Dados
Pilha (Stack)
Contexto
Instruction Pointer
Etc...
Sistemas Operativos
Conceito de Processo
Estados de um Processo
Um processo ao ser executado passa por vrios estados:
UA
Sistemas Operativos
Conceito de Processo
Estado do Processo
UA
Sistemas Operativos
Sumrio
Sumrio
Conceito de Processo
Escalonamento de Processos
Operaes em Processos
Cooperao entre Processos
Gesto de Processos em Linux
Threads
UA
Sistemas Operativos
Escalonamento de Processos
Escalonamento
Os processos necessitam de recursos
H tipicamente mais processos que recursos
Portanto: os processos competem por recursos
O sistema operativo deve fazer o escalonamento dos processos
Os recursos devem ser atribudos pela ordem correspondente s polticas de
escalonamento
UA
Sistemas Operativos
Escalonamento de Processos
Escalonamento
UA
Sistemas Operativos
Escalonamento de Processos
UA
Sistemas Operativos
Escalonamento de Processos
UA
Sistemas Operativos
Escalonamento de Processos
UA
Sistemas Operativos
Escalonamento de Processos
Comutao de Processos
Comutao de Processos
Mudana de Contexto
UA
Sistemas Operativos
Escalonamento de Processos
UA
Sistemas Operativos
Sumrio
Sumrio
Conceito de Processo
Escalonamento de Processos
Operaes sobre Processos
Cooperao entre Processos
Gesto de Processos em Linux
Threads
UA
Sistemas Operativos
Operaes em Processos
Criao de Processos
Um processo pode criar novos processos durante a sua execuo.
Os novos processos so designados processos filhos (children) do processo
que os criou.
Os novos processo criados desta forma vo necessitar de recursos (tempo de
CPU, memria, ficheiros, dispositivos de IO, etc.).
Os novos processos podem obter estes recursos do sistema operativo ou do
processo que os criou (pai).
UA
Sistemas Operativos
Operaes em Processos
Criao de Processos
Chamada ao sistema fork cria filho
fork retorna duas vezes, no pai e no filho
Ambos continuam a executar o mesmo programa
Filho herda duplicado do pai mas continua independentemente: com a sua
memoria, . . .
Para substituir o programa a executar usa-se exec; muda o programa mas
continua o processo corrente
UA
Sistemas Operativos
Operaes em Processos
Terminar Processos
Um processo termina quando acaba de executar a sua ltima instruo e pede
ao sistema operativo que o 'apague' atravs da system call exit().
Nessa altura o processo pode retornar umcdigo de resultado para o processo
pai.
Todos os recursos do processo so libertados pelo sistema operativo
(memria, ficheiros, perifricos, etc.).
UA
Sistemas Operativos
Operaes em Processos
UA
Sistemas Operativos
Operaes em Processos
UA
Sistemas Operativos
Operaes em Processos
UA
Sistemas Operativos
Sumrio
Sumrio
Conceito de Processo
Escalonamento de Processos
Operaes sobre Processos
Cooperao entre Processos
Gesto de Processos em Linux
Threads
UA
Sistemas Operativos
Partilha de informao
Modularidade
Convenincia
UA
Memria partilhada
Sistemas Operativos
Sumrio
Sumrio
Conceito de Processo
Escalonamento de Processos
Operaes sobre Processos
Cooperao entre Processos
Gesto de Processos em Linux
Threads
UA
Sistemas Operativos
Processos em linux
A criao de um processo no Linux efectuada atravs da duplicao do
processo actual atravs da system call fork.
Sistemas Operativos
Processos em linux
UA
Sistemas Operativos
Processos em linux
Obter PIDs:
Terminar um processo:
Quando um processo filho termina (exit), enviado um sinal SIGCHLD para o
pai do processo. O processo filho fica espera que o pai aceite o sinal
enviado (ou seja, que o pai aceite o cdigo de retorno - status). Um processo
neste estado designado de processo zombie.
A forma que o processo pai tem para aceitar o status do processo filho
atravs do wait.
UA
Sistemas Operativos
UA
Sistemas Operativos
UA
Sistemas Operativos
UA
Sistemas Operativos
Sistemas Operativos
Sistemas Operativos
Sistemas Operativos
UA
Sistemas Operativos
Sumrio
Sumrio
Conceito de Processo
Escalonamento de Processos
Operaes sobre Processos
Cooperao entre Processos
Gesto de Processos em Linux
Threads
UA
Sistemas Operativos
Conceito de Thread
Necessidades de MultiThreading
Sistemas Operativos
Conceito de Thread
Sistemas Operativos
Conceito de Thread
Partilha de recursos
Memria
UA
Sistemas Operativos
Conceito de Thread
Tarefas concorrentes
Necessidade de sincronizao
Testes e debbug
UA
Sistemas Operativos
Conceito de Thread
Escalonamento Clssico
Sistemas Operativos
Conceito de Thread
Multi-threaded Scheduling
Sistemas Operativos
Conceito de Thread
Threads Java
Fibers Windows
Linux
Windows XP/2000
Solaris
Mac OS X
UA
Sistemas Operativos
Conceito de Thread
Conceito de Thread
Existem situaes em que seria interessante a possibilidade de partilha de
recursos (acesso concorrente) entre dois processos.
Ou seja, a possibilidade de 'lanar' uma nova sequncia de execuo (thread)
num processo (um novo program counter...).
Grande parte dos sistemas operativos modernos suporta este mecanismo.
Este novo conceito designado de thread.
UA
Sistemas Operativos
Conceito de Thread
Conceito de Thread
Uma thread (algumas vezes designada de lightweight process - LWP) uma
unidade bsica de utilizao de CPU e consiste num program counter, num
conjunto de registos e numa stack.
Uma thread partilha com as outras threads do processo:
Seco de cdigo
UA
Seco de dados
Sistemas Operativos
Conceito de Thread
Conceito de Thread
Comentar:
Com as threads os processos deixam de ser necessrios.
Quando temos threads no faz sentido termos Processos nos estados
waiting, ready e running.
UA
Sistemas Operativos