SóProvas


ID
150856
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2008
Provas
Disciplina
Sistemas Operacionais
Assuntos

Alguns sistemas operacionais permitem que seus processos criem múltiplos threads de execução. Em operação normal, o que é previsto que os threads de um mesmo processo do sistema operacional compartilhem?

Alternativas
Comentários
  • "Uma Thread, às vezes chamado de processo leve (lightweight process), é uma unidade básica de ulilização de CPU; compreende um ID de thread, um controlador de programa, um conjunto de registradores e uma pilha. Compartilha com outros threads pertencentes ao mesmo processo sua seção de código, seção de dados e outros recursos do sistema operacional, tais como arquivos abertos e sinais." -- Sistemas Operacionais, Cap5 - Threads.

  • As threads são conhecidas como “processos leves” porque compartilham espaços de endereçamento (endereços de memória principal alocados) e contextos de software (PID do processo, prioridade de execução, privilégios, proprietário do processo etc).
    No entanto, cada thread tem seu próprio contexto de hardware (registradores).
  • Um  modo  de  ver  um  processo é encará-lo  como  um  meio de  agrupar recurcos  relacionados.  lJm  processo apre-
    senta  um  espaço  de  endereçamento  que contém o código e os dados  do  programa,  bem  como  outros recursos.  Esses
    recursos  podem  ser arquivos  abertos,  processos  filhos, alarmes pendentes,  tratadores  de  sinais, informação  sobre
    contabilidade  entre  outros. Pô-los  todos  juntos  na forma  de um processo  facilita  o gerenciamento desses  recursos.
    O outro  conceito  que um  processo apresenta é o thread de execução,  normalmente  abreviado apenas  para
    thread. O thread  tem  um contador de programa que mantém o controle  de  qual instrução ele deve executar  em
    seguida.  Ele tem registradores  que  contêm suas  variáveis  atuais de trabalho. Apresenta uma  pilha que  traz  a
    história  da execução,  com  uma  estrutura  para cada procedimento  chamado  mas  ainda não  retornado. Apesar
    de  um  thread  ter de executar  em algum processo,  ambos o thread e seu processo são conceitos diferentes
    e podem  ser  tratados  separadamente.  Processos  são usados  para  agrupar  recursos;  threads são as  entidades
    escalonadas  para  a execução  sobre  a CPU.
    O que  os threads  acrescentam  ao modelo de processo  é permitir que  múltiplas  execuções ocorram  no
    mesmo  ambiente  do  processo  com um  grande  grau  de  independência  uma  da outra. Ter múltiplos threads  exe-
    cutando  em  paralelo  em  um processo é análogo a múltiplos  processos executando  em  paralelo  em  um único
    computador. No primeiro caso, os  threads  compartilham  um mesmo  espaço  de endereçamento,  arquivos aber-
    tos e outros  recursos. No último, os  processos  compartilham  um  espaço  físico  de  memória, discos,  impressoras
    e recursos semelhantes. Como  os  threads  têm algumas  das propriedades  dos processos,  eles são por vezes  cha-
    mados  de  processos leves  (Iightweight  process). O termo multithread  é também  usado  para  descrever  a situação
    em que se permite  a existência  de  múltiplos  threads  no  mesmo  processo.

    Sistema Operacionais Modernos - Cap 2
  • Uma thread compartilha, com outros threads pertencentes ao mesmo processo, código, dados, arquivos abertos e sinais.

    Alternativa: A