Sei sulla pagina 1di 27

SISTEMAS OPERACIONAIS

Prof. MSc. Marco Antonio Alves Pereira

AVISO:
Todos os slides do curso foram elaborados com base em contedo da Internet, devidamente referenciados ao seu lado direito. Esta coletnea de informaes tem objetivo puramente educacional e no ser comercializado, descaracterizando-se o plgio ou qualquer tipo de utilizao indevida. Todos os crditos e direitos dos textos, imagens e vdeos utilizados pertencem aos seus respectivos proprietrios, no estando incorporados ao presente trabalho.
2

MDULO 4
PROCESSO Parte 2

Prof. MSc. Marco Antonio Alves Pereira

Subprocessos
Em um sistema operacional, todos os processos so filhos de outro processo.
O processo que cria um outro processo chamado de processo pai, enquanto o processo criado chamado de processo filho ou subprocesso:

http://www.ppgia.pucpr.br/~laplima/ensino/soee/materia/02_processos.html

O subprocesso, por sua vez, pode criar outros subprocessos. Como consequncia desta estrutura, caso um processo deixe de existir, os subprocessos subordinados so eliminados.

http://pt.scribd.com/doc/56258529/65/Subprocesso-e-Thread

Subprocessos

Nos sistemas operacionais mais antigos, cada processo possua um nico fluxo de controle, ou seja, as instrues eram executadas sequencialmente, uma de cada vez. J nos sistemas mais modernos, um processo pode, por sua vez, dar incio a um ou mais subprocessos, que so executados em paralelo ou de forma concorrente com o processo pai e, para todos os efeitos, apresentam as mesmas caractersticas e particularidades de um processo qualquer, no tocante a contexto e fluxo de controle.

http://equipe.nce.ufrj.br/thome/grad/so_old/apostila/Processos.pdf

Subprocessos

Subprocessos
Quer dizer ento que... Um programa pode solicitar ao sistema operacional para colocar em execuo um outro programa???

Subprocessos
Consideraes sobre subprocessos:
Um subprocesso tratado pelo S.O. como um processo; Todo subprocesso tem PCB prprio e compartilha o processador como os processos; Os subprocessos passam pelos mesmos estados que um processo; A diferena entre eles a relao hierrquica: o subprocesso filho do pai, assim, em eliminado o pai, o subprocesso tambm eliminado!
8

Threads
Como voc viu os subprocessos so tratados como processos, inclusive tendo seu prprio PCB e passando pelos mesmos estados. Com o intuito de reduzir o tempo gasto na criao ou eliminao de processos e economizar recursos, surgiu o conceito de thread.

Threads compartilham o processador da mesma maneira que um processo. Por exemplo, enquanto um thread espera por uma operao de E/S, outro thread pode ser executado.

10

http://pt.scribd.com/doc/56258529/65/Subprocesso-e-Thread

Threads

A grande diferena entre subprocessos e threads em relao ao espao de endereamento: enquanto subprocessos possuem, cada um, espaos de endereamento independentes e protegidos, threads compartilham o mesmo espao de endereamento do processo, sem nenhuma proteo, permitindo assim que um thread possa alterar dados de outro thread.
11

http://pt.scribd.com/doc/56258529/65/Subprocesso-e-Thread

Threads

Threads representam uma nova concepo na forma de um processo paralelizar a execuo de partes do seu cdigo. Os threads, conceitualmente, se assemelham a subprocessos porm no possuem identidade prpria e, portanto, no so independentes. Cada thread possui seu prprio contador de programa, sua pilha e seus registradores porm compartilham todos o mesmo espao de endereamento, isto , como se fossem uma nica entidade.
12

http://equipe.nce.ufrj.br/thome/grad/so_old/apostila/Processos.pdf

Threads

Exemplo: Processo Y com 3 subprocessos e Processo X com 3 Threads

13

http://equipe.nce.ufrj.br/thome/grad/so_old/apostila/Processos.pdf

Threads

Threads
Traduzindo... Threads so pedaos de um mesmo programa que so executados de modo concorrente, ou seja, como se fossem outros programas. O programador pode criar quantos threads quiser a partir de um programa (processo). A estrutura que controla os threads chamada de TCB (Thread Control Block).
14

Processos Independentes
So processos criados por outro processo, porm no existindo nenhuma relao hierrquica entre eles.
Se o processo pai for morto, o filho continuar sendo executado; Na prtica, quando um programa chama para execuco outro programa totalmente diferente.
Exemplo???
a
15

Ambientes Monothread e Multithread


Monothread:
Cada processo tem apenas um thread. Concorrncia se d apenas com processos independentes ou subprocessos. Problema - criar, gerenciar e eliminar processos computacionalmente caro. Compartilhar o espao de endereamento complexo, por conta dos mecanismos empregados. Processo Unidade de alocao e de escalonamento.
16

