28
Cristiano Pires Martins Parte 1 terça-feira, 13 de março de 12

Aula 02-processos-e-threads-tanenbaum-parte-1

Embed Size (px)

Citation preview

Page 1: Aula 02-processos-e-threads-tanenbaum-parte-1

Cristiano  Pires  Martins

Parte 1

terça-feira, 13 de março de 12

Page 2: Aula 02-processos-e-threads-tanenbaum-parte-1

Processo� Uma  abstração  de  um  programa  em  execução;� Pseudoparalelismo  é  a  ilusão  de  que  é  possível  executar  dois  ou  mais  programas  ao  mesmo  tempo  em  uma  máquina  monoprocessada  ;

� Multiprogramação:  divisão  da  memória  para  que  ocorra  uma  troca  rápida  de  processos  na  CPU;

� Multiprocessadores  é  quando  se  tem  mais  de  um  processador  para  realizar  um  processamento  paralelo  verdadeiro;

� Para  ambos,  a  necessidade  é  de  executar  mais  de  um  programa  (processo)  por  vez.

terça-feira, 13 de março de 12

Page 3: Aula 02-processos-e-threads-tanenbaum-parte-1

ProcessosO Modelo de Processo

� Nesse modelo os softwares, inclusive o SO, são organizados em processos seqüenciais;

� Um processo é um programa em execução acompanhado dos valores:� Contador de programa;� Registradores;� Variáveis.

� Modelo de processo é baseado em 2 conceitos independentes: agrupamento de recursos e execução.

3

terça-feira, 13 de março de 12

Page 4: Aula 02-processos-e-threads-tanenbaum-parte-1

ProcessosO Modelo de Processo

� (a) Multiprogramação de quatro programas� (b) Modelo conceitual de 4 processos sequenciais,

independentes� (c) Somente um programa está ativo a cada momento� A taxa na qual o processo realiza sua computação não será

uniforme e provavelmente nem reproduzível mesmo que seja na mesma ordem outra vez.

4

terça-feira, 13 de março de 12

Page 5: Aula 02-processos-e-threads-tanenbaum-parte-1

Analogia:  Programa  e  Processo� Exemplo:  Cientista  da  computação  com  dotes  culinários  e  o  filho  picado  de  abelha;

� Processo:  constitui  uma  atividade;� Possui  programa,  entrada,  saída  e  um  estado.

�Um  único  processador  pode  ser  compartilhado  por  vários  processos;

�O  escalonador  (algoritmo)  determina  quando  trocar  um  processo  pelo  outro.

terça-feira, 13 de março de 12

Page 6: Aula 02-processos-e-threads-tanenbaum-parte-1

Processos  Necessários� Em  sistemas  simples  (apenas  uma  aplicação  -­‐  microondas):  todos  os  processos  são  necessários  quando  o  sistema  é  ligado;

� Em  sistemas  de  propósito  geral:  é  necessário  criar  e  terminar  processos  durante  a  operação.

terça-feira, 13 de março de 12

Page 7: Aula 02-processos-e-threads-tanenbaum-parte-1

Criação de Processos

Principais eventos que levam à criação de processos1. Início do sistema;2. Execução de chamada ao sistema de

criação de processos por um processo em execução;

3. Solicitação do usuário para criar um novo processo;

4. Início de um job em lote.

7

terça-feira, 13 de março de 12

Page 8: Aula 02-processos-e-threads-tanenbaum-parte-1

Criação de Processos� Alguns  processos  criados  ficam  em  primeiro  plano  (interagindo  com  o  usuário)  e  outros  em  segundo  (apresentam  função  específica);

� Para  ver  a  lista  de  processos:� No  UNIX  e  LINUX  digite  ps    na  linha  de  comando;� No  Windows  digite  CTRL+ALT+DEL;

� Nos  dois  sistemas  é  possível  ter  várias  janelas  abertas  ao  mesmo  tempo  e  cada  uma  executando  um  processo;

� Em  um  sistema  em  lote  (comp.  de  grande  porte),  quando  o  SO  tiver  todos  os  recursos,  ele  criará  um  novo  processo  e  executará  o  próximo  job  da  fila.  

terça-feira, 13 de março de 12

Page 9: Aula 02-processos-e-threads-tanenbaum-parte-1

Criação  de  Processo�Todo  o  processo  é  criado  por  um  processo  existente  executando  uma  chamada  ao  sistema  de  criação  de  processo;

�Tanto  no  Windows  como  no  Unix,  depois  de  um  processo  filho  criado,  o  pai  e  o  filho  têm  seus  próprios  e  distintos  espaços  de  endereçamento;

�É  possível  o  compartilhamento  de  recursos  entre  o  pai  e  o  filho.

terça-feira, 13 de março de 12

Page 10: Aula 02-processos-e-threads-tanenbaum-parte-1

Término de Processos

Condições que levam ao término de processos1. Saída normal (voluntária)

Ex.: Quando termina o que tinha que fazer2. Saída por erro (voluntária)

Ex.: Tenta compilar um programa e o arquivo não existe

3. Erro fatal (involuntário) causado pelo processo, erro de programa

Ex.: Referência à memória inexistente ou divisão por zero

4. Cancelamento por um outro processo (involuntário)

10

terça-feira, 13 de março de 12

Page 11: Aula 02-processos-e-threads-tanenbaum-parte-1

Hierarquias de Processos

