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

10.711 visualizações

Publicada em

Publicada em: Tecnologia
  • Seja o primeiro a comentar

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

  1. 1. Cristiano  Pires  Martins Parte 1terça-feira, 13 de março de 12
  2. 2. 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
  3. 3. Processos O 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. 3terça-feira, 13 de março de 12
  4. 4. Processos O 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 4 na mesma ordem outra vez.terça-feira, 13 de março de 12
  5. 5. 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
  6. 6. 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
  7. 7. Criação de Processos Principais eventos que levam à criação de processos 1. 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. 7terça-feira, 13 de março de 12
  8. 8. 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
  9. 9. 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
  10. 10. Término de Processos Condições que levam ao término de processos 1. Saída normal (voluntária) Ex.: Quando termina o que tinha que fazer 2. 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) 10terça-feira, 13 de março de 12
  11. 11. 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 11terça-feira, 13 de março de 12
  12. 12. Estados de Processos (1) — Possíveis estados de processos — em execução — bloqueado — pronto — Mostradas as transições entre os estados 12terça-feira, 13 de março de 12
  13. 13. 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 13terça-feira, 13 de março de 12
  14. 14. Implementação de Processos (1) Tabela de Processos ou Blocos de Controle de Processos Campos da entrada de uma tabela de processos 14terça-feira, 13 de março de 12
  15. 15. Implementação de Processos (2) Esqueleto do que o nível mais baixo do SO faz quando ocorre uma interrupção 15terça-feira, 13 de março de 12
  16. 16. 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; 16terça-feira, 13 de março de 12
  17. 17. Threads O Modelo de Thread (1) (a) Três processos cada um com um thread (b) Um processo com três threads 17terça-feira, 13 de março de 12
  18. 18. O Modelo de Thread (2) — Items compartilhados por todos os threads em um processo — Itens privativos de cada thread 18terça-feira, 13 de março de 12
  19. 19. O Modelo de Thread (3) Cada thread tem sua própria pilha 19terça-feira, 13 de março de 12
  20. 20. Uso de Thread (1) Um processador de texto com três threads 20terça-feira, 13 de março de 12
  21. 21. Uso de Thread (2) Um servidor web com múltiplos threads 21terça-feira, 13 de março de 12
  22. 22. 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
  23. 23. 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
  24. 24. Comunicação Interprocesso Condições de Disputa Dois processos querem ter acesso simultaneamente à memória compartilhada 24terça-feira, 13 de março de 12
  25. 25. 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
  26. 26. Região  CríAca —Exemplo:  Parte  do   programa  em  que  há   acesso  à  memória   compartilhada;terça-feira, 13 de março de 12
  27. 27. 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 CPUs 3. Nenhum processo executando fora de sua região crítica pode bloquear outros processos 4. Nenhum processo deve esperar eternamente para entrar em sua região crítica 27terça-feira, 13 de março de 12
  28. 28. Regiões Críticas (2) Exclusão mútua usando regiões críticas 28terça-feira, 13 de março de 12

×