SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Cristiano	
  Pires	
  Martins




                                                      Parte 1

terça-feira, 13 de março de 12
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
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.


     3

terça-feira, 13 de março de 12
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
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
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
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.


     7

terça-feira, 13 de março de 12
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
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
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)

     10

terça-feira, 13 de março de 12
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
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
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
Implementação de Processos (1)
   Tabela de Processos ou Blocos de Controle de Processos




          Campos da entrada de uma tabela de processos
     14

terça-feira, 13 de março de 12
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
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
Threads
          O 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
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
O Modelo de Thread (3)




                            Cada thread tem sua própria pilha

     19

terça-feira, 13 de março de 12
Uso de Thread (1)




                Um processador de texto com três threads
     20

terça-feira, 13 de março de 12
Uso de Thread (2)




                       Um servidor web com múltiplos threads
     21

terça-feira, 13 de março de 12
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
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
Comunicação Interprocesso
          Condições de Disputa




  Dois processos querem ter acesso simultaneamente à memória
                          compartilhada
     24

terça-feira, 13 de março de 12
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
Região	
  CríAca
      —Exemplo:	
  Parte	
  do	
  
          programa	
  em	
  que	
  há	
  
          acesso	
  à	
  memória	
  
          compartilhada;

terça-feira, 13 de março de 12
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


     27

terça-feira, 13 de março de 12
Regiões Críticas (2)




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

     28

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

Weitere ähnliche Inhalte

Was ist angesagt?

Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockWilliams Gomes da Silva
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Leinylson Fontinele
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processosComputação Depressão
 
Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Pepe Rocker
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUAlexandre Duarte
 
Aula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região CríticaAula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região Críticacamila_seixas
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processosTalles Nascimento Rodrigues
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computadorFilipe Duarte
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresGilvan Latreille
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema OperacionalCláudia Costa
 
Visão geral do sistema operacional
Visão geral do sistema operacionalVisão geral do sistema operacional
Visão geral do sistema operacionalLuciano Crecente
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linuxPeslPinguim
 
Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento camila_seixas
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senaiCarlos Melo
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisJocelma Rios
 
Sistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFSSistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFSCleber Ramos
 

Was ist angesagt? (20)

Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos
 
Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPU
 
Aula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região CríticaAula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região Crítica
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computador
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de Computadores
 
Windows x Linux - O que preciso saber!
Windows x Linux - O que preciso saber!Windows x Linux - O que preciso saber!
Windows x Linux - O que preciso saber!
 
Memórias
MemóriasMemórias
Memórias
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema Operacional
 
Visão geral do sistema operacional
Visão geral do sistema operacionalVisão geral do sistema operacional
Visão geral do sistema operacional
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linux
 
Endereçamento de memória
Endereçamento de memóriaEndereçamento de memória
Endereçamento de memória
 
Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de Computadores
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senai
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas Operacionais
 
Sistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFSSistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFS
 

Andere mochten auch

Processos e threads
Processos e threadsProcessos e threads
Processos e threadsSilvino Neto
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.dannas_06
 
Tanenbaum Sistemas Operacionais Cap 01
Tanenbaum Sistemas Operacionais Cap 01Tanenbaum Sistemas Operacionais Cap 01
Tanenbaum Sistemas Operacionais Cap 01Wellington Oliveira
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraWellington Oliveira
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03thomasdacosta
 
Programação Concorrente - Aula 01
Programação Concorrente - Aula 01Programação Concorrente - Aula 01
Programação Concorrente - Aula 01thomasdacosta
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosThiago Poiani
 
Programação para dispositivos móveis com PhoneGap Cordova
Programação para dispositivos móveis com PhoneGap CordovaProgramação para dispositivos móveis com PhoneGap Cordova
Programação para dispositivos móveis com PhoneGap CordovaEvandro Júnior
 
Sistemas operacionais pronatec- prof. manoel
Sistemas operacionais   pronatec- prof. manoelSistemas operacionais   pronatec- prof. manoel
Sistemas operacionais pronatec- prof. manoelManoel Rufino Neto
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsPedro De Almeida
 
1 ana duarte_2_ana_marques_sistemas operativos
1 ana duarte_2_ana_marques_sistemas operativos1 ana duarte_2_ana_marques_sistemas operativos
1 ana duarte_2_ana_marques_sistemas operativosywriteen
 