� Pai cria um processo filho, processo filho pode criar seu próprio processo

� Formam uma hierarquia� UNIX chama isso de “grupo de processos”

� Windows não possui o conceito de hierarquia de processos� Todos os processos são criados iguais

11

terça-feira, 13 de março de 12

Page 12: Aula 02-processos-e-threads-tanenbaum-parte-1

Estados de Processos (1)

� Possíveis estados de processos� em execução� bloqueado� pronto

� Mostradas as transições entre os estados

12

terça-feira, 13 de março de 12

Page 13: Aula 02-processos-e-threads-tanenbaum-parte-1

Estados de Processos (2)

� Camada mais inferior de um SO estruturado por processos� trata interrupções, escalonamento

� Acima daquela camada estão os processos sequenciais

13

terça-feira, 13 de março de 12

Page 14: Aula 02-processos-e-threads-tanenbaum-parte-1

Implementação de Processos (1)

Campos da entrada de uma tabela de processos

14

Tabela de Processos ou Blocos de Controle de Processos

terça-feira, 13 de março de 12

Page 15: Aula 02-processos-e-threads-tanenbaum-parte-1

Implementação de Processos (2)

Esqueleto do que o nível mais baixo do SO faz quando ocorre uma interrupção

15

terça-feira, 13 de março de 12

Page 16: Aula 02-processos-e-threads-tanenbaum-parte-1

Threads� Thread é um fluxo de controle;� São fluxos de controle

independentes que podem ser executados quase em paralelo;

� Mantém o mesmo espaço de endereçamento;

16

terça-feira, 13 de março de 12

Page 17: Aula 02-processos-e-threads-tanenbaum-parte-1

ThreadsO Modelo de Thread (1)

(a) Três processos cada um com um thread(b) Um processo com três threads

17

terça-feira, 13 de março de 12

Page 18: Aula 02-processos-e-threads-tanenbaum-parte-1

O Modelo de Thread (2)

� Items compartilhados por todos os threads em um processo

� Itens privativos de cada thread

18

terça-feira, 13 de março de 12

Page 19: Aula 02-processos-e-threads-tanenbaum-parte-1

O Modelo de Thread (3)

Cada thread tem sua própria pilha

19

terça-feira, 13 de março de 12

Page 20: Aula 02-processos-e-threads-tanenbaum-parte-1

Uso de Thread (1)

Um processador de texto com três threads

20

terça-feira, 13 de março de 12

Page 21: Aula 02-processos-e-threads-tanenbaum-parte-1

Uso de Thread (2)

Um servidor web com múltiplos threads21

terça-feira, 13 de março de 12

Page 22: Aula 02-processos-e-threads-tanenbaum-parte-1

Comunicação  Interprocessos� Freqüentemente  processos  precisam  se  comunicar  com  outros  processos;

� Há  3  tópicos  que  devem  ser  abordados:� Como  um  processo  passa  informações  para  o  outro;� Como  garantir  que  2  ou  mais  processos  não  invadam  uns  aos  outros  quando  envolvidos  em  atividades  críticas;

� Seqüência  adequada  quando  existirem  dependências.� Os  mesmos  problemas     e  soluções  se  aplicam  aos  threads.

terça-feira, 13 de março de 12

Page 23: Aula 02-processos-e-threads-tanenbaum-parte-1

Condição  de  Disputa�Situações  nas  quais  2  ou  mais  processos  estão  lendo  ou  escrevendo  algum  dado  compartilhado  e  cujo  resultado  final  depende  das  informações  de  quem  e  quando  executa  precisamente.

terça-feira, 13 de março de 12

Page 24: Aula 02-processos-e-threads-tanenbaum-parte-1

Comunicação InterprocessoCondições de Disputa

Dois processos querem ter acesso simultaneamente à memória compartilhada

24

terça-feira, 13 de março de 12

Page 25: Aula 02-processos-e-threads-tanenbaum-parte-1

Exclusão  Mútua� O  que  fazer  para  evitar  condições  de  disputa?� A  resposta  pra  evitar  esse  problema  é  impedir  que  mais  de  um  processo  leia  e  escreva  ao  mesmo  tempo  na  memória  compartilhada;

� Precisa-­‐se  de  exclusão  mútua:  modo  de  assegurar  que  outros  processos  sejam  impedidos  de  usar  uma  variável  ou  um  arquivo  compartilhado  que  já  estiver  em  uso  por  um  outro  processo.

terça-feira, 13 de março de 12

Page 26: Aula 02-processos-e-threads-tanenbaum-parte-1

Região  CríAca�Exemplo:  Parte  do  programa  em  que  há  acesso  à  memória  compartilhada;

terça-feira, 13 de março de 12

Page 27: Aula 02-processos-e-threads-tanenbaum-parte-1

Regiões Críticas (1)

Quatro condições necessárias para prover exclusão mútua:1. Nunca dois processos simultaneamente em

uma região crítica 2. Nenhuma afirmação sobre velocidades ou

números de CPUs3. Nenhum processo executando fora de sua

região crítica pode bloquear outros processos4. Nenhum processo deve esperar eternamente

para entrar em sua região crítica

27

terça-feira, 13 de março de 12

Page 28: Aula 02-processos-e-threads-tanenbaum-parte-1

Regiões Críticas (2)

Exclusão mútua usando regiões críticas

28

terça-feira, 13 de março de 12