Ambientes Monothread e Multithread


Multithread:
Permite que tenhamos aplicaes concorrentes de forma mais eciente:
Aumenta o desempenho, por dispensar mecanismos de comunicao dentro do processo. Aumenta a ecincia, por termos menos sobrecarga do sistema como um todo
a
17

Menos processos e mais threads. Programas associados a threads. Os threads sofrem mudana de estado (pronto, espera e execuo), e tem seu prprio bloco de controle(o TCB). Processo -> Unidade de alocao. Thread -> Unidade de escalonamento. O S. O. v e escalona os threads de cada processo

Para aprender mais sobre Threads, acesse os seguintes sites e ESTUDE-OS:


O que so threads em um processador? http://www.tecmundo.com.br/9669-o-que-saothreads-em-um-processador-.htm O que um thread? Fazendo mais de uma coisa ao mesmo tempo (TIMA ANIMAO): http://www.dsc.ufcg.edu.br/~jacques/cursos/map /html/threads/threads1.html O que so threads e como us-las em seus programas http://www.arquivodecodigos.net/dicas/java-oque-sao-threads-e-como-usa-las-em-seusprogramas-2762.html Utilizando Threads Parte1 http://www.devmedia.com.br/utilizando-threadsparte-1/4459
18

Processos do Sistema
O conceito de processo, alm de estar associado a aplicaes de usurios, pode tambm ser implementado na prpria arquitetura do sistema operacional, conforme visto nos sistemas com arquitetura microkernel. Quando processos so utilizados para a implementao de servios do sistema,estamos retirando cdigo de seu ncleo, tornando-o menor e mais estvel.
Machado e Maia Arquitetura de Sistemas Operacionais

19

Em um computador com o sistema Linux instalado, a ltima etapa da inicializao do sistema a criao do processo init pelo kernel. A partir da, todos os outros processos so criados. O init o pai de todos os processos e o ltimo passo executado no processo de inicializao do sistema Linux. O init procura pelo arquivo /etc/inittab que descreve os processos a serem inicializados para o funcionamento do sistema. Para aprender mais sobre o procedimento de inicializao do sistema Linux, acesse e leia o texto disponvel em:
http://www.cin.ufpe.br/~phmb/sysadm/boot.html

Conhea um pouco mais sobre a criao de processos em Linux em:


http://www.juliobattisti.com.br/tutoriais/paulocfarias/linuxbasico014.asp

20

http://pt.kioskea.net/contents/langages/langages.php3

Sinais
Os sinais so meios usados para que os processos possam se comunicar e para que o sistema possa interferir em seu funcionamento. Essencialmente, um sinal uma notificao assncrona enviada para um processos com o objetivo de notificar a ocorrncia de um evento. Quando um sinal enviado a um processo, o sistema operacional interrompe o seu fluxo normal de execuo.

21

http://pt.wikipedia.org/wiki/Sinal_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)

Sinais
Determinadas combinaes de teclas, ao serem pressionadas no terminal de controle de um processo em execuo, fazem com que o sistema envie determinados sinais a este processo:
CTRL-C (DEL em verses antigas do Unix) envia um sinal INT (SIGINT); normalmente causa o trmino do processo. CTRL-Z envia um sinal TSTP (SIGTSTP); normalmente causa a suspenso da execuo do processo. CTRL-\ envia um sinal QUIT (SIGQUIT); normalmente causa o trmino da execuo do processo e a gerao de um core dump.
22

http://pt.wikipedia.org/wiki/Sinal_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)

Sinais
A chamada de sistema kill envia um sinal ao processo, se o usurio tiver permisso para tal. De maneira parecida, o comando kill do Unix permite que um "usurio" envie sinais a um processo. As excees causadas por diviso por zero ou violao de segmento de memria geram sinais (SIGFPE e SIGSEGV, respectivamente, gerando um core dump).
23

http://pt.wikipedia.org/wiki/Sinal_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)

Para entender melhor os sinais, veja os seguintes textos:


http://pt.wikipedia.org/wiki/Sinal_(ci%C3%AAncia _da_computa%C3%A7%C3%A3o)

http://www.vivaolinux.com.br/artigo/Processosno-Linux?pagina=2

http://doc.fug.com.br/handbook/basicsdaemons.html

24

PESQUISE!

25

RESUMINDO...
Neste mdulo voc aprendeu que processo nada mais do que um programa em execuo. Entendeu que os processos no ficam o tempo todo utilizando o processador, mas passam por diversos estados durante sua existncia. Tambm entendeu que existem classificaes de processos, e como estes so criados e controlados pelo sistema operacional.

FIM DO MDULO 4 Parte 2

Prof. MSc. Marco Antonio Alves Pereira

Potrebbero piacerti anche