Sistema informático parte i
Sistema informático parte iSistema informático parte i
Sistema informático parte iEurisa Silva
 
Gerência de Memória em Java - Parte II
Gerência de Memória em Java - Parte IIGerência de Memória em Java - Parte II
Gerência de Memória em Java - Parte IIHelder da Rocha
 
Sistemas operacionais 14
Sistemas operacionais 14Sistemas operacionais 14
Sistemas operacionais 14Anderson Maciel
 

Andere mochten auch (20)

Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.
 
Tanenbaum Sistemas Operacionais Cap 01
Tanenbaum Sistemas Operacionais Cap 01Tanenbaum Sistemas Operacionais Cap 01
Tanenbaum Sistemas Operacionais Cap 01
 
Java script aula 04 - objeto array
Java script   aula 04 - objeto arrayJava script   aula 04 - objeto array
Java script aula 04 - objeto array
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Java script aula 09 - JQuery
Java script   aula 09 - JQueryJava script   aula 09 - JQuery
Java script aula 09 - JQuery
 
Java script - funções
Java script - funçõesJava script - funções
Java script - funções
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03
 
Programação Concorrente - Aula 01
Programação Concorrente - Aula 01Programação Concorrente - Aula 01
Programação Concorrente - Aula 01
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e Semáforos
 
Programação para dispositivos móveis com PhoneGap Cordova
Programação para dispositivos móveis com PhoneGap CordovaProgramação para dispositivos móveis com PhoneGap Cordova
Programação para dispositivos móveis com PhoneGap Cordova
 
Sistemas operacionais pronatec- prof. manoel
Sistemas operacionais   pronatec- prof. manoelSistemas operacionais   pronatec- prof. manoel
Sistemas operacionais pronatec- prof. manoel
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
1 ana duarte_2_ana_marques_sistemas operativos
1 ana duarte_2_ana_marques_sistemas operativos1 ana duarte_2_ana_marques_sistemas operativos
1 ana duarte_2_ana_marques_sistemas operativos
 
Sistema informático parte i
Sistema informático parte iSistema informático parte i
Sistema informático parte i
 
Gerência de Memória em Java - Parte II
Gerência de Memória em Java - Parte IIGerência de Memória em Java - Parte II
Gerência de Memória em Java - Parte II
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Memoria
MemoriaMemoria
Memoria
 
Sistemas operacionais 14
Sistemas operacionais 14Sistemas operacionais 14
Sistemas operacionais 14
 

Ähnlich wie Aula 02-processos-e-threads-tanenbaum-parte-1

Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativosFrank macoo
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional Rodrigo Rodrigues
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
Apostila computacao
Apostila computacaoApostila computacao
Apostila computacaowebphotoshop
 
(ACH2044) Sistemas Operacionais - Aula 04
(ACH2044) Sistemas Operacionais - Aula 04(ACH2044) Sistemas Operacionais - Aula 04
(ACH2044) Sistemas Operacionais - Aula 04Norton Trevisan Roman
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacionalMichael Soto
 
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...rafaelov
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosCharles Fortes
 
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSilvano Oliveira
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: IntroduçãoAlexandre Duarte
 
Concorrência na Linguagem de Programação
Concorrência na Linguagem de ProgramaçãoConcorrência na Linguagem de Programação
Concorrência na Linguagem de ProgramaçãoAlexsandro Pereira
 

Ähnlich wie Aula 02-processos-e-threads-tanenbaum-parte-1 (20)

Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativos
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Apostila computacao
Apostila computacaoApostila computacao
Apostila computacao
 
S.o aula 1920
S.o aula 1920S.o aula 1920
S.o aula 1920
 
(ACH2044) Sistemas Operacionais - Aula 04
(ACH2044) Sistemas Operacionais - Aula 04(ACH2044) Sistemas Operacionais - Aula 04
(ACH2044) Sistemas Operacionais - Aula 04
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Impasses S.O
Impasses S.OImpasses S.O
Impasses S.O
 
Processamento.pptx
Processamento.pptxProcessamento.pptx
Processamento.pptx
 
Processos
ProcessosProcessos
Processos
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
 
Processos+threads.2pp
Processos+threads.2ppProcessos+threads.2pp
Processos+threads.2pp
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Curso openmp
Curso openmpCurso openmp
Curso openmp
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
 
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 
Apresentacao Aula04 So
Apresentacao Aula04 SoApresentacao Aula04 So
Apresentacao Aula04 So
 
Concorrência na Linguagem de Programação
Concorrência na Linguagem de ProgramaçãoConcorrência na Linguagem de Programação
Concorrência na Linguagem de Programação
 

Mehr von Cristiano Pires Martins

Mehr von Cristiano Pires Martins (20)

Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
Java script aula 07 - eventos
Java script   aula 07 - eventosJava script   aula 07 - eventos
Java script aula 07 - eventos
 
Java script aula 10 - angularjs
Java script   aula 10 - angularjsJava script   aula 10 - angularjs
Java script aula 10 - angularjs
 
Java script aula 08 - formulários
Java script   aula 08 - formuláriosJava script   aula 08 - formulários
Java script aula 08 - formulários
 
Aula 06 textos na web
Aula 06   textos na webAula 06   textos na web
Aula 06 textos na web
 
Aula 07 acessibilidade
Aula 07  acessibilidadeAula 07  acessibilidade
Aula 07 acessibilidade
 
Java script aula 06 - dom
Java script   aula 06 - domJava script   aula 06 - dom
Java script aula 06 - dom
 
Aula 05 layout e composição do site
Aula 05   layout e composição do siteAula 05   layout e composição do site
Aula 05 layout e composição do site
 
Aula 04 layout e composição do site
Aula 04   layout e composição do siteAula 04   layout e composição do site
Aula 04 layout e composição do site
 
Aula 02 semiótica e cores
Aula 02   semiótica e coresAula 02   semiótica e cores
Aula 02 semiótica e cores
 
Aula 01 introdução
Aula 01   introduçãoAula 01   introdução
Aula 01 introdução
 
Aula 03 esquema de cores
Aula 03   esquema de coresAula 03   esquema de cores
Aula 03 esquema de cores
 
WDI - aula 07 - css com html
WDI - aula 07 - css com htmlWDI - aula 07 - css com html
WDI - aula 07 - css com html
 
Java script aula 07 - j-query
Java script   aula 07 - j-queryJava script   aula 07 - j-query
Java script aula 07 - j-query
 
Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
OAC Aula 09 - Entrada e Saída
OAC Aula 09 - Entrada e SaídaOAC Aula 09 - Entrada e Saída
OAC Aula 09 - Entrada e Saída
 
Aula 07 - lista linear
Aula 07 - lista linearAula 07 - lista linear
Aula 07 - lista linear
 
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programasAula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
 
Aula 07-oac-processadores
Aula 07-oac-processadoresAula 07-oac-processadores
Aula 07-oac-processadores
 
Aula 06-oac-memoria-principal
Aula 06-oac-memoria-principalAula 06-oac-memoria-principal
Aula 06-oac-memoria-principal
 

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

  • 1. Cristiano  Pires  Martins Parte 1 terça-feira, 13 de março de 12
  • 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. 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. 3 terça-feira, 13 de março de 12
  • 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. 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. 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. 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. 7 terça-feira, 13 de março de 12
  • 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. 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. 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) 10 terça-feira, 13 de março de 12
  • 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 11 terça-feira, 13 de março de 12
  • 12. 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
  • 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 13 terça-feira, 13 de março de 12
  • 14. Implementação de Processos (1) Tabela de Processos ou Blocos de Controle de Processos Campos da entrada de uma tabela de processos 14 terça-feira, 13 de março de 12
  • 15. 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
  • 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; 16 terça-feira, 13 de março de 12
  • 17. Threads O 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
  • 18. 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
  • 19. O Modelo de Thread (3) Cada thread tem sua própria pilha 19 terça-feira, 13 de março de 12
  • 20. Uso de Thread (1) Um processador de texto com três threads 20 terça-feira, 13 de março de 12
  • 21. Uso de Thread (2) Um servidor web com múltiplos threads 21 terça-feira, 13 de março de 12
  • 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. 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. Comunicação Interprocesso Condições de Disputa Dois processos querem ter acesso simultaneamente à memória compartilhada 24 terça-feira, 13 de março de 12
  • 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. 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. 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 27 terça-feira, 13 de março de 12
  • 28. Regiões Críticas (2) Exclusão mútua usando regiões críticas 28 terça-feira, 13 de março de 12