SóProvas



Questões de Threads


ID
17125
Banca
CESPE / CEBRASPE
Órgão
TSE
Ano
2007
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue os seguintes itens acerca dos sistemas operacionais.

I Em um computador do tipo PC, mais de um sistema operacional pode ser instalado, desde que adotem um mesmo formato para os seus sistemas de arquivos. Se mais de um formato for adotado, será impossível a carga dos sistemas.

II Em um sistema de arquivos, além dos blocos que armazenam os dados dos arquivos, podem existir blocos que armazenam dados sobre as partições ou sobre outros blocos.

III O algoritmo de escalonamento de disco shortest-seek-timefirst serve todas as solicitações próximas da posição atual da cabeça de leitura e gravação antes de mover a cabeça para locais mais distantes.

IV O desempenho do algoritmo round robin no escalonamento de um processador depende do tamanho da fatia de tempo. A fatia deve ser grande, quando comparada ao tempo para a mudança de contexto.

V Os threads podem compartilhar códigos e dados. A criação, escalonamento e gerenciamento de threads não podem ser feitos por um sistema operacional, têm que ser feitos por uma camada acima do sistema operacional.

A quantidade de itens certos é igual a

Alternativas
Comentários
  • Alguém pode comentar essa questão?Quais são as verdadeiras?
  • A) Errada. É perfeitamente possível a utilização de mais de um sistema de arquivos em partições diferentes. Comumente se tem um Linux com ext3 e um Windows com NTFS, obviamente em partições distintas.

    C) Errada. É o próprio sistema operacional que implementa o controle de THREADS.
  • A = I
    C = V

    :)
  • A (I) está claramente errada como outro colega já comentou. Se fosse assim não poderíamos instalar um Linux com formatacao ext3 junto com um WinXP usando NTFS.
    A (II) é fácil de explicar pq alguns blocos tratam dos arquivos propriamente ditos e outros cuidam da maneira como foi particionada a sua mídia de armazenamento.
    A (III) está certa e vc vai poder entender se ler o artigo da Wikipedia (inglês): http://en.wikipedia.org/wiki/Shortest_seek_first
    (achei muito bit-byte essa pergunta)
    A (IV), correta, também tem explicação na Wikipedia:
    http://pt.wikipedia.org/wiki/Round-robin_(algoritmo)
    Claro que o tempo de mudança de contexto tem que ser muito menor que o da fatia que a cpu fica com o processo senão comprometeria totalmente o time-sharing.
    E a (V) está errada, pois as threads também podem ser processadas no nível do SO. Veja uma boa explicação disso, neste tutorial:
    http://www.ucb.br/prg/professores/gualeve/disciplinas/2006_1/sobsi/02_Processos.pdf

ID
27556
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2004
Provas
Disciplina
Sistemas Operacionais
Assuntos

Para resolver o problema de hierarquia de processos, foi criado o conceito "thread", no qual um processo pode efetuar várias operações concorrente ou simultaneamente, sem o consumo de espaço de endereçamento. Neste caso, o processo é dividido no número de threads sem que haja necessidade de ser criado um outro processo concorrente. Baseado nesta idéia, indique a afirmativa INCORRETA.

Alternativas
Comentários
  • o SO não tem a obrigação de fazer o escalonamento destas threads, em geral ele nem sabe que as threads existem.
  • O suporte à thread é fornecido pelo próprio sistema operacional (SO), no caso da linha de execução ao nível do núcleo, ou implementada através de uma biblioteca de uma determinada linguagem, no caso de uma User-Level Thread (ULT).

    Uma linha de execução permite que o usuário de programa, por exemplo, utilize uma funcionalidade do ambiente enquanto outras linhas de execução realizam outros cálculos e operações.
     

    A execução de threads (parcial ou totalmente simultâneas) dependerá, além do processador, do sistema operacional, pois o mesmo irá gerenciar a execução das threads de maneira semelhante à realizada com os processos.

  • a) Mudanças feitas por um thread a um recurso compartilhado do sistema serão vistas por todos os outros threads. ISSO. Note que Threads oculpam o mesmo espaço de endereçamento, diferente dos processos, onde cada um tem o seu. Cada thread tem sua própria pilha, contador de programa e conjunto de registradores ( que armazenam o contador de programa e o ponteiro de pilha - por exemplo).Uma thread pode até mesmo alterar a pilha da outra. as variáveis globais e os arquivos abertos usados pelas outras. Esse Java isso é muito comum com o uso de Threads, por isso existem algumas coleções que são sincrinizadas, isto é, não permitem anomalias de acesso concorrente.

     b) Threads podem compartilhar os recursos do processo com outros threads igualmente independentes. Sim, recursos tais como variáveis globais e descritores de arquivos abertos. Uma thread pode abrir um arquivo e outra thread ler desse arquivo.  c) Threads não podem ser escalonados pelo sistema operacional e nem rodar como entidades independentes dentro de um processo. ERRADO. Quer dizer, Nem sempre... Se a thread estiver rodando no espaço de usuário realmente o sistema operacional não enxerga a thread - cada processo tem uma tabela de threads. Nesse caso o SO enxerga apenas o processo. Porém se a thread estiver rodando  no núcleo, o SO tem uma tabela de threads e pode escalonar essas threads do mesmo processo ou de outros processos.  d) Cada thread tem seu próprio conjunto de registradores, mas todos eles compartilham o mesmo espaço de endereçamento, pois o processo é um só. Isso. A thread tem: Seu próprio conjunto de registradores Sua própria pilha Seu próprio contador de programas Seu próprio estadoAs threads compartilham Espaço de endereçamento Descritores de arquivos abertos Alarmes Variáveis globais Processos filhos Sinais e tratadores de sinais Informações de contabilidade  e) Os threads criados por um processo morrem quando esse processo pai morre. Sim.  Uma thread nada mais é que uma linha de execução intra-processo, dependente do espaço de endereçamento do processo. Se este é terminado as threads morrem também. Como já foi dito, alguns SOs nem sequer enxergam as threads, so os processos.
  • c-

    Processo - programa em execução (ativo). Programa é um conjunto de códigos (passivo) que quando carregado em memória vira processo.


    Um programa pode executar vários processos, como um editor de textos (um programa), com vários documentos distintos abertos (processos).


    Na criação de um processo, o sistema operacional o aloca criando recursos em três partes conforme

    - Contexto de software: determina limites dos recursos alocados, como memória, quantidade de arquivos abertos, prioridade etc.


    - Contexto de hardware: armazena o conteúdo dos registradores tais como pilha e o contador do programa, de programa, status etc.

     

    -Espaço de endereçamento: armazena as instruções executadas pelo processo.

     

    O sistema operacional tb cria PCB – Process Control Block- para gerenciar os contextos do processo. PCB contém:


    1- Nome e/ou número do processo


    2- Ponteiros.


    3-  Estado do processo.


    4 - Prioridade.


    5 - Registradores.


    6- Limites de memória.


    7- Listas de arquivos abertos.


    O PCB fica em área de memória de acesso exclusivo do sistema operacional.  Limita o tamanho dessa área, limita a quantidade de processos 
    que sistema operacional pode executar.

     

    Thread compartilha a mesma área do programa principal. Vantagem -economia de recursos pois não há criação de PCB. Contexto do thread é o mesmo do ao processo principal.


    Threads se diferenciam apenas nos dados que processam.


ID
56689
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Sistemas Operacionais
Assuntos

A crescente evolução da computação tem sido impulsionada pelo
melhoramento do hardware e pelo surgimento dos sistemas
operacionais. No que concerne a sistema operacional, julgue os
itens de 51 a 60.

Um processo é a unidade de trabalho na maioria dos sistemas. Embora, tradicionalmente, um processo tenha apenas uma thread de controle enquanto é executado, a maioria dos sistemas operacionais modernos admite processos com múltiplas threads. Nesse último caso, as threads compartilham o mesmo espaço de endereçamento do processo, mas cada thread tem o seu próprio conjunto de registradores.

Alternativas
Comentários
  • A thread pode compartilhar também os dados acessados.Cada thread precisa ter seu próprio conjunto de registradores. Se não for assim como faríamos para saber em que ponto a thread T1 está e em que ponto a thread T2 está? Cada thread precisa guardar seu estado para que ele seja recuperado assim que ela voltar para o processador (running).
  • Gabarito: Correto

    Ítens compartilhados por todas as threads em um processo: Espaço de endereçamento; variáveis globais; arquivos abertos; processos filhos; alarmes pendentes; sinais; tratador de sinais; informação de contabilidade.

    Ítens privativos pelas Threads: Contador de Programa; Pilha de execução; Registradores; Estado

    Fonte: Sistemas Operacionais Modernos – 2ª Edição

  • Consegui acertar a questão, mas confesso aos colegas que fiquei em dúvida com a afirmação de que "tradicionalmente, um processo tenha apenas uma thread de controle..."

    Não sabia se estava certo.

  • Gabarito Correto.

     

    Segundo Tanenbaum (com adaptações):

     

    "A primeira coluna relaciona alguns itens compartilhados por todos os threads em um processo. A segunda mostra alguns itens privativos de cada thread.

     

    Coluna 1:

    Itens por Processo: Espaço de Endereçamento, Variáveis Globais, Arquivos Abertos, Processos Filhos, Alarmes Pendentes, Sinais e Tratadores de Sinais, Informção de Contabilidade.

     

    Coluna 2:

    Itens po Thead: Contador de Programa, Registradores, Pilha, Estado."

     

    Fonte: Andrew S. Tanenbaum; Sistemas Operacionais Modernos 2ª Edição; Página 61; Figura 2.7.

     

     

     


ID
122650
Banca
ESAF
Órgão
SUSEP
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

Em relação à programação multithreading, é correto afi rmar que

Alternativas
Comentários
  • Multithread são aqueles sistemas que suportam múltiplas linhas de execução, ou ainda, repartem a utilização do processador entre várias tarefas simultaneamente.

    Os processos têm uma série de threads associadas. Tipicamente, cada processo tem um determinado espaço de endereçamento que as diferentes threads partilham. Cada thread tem o seu próprio estado de processador e a sua própria pilha.

  • Quando falamos em programação multithread, significa que o(s) processo(s) da aplicação podem ter várias linhas de execução (threads). Quando temos múltiplas threads, o processo pode responder à várias solicitações concorrentes. Há um porém neste paradigma de programação, havendo mais de um processador a aplicação realmente irá se beneficiar da programação multithread, caso contrário, será como se fosse um único processo.

  • GABARITO E

    D) no ambiente multithread cada programa pode responder a várias processos concorrentes, em um único processador. Threads


ID
142216
Banca
CESGRANRIO
Órgão
BNDES
Ano
2009
Provas
Disciplina
Sistemas Operacionais
Assuntos

Um Sistema de Informação foi desenvolvido de maneira a utilizar múltiplas linhas de controle. Dessa maneira, a cada requisição de usuário, o sistema cria uma thread para atendimento. Essa thread criada compartilha com outras threads pertencentes ao mesmo processo, que é o(a)

Alternativas
Comentários
  • Threads compartilham 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.
  • Retirado do Livro "Sistemas Operacionais com Java", do Silberschatz, 7ª edição, pág. 97:
    Uma thread "compreende um ID de thread, um contador de programa, um conjunto de registradores e uma pilha."  Como o texto fala claramente que cada thread possui individulamente cada um desses recursos, as Letras A), B), C), e E) já podem ser eliminadas.
    O texto ainda diz "Além disso, (cada thread) compartilha com outras threads pertencentes a um mesmo processo sua seção de código, seção de dados e outros recursos do sistema operacional, como arquivos abertos e sinais." indicando, portanto, a letra D) como resposta correta
  • Threads não compartilham entre si contexto de hardware. Elas compartilham contexto de software e endereçamento.
  • Sempre importante ressaltar as diferenças entre processos e threads. A primeira coluna contem os itens por processos; ja a segunda coluna contem os itens exclusivos de cada thread. Ou seja, cada thread possui seu proprio PC, registradores, sua pilha e seu estado(e esses itens não são compartilhados com as demais).Já os outros itens são compartilhados entre elas. Dizer q uma thread compartilha um arquivo aberto, significa dizer q várias threads podem acessar um mesmo arquivo. O mesmo ocorre com um espaço de endereçamento(várias threads, desde q de um mesmo processo, podem  acessar um mesmo endereço de memoria).

    ITENS POR PROCESSOS: Espaço de endereçamento; Variáveis globais; Arquivos abertos; Processos filhos;  Alarmes pendentes; Sinais e tratadores de sinais; Informação de contabilidade.      

    ITENS POR THREADS: Contador de programas; Registradores; Pilha; Estado.
  • Uma thread compartilha, com outros threads pertencentes ao mesmo processo, códigodadosarquivos abertos sinais.

    Alternativa: D


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


ID
153052
Banca
CESPE / CEBRASPE
Órgão
TJ-DFT
Ano
2008
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue os próximos itens, acerca de características, funções,
algoritmos e componentes de sistemas operacionais.

Um processo leve (thread), embora compartilhe com outros processos leves o espaço de endereçamento do processo continente, fica impossibilitado de acessar os endereços de memória dos outros processos leves.

Alternativas
Comentários
  • Linha de execução (eminglês:Thread), é uma forma de um processodividir a si mesmo em duas ou mais tarefas que podem ser executadasconcorrentemente. O suporte à thread é fornecido pelopróprio sistemaoperacional (SO), no caso da linha de execução ao nível donúcleo (em inglês:Kernel-Level Thread (KLT)), ouimplementada através de uma biblioteca de uma determinada linguagem,no caso de uma User-Level Thread (ULT).

    Um sistema baseado em linha de execução é diferente de um sistema operacional multi-tarefa tradicional, em que processos são tipicamente independentes, carregam considerável estado da informação, tem endereço de memória separado e interagem somente através de mecanismos de inter-processos de comunicação. As threads, por outro lado, compartilham o estado da informação de processos únicos, e compartilham memória e outros recursos diretamente.

  • Olá, pessoal!

    Essa questão foi anulada pela organizadora.

    Justificativa da banca: anulado por permitir diversas interpretações, em decorrência da não-especificação de os threads poderem acessar qualquer endereço de outros threads, mas somente DENTRO do processo continente.

    Bons estudos!

ID
158467
Banca
FCC
Órgão
MPE-RN
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

NÃO se trata do estado que uma thread pode assumir no sistema operacional Windows:

Alternativas
Comentários
  • Estados que uma thread pode assumir no windows:

    Ready - Thread pronta para ser executada, aguardando uma vaga no processador.

    Standby - Thread selecionada para ser executada, aguardando a troca de contexto do processador.

    Running - Thread sendo executada.

    Waiting - Thread não está pronta para ser executada, aguardando o término de alguma operação para que possa continuar, normalmente alguma operação de entrada/saída.

    Transition - Similar ao waiting, porém aguardando algum recurso do SO.

ID
159010
Banca
CESPE / CEBRASPE
Órgão
STJ
Ano
2008
Provas
Disciplina
Sistemas Operacionais
Assuntos

Com relação a sistemas operacionais e sistemas distribuídos, julgue os
seguintes itens.

Há sistemas nos quais threads podem ser suportados no nível de usuário e no nível de sistema operacional. Se os threads no nível de usuário são mapeados para os threads no nível de sistema operacional, para se obter maior concorrência na execução dos threads no nível de usuário, em vez de mapear só um thread no nível de usuário para cada thread no nível de sistema operacional, tipicamente deve-se mapear mais de um no nível de usuário para cada um no nível de sistema operacional.

Alternativas
Comentários
  • Resposta: ERRADANão existe a necessidade de se mapear mais de um nível de usuário.
  • As threads do sistema são gerenciadas no Modo Kernel, que entre outras coisas realiza a Troca de Contexto Preemptiva, e as threads do usuário são gerenciadas no Modo Usuário, em que as Trocas de Contexto são Cooperativas

  • A questão trata de modelos de multithreads. Tem-se que há 3 modelos de multithread:

    Muitos para um:  vários threads de usuário são mapeados em um único thread de kernel. Se um thread fizer uma chamada bloqueante o processo inteiro será bloqueado. Com isso a concorrência fica prejudicada.

    Um para um: cada thread de usuário é mapeado em um thread de kernel. Há uma maior concorrência que no modelo muitos para um,mas pode provocar queda de desempenho do sistema. 

    Muitos para muitos: threads de usuários são multiplexados em um número menor de threads de kernel.

    O erro da questão está em dizer que com o modelo muitos para um (mais de um para cada um) obtém maior concorrência.

    Fonte: http://www.oocities.com/whisatugu/threads.pdf
     

  • Modelo de Geração de Multithreads
     
    Modelo Muitos-Para-Um
    O modelo muitos-para-um mapeia muitos threads de nível de usuário para threads do kernel. O gerenciamento dos threads é realizado no espaço do usuárioe assim é eficiente, mas o processo inteiro ficará bloqueado. Além disso, como somente um thread pode acessar o kernel de cada vez, múltiplos threads são incapazes de executar em paralelo em multiprocessadores.[1]
     
    Modelo Um-Para-Um
    O modelo um-para-um mapeia cada thread de usuário para um thread de kernel, gera mais concorrência do que o modelo muitos-para-um. Permite a um outro thread ser executado, enquanto um thread realiza uma chamada de sistema de bloqueio, ele também permite que múltiplos threads executem em paralelo em multiprocessadores. A única desvantagem deste modelo é que a criação de um thread de usuário requer a criação do correspondente thread de kernel.[1]
     
    Modelo Muitos-Para-Muitos
    O modelo muitos-para-muitos multiplexa muitos threads de nível de usuário para um número menor ou igual de threads de kernel. O número de threads de kernel pode ser específico tanto para uma aplicação em particular quanto para uma máquina em particular. Os desenvolvedores podem criar tantos threads de usuário quantos forem necessários, e os correspondentes threads de kernel podem executar em paralelo em um multiprocessador. Além disso, quando um thread realiza uma chamada de sistema de bloqueio, o kernel pode agendar um outro thread para execução.
     
    fonte:http://pt.wikipedia.org/wiki/Thread_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)
     
    Bons Estudos!!!
    Marcelo

ID
204679
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

Acerca de características dos sistemas operacionais modernos,
julgue os itens subsequentes.

Uma thread pode estar, basicamente, em três estados diferentes: execução, bloqueado e pronto. A transição do estado de execução para o estado de bloqueio é ativada por meio dos algoritmos de escalonamento.

Alternativas
Comentários
  •  O thread vai para o estado de bloqueio quando ele precisa aguardar por algum evento, como por exemplo esperar o término de uma operação de entrada e saída (E/S).

    Logo, essa transição não depende do algoritmo de escalonamento.

  • Além do que o colega citou...

    Basicamente uma linha de execução pode assumir os seguintes estados:

    • criação. Neste estado, o processo pai está criando a thread que é levada a fila de prontos;
    • execução. Neste estado a linha de execução está usando a CPU;
    • pronto. Neste estado a linha de execução avisa a CPU que pode entrar no estado de execução e entra na fila de prontos;
    • bloqueado. Neste estado, por algum motivo, a CPU bloqueia a linha de execução, geralmente enquanto aguarda algum dispositivo de I/O;
    • término. Neste estado são desativados os contextos de hardware e a pilha é deslocada.

    Fonte wikipedia
  • Na realidade o escalonamento é feito na transição do estado de pronto para execução

  • Para uma thread ficar bloqueada, é necessário acontecer o seguinte:

    1 - Exclusão Mútua: ou um recurso está associado a um processo ou está disponível
    2 - Posse e Espera: processos que já possuem recurso podem solicitar novos recursos mantidos poroutros processos
    3 - Não Preempção: nenhum recurso pode ser retirado a força de um processo
    4 - Espera Circular: um processo espera um recurso de outro ...que espera recurso de outro....

    Não é por algoritmos de escalonamento que uma thread ou processo fica bloqueado e sim pelos 4 fatores acima.

    Bons estudos!
  • Apenas como alerta para quem lê os comentários, o comentário acima da Melissa está equivocado. As 4 condições elencadas por ela são as condições necessários para um deadlock, não para que uma thread seja bloqueada. Como já muito bem comentado acima, as condições para um thread ser bloqueada são basicamente espera por I/O ou interrupção, por exemplo, por um sleep.
  • O estados das threads estão corretos. O erro está em afirmar q "A transição do estado de execução para o estado de bloqueio é ativada por meio dos algoritmos de escalonamento", pois uma thread entra no estado bloqueado por razoes como pausas, espera por E/S, espera pela aquisição de um bloqueio, espera por uma notificação etc. E isso não depende do escalonador.

    O escalonador entra em ação para ativar uma nova thread. E isso acontece quando um dos 3 eventos a seguir ocorrer: a thread completar sua fatia de tempo, a thread bloquear a si mesma, uma thread de mais alta prioridade se tornar executavel.

    Quando o escalonador estiver pronto para ativar uma nova thread, ele verificará todas as threads q estão executáveis no momento e calculara o maior valor de prioridade de cada uma, selecionando uma daquelas em q o valor de prioridade seja igual ao calculado.


  • Parte 1: Uma thread pode estar, basicamente, em três estados diferentes: execução, bloqueado e pronto.

    Certo!

     

    Parte 2: A transição do estado de execução para o estado de bloqueio é ativada por meio dos algoritmos de escalonamento.

    Errado! O thread vai para o estado de bloqueio quando ele precisa aguardar por algum evento, não mediante um algoritmo de escalonamento. O algoritmo de escalonamento é utilizado quando o processo sai de "pronto" para "execução".

     

    Questão errada.


ID
230584
Banca
FUNCAB
Órgão
PRODAM-AM
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

Qual o significado do conceito Multithread num sistema operacional?

Alternativas
Comentários
  • O que as threads acrescentam ao modelo de processo é permitir que múltiplas execuções ocorram no mesmo ambiente de processo, com um grande grau de independência uma da outra.

    Portanto, letra e

    Tanenbaum, 3 ed, pg 60
    • a) Condição em que processos ficam bloqueados esperando por algum evento que nunca vai acontecer. Conceito de Deadlock.
    • b) Guardar dados para posterior utilização, evitando a repetição de acesso a dispositivos lentos. Conceito de buffer.
    • c) Capacidade de processar algum job assim que este chega ao sistema através da sobreposição de operações muito lentas com processamento.
    • d) Utilização de porções de memória para guardar dados que vêm de dispositivos com baixa velocidade para agilizar o processamento de algum dado. Conceito de cache.
    • e) É uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas simultaneamente.

ID
238252
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue os seguintes itens, a respeito da relação entre arquitetura de
computadores e sistemas operacionais.

A programação com o uso de múltiplas threads permite reduzir o tempo de execução de um aplicativo, no entanto, a utilização de threads somente é possível se o processador tiver um único núcleo (single-core).

Alternativas
Comentários
  • O uso de multiplas threads realmente permite reduzir o tempo de execução, visto que podem ser executadas em paralelo. O erro da questão está em dizer que somente se o processador tiver um único núcleo, o que não é verdade. Seria como se ao inves de evoluir, adicionando mais nucleos em processadores, estivessemos regredindo. Questão ERRADA.
  • O uso de multiplas threads só permite reduzir o tempo de excução se os dois requisitos abaixo forem cumpridos:

    1) O problema tratado pelo algortimo executado pelas threads deve ser paralelizavel. Ou seja deve ser possível dividir o problema em tantas partes quanto threads para haver ganho de eficiência. Se o problema só admitir solução sequencial, o uso de threads apenas reduz eficiência (devido ao overhead de sincronização entre threads).

    2) A arquitetura deve permitir a execução de mais que uma thread simultaneamente. Seja atravéz de pipeline Multithread (Ex. HiperThread da intel) ou multiplos cores (Ex. processadores Duo-core da intel)
  • A meu ver a questao esta totalmente errada. A programação com o uso de múltiplas threads não permite reduzir o tempo de execução de um aplicativo. Repare q um aplicativo(word, excel, IE) podem ter vários processos associados, e estes, várias threads. O uso de multiplas threads torna as atividades mais rápidas, pois elas compartilham muitos dos recursos de um mesmo processo. Mas não significa q o tempo de execução de um processo seja menor. Grosseiramente falando, o tempo de execução de um aplicativo vai depender do tempo q o usuario vai usa-lo. Agora, certamente, multiplas threads reduzem o tempo q um processo leva para executar uma tarefa, porque as mesmas threads, no mesmo processo, como dito, compartilham alguns dos recursos deste. E eu trago como fonte a alteração do gabarito para E da questão Q79418. Ela afirmava q "Um aplicativo pode ser instanciado em vários processos, que compartilham o mesmo código, mas cada um deles é uma atividade diferente, com seus dados e valores de entradas e saída. Por sua vez, um programa pode possuir várias threads, que compartilham a mesma área de dados, e cada uma dessas threads representa uma linha de execução de uma tarefa específica dentro do programa". 

    O gabarito foi atualizado para "E", após recursos, conforme edital divulgado pela banca e publicado no site.

    Justificativa da banca: Devido ao uso incorreto da palavra “programa” no lugar de “processo”, opta-se pela alteração do item.

    Ou seja, se a questao trocasse a palavra aplicativo por processo, ai, sim, a primeira parte da questao estaria correta.


    O outro erro: a utilização de threads somente é possível se o processador tiver um único núcleo (single-core). Mas aí nem precisa explicar.

  • Prezados,

    O comando da questão está flagrantemente errado. a tecnologia de múltiplas threads ( hiper thread , HT ) , pode e é usada amplamente em processadores com mais de um núcleo.

    Portanto a questão está errada.


  • Segundo Tanenbaum(2010,p.57),"Finalmente, os threads são úteis em sistemas com múltiplas CPUs, para os quais o paralelismo real é possível.

     

    - SISTEMAS OPERACIONAIS MODERNOS-TANENBAUM-3 EDIÇÃO-2010"

  • usada amplamente em processadores com mais de um núcleo.


ID
238261
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue os seguintes itens, a respeito da relação entre arquitetura de
computadores e sistemas operacionais.

Um aplicativo pode ser instanciado em vários processos, que compartilham o mesmo código, mas cada um deles é uma atividade diferente, com seus dados e valores de entradas e saída. Por sua vez, um programa pode possuir várias threads, que compartilham a mesma área de dados, e cada uma dessas threads representa uma linha de execução de uma tarefa específica dentro do programa.

Alternativas
Comentários
  • Olá, pessoal!

    O gabarito foi atualizado para "E", após recursos, conforme edital divulgado pela banca e publicado no site.

    Justificativa da banca: Devido ao uso incorreto da palavra “programa” no lugar de “processo”, opta-se pela alteração do item.

    Bons estudos!

  • Sem entrar em definições afrescalhadas, um processo é um programa em execução, então a resposta deveria ser certo mesmo.
  • Uma questão com tantos termos misturados era para ter sido anulada...

  • A questão não foi anulada, caso contrario estaria aqui como anulada. O erro da questão esta no primeiro paragrafo, processos não compartilham código, nem dados e nem valores de entrada e saida. Questão ERRADA

  • A meu ver a questao esta totalmente errada. A programação com o uso de múltiplas threads não permite reduzir o tempo de execução de um aplicativo, mas sim permite a um processo executar tarefas mais rapidamente. Repare q um aplicativo como o word pode ter vários processos associados, e estes, várias threads. O uso de multiplas threads torna as atividades mais rápidas, pois elas compartilham muitos dos recursos de um mesmo processo. Mas não significa q o tempo de execução de um processo seja menor(grosseiramente falando, o tempo de execução de um aplicativo vai depender do tempo q o usuario vai usa-lo). Agora, certamente, multiplas threads reduzem o tempo q um processo leva para executar uma tarefa, porque as mesmas threads, no mesmo processo, como dito, compartilham alguns dos recursos deste. E eu trago como fonte a alteração do gabarito para E da questão Q79418. Ela afirmava q "Um aplicativo pode ser instanciado em vários processos, que compartilham o mesmo código, mas cada um deles é uma atividade diferente, com seus dados e valores de entradas e saída. Por sua vez, um programa pode possuir várias threads, que compartilham a mesma área de dados, e cada uma dessas threads representa uma linha de execução de uma tarefa específica dentro do programa".  Nos comentários, informa q  "o gabarito foi atualizado para "E", após recursos, conforme edital divulgado pela banca e publicado no site".

    Justificativa da banca: Devido ao uso incorreto da palavra “programa” no lugar de “processo”, opta-se pela alteração do item.

    Ou seja, se a questao trocasse a palavra aplicativo por processo, ai, sim, a primeira parte da questao estaria correta.
    O outro erro: a utilização de threads somente é possível se o processador tiver um único núcleo (single-core). Mas aí nem precisa explicar.

  • Prezados,

    Primeiramente, um aplicativo pode até ser instanciado em várias threads, mas em apenas um processo. Por sua vez , um processo ( não um programa ) pode possuir várias threads, que compartilham a mesma área de dados.

    Portanto a questão está errada.


  • e-

    processo, e nao programa, tem threads. Processo é o programa em execução na memoria (ativo). O programa nao executado é um conj. códigos (passivo)


ID
238321
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

Em relação aos sistemas operacionais, julgue os itens subsequentes.

Quando as várias threads em um processo possuem sua linha de execução no nível de usuário, o escalonador de processos do sistema operacional trata cada thread separadamente, de forma independente do processo associado, já que o escalonador aloca o mesmo tempo ao processo em execução, independentemente de quantas threads ele possua.

Alternativas
Comentários
  •  

     o escalonador de processos do sistema operacional...
     
    Acho que o erro consiste de não haver esse escalonamento pelo SO
     
    Linha de execução ao nível do usuário

    As ULT são escalonadas pelo programador, tendo a grande vantagem de cada processo usar um algoritmo de escalonamento que melhor se adapte a situação, o sistema operacional neste tipo de thread não faz o escalonamento, em geral ele não sabe que elas existem. Neste modo o programador é responsável por criar, executar, escalonar e destruir a thread. Um exemplo prático de processo chamado P1 que contém tais threads: P1T1, P1T2 e P1T3, quando o sistema operacinal da a CPU para o processo P1 cabe a ele destinar qual thread será executada, caso esta thread use todo processo do quantum, o sistema operacional chamará outro processo, e quando o processo P1 voltar a executar, P1T1 voltará a ser executada e continuará executando até seu término ou intervenção de P1, este comportamento não afetará outros processos pois o sistema continua escalonando os processos normalmente. http://pt.wikipedia.org/wiki/Thread_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)#Escalonamento

  • Acredito que seja exatamente o que o colega João falou, o sistema operacional não sabe da existência de threads a nível de usuário, somente a nível de kernel.

    Fonte: http://homepages.dcc.ufmg.br/~humberto/unifal/aulas/so/aula16_Escalonamento2.pdf

  • user level thread - gerenciamento por meio de biblioteca de thread, a aplicação faz o escalonamento
    kernel level thread- gerenciamento feito pelo kernel por meio de uma API, aqui o escalonamento é exclusivo do S.O
  • Quando as várias threads em um processo possuem sua linha de execução no nível de usuário, o escalonador de processos do sistema operacional NÃO trata cada thread separadamente, já que o escalonador aloca o mesmo tempo ao processo em execução, independentemente de quantas threads ele possua.
  • Apenas complementando: Quem faz o escalonamento de threads é o próprio escalonador de threads e não o escalonador de processos.
  • Questão errada.

    Existem as threads de usuário e suas caracaterísticas são:

    - núcleo só conhece os processos. desconhece as threads.

    - o quantum é do processo e não existe preempção das threads

    - Núcleo trata os processos como se fossem monothread.


    Threads de núcleo:

    - nucleo conhece a existência das threads e as gerencia (quantum é da thread)

    - nucleo possui tabela de processos e de threads

  • Prezados,

    O kernel só "enxerga" threads de nível de núcleo. Essa threads tem o escalonamento feito pelo kernel. As threads de usuário não são "enxergadas" pelo kernel , quem faz o escalonamento delas é a aplicação.

    Portanto a questão está errada.


  • e-

    Em implementação de thread nivel usuario, o processador é monothread. EM nivel kernel, ha multithreading, o qual é mais rapido alternar entre threads do que entre processos


ID
260179
Banca
FCC
Órgão
TRT - 4ª REGIÃO (RS)
Ano
2011
Provas
Disciplina
Sistemas Operacionais
Assuntos

O Windows XP foi projetado para oferecer alto desempenho também a grandes ambientes multiprocessados e threads onde, fundamentais para a escalabilidade são:

Alternativas
Comentários
  • A definição de Threads está ligada ao processo de execução de diversas tarefas concorrentemente ou simultaneamente por meio das “Linhas de execução”. O processo é dividido no número de threads sem a necessidade de ser criado um outro, o processo é um só. Assim, em vez de multitarefa, teremos multithreads. A vantagem é que a multitarefa requer um outro processo e isso aumenta a complexidade e produz perda de desempenho.  Um multithreads pode ser executado em vários locais simultaneamente. Na prática, um programa pode ter a sua ação execução bloqueada enquanto estiver enviando os dados. Exemplo: Um programa que deseje imprimir um documento. A utilização de Threads melhora a perfomance do gerenciamento da fila do armazenamento de dados cache. 
  • Letra B

     

    Thread = linha de execução independente (e concorrente) dentro de um mesmo processo.

     

    -> Múltiplas threads são necessárias quando mais de uma tarefa deve ser executada concorrentemente, e é necessário compartilhar alguma estrutura de dados do processo (e.g.uma cache em um servidor de arquivos, conexões em um servidor Web; buffers internos, etc.)

     

    Através de lock e unlock, pode-se garantir que uma única thread execute um determinado código por vez.

     

    Fonte: http://www-di.inf.puc-rio.br/~endler/courses/inf1019/transp/aulas-teoricas/Cap-2-Proc-Sched.pdf


ID
273379
Banca
CESPE / CEBRASPE
Órgão
FUB
Ano
2011
Provas
Disciplina
Sistemas Operacionais
Assuntos

Acerca dos fundamentos de sistemas operacionais, julgue os itens
que se seguem.

As threads auxiliam o sistema operacional no paralelismo de atividade quando há simultaneamente múltiplas atividades em diversas aplicações.

Alternativas
Comentários
  • Sim, é uma forma mais barata de se promover paralelismo de atividades pois os processos têm endereçamentos e recursos distintos, o que torna caro ao sistema operacional realizar a troca de contexto dos processos, isto é, pegar a pilha, ponteiro de pilha e contador de programa da memória e trazer para os registradores, para executar as instruções do processo e depois, no escalonamento de um novo processo, copiar tudo isso novamente para a memória e dessa forma salvar o estado de execução desse processo.

    Já as threads compartilham esse espaço de endereçamento e são mais fáceis de multiplexar.

    De fato, nas threads executadas no espaço de usuário, o sistema operacional nem mesmo enxerga que elas existem, todo o escalonamento é relaizado pela biblioteca de threads.
  • Fiquei confuso nessa!!!

    "Threads em diversas aplicações", não teríamos uma thread para cada aplicação, ou seja , não teríamos vários processos? E caso tenhamos vários processos, os endereçamentos são exclusivos para cada um, tornando o item errado.

    Suponho que para uma mesma aplicação a questão estaria certa.

    me ajudem aí!!!!

  • Essa questão deveria ser considerada ERRADA, pois ela afirma que "As threads auxiliam o sistema operacional no paralelismo de atividade", sendo que, na verdade, não é no paralelismo, mas sim na concorrência, os quais são conceitos diferentes. No paralelismo ocorre simultaneidade, enquanto na concorrência ocorre chaveamento. A possibilidade de haver paralelismo é quando há multiplos núcleos de processamento, o que não vem ao caso. As instruções em threads são feitas de forma concorrente (chaveamento) e não simultaneamente como fala a questão.

    Um bom texto para entender melhor o assunto: https://chaosonrails.wordpress.com/2010/09/05/concorrencia-versus-paralelismo/

  • Na ótica de escalonamento em ambientes com mais processadores não é possível que múltiplos threads de um processo possam ser executados em diferentes processadores simultaneamente, porque o sistema operacional executa apenas processos e não threads. Com isso existe um limite com relação ao grau de paralelismo da aplicação, pois as threads de um mesmo processo podem ser executadas em somente um processador por vez.

  • c-

    EMm sistemas multithreading, a implementacao de thread é nivel kernel e permite que os processos, os quais sao programas em execucao, tenham acesso a recursos criados pelo SO em 3 tipos: contexto de software (limite aos recursos), de hardware (program stack, counter, registradores etc) e espaco de enderecamento (onde as instrucoes q o processo fara ficam). Uma instrucaoo do processo pode ser dividida em threads, cada thread se diferenciando pela tarefa que executa e divindindo a mesma area de dados do programa principale mesmo contexto de software


ID
315619
Banca
FCC
Órgão
TRE-RN
Ano
2011
Provas
Disciplina
Sistemas Operacionais
Assuntos

Nos sistemas operacionais, múltiplas execuções que ocorrem no mesmo ambiente do processo com um grande grau de independência uma da outra é uma característica do modelo de processo que contempla o conceito de

Alternativas
Comentários
  • Thread significa linha. Tecnicamente, um thread é um único fluxo sequencial de execução. A linguagem Java permite que seu programa execute (ou pareça estar executando) mais de uma linha simultaneamente em sistemas operacionais que permitem multithreading.
    Assim, poderemos atribuir
     um thread para uma longa sequência de cálculos, outro para uma entrada de texto e um terceiro para uma verificação ortográfica. Fonte: numaboa.com.br
  • É interessante observar que Threads podem ser :


    - implementadas no "espaço do usuário":
    como no exemplo dado pelo Rodrigo, das threads na linguagem Java, o que siginifica que é a aplicação que mantém a tabela de threads e as gerencia; o sistema operacional não sabe da existência delas, e o escalonador do sistema operacional cuida apenas do processo.


    - implementada no núcleo:
    a tabela de threads e as próprias threads são mantidas e gerenciadas pelo núcleo do sistema operacional; o escalonador de processos do núcleo cuida dos processos e das threads.


    fonte: Sistemas Operacionais Modernos, Tanenbaum, 3ª edição, capítulo 2, seções 2.2.4 e 2.2.5.



ID
320788
Banca
CESPE / CEBRASPE
Órgão
INMETRO
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

Assinale a opção que apresenta um recurso de uso exclusivo de uma thread, em um processo multithreads.

Alternativas
Comentários
  • Um processo é basicamente um programa em execução e tem seu espaço de endereçamento na memória, seus registradores, sua pilha e seu heap, o programa executável e pode ter sinais, semáforos e descritores de arquivos abertos.

    As threads, linhas de execução dentro de um processo, compartilham  os recursos do processo excerto sua pilha de execução, seu ponteiro de pilha, seu contador de programa e seu conjunto de registradores.

    Fora isso, ume thread, por exemplo, pode fechar um arquivo aberto por outra.
  • Complementando o comentário do meu amigo Renegado...

  • Caso alguém queira uma listagem, ai está a lista retirada do Tanenbaum Modern Operating Systems. Esses seriam os itenscompartilhados e exclusivos por threads.

    Per process items (compartilhados)
    Address space
    Global variables
    Open files
    Child processes
    Pending alarms
    Signals and signal handlers
    Accounting information

    Per thread items (exclusivos)
    Program counter
    Registers
    Stack
    State
  • Correta "C". Veja por que[1]:

    Itens compartilhados por todas as threads em um processo:

    - espaco de enderecamento,

    - variaveis globais,

    - arquivos abertos,

    - processos filhos,

    - alarmes pendentes,

    - sinais e rotinas de tratamento de sinal,

    - informacoes de contabilizacao;

    Itens exclusivos de cada thread:

    - contador de programa: necessário porque, como os processos, as threads podem ser suspensas e retomadas;

    - registradores: quando as threads sao suspensas, seus registradores devem ser salvos.

    - pilha: armazena parâmetros e endereços.

    - estado: assim como os processos, as threads podem estar nos estados pronto, bloqueado ou em execucao.

    Fonte:

    [1] Sistemas Operacionais: Projetjos e Implementação, Andrew S. Tanenbaum,Albert S. Woodhull.

  • As THREADs não ficam donas de recursos. Os recursos são alocados para os processos.

     

    Assim, o único item que pertence unicamente a cada thread será a sua pilha, contendo as variáveis locais e, durante o escalonamento, os valores dos registradores momento da troca de contexto.


ID
321211
Banca
CESPE / CEBRASPE
Órgão
Correios
Ano
2011
Provas
Disciplina
Sistemas Operacionais
Assuntos

Acerca dos conceitos básicos de sistemas operacionais Windows, julgue os itens subsecutivos.

No Windows, cada processo possui uma ou mais threads, cada uma delas sendo uma unidade executável despachada pelo kernel. Essas threads compartilham o estado de escalonamento, incluindo prioridade e informações de uso da CPU.

Alternativas
Comentários
  • Esse trecho para mim está incorreto: Essas threadscompartilham o estado de escalonamento, incluindo prioridade e informações de uso da CPU."
  • processos são formados por contexto de SW, contexto de HW e endereçamento de Memoria principal. o processo leve (thread) não compartilha o contexto de HW (o estado de escalonamento, incluindo prioridade e informações de uso da CPU...)

    por isso está errada.
  • Pelo meu entendimento, threads compartilham estado de escalonamento e informações de uso da CPU. Mas não compartilham prioridade, pois cada thread tem a sua prioridade.

    Não será que é isso o erro?
  • Vamos lá sem achismos. As threads não compartilham estado de escalonamento. Cada thread pode possuir um estado diferente da outra. Por isso a questão está errada.

  • Segundo o Tanenbaum, as threads compartilham a classe de prioridade (6 possibilidades), que é uma característica do processo, mas cada thread possui a sua própria prioridade (7 possibilidades). Assim, uma thread pode ter qualquer uma das 42 combinações possíveis.

    Classes de prioridade:
    • tempo real,
    • alta,
    • acima do normal,
    • normal,
    • abaixo do normal,
    • ociosa.
    Prioridade das threads:
    • tempo crítico,
    • a mais alta,
    • acima do normal,
    • normal,
    • abaixo do normal,
    • a mais baixa,
    • ociosa.

  • As threads compartilham entre si o espaço de endereçamento.

    abrass
  • Pessoal as threads são entidades escalonadas pela CPU para a execução de tarefas, só que não existe essa prioridade no uso da CPU as threads aguarda em fila a execução dos processos.
  • e-

    Estado e prioridade sao informacoes do PCB (processo control block), o que é uma estrutura que o SO criada para procoesso. Threads nao têm PCB quando aparecem, somente usam mesma área de dados do processo assim como seu contexto de software. 


ID
332710
Banca
CESPE / CEBRASPE
Órgão
Correios
Ano
2011
Provas
Disciplina
Sistemas Operacionais
Assuntos

Com relação às características e funções básicas de um sistema operacional, julgue os itens seguintes.

Em um ambiente com múltiplos threads (multithread), não é necessário haver vários processos para se implementarem aplicações concorrentes.

Alternativas
Comentários
  • Threads são linhas de execução dentro de um processo.

    Um processo tem seu endereço de memória, seus registradores, descritores de arquivos abertos e sua pilha.
     Acontece que multiplexar processos para uma CPU é caro porque a cada escalonamento do novo processo, seu estado tem que ser recuperado, isto é, seu ponteiro de pilha, seu contador de programa, seus dados para os registradores...

    Então a galera pensou em threads, que podem ser escalonadas intra-processo.

    Cada thread, dentro um processo, possui sua propria pilha, seu proprio contador de programa e seus registradores, porém como estão dentro de um mesmo espaço de endereço de memória ( o do processo), uma thread pode muito bem acessar e modificar a pilha ou outras coisas de outra thread.

    Isso não é necessariamente um problema porque threads tem um propósito mais específico que processos. Geralmente as threads trabalham juntas para se chegar à um objetivo global comum, como atender as requisições em um webserver. Para cada requisição de usuário pode ser criada uma thread.
  • Enunciado muito mal elaborado.

    "implementarem aplicações concorrentes"

    "Aplicações" é algo muito abstrato. O cara em uma prova ao ler isso fica na dúvida se a banca se refere a um processamento qualquer concorrente ou falando de programas/softwares que executam de forma concorrente.
  • Concordo com o comentário do colega acima. Qual a definição de aplicação? Se for um arquivo binário (executável), obviamente a questão está incorreta! (não há como carregar dois binários distintos com um único PID, process ID).
  • Exatamente!
    Marquei errada por causa da palavra "aplicações".
    Fica difícil... e olha que foi CESPE!
  • Pessoal. Para que tanta confusão para uma questão tão simples. A questão está corretíssima, isso, porque, o que é um ambiente multihread? É um ambiente onde há duas ou mais threads rodando dentro de um ÙNICO processo. Então, a questão ainda não pega pesado, pois ela diz: "não é necessário", realmente não é necessário haver mais de um processo. No ambiente Multithead, a aplicação concorrente -de threads- ocorre sim, porém em um único processo. Abraços e bons estudos.
  • Questão mal elaborada. Ainda que tenhamos múltiplas threads, ainda serão necessários múltiplos processos para implementar aplicações concorrentes. É possíve executar um editor de texto, uma calculadora e um browser utilizando APENAS UM processo? CLARO QUE NÃO.
    As threads operam de forma colaborativa dentro do escopo de uma aplicação, e não implementam aplicações concorrentes, como afirma a questão.
  • A principio, pensei exatamente como o Mauricio.
    Porem, para responder a questao, vc deve saber a diferença entre concorrente e simultaneo(ou paralelo).
    Aplicações concorrente significa q elas concorrem por um mesmo recurso quanto executam ao mesmo tempo. Se dois ou mais programas executam ao mesmo tempo em uma máquina com apenas um processador, logo, seus processos executam concorrentemente/competem pelo mesmo recurso. Aparentemente, elas executam em paralelo, pois podemos ter vários programas abertos ao mesmo tempo. Porem, eh pura ilusão. O processador eh chaveado milhoes de vezes em uma fração de tempo, q o usuario tem a sensacao de paralelismo.
    Já em aplicacoes paralelas(q executam simultaneamente), necessitam de um ou mais recursos para realmente(e não aparentemente) executar processos em paralelo. Aqui, os processos não competem por recursos(pelo processador), pois eles realmente executam ao mesmo tempo q o outro.
    Quando a questão afirma q em um ambiente multithread não é necessário haver vários processos para se implementarem aplicações concorrentes, ela está certa, pois as várias threads por si so já representa a concorrencia, visto q, mesmo no caso das threads, não eh possivel executa-las de forma paralela tendo apenas um processador. As threads, assim como os processos, executam de forma chaveada, concorrendo pelo uso do processador.
    Apesar das criticas dos colegas, achei uma questão muito bem elaborada, q cobra um conhecimento mais profundo sobre processos e, inclusive, as diferencas entre paralelismo e concorrencia.
  • O que gerou confusão foi exatamente a palavra APLICAÇÕES.


    Se no final do enunciado utiliza-se apenas o termo: "PARA SE IMPLEMENTAR CONCORRÊNCIA", não haveria má interpretação, ou duplo sentido.


    Aqui o Cespe está afirmando que um thread é uma aplicação. Pra mim é novidade.

  • Certinho.

    Em suma, multithreading é a associação de vários fluxos de execução a um único processo.

  • Gabarito Certo

    Ótima resposta do companheiro Lucc O !

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
347041
Banca
MOVENS
Órgão
IMEP-PA
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

Quanto aos sistemas operacionais, assinale a opção que preenche corretamente as lacunas do texto abaixo.

O ________________ tem um contador de programa que mantém o controle de qual instrução ele deve executar em seguida. Ele tem _______________ que contêm suas _____________ atuais de trabalho e apresenta uma _____________ que traz a história da execução, com uma estrutura para cada procedimento chamado, mas ainda não retornado.

Alternativas
Comentários
  • Cada Thread contém:

     

    .: PC (Contador de Programa);

    .: Registradores Específicos;

    .: Pilha;

    .: Estado.

    .

    .

    .

    At.te

    Foco na missão 


ID
425062
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Sistemas Operacionais
Assuntos

Um thread pode ceder seu tempo de processamento a outro thread de prioridade mais baixa.

Alternativas
Comentários
  • Exatamente o contrário.
    Threads de prioridade mais baixa sofrem preempção em detrimento a threads de mais alta prioridade
  • Esse item é estranho. Quando li o que eu entendi é que voluntariamente ou por alguma operação de IO, uma thread pode deixar de rodar e ceder o tempo a que tinha direito a outra thread. "Ceder" dá essa ideia de que não foi um processo involuntário e forçado, caso de uma preempção. Acho que o item poderia ser anulado.
  • Tbm achei estranho!
    Mas acho que o problema é questão da redação do enunciado.

    Imagina o enunciado desta forma, trocando "baixa" por "alta":
    "Um thread pode ceder seu tempo de processamento a outro thread de prioridade mais alta."
    Continuaria errado?

    Eu creio que sim.
    Acho que o thread não pode "ceder" seu tempo de processamento para qualquer outro thread. Esse é uma decisão do escalonador, não da thread.
    O thread pode pular fora antes do término do seu tempo de processamento (se acabou sua tarefa ou se há espera por E/S) mas quem vai assumir o processador não é competência dela.

    Algum comentário que possa esclarecer mais?
  • Dependendo do algoritmo que for usado, pode sim haver cessão de uma thread de prioridade mais alta para outra mais baixa, imagina uma situação em que a thread de prioridade mais alta ocupa o processador por um tempo muito longo , em algum momento ela terá que ceder para demais thread's .. questão questionável , uma vez que isso dependerá do algoritmo de escalonamento que não foi citado em nenhum momento.


    Bons Estudos
  • O conceito de thread eh semelhante ao de processos. Uma thread de prioridade inferior só será executada quando as de prioridade superior se encontram no estado bloqueado. Quando uma thread bloqueia, a JVM, no caso do java, escolhe uma das próximas threads de prioridade mais alta e executa-a. A suspensão da execução de uma thread é possível com vista a lançar a execução de outra de igual prioridade.
  • Porra, e thread.yield() faz o q?

  • O thread(ou processo) não tem interferência no sistema operacional sobre qual o próximo thread será escalonado para o processador. Essa é uma decisão do SO que dependente do algoritmo de escalonamento.

    A Thread pode até mesmo se colocar para dormir, como o colega Walking Nerd sugeriu, mas isso não garante que o processador vá escalonar um thread de prioridade mais baixa ou que o próxima thread terá um tempo de processamento maior porque recebeu mais tempo de processador de outra thread.

    Essa é aquela questão que por ser simples e direta, a pessoa fica achando que tem uma pegadinha...

     


ID
425065
Banca
UFBA
Órgão
UFBA
Ano
2009
Provas
Disciplina
Sistemas Operacionais
Assuntos

Um thread deamon impede o programa de terminar.

Alternativas
Comentários
  • deamon são programas carregados em memória que ficam a espera de conexões.
    Um  exemplo de deamon é o servidor de ssh do linux sshd.
  • Os daemons são programas que ficam em segundo plano, executando ações de manutenção, administração do sistema, etc.
    Por exemplo, o daemon kswapd é um dos responsáveis pelo gerenciamento de memória no Linux.
    Normalmente os daemons possuem a letra "d" no final de seus nomes.

    O item é errado porque, além de estar totalmente fora de contexto, os daemons não vão impedir os programas terminarem.
  • Uma thread do tipo deamon roda sempre como um “pano de fundo” da thread que a criou.
    Uma thread deamon termina quando a thread que a criou também terminar.
    Portanto não vai impedir que o programa termine.
  • na questão fala ENTRE, o intervalo de 15 a 20 compreende 17. Nenhuma das outras o 17 engloba, por isso D é a resposta correta


ID
442723
Banca
CESPE / CEBRASPE
Órgão
TCE-TO
Ano
2009
Provas
Disciplina
Sistemas Operacionais
Assuntos

Com relação a sistemas distribuídos, clusters e redes, assinale a opção correta.

Alternativas
Comentários
  • A) Errado, tanto as distribuiçòes Linux, quanto o Windows NT suportam threads e multiplos processos, logo são passíveis de serem utilizados em sistemas SMP.

    B) Correta. Cada Core de um SMP acessa a memória (Cache ou Principal) sem restrições (Respeitando apenas semáforos e Locks).

    C) Um sistema SMP pode rodar programas sequenciais sem problemas. Para um sistema obter MÁXIMA eficiência este sim deve ser escrito para arquiteturas paralela

    D) O Barramento de máquinas NUMA é mais complexo, visto que o acesso do processador à memória depende de onde o banco de memória esta

    E) SMP são máquinas UMA por definição
  • O multiprocessamento simétrico ou SMP (Symmetric Multi-Processing) ocorre em um sistema computacional com vários processadores com memória compartilhada sob controle de um único sistema operacional. Em contraste o multiprocessamento assimétrico emprega sistemas diferentes.

    O multiprocessamento simétrico oferece um aumento linear na capacidade de processamento a cada processador adicionado. Não há necessariamente um hardware que controle este recurso, cabe ao próprio sistema operacional suportá-lo.

    Este método também é chamado de "processamento paralelo".


    Sistemas multiprocessados podem ser basicamente de dois tipos: SMP e NUMA.

    • Multiprocessamento simétrico (SMP): os processadores compartilham a mesma memória, embora possam ter caches separadas. O sistema operacional deve estar preparado para trabalhar com coerência de caches e, principalmente, evitar condições de corrida na memória principal.
    • Acesso não uniforme à memória (NUMA): a cada processador é associado um banco de memória. Nesse caso, o sistema operacional trata cada banco separadamente, pois cada banco tem um custo de acesso diferente, dependendo de qual o processador a que está associado e onde está sendo executado o processo que tenta acessar a memória.


    FONTE: WIKIpedia

  • multiprocessamento simétrico ou SMP (Symmetric Multi-Processing) ocorre em um sistema computacional com vários processadores com memória compartilhada sob controle de um únicosistema operacional. Em contraste o multiprocessamento assimétrico emprega sistemas diferentes.

    O multiprocessamento simétrico oferece um aumento linear na capacidade de processamento a cada processador adicionado. Não há necessariamente um hardware que controle este recurso, cabe ao próprio sistema operacional suportá-lo.

  • Um sistema multiprocessador simétrico (SMP) é na tecnologia da informação, uma arquitetura multi-processador, tem na qual dois ou mais processadores idênticos um espaço de endereçamento comum. Isto significa que cada processador com o endereço (físico) mesmo a célula de memória mesmo ou mesmo registo periférica tratadas. A maioria dos sistemas com vários processadores tornaram-se uma arquitetura SMP.

ID
459355
Banca
FCC
Órgão
INFRAERO
Ano
2011
Provas
Disciplina
Sistemas Operacionais
Assuntos

Sobre sistemas operacionais, considere:

I. No kernel 2.6 do Linux, o escalonador possui 64 níveis de prioridade. Sendo 0 a menor prioridade, as prioridades de 0 a 32 são para processos de tempo real e, de 33 a 63, para os demais processos de usuário.

II. No Linux, as operações READ são síncronas e bloqueantes, pois existe a suposição de que o processo que executou a operação necessita dos dados para continuar, o que confere às operações de leitura maior prioridade em relação as operações de escrita.

III. Na família Windows NT, o escalonador utiliza múltiplas filas e os processos interativos (I/O bound) possuem prioridade sobre os CPU bound. O escalonamento é baseado em prioridades, no qual cada thread possui uma prioridade, que varia de 0 a 31, onde 0 é a menor prioridade.

IV. No Windows, independentemente de haver um ou vários processadores, existirá apenas uma fila de processos aptos; entretanto, a existência de múltiplos processadores permitirá o paralelismo físico na execução das threads.

É correto o que consta em

Alternativas
Comentários
  • I) No Kernel 2.6 há 140 níveis de prioridade, quanto menor o valor maior a prioridade:
    1-100 RT Prios
    101-140 User Task Prios
  • O Linux utiliza um sistema de prioridades, onde um processo que possui prioridade maior tem precedência sobre um de prioridade menor para obter o processador. A identificação da prioridade de um processo pode ser estática ou dinâmica e varia de 1, a maior prioridade, a 139, a menor. Os números 1 a 99 são atribuídos a processos de tempo real e 100 a 139 são atribuídos a processos tradicionais (interativos e segundo plano).

    fonte: http://pt.wikipedia.org/wiki/Linux_%28n%C3%BAcleo%29 (NÃO  confiável !!!!! Erro!)
  • Dadas as opções, o item II fica certo (não tem a opção de apenas III e IV corretos), mas a rigor, ele está errado. 

    Primeiro ele diz que "No Linux as operações READ são síncronas e bloqueantes", mas desde o início do kernel 2.6 existe a opção das operações assíncronas não-bloqueantes. Apesar de aquelas serem o mais comum, essas existem e são usadas nos casos em que são mais vantajosas.

    Segundo ele diz que as operações de leitura tem maior prioridade em relação às de escrita. Isso é verdade para o escalonador Deadline (que não é e nunca foi o usado como padrão).  O Anticipatory I/O Scheduler, que era o padrão, por default também priorizava leituras, mas através de parâmetros, era possível priorizar escritas. Fato é que ele não é o padrão desde o kernel 2.6.18 e na verdade, já foi removido. Aí vem o atual I/O scheduler, CFQ, que prioriza as operações síncronas sobre as assíncronas, não necessariamente READS sobre WRITES, mas como normalmente, READS são síncronos, se criou essa idéia que READS têm maior prioridade.

  • Apenas o item I está errado!

    "O escalonador possui 140 níveis de prioridade (quanto menor o número, maior é a prioridade). Prioridades de 1 a 100 são para processos de tempo 
    real; de 101 a 140 para os demais processos de usuário (interativos ou não interativos)."

    Fonte: http://www.inf.ufes.br/~zegonc/material/Sistemas%20Operacionais/Outros%20slides/SchedulerLinuxWindows.pdf
  • Como a III e a IV podem estar ambas corretas?
    Na III diz-se, "Na família Windows NT, o escalonador utiliza múltiplas filas";
    Na IV diz-se, "
    No Windows ... existirá apenas uma fila de processos aptos";
    O Windows NT tb é windows, como pode ter múltiplas e apenas uma fila ao mesmo tempo?!
  • A I) e III) deveriam estar erradas pois dizem que o 0 é um processo de menor prioridade, onde na verdade é um processo de maior prioridade.
    Essa questão foi anulada ?

  • Aqui tem informações para responder a essa questão: http://www.inf.pucrs.br/~ramos/sop_escwinlin.pdf

  • Letra D

     

    Fonte: Sistemas operacionais : programação concorrente com pthreads
    EDIPUCRS - Celso Maciel da Costa
    Págs. 73 a 75

     

    https://books.google.com.br/books?id=KOdf-52KERMC&pg=PA73&lpg=PA73&dq=140+n%C3%ADveis+de+escalonamento+linux&source=bl&ots=QXIaDp7fZZ&sig=C3V_1PxcMjdSMgTkH12afRLS8JI&hl=pt-BR&sa=X&ved=0ahUKEwjnkfOtvaPbAhVGgJAKHe1zDrAQ6AEITDAG#v=onepage&q=140%20n%C3%ADveis%20de%20escalonamento%20linux&f=false


ID
463357
Banca
CESPE / CEBRASPE
Órgão
HEMOBRÁS
Ano
2008
Provas
Disciplina
Sistemas Operacionais
Assuntos

Um sistema operacional (SO) moderno possui diversas
características que o distinguem de um sistema operacional dos
computadores de primeira geração. Acerca das características dos
sistemas operacionais modernos, julgue os itens subseqüentes.

Em um sistema operacional de tempo real, o conceito de multithread difere de um sistema operacional de rede porque, neste último, a thread não tem prioridade de execução.

Alternativas
Comentários
  • Multithreading é a capacidade que o sistema  operacional possui de executar várias threads simultaneamente sem que uma interfira na outra. Estas threads compartilham os recursos do processo, mas são capazes de ser executadas de forma independente.

    Leia mais em: http://www.tecmundo.com.br/aumentar-desempenho/2841-o-que-sao-multi-e-hyper-threading-.htm#ixzz2ghFscgX0

    Gabarito : ERRADO
  • e-

    Um sistema real time se difere de multithread por nao usar o conceito de time slice. Neste tipo de escalonamento, o processo tem prioridade sobre os outros; necessita saber antes todos os recursos q vai alocar e so é executado quando todas as condicoes forem preenchidas, garantindo que o processo seja executado com sucesso do inicio ao fim, sem ficar preso em outros estados e.g.: executando-pronto -> interrupção. executando-espera->operacao de I/O. etc.


ID
616879
Banca
FCC
Órgão
MPE-SE
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

Os serviços do tipo gerenciamento de memória, de threads, de comunicação entre processos e do tipo que promovem segurança e robustez são fornecidos no .NET Framework pelo seu componente

Alternativas
Comentários
  • c-

    O Common Language Runtime gerencia memória, execução de threads, código e verificação de sua segurança, compilação e outros serviços do sistema. Esses recursos são intrínsecos ao código gerenciado, executado no Common Language Runtime.

     

    https://docs.microsoft.com/pt-br/dotnet/framework/get-started/overview


ID
645163
Banca
FCC
Órgão
TJ-PE
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

As threads de usuário são admitidas acima do kernel e gerenciadas sem o suporte do kernel, enquanto as threads de kernel são admitidas e gerenciadas

Alternativas
Comentários
  • diretamente pelo sistema operacional.
  • threads de kernel são gerenciada apenas pelo SO.
  • c-

    O SO deve administrar o acesso à memoria, garantindo que todos os processos sejam executados com a devida prioridade de cada 1. Threads sao subdivisoes dos processos, comprtilhando a mesma area da memoria com o processo recebendo dados diferentes para processamento mesmo estando na mesma area


ID
701596
Banca
FCC
Órgão
TRE-SP
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

Nos conceitos de ciência da computação, um processo é um módulo executável que pode conter threads. Um conceito importante sobre threads que estão contidas no mesmo processo é que

Alternativas
Comentários
  • a) podem compartilhar a memória do processo. Correto, há uma heap compartilhada para as threads de um processo
    b) evitam que processos concorrentes acessem recursos do processo principal. Errado, á idéia de thread é exatamente o contrário (processos concorrentes acessarem recursos compartilhados)
    c) acessam a memória estática ao contrário de processos convencionais. Errado, Essa assertiva esta sem pé nem cabeça :)
    d) controlam o acesso da memória dinâmica (heap) dos processos externos. Errado, compartilha a heap com as outras threads do processo. Processos externos só podem compartilhar áreas via chamadas explicitas a funções do SO
    e) possuem proteção contra problemas comuns de processos, como vazamento e acessos inválidos da memória. Errado o SO (Criação e manutenção da tabela de páginas) e a CPU (Mapeamento memória virtual / Memória Física via tabela de páginas) é quem são responsáveis por isso
  • a-

    Thread é o conceito de subprocesso,porem usa a mesma area da mermoria do que o processo original. Principal vantagem é economia de recursos porque nao cria PCB(process control block) porque o contexto é o mesmo que o do processo. Um processo pode ter varios threads dividindo o mesmo espaço, diferenciando somente os dados processados por eles. 


ID
774001
Banca
UFLA
Órgão
UFLA
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

Analise as seguintes proposições.

I. Uma arquitetura SMP (Symmetric Multiprocessor) não pode executar simultaneamente várias threads.

II. A criação e a troca de contexto de threads são mais rápidas do que a criação e troca de contexto de processos.

III. A utilização de concorrência em um programa permite a redução do tempo total de execução de uma aplicação.

IV. O uso de multithreads em uma aplicação interativa permite que um programa continue funcionando mesmo que parte dele esteja realizando uma operação demorada.

Assinale a alternativa CORRETA.


Alternativas
Comentários
  • "Outra técnica que vem sendo bem aceita para o aumento de desempenho é o uso de múltiplos núcleos CMPs - Chip Multiprocessor. Se existem vários núcleos em um porcessador, ele pode executar simultaneamente tatas threads quantos núcleos existirem. Isso significa que em um processador de 4 núcleos, é possível que existam 4 threads sendo executadas simultaneamente, e ainda, os núcleos podem ter sido implementados com superescalaridade e SMT, gerando um ambiente ainda mais favorável ao uso de paralelismo mas com um aumento nas áreas dos CMPs. Os processadores com múltiplos núcleos que supotam múltiplas threads são conhecidos como CMT ou Cip Multithreading"

     

    Fonte: http://www.ic.unicamp.br/~ducatte/mo401/1s2008/T2/079781-t2.pdf

  • I = Lembrar que SMP é um MULTIPROCESSADOR (FORTEMENTE ACOPLADO) ou seja ele executa e muito THREAD.

    GABARITO B


ID
802924
Banca
CESPE / CEBRASPE
Órgão
INMETRO
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

Considerando que os sistemas operacionais modernos separam os conceitos de processos e threads, julgue os itens que se seguem.

I O thread define um fluxo não sequencial de execução dentro de um processo.
II O processo define o espaço de endereçamento e os atributos gerais do processo.
III O thread é ligado a vários processos.
IV Um processo pode ter múltiplos threads, mas estes não caracterizam uma unidade de escalonamento.
V Com threads, os processos se convertem em estáticos e os threads são as entidades dinâmicas.

Estão certos apenas os itens

Alternativas
Comentários
  • GAB D

    I - Thread é um fluxo de execução sequencial

    III - Um processo pode possuir várias threads, não o contrário

    IV - Thread é uma unidade de escalonamento


ID
802936
Banca
CESPE / CEBRASPE
Órgão
INMETRO
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

A respeito de threads e sua implementação nos sistemas operacionais Linux e Windows, julgue os itens a seguir.

I O Linux considera todo contexto de execução, seja um thread ou processo, como uma tarefa ou task.

II Nos sistemas operacionais Windows, os threads são suportados desde a plataforma de 32 bits implementada no Windows NT 3.1.

III No Linux, os threads são criados usando-se um método não recomendado pelo padrão POSIX: o fork.

IV Nos sistemas operacionais Windows com suporte a threads, quando um processo é criado, um thread conhecido como thread primário é inserido. A relação entre o thread primário e os outros threads é hierárquica, pois a terminação do thread primário finaliza o processo.

V Quando um processo de Linux é clonado para criar um novo thread, o kernel cria uma nova cópia da estrutura interna de dados, usada para armazenar os privilégios de segurança da tarefa.

Estão certos apenas os itens

Alternativas

ID
812977
Banca
AOCP
Órgão
TCE-PA
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

Sobre Thread e Multithread, assinale a alternativa correta.

Alternativas
Comentários
  • Não vi diferenças entre a D e a E.
    Alguem ajuda?

  • Letra D - Retrata a União onde não existe no processamento.

    Correta letra E

  • Creio que a D seja o conceito de multiprogramação.

  • e-

    processadores com multithreading executam processos em paralelo no kern do processador. Isso resulta em maior aproveitamento do processamento de um CPU e respostas mais rapidas do sistema como 1 todo, o qual passa a poder executar tarefas em paralelo.


ID
837337
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

Em relação aos conceitos, arquiteturas e comandos básicos dos principais sistemas operacionais, julgue os itens subsequentes.

Atualmente, muitos sistemas operacionais dão suporte ao conceito de thread. O que os threads acrescentam ao modelo de processo é permitir que múltiplas execuções ocorram no mesmo ambiente do processo, com um grau de independência uma da outra.

Alternativas
Comentários
  • Gabarito está C.

     

    Marquei E pelo "independência", mas, realmente, acredito que esteja correta.

  • Gabarito Certo

    Thread é um pequeno programa que trabalha como um subsistema, sendo uma forma de um processo se autodividir em duas ou mais tarefas. É o termo em inglês para Linha ou Encadeamento de Execução. Essas tarefas múltiplas podem ser executadas simultaneamente para rodar mais rápido do que um programa em um único bloco ou praticamente juntas, mas que são tão rápidas que parecem estar trabalhando em conjunto ao mesmo tempo.

    Os diversos threads que existem em um programa podem trocar dados e informações entre si e compartilhar os mesmos recursos do sistema, incluindo o mesmo espaço de memória. Assim, um usuário pode utilizar uma funcionalidade do sistema enquanto outras linhas de execução estão trabalhando e realizando outros cálculos e operações. É como se um usuário virtual estivesse trabalhando de forma oculta no mesmo computador que você ao mesmo tempo.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • c-

    Multithreading é possivel em SO com implementacao do thread em nivel kernel, possibilitando que o processo compartilhe seu contexto de software e espaço de endereçamento com seus threads individuais, os quais se diferenciam pelas instrucoes que cada 1 executa


ID
869515
Banca
VUNESP
Órgão
TJ-SP
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

Considere as seguintes afirmações sobre Threads.

I. É uma forma de um processo se dividir em tarefas que podem ser executadas concorrentemente.

II. Os sistemas que suportam múltiplas threads são chamados de multithread.

III. Em hardwares com múltiplas CPUs (multi-core), as threads podem ser processadas de forma simultânea.

Sobre as afirmações, está correto o contido em

Alternativas
Comentários
  • e-

    Concorrencia de processos a CPU é parte de sistemas multiprogramados. Escalonamento é a decisao do SO em decidir qual processo ganha CPU em dado momento. O objetivo do escalonamento é justiça, processos parecidos com criterio parecido e impedir starvation, um processo de baixa prioridade que nunca chega a vez. Outro objetivo é manter todas as partes do sistema o mais ocupado o possivel - dispositivos I/O devem ficar parados o menos tempo possivel paraprocessamento ser eficiente. Thread é um subprocesso sem PCB (process control block) e com mesma area de dados do processo.

  • Gabarito E

    Linha ou Encadeamento de execução (em inglês: Thread), é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrencialmente. O suporte à thread é fornecido pelo próprio sistema operacional no caso da linha de execução ao nível do núcleo (em inglês: Kernel-Level Thread (KLT)), ou implementada através de uma biblioteca de uma determinada linguagem, no caso de uma User-Level Thread (ULT). Uma thread permite, por exemplo, que o usuário de um programa utilize uma funcionalidade do ambiente enquanto outras linhas de execução realizam outros cálculos e operações.

    Em hardwares equipados com uma única CPU, cada thread é processada de forma aparentemente simultânea, pois a mudança entre uma thread e outra é feita de forma tão rápida que para o utilizador, isso está acontecendo paralelamente. Em hardwares com múltiplos CPUs ou multi-cores, as threads são realizadas realmente de forma simultânea.

    Os sistemas que suportam uma única thread (em real execução) são chamados de monothread enquanto que os sistemas que suportam múltiplas threads são chamados de multithread.

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
885055
Banca
CESPE / CEBRASPE
Órgão
ANP
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

Acerca de sistemas operacionais, julgue os itens a seguir.

Supondo que somente uma CPU esteja disponível e cinco processos estejam no estado pronto, os mecanismos responsáveis por gerenciar a utilização da CPU são as threads.

Alternativas
Comentários
  • Threads são as entidades escalonadas para a execução sobre a CPU.
    Se somente uma CPU se encontrar disponível, deverá ser feita uma escolha de qual processo executará em seguida. A parte do sistema operacional que faz a escolha á chamada de escalonador, e o algoritmo que ele usa á o algoritmo de escalonamento.

    Fonte: TANENBAUM, Andrew S.; Sistemas Operacionais Modernos, Prentice Hall Brasil, 2ª Edição, 2003.
  • Lembrar também que é somente a CPU que coloca um processo no estado de Pronto, consequentemente é ela que tira desse estado. 

    Bons estudos.
  • Escalonamento: "Decisão sobre quando e por quanto tempo cada processo deve executar" (Tanenbaum)

    .

    At.te

    Foco na missão ❢

  • e-

    Escalonamento - decisao do SO em decidir qual processo tera acesso a CPU em dado momento, uma caracteristica de multiprogramação onde ha varios processos concorrentes ao acesso a CPU.


ID
889543
Banca
Aeronáutica
Órgão
CIAAR
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

Sobre threads em Sistemas Operacionais, assinale a alternativa incorreta.

Alternativas
Comentários
  • Essa questão pede pra marcar a alternativa INCORRETA. Não entendi porque é a letra "d". No livro do Tanenbaum, Sistemas Operacionais Modernos, 3ª edição, página 61, consta:
    "Assim como em processos tradicionais (isto é, um processo com apenas um thread), um thread pode estar em um dos vários estados: em execuçãobloqueadopronto ou finalizado. Um thread em execução detém a CPU e está ativo. Um thread bloqueado está esperando por algum evento que o desbloqueie. Por exemplo, quando um thread realiza uma chamada ao sistema para ler a partir do teclado...Um thread pode bloquear esperando que algum evento externo aconteça ou que algum outro thread o desbloqueie." 
  • Pessoal, o erro da letra D é o PODE:

    Quando um thread deve esperar por um evento ..., pode entrar no estado de bloqueado. Na verdade, quando um thread espera por um evento, ele, necessáriamente, estará bloqueado (sem exceção!).

    Espero ter esclarecido. Bons estudos!
  • Esse Estado adormecido da letra C... nunca tinha visto essa expressão. Existe mesmo esse estado?

  • Então Rita, mas no Tanenbaum, ele diz que a Thread PODE bloquear(esse bloqueio deve-se a algum motivo). Na alternativa D, que é a incorreta, é dito que quando a thread DEVE esperar por um evento, ela PODE bloquear. Na verdade, caso esteja em espera, a thread DEVE estar no estado bloqueada até receber a resposta do evento aguardado.

    Para estar correta, deveríamos trocar a palavra PODE por DEVE, como descrito pelo amigo acima do seu comentário.

    =)


ID
960010
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

A respeito do compartilhamento de recursos entre sistemas Windows e Linux e protocolos e serviços de rede usados nesses dois sistemas, julgue os itens subsequentes:


A decisão de se instalar um servidor Apache no modo MPM-prefork ou no modo MPM-worker depende da carga pretendida para esse servidor. No primeiro caso, o servidor Apache será formado por vários processos, um processo pai, que escuta as portas de conexão e os processos filhos, um para tratar cada conexão que chegar a esse servidor. No segundo caso, os processos filhos do servidor Apache habilitam várias threads para ampliar a quantidade de conexões simultâneas.

Alternativas
Comentários
  • Prefork - Utiliza vários processos filhos com apenas 1 thread (recomendado para bibliotecas que não são "thread safe")

    Worker - Utiliza vários processos filhos com várias threads (recomendado para bibliotecas que são "thread safe". Gasta menos memória que o Prefork)

    Fonte: http://goo.gl/K4xm4x



ID
966196
Banca
Marinha
Órgão
Quadro Técnico
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

No sistema Linux, quando a chamada de sistema clone( ) é invocada, no caso da criação de THREADS, ela recebe um conjunto de flags que determina o nível de compartilhamento que deve ocorrer entre as tarefas pai e filha. Qual das opções relaciona corretamente os flags com o seu significado?

Alternativas
Comentários
  • CLONE_FS - informações do sistema de arquivos são compartilhadas.

    CLONE_VM - o mesmo espaço de memória é compartilhado.

    CLONE_SIGHAND - manipuladores de sinais são compartilhados.

    CLONE_FILES - o conjunto de arquivos abertos é compartilhado.



ID
998197
Banca
FUNCAB
Órgão
DETRAN-PB
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

No multiprocessamento, um programa pode ser dividido em partes independentes que são executadas separadamente, em vár ios processadores. Essas partes são conhecidas como:

Alternativas
Comentários
  • Thread, ou linha de execução em português, é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas simultaneamente. O suporte à thread é fornecido pelo próprio sistema operacional (SO), no caso da Kernel-Level Thread (KLT), ou implementada através de uma biblioteca de uma determinada linguagem, no caso de uma User-Level Thread (ULT). 

    Resposta: b
    Fonte: https://br.answers.yahoo.com/question/index?qid=20080202033246AASvj0g
  • Thread--> dividir tarefas


ID
1055332
Banca
CESPE / CEBRASPE
Órgão
STF
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

No que se refere aos sistemas operacionais, julgue os itens subsequentes.

No contexto do sistema operacional, processo é uma abstração que reúne uma série de atributos, entre os quais estão o espaço de endereçamento, as permissões de acesso, as quotas e o fluxo de execução. Fluxo de execução é uma thread e multithreading é a associação de vários fluxos de execução a um único processo.

Alternativas
Comentários
  • Vamos lá... um processo é um programa em execução, enquanto uma thread é uma unidade básica de utilização da CPU. Uma thread também é definida como um fluxo de controle dentro de um processo.

    Sei que pode parecer um tanto abstrato, pra mim também é, mas tive um entendimento melhor ao ler Silberschatz (fundamentos de S.O. 8º edição, capitulos 3 e 4).


ID
1055335
Banca
CESPE / CEBRASPE
Órgão
STF
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

No que se refere aos sistemas operacionais, julgue os itens subsequentes.

No multiprocessamento, há chaveamento entre dois processos, assim como entre dois threads no mesmo processo. Este segundo caso de chaveamento é mais rápido que o primeiro e sua MMU (Memory Management Unit) não é afetada.

Alternativas
Comentários
  • Alguém pode explicar porque esta certa?!

  • Threads do mesmo processo compartilham a memória não necessitando haver modificações na MMU. Processos não compartilham, mas sim disputam, na troca de processos, o novo processo precisaria ocupar espaço na memória utilizando o MMU.

  • Essa questão é um pouco maldosa, tentarei explicar melhor:

    Silberschatz explica que os processos podem ser de dois tipos; cooperativos ou independentes. Os cooperativos trocam informações entre eles, ou melhor, sua execução pode afetar outros processos, enquanto os independentes trabalham isoladamente.

    Há duas formas para os processos cooperativos "trocarem informações"; 1º. compartilhamento de memória ou 2º. transmissão de mensagens. Para mais informações leiam o livro dele (muito massa) de fundamentos de sistemas operacionais.

    Fiquei um pouco incerto ao ler a questão porque sistemas operacionais com suporte ao multiprocessamento não necessariamente trabalham com processos cooperativos. Mas isso foi um detalhe que tive que desconsiderar porque o restante da questão está OK.

    Essa é uma das várias nuances ao fazer questões de concursos.

  • na troca de contexto de procesos a TLB da MMU precisa fazer trocas de paginas para novos endereços virtuais do outro processo, assim os mapeamentos da TLB sao todos invalidados e esvaziados. em troca de contexto de threads , a MMU  e a TLB permanecem inallterados, pois o espaço de endereçamento eh o mesmo! 


ID
1089871
Banca
Aeronáutica
Órgão
CIAAR
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

“Servem para imitar a funcionalidade dos threads de núcleo – porém com melhor desempenho e maior flexibilidade – em geral associados aos pacotes de threads de usuário.” A afirmativa anterior refere-se a

Alternativas
Comentários
  • Ativações do Escalonador

    Objetivo -> imitar as funcionalidades dos threads em modo kernel.

    Evitar transações entre kernel->usuário desnecessárias.

    O modo kernel cria processadores virtuais para cada thread.

    Problema -> Baseia se fundamentalmente nos upcall (  o modo kernel chama procedimentos no espaço do usuário).

  • A funcionalidade upcall do kernel Linux permite que um módulo do kernel para invocar uma função no espaço do usuário.É possível iniciar um programa no espaço do usuário, e dar-lhe alguns argumentos de linha de comando, bem como definir variáveis ​​de ambiente.


    Thread), é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrencialmente. O suporte à thread é fornecido pelo próprio sistema operacional, no caso da linha de execução ao nível do núcleo (em inglês: Kernel-Level Thread (KLT)), ou implementada através de uma biblioteca de uma determinada linguagem, no caso de uma User-Level Thread (ULT).



    Threads Pop-Up: Quando uma mensagem chega, é processada por outro thread

  • Gabarito: D

    "A meta do trabalho da ativação pelo escalonador é imitar a funcionalidade dos threads de núcleo..."

    FONTE: Tanenbaum


ID
1092358
Banca
CESPE / CEBRASPE
Órgão
INPE
Ano
2008
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue os itens seguintes, acerca de arquiteturas e objetos de software comumente empregados em sistemas operacionais de tempo real.

Em um sistema operacional de tempo real de múltiplos processos e múltiplos threads, não é possível fazer uso de código reentrante

Alternativas
Comentários
  • Código reentrante refere-se a qualidade de uma sub-rotina de ser executada concorrentemente de forma segura. Isto é, a subrotina pode ser invocada enquanto está em execução.

    Fonte: https://pt.wikipedia.org/wiki/Reentrância

  • Rotinas do Sistema Operacional precisam ser reentrantes para permitir que vários processadores executem o mesmo código do S.O simultaneamente; (Stallings)

    .

    Att,

    Foco na missão


ID
1092367
Banca
CESPE / CEBRASPE
Órgão
INPE
Ano
2008
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue os itens seguintes, acerca de arquiteturas e objetos de software comumente empregados em sistemas operacionais de tempo real.

Semáforos são objetos de controle de acesso de recursos compartilhados em que apenas uma thread pode ter acesso por vez.

Alternativas
Comentários
  • O que há de errado na questão?

  • O que há de errado na questão?

  • Não é acesso de recurso e sim endereço de memória. Em outras palavras, o semáfaro evita entrar em regiões críticas (endereço de memória compartilhada) para não haver: (i) problemas de sincronização; e (ii) deadlock.

  • correto Geraldo, eles evitam o acesso a uma regiao de memoria, e nao a "recursos", como foi afirmado

  • Acredito que um dos erros está em afirmar que a Thread acessa o recurso. Thread não enxerga o recurso. Quem solicita o recurso, para o SO, é o processo.

  • Semáforos podem ser utilizados pra qualquer tipo de recurso que seja compartilhado, como, por exemplo, uma impressora. Concordo com o Rafael Costa, pois os recursos são alocados para os processos e não para as threads.

  • ERRADO

    Os semáforos podem ser utilizados por mais de uma Thread/Processo. De acordo com Tanenbaum, existem os chamados semáforos binários:

    Semáforos que são inicializados para 1 e usados por dois ou mais processos para assegurar que apenas um deles consiga entrar em sua região crítica de cada vez .

    Lembrando que são os Monitores que gerenciam a exclusão mútua.

    Acredito que essa seja a explicação.


ID
1096075
Banca
CAIP-IMES
Órgão
Câmara Municipal de São Caetano do Sul - SP
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

Dentre os diversos mecanismos empregados pelos sistemas operacionais modernos, destaca-se uma ferramenta de sincronização, denominada ________________, que corresponde à uma variável inteira que, além da inicialização, só é acessada através de duas operações-padrão: P e V. As modificações no valor inteiro nas operações P e V devem ser executadas de forma indivisível. Ou seja, quando um thread modifica o valor da variável inteira, nenhum outro thread pode modificar simultaneamente este valor. Este mecanismo pode ser usado para controlar o acesso à um determinado recurso em quantidade limitada (finita). A variável inteira é inicializada com o número de recursos disponíveis. Cada thread que desejar usar um recurso executaria uma operação P, decrementando assim a contagem. Quando um thread libera um recurso, ele realiza uma operação V, incrementando a contagem. Quando a contagem estiver com o valor zero, todos os recursos estarão sendo utilizados.

Alternativas
Comentários
  • Semáforo é uma variável especial protegida (ou tipo abstrato de dados) que tem como função o controle de acesso a recursos compartilhados (por exemplo, um espaço de armazenamento) num ambiente multitarefa. 

  • Semáforo:

    .: Mecanismo de sincronização;

    .: Implementa a exclusão mútua;

    .: Variável inteira;

    .: Não negativa;

    .: Instruções indivisíveis: Up (V) e Down (P);

    .

    At.te

    Foco na missão ❢

     


ID
1122025
Banca
FCC
Órgão
SABESP
Ano
2014
Provas
Disciplina
Sistemas Operacionais
Assuntos

Quando um computador é multiprogramado, ele muitas vezes tem múltiplos processos ou threads que competem pela CPU ao mesmo tempo. Essa situação ocorre sempre que dois ou mais processos estão simultaneamente no estado pronto. Se uma CPU se encontrar disponível, deverá ser feita uma escolha de qual processo executará em seguida. A parte do sistema operacional que faz essa escolha é chamada

Alternativas
Comentários
  • se chama escalonador

  • É o escalonador de processos.


    três tipos de escalonadores de processos:


    - long-term scheduler (job scheduler / escalonador de longo prazo): seleciona um processo (do pool de processos) para ser carregado na memória; controla o número de processos carregados em memória (grau de multiprogramação).

    - short-term scheduler (escalonador de curto prazo / CPU scheduler / escalonador de CPU): responsável pela escolha do próximo processo pronto para executar (já carregado na memória).

    - medium-term scheduler (escalonador de médio prazo): quando houver a necessidade da retirada de um processo da memória, através de swapping (retirada do processo da memória e seu respectivo armazenamento em disco, para futura recuperação).


    Fonte: Operating System Concepts, Silberschatz, Galvin,Gagne, 9ª edição, capítulos 3 e 6.

  • d-

    Para exercer a propriedade de escalabilidade, o SO escalona os processos em execução.

     

    Escalonamento esta tb nos sistemas de tempo real, onde o tempo é crítico: aviões, eqiupamento hospitalar, abs etc

     

    critérios de escalonamento:

     

    Utilização de CPU, mante-la ocupada;

     

    throughput - processos por unidade de tempo;

    turnaround - tempo inicio ao fim do processo;

    tempo de resposta: entre ready & running;

    tempo de espera: no estado pronto.

     

    Algoritmos de escalonamento sao responsáveis por essa tarefa, com o SO os combinando para otimizar escalonamento. 


ID
1238047
Banca
FCC
Órgão
MPE-MA
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

Nos últimos anos com o surgimento de sistemas operacionais (SOs) multitarefas e aplicações multithread, o número de threads em execução simultânea nos computadores de propósito geral aumentou muito. Dessa forma uma nova vertente surgiu, o Paralelismo em Nível de Thread (PNT). A aplicação do conceito do PNT pode ser observado na tecnologia Hyper Threading (HT) disponível em alguns processadores da Intel. Na utilização da tecnologia HT

Alternativas
Comentários
  • Retirado da página da Intel - Developer Zone ...


    Como a tecnologia é implementada dentro do processador?

    A pipeline do núcleo do processador Nehalem é construída para reconhecer 2 fluxos distintos de instruções (um para cada thread de hardware). Vários eventos podem fazer com que a pipeline alterne entre decodificar e enviar um fluxo ou outro fluxo. Todos os recursos da pipeline são compartilhados ou duplicados entre as 2 threads de hardware. Para obter mais informações, consulte o Manual do desenvolvedor do software das arquiteturas Intel® 64 e IA-32, Volume 1, seção 2.2.8. 


    Fonte: https://software.intel.com/pt-br/articles/intel-hyper-threading-technology-your-questions-answered?language=ru


    []'s


  • GABARITO D

    alguns recursos necessários para execução de uma aplicação são duplicados e outros compartilhados.

    O grande desafio dos programadores de sistemas, é aproveitar os recursos de virtualização dos nucleos de processamento disponibilizados (THREADS) e muitas  vezes ociosos no processamento.

  • Itens Compartilhados e Privados de Cada Thread
    Há diferenças e semelhanças nos itens presentes nas threads.

    Dentro de um processo, todas as threads possuem informações em comum, mas cada thread tem informações pertencentes somente a ela.

    .

    Exemplos:
    Itens compartilhados por processos: Espaço de endereçamento; Variáveis globais; Arquivos abertos; Processos filhos; Alarmes pendentes; Sinais e tratadores de sinais; Informação de contabilidade.

    .
    Itens privados por thread: Contador de programa; Registradores; Pilha; Estado.

    Aqui é o caso em que o recurso é duplicado, pois cada um terá o seu item particular.

     


ID
1248625
Banca
CESPE / CEBRASPE
Órgão
ANS
Ano
2005
Provas
Disciplina
Sistemas Operacionais
Assuntos

Acerca das características do sistema operacional Windows 2000, julgue o item que se seguem.

O Windows 2000 oferece numerosos mecanismos de comunicação interprocessos. Ele também oferece mecanismos de sincronização, como semáforos, exclusões mútuas, regiões críticas e evento. Todos esses mecanismos funcionam em processos, não em threads. Portanto, quando um processo pára em um semáforo, outros processos relacionados à mesma thread não são afetados e podem continuar executando.

Alternativas

ID
1311688
Banca
CESPE / CEBRASPE
Órgão
Polícia Federal
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

A respeito dos princípios de sistemas operacionais, das características dos principais processadores do mercado e dos processadores de múltiplos núcleos, julgue os itens subsequentes.

Por meio da técnica de pipeline, a arquitetura MIMD e a MISD podem executar múltiplos threads ao mesmo tempo. Na arquitetura MISD, os threads executados são independentes e manipulam dados diferentes

Alternativas
Comentários
  • MISD – Multiple Instruction Single Data 

    MIMD – Multiple Instruction Multiple Data

     Na arquitetura MIMD, os threads executados são independentes e manipulam dados diferentes

    https://www.inf.pucrs.br/~marcon/ArquiteturaDeComputadoresII/MaterialDeAula/Aulas/Aula%2018/Paralelismo%20em%20Maquinas%20Multiprocessadas.ppt

  • Gabarito Errado

    Na computação, MISD (Multiple Instruction, Single Data) é um tipo de arquitetura de computação paralela, onde muitas unidades funcionais executam operações diferentes sobre os mesmos dados. Arquiteturas pipeline pertencem a este tipo, apesar de que um purista poderia dizer que os dados são diferentes após o processamento por cada fase do pipeline. Tolerante a falhas computadores executando as mesmas instruções redundantemente, a fim de detectar erros e máscara, de uma forma conhecida como replicação de dados, pode-se considerar que pertencem a este tipo. Não há muitos exemplos da existência desta arquitectura, como MIMD e SIMD, e são muitas vezes mais adequado para dados comum paralelo técnicas. Especificamente, eles permitem melhor escalonamento e da utilização de recursos computacionais que MISD faz.

     

    MIMD é um acronimo de Multiple Instruction Multiple Data. É um tipo de arquitectura de computação conjugada. Consiste em CPUs diferentes que executam programas iguais compartilhando memória comum e cálculos coincidentes, cada processador tem acesso a memória compartilhada através do barramento lógico.

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • MISD  (Múltiplas instruções, único dado): uma sequência de dados é transmitida para um conjunto de processadores, cada um dos quais executa uma sequência de instruções diferente. Essa estrutura nunca foi implementada.

    MIMD (Múltiplas instruções, múltiplos dados): um conjunto de processadores executam simultaneamente sequências diferentes de instruções, sobre conjunto de dados distintos. Os SMPs, clusters e sistemas NUMA pertencem a esta categoria.

    Fonte: Stallings, William. Arquitetura e organização de computadores, 5º Ed. pág. 652


ID
1527922
Banca
IDECAN
Órgão
Banestes
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

Quando um computador é multiprogramado, muitas vezes, tem múltiplos processos ou threads que competem pela CPU ao mesmo tempo. Essa situação ocorre sempre que dois ou mais processos estão em estado de pronto. Se somente uma CPU estiver disponível deverá ser feita uma escolha de qual processo será executado.
                                                                                                                               (Tanenbaum, 2010)

Assinale a alternativa que identifica tal escolha.

Alternativas
Comentários
  • escalonamento de processos ou agendador de tarefas (em inglês scheduling) é uma atividade organizacional feita pelo escalonador (scheduler) da CPU ou de umsistema distribuído, possibilitando executar os processos mais viáveis e concorrentes, priorizando determinados tipos de processos, como os de I/O Bound e os CPU Bound.

    O escalonador de processos de 2 níveis escolhe o processo que tem mais prioridade e menos tempo e coloca-o na memória principal, ficando os outros alocados em disco; com essa execução o processador evita ficar ocioso. 

    Fonte:Wikipédia.

  • Questão mal formulada, na minha opinião.

     

    "Assinale a alternativa que identifica tal escolha".

    Ou seja, para a banca, o escalonador é a escolha. Não faz sentido.

     

    O escalonador realiza a escolha, e tal escolha é o escalonamento de processos.

     

     

  • concordo com o Sávio. Essas porra querem fazer pega ratão e fazem esses lixos de questão.

  • a-

    Passagem original - "quando um computador é multiprogramado, temos varios processos concorrendo entre si, disputando CPU. Cabe ao SO decidir qual é o processo que ira ganhar CPU em um dado momento. A essa escolha damos o nome de escalonamento de processos."

  • Infelizmente essa questão se resume mais a interpretação do que a conhecimento técnico.

     

    Podemos fazer algumas perguntas:

    - O que o escaloador faz? Ele realiza o escalonamento de processos (Alternativa D), faz uso de algoritmos de escalonamento (Alternativa B), podendo utilizar estratégias preempitivas (Alternativa C). 

    - Quem escolhe qual o processo será executado? O escalonador (Alternativa A)

     

    A questão pergunta quem escolhe o processo que será executado. Quem faz isso é o escalonador. Resposta: A

     

     

  • "  O escalonador decide qual processo vai ser executado em seguida. " (Tanenbaum)

     

    .: Obs: O Escalonamento de processos é o CONCEITO sobre escolher qual processo irá executar primeiro, já o escalonador é a parte do S.O que realiza a escolha.

    .

    At.te

    Foco na missão ❢

  • Como disse o colega Sávio Carneiro, existe um problema de linguagem na questão. Não soube se expressar corretamente


ID
1560478
Banca
Marinha
Órgão
CAP
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

Em relação aos estados que a Thread pode assumir, ao ser executado o comando "Thread.sleep(5000)", é correto afirmar que a Thread ficará no estado:

Alternativas
Comentários
  • O comando Thread.sleep(int) suspende a thread atual. O número int, dado em milissegundos, indica o tempo durante o qual a thread ficará suspensa em espera.

    Letra D

  • Estado de espera sincronizada: Uma thread executável pode entrar no estado de espera sincronizada por um intervalo especificado de tempo. Ela faz a transição de volta ao estado executável quando esse intervalo de tempo expira ou o evento que ela espera ocorre.

    Alternativa: D


ID
1639669
Banca
CESPE / CEBRASPE
Órgão
DPF
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

A respeito dos princípios de sistemas operacionais, das características dos principais processadores do mercado e dos processadores de múltiplos núcleos, julgue o item subsequente.


Por meio da técnica de pipeline, a arquitetura MIMD e a MISD podem executar múltiplos threads ao mesmo tempo. Na arquitetura MISD, os threads executados são independentes e manipulam dados diferentes.

Alternativas
Comentários
  • Gabarito Errado

    MIMD é um acronimo de Multiple Instruction Multiple Data. É um tipo de arquitectura de computação conjugada. Consiste em CPUs diferentes que executam programas iguais compartilhando memória comum e cálculos coincidentes, cada processador tem acesso a memória compartilhada através do barramento lógico.

     

    Na computação, MISD (Multiple Instruction, Single Data) é um tipo de arquitetura de computação paralela, onde muitas unidades funcionais executam operações diferentes sobre os mesmos dados. Arquiteturas pipeline pertencem a este tipo, apesar de que um purista poderia dizer que os dados são diferentes após o processamento por cada fase do pipeline. Tolerante a falhas computadores executando as mesmas instruções redundantemente, a fim de detectar erros e máscara, de uma forma conhecida como replicação de dados, pode-se considerar que pertencem a este tipo. Não há muitos exemplos da existência desta arquitectura, como MIMD e SIMD, e são muitas vezes mais adequado para dados comum paralelo técnicas. Especificamente, eles permitem melhor escalonamento e da utilização de recursos computacionais que MISD faz.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • "Por meio da técnica de pipeline, a arquitetura MIMD e a MISD podem executar múltiplos threads ao mesmo tempo. Na arquitetura MISD, os threads executados são independentes e manipulam dados diferentes."

     

     múltiplas instruções, único dado (mIsd, do inglês multiple instruction, single data): uma sequência de dados é transmitida para um conjunto de processadores, onde cada um executa uma sequência de instruções diferente. Esta estrutura não é implementada comercialmente.

     

     múltiplas instruções, múltiplos dados (mImd, do inglês multiple instruction, multiple data): Um conjunto de processadores que executam sequências de instruções diferentes simultaneamente em diferentes conjuntos de dados. SMPs, clusters e sistemas NUMA enquadram-se nesta categoria.

     

    Fonte: Organização de Computadores cap. 17.1- Starllings 

     

     

  • MISD: múltiplo fluxo de instruções, único fluxo de dados

    – vários processadores, onde cada um recebe instruções distintas mas operam sobre o mesmo conjunto de dados.

    EXEMPLO:

    -> Múltiplos filtros de freqüência operando sobre um único fluxo de sinal;

    -> Múltiplos algoritmos de criptografia para decodificar uma mensagem...

    MIMD: múltiplo fluxo de instruções, múltiplo fluxo de dados

    – vários processadores, cada um controlado por uma unidade de controle;

    – processadores recebem instruções diferentes e operam sob fluxo de dados diferentes;

    – podem ser síncronos ou assíncronos...

    BONS ESTUDOS!!

     

  • Prezados,

    As threads , principalmente na arquitetura MISD, são executadas sobre um mesmo processo, ou seja, não são independentes, e manipulam os mesmos dados.

    Portanto a questão está errada.

  • Errado.

    NÃO são independentes!


ID
1664023
Banca
NC-UFPR
Órgão
ITAIPU BINACIONAL
Ano
2015
Provas
Disciplina
Sistemas Operacionais
Assuntos

Sobre Garbage Collection, considere as seguintes afirmativas: 

1. Enquanto está sendo executada a de Minor Garbage Collection (Coleta de Lixo Menor), todas as threads da aplicação são paralisadas.

2. O evento denominado Major Garbage Collection (Coleta de Lixo Maior) é responsável pela coleta de objetos localizados na Velha Geração (Old Generation).

3. A Geração Permanente está incluída em uma Full Garbage Collection (Coleta de Lixo Completa).

Assinale a alternativa correta


Alternativas
Comentários
  • Against common belief, all Minor GCs do trigger stop-the-world pauses, stopping the application threads.

    Major GC is cleaning the Tenured space.

    Full GC is cleaning the entire Heap – both Young and Tenured spaces.

     

    https://plumbr.eu/blog/garbage-collection/minor-gc-vs-major-gc-vs-full-gc

     

    Gabarito: e)


ID
1715227
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Sistemas Operacionais
Assuntos

No que se refere a conceitos básicos de informática, julgue o item subsecutivo.

Quando um processo é criado, o sistema operacional cria um espaço de endereçamento alocado exclusivamente ao processo.

Por outro lado, quando um thread é criado, ele compartilha o espaço de endereçamento do processo ao qual ele está vinculado.

Alternativas
Comentários
  • Thread, é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrencialmente. 

  • Gabarito Certo

    Thread é um pequeno programa que trabalha como um subsistema, sendo uma forma de um processo se autodividir em duas ou mais tarefas. É o termo em inglês para Linha ou Encadeamento de Execução. Essas tarefas múltiplas podem ser executadas simultaneamente para rodar mais rápido do que um programa em um único bloco ou praticamente juntas, mas que são tão rápidas que parecem estar trabalhando em conjunto ao mesmo tempo.

    Os diversos threads que existem em um programa podem trocar dados e informações entre si e compartilhar os mesmos recursos do sistema, incluindo o mesmo espaço de memória. Assim, um usuário pode utilizar uma funcionalidade do sistema enquanto outras linhas de execução estão trabalhando e realizando outros cálculos e operações. É como se um usuário virtual estivesse trabalhando de forma oculta no mesmo computador que você ao mesmo tempo.

    Devido à maneira rápida que a mudança de uma thread e outra acontece, aparentemente é como se elas estivessem sendo executadas paralelamente de maneira simultânea em hardwares equipados com apenas uma CPU. Esses sistemas são chamados de monothread. Já para os hardwares que possuem mais de uma CPU, as threads são realmente feitas concorrencialmente e recebem o nome de multithread.

    Os threads possuem vantagens e desvantagens ao dividir um programa em vários processos. Uma das vantagens é que isso facilita o desenvolvimento, visto que torna possível elaborar e criar o programa em módulos, experimentando-os isoladamente no lugar de escrever em um único bloco de código. Outro benefício dos threads é que eles não deixam o processo parado, pois quando um deles está aguardando um determinado dispositivo de entrada ou saída, ou ainda outro recurso do sistema, outro thread pode estar trabalhando.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
1738117
Banca
CESPE / CEBRASPE
Órgão
ANP
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

Acerca de sistemas operacionais, julgue o item a seguir. 

Supondo que somente uma CPU esteja disponível e cinco processos estejam no estado pronto, os mecanismos responsáveis por gerenciar a utilização da CPU são as threads


Alternativas
Comentários
  • Escalonamento: "Decisão sobre quando e por quanto tempo cada processo deve executar".


ID
1780243
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue o item subsequente, a respeito dos conceitos de sistema operacional.

Uma maneira eficiente de garantir exclusão mútua é permitir que uma thread espere, dentro de um monitor, pelo recurso desejado e alocado para outra thread.

Alternativas
Comentários
  • Alguém explica?

  • Alguém?!


  • A questão fala mais sobre uma "condição de corrida ou 'concorrência'", onde processos ou threads dependem de recurso ou sincronia de outros eventos. De fato a exclusão mútua seria uma técnica eficaz para evitar essa concorrência. Também não entendi o motivo da questão ser considerada errada.

  • Monitores são mecanismos de sincronização de alto nível que tornam mais simples o desenvolvimento de aplicações concorrentes.

    • O monitor é formado por procedimentos e variáveis encapsulados dentro de um módulo. ("não entra thread");

    • Um monitor é definido especificando-se um nome, declarando-se variáveis locais, procedimentos e um código de inicialização;

    • Um processo faz chamada a um dos procedimentos do monitor, caso outro processo já o esteja executando, o processo aguarda a sua vez na fila de entrada.

  • O erro esta em "é permitir que uma thread espere, dentro de um monitor". 

    A thread fica na fila de wait (espera) e não dentro de um monitor.

  • e-

    Exclusao mutua é uma das condicoes para deadlock. As condicoes sao:

    excusao mutua - cada recurso esta ou associado a 1 processo ou disponivel

    posse e espera - processos que retêm recursos podem pedir novos recursos

    nao preempção - recursos em 1 processo nao podem ser pegados à força; somente com liberação pelo processo. (pelo escalonamento preemptivo, é possivel 1 processo sair do CPU e retornar ao estado de espera se o SO encontrar 1 processo com prioridade maior.)

    espera circular - encadeamento de +1 processos - cada 1 quer 1 recurso usado pelo seguinte na cadeia.

  • Exclusao mutua é um grupo de processos com áreas de operacao obstruidas devido a falta de coordenção de threads executarem ao mesmo tempo; gerando uma estrutura de dado em estado inconsistente e carente de intervenção externa para se resolver. Envolve processos ou threads concorrentes com recursos críticos que sao exigidos por outros processos/threads.


ID
1785001
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue o item a seguir, relativo ao sistema operacional.

O Linux não permite que um processo crie outros threads depois de inicializar sua execução.

Alternativas
Comentários
  • Errado.

    Pode sim criar outros threads para requisitar outros recursos como E/S, processador, memória etc.

  • Utilizando a lib Pthread é possível criar threads dinamicamente.


ID
1813912
Banca
Quadrix
Órgão
SERPRO
Ano
2014
Provas
Disciplina
Sistemas Operacionais
Assuntos

No MS Windows, o escalonamento de threads por meio da API denominada ResumeThread:

Alternativas
Comentários
  • c-

    Estados de um processo- new, ready, running, wait(blocked quando espera liberacao de recurso de outro processo), finish. O SO tem 2 listas, 1 com processos em espera e outra com processos prontos, a qual é preenchida com processos cuja espera chega ao fim. Algumas mudanças de estado incluem: executando - pronto -> interrupção por outro de maior prioridade ou seu time slice acaba. executando - espera -> operação de I/O espera resposta. executando - fim -> completa ou acaba com erro. Thread é como um subprocesso, mas tem mesma area do que programa principal e nao criação de PCB(program control block), o que diminiu overhead. O contexto de software do thread é o mesmo do que o do processo. 

     

    Escalonamento e muitos programas tentando acessar CPU por um tempo, causando impressao que varios programas executam junto. Resume significa continuar, logo, nesse escalonamento podemos deduzir que significa retornar ao estado anterior antes da interrupção.


ID
1814584
Banca
IESES
Órgão
IFC-SC
Ano
2015
Provas
Disciplina
Sistemas Operacionais
Assuntos

Um processo é uma abstração que reúne uma série de atributos como espaço de endereçamento, descritores de arquivos abertos, permissões de acesso, quotas, etc. Um processo possui, ainda, áreas de código, dados e pilha de execução. Também é associado ao processo um fluxo de execução, que é chamado de thread. A ideia de associar vários fluxos de execução a apenas um processo é conhecido como:

Alternativas
Comentários
  • Multithreading é executar vários threads (threads = fluxos de execução de código) em um mesmo processo, lembrando que as threads compartilham o mesmo endereçamento de memória, mas cada thread tem seu próprio CREP:

    Contador de programa

    Registradores

    Estado

    Pilha

  • d-

    Processo -instância única de uma aplicação executada. Cada processo tem pelo menos uma thread que executa o código. threads adicionais se limitam pela RAM.  Cada thread possui seu stack de execução (espaço para chamadas e valores de variáveis). Threads  compartilham o mesmo espaço de endereçamento que o processo. Uma thread possui registradores , o ‘ponteiro de instruções’ o mais conhecido . O conjunto de registradores é o ‘contexto’”. Logo, thread é uma unidade de execução do processo, com ponteiro de instruções (indica a próxima instrução ) e informação de contexto da thread.


ID
1827709
Banca
IF-PB
Órgão
IF-PB
Ano
2015
Provas
Disciplina
Sistemas Operacionais
Assuntos

Analise as afirmativas abaixo a respeito do uso de threads.

I. O uso de vários threads em uma aplicação interativa pode permitir que um programa continue a ser executado, mesmo se parte dele estiver bloqueada ou estiver executando uma operação demorada.

II. Um processo com um único thread só pode ser executado em um processador, independente de quantos estejam disponíveis.

III. Os threads de usuário são suportados acima do kernel e gerenciados sem o suporte do kernel.

IV. Os threads de kernel são suportados e gerenciados diretamente pelo sistema operacional.

Está CORRETO o que se afirma em:

Alternativas
Comentários
  • "Um processo com um único thread só pode ser executado em um processador, independente de quantos estejam disponíveis." 

    Ao meu ver, deveria dizer "... em um único processador por vez"  por que em um período de tempo ele pode executar em processadores diferentes.

     

  • Também considerei essa II errada.

  • "Um processo com um único thread só pode ser executado em um processador, a despeito de quantos estiverem disponíveis"

     

    Fonte: Silberchatz, Fundamentos de Sistemas Operacionais, 8ª Ed. Pag 86, Item Escalabilidade

     

    @papirobizurado

     


ID
1850503
Banca
Marinha
Órgão
CAP
Ano
2015
Provas
Disciplina
Sistemas Operacionais
Assuntos

Coloque F (Falso) ou V (Verdadeiro) nas afirmativas abaixo, com relação a Processos e THREADS e, a seguir, assinale a opção que apresenta a sequência correta. 

( ) No escalonamento circular, a cada processo, é atribuído um intervalo de tempo para sua execução.

( ) No escalonamento não preemptivo, o algoritmo de escalonamento escolhe um processo e o deixa em execução por um tempo máximo fixado.

( ) No escalonamento por prioridades, as prioridades podem ser atribuídas aos processos estática ou dinamicamente.

( ) Quando um computador é multiprogramado, ele, muitas vezes, tem múltiplos processos ou THREADS que competem pela CPU, ao mesmo tempo, sendo necessário que o sistema operacional, por meio do escalonador, escolha qual dos processos será executado a seguir.

( ) No escalonamento preemptivo, o algoritmo de escalonamento escolhe um processo para executar e, então, o deixa executar até que seja bloqueado, ou até que, voluntariamente, libere a CPU. 

Alternativas
Comentários
  • (V) No escalonamento circular, a cada processo, é atribuído um intervalo de tempo para sua execução.

    (F) No escalonamento não preemptivo, o algoritmo de escalonamento escolhe um processo e o deixa em execução por um tempo máximo fixado. 

    (V) No escalonamento por prioridades, as prioridades podem ser atribuídas aos processos estática ou dinamicamente. 

    (V) Quando um computador é multiprogramado, ele, muitas vezes, tem múltiplos processos ou THREADS que competem pela CPU, ao mesmo tempo, sendo necessário que o sistema operacional, por meio do escalonador, escolha qual dos processos será executado a seguir. 

    (F) No escalonamento preemptivo, o algoritmo de escalonamento escolhe um processo para executar e, então, o deixa executar até que seja bloqueado, ou até que, voluntariamente, libere a CPU. 

  • (V) No escalonamento circular, a cada processo, é atribuído um intervalo de tempo para sua execução.

    (F) No escalonamento  preemptivo, o algoritmo de escalonamento escolhe um processo e o deixa em execução por um tempo máximo fixado. 

    (V) No escalonamento por prioridades, as prioridades podem ser atribuídas aos processos estática ou dinamicamente. 

    (V) Quando um computador é multiprogramado, ele, muitas vezes, tem múltiplos processos ou THREADS que competem pela CPU, ao mesmo tempo, sendo necessário que o sistema operacional, por meio do escalonador, escolha qual dos processos será executado a seguir. 

    (F) No escalonamento não preemptivo, o algoritmo de escalonamento escolhe um processo para executar e, então, o deixa executar até que seja bloqueado, ou até que, voluntariamente, libere a CPU. 


ID
1942813
Banca
CESPE / CEBRASPE
Órgão
Telebras
Ano
2015
Provas
Disciplina
Sistemas Operacionais
Assuntos

Acerca da organização e da arquitetura de hardware de computadores, julgue o item subsequente.

A execução concorrente de múltiplas threads extraídas de um único programa sequencial, definidas pelo compilador ou pelo hardware, constitui-se como um multithreading implícito.

Alternativas
Comentários
  • Alguém pode explicar?
  • implicit parallelism is a characteristic of a programming language that allows a compiler or interpreter to automatically exploit the parallelism inherent to the computations expressed by some of the language's constructs. A pure implicitly parallel language does not need special directives, operators or functions to enable parallel execution, as opposed to explicit parallelism.

    Fonte: https://en.m.wikipedia.org/wiki/Implicit_parallelism

  •  

    traduzindo : O paralelismo implícito é uma característica de uma linguagem de programação que permite a um compilador ou intérprete explorar automaticamente o paralelismo inerente aos cálculos expressos por algumas das construções da linguagem. Uma linguagem paralela implícita pura não precisa de diretivas, operadores ou funções especiais para permitir a execução paralela, em oposição ao paralelismo explícito. Fonte: https://en.m.wikipedia.org/wiki/Implicit_parallelism

  • Multithreading implícito: execução concorrente de múltiplas threads extraídas de um único programa sequencial (Stallings)

    .

    Att,

    Foco na missão

  • isso ai


ID
2008447
Banca
Aeronáutica
Órgão
EEAR
Ano
2009
Provas
Disciplina
Sistemas Operacionais
Assuntos

De acordo com Andrew S. Tanenbaum, quais afirmações abaixo sobre threads e processos estão corretas?

I- Threads e processos têm o mesmo significado.

II- Processos são usados para agrupar recursos e threads são as entidades escalonadas para a execução sobre a CPU.

III- Uma thread pode assumir os seguintes estados: em execução, bloqueado, pronto ou finalizado.

Está (ão) correta (s)

Alternativas
Comentários
  • Thread é uma coisa e processo é outra.

     

    Não tem jeito só sobra a letra D

  • Pelo que lembro Tannembaum diz que só tem tres estados do processo, PRONTO, EXECUTANDO E BLOQUEADO.

  • Sobre a III

    As transições entre estados de thread são as mesmas que aquelas entre estados de processos.

    Um thread pode estar em qualquer um de vários estados: em execução, bloqueado, pronto, ou concluído.

    Tanenbaum

    D


ID
2045494
Banca
IDECAN
Órgão
DETRAN-RO
Ano
2014
Provas
Disciplina
Sistemas Operacionais
Assuntos

“Uma thread transita para o estado ________________ quando tenta realizar uma tarefa que não pode ser completada imediatamente e deve esperar temporariamente até que essa tarefa seja concluída.” Assinale a alternativa que completa corretamente a afirmativa anterior.

Alternativas
Comentários
  • Sacanagem colocar dois estados sinônimos como alternativa. (Espera e bloqueado)

  • O estado de espera e bloqueado não são sinônimos.

    Quando um processo ou thread encontra-se no estado de espera, significa que ele está pronto para usar o processador quando "chegar sua vez".

    Quando o tempo de uso do processador é esgotado pelo processo ou tread, a mesma(tread) entrará no estado de "bloqueado", depois espera e por ai vai até sua conclusão final.


ID
2068786
Banca
Aeronáutica
Órgão
CIAAR
Ano
2016
Provas
Disciplina
Sistemas Operacionais
Assuntos

Sobre a organização e estrutura dos processos no sistema operacional, assinale a alternativa incorreta.

Alternativas
Comentários
  •  

    Quando as threads de um processo são gerenciadas exclusivamente no espaço do usuário, não é necessário que o
    sistema operacional implemente o conceito de thread. Isso porque uma biblioteca, no espaço do usuário, será
    responsável pela gerência das threads.
    Fonte:
    TANEMBAUM, Andrews S. Sistemas Operacionais Modernos. 3. ed. São Paulo: Pearson, 2010.
     


ID
2083282
Banca
Marinha
Órgão
CAP
Ano
2014
Provas
Disciplina
Sistemas Operacionais
Assuntos

Com relação aos THREADS, assinale a opção correta.

Alternativas
Comentários
  • - Threads são processos leves;

    - O uso de threads é mais vantajoso em processos IO-Bound;

    - O uso de threads torna a programação mais difícil;

    - São mais rápidas e mais fáceis de se criar e destruir;

    - Threads proporcionam um ganho de desempenho em processadores de um só núcleo(pseudoparalelismo);

     

    @papirobizurado

  • A- Os threads aceleram uma aplicação quando há uma grande quantidade de computação e de E/S mediante uma sobreposição de atividades. 


ID
2102560
Banca
FCC
Órgão
Prefeitura de Teresina - PI
Ano
2016
Provas
Disciplina
Sistemas Operacionais
Assuntos

Considere uma aplicação com 4 threads. Em um sistema

Alternativas
Comentários
  • b-

    Thread é como um subprocesso, mas com a mesma área da memoria do que o programa principal. Tanto que nao ha criação de PCB(process control block) e o contexto é o mesmo que o do programa. Um processo pode possuir varios threads, todos executando suas funcoes com o cpu time que o programa principal usa

  • Estranho....  Se eu tiver um ambiente com 10 CPUs e 10 processos, sendo cada um alocado para uma CPU, não consigo enxergar disputa por recursos, logo, não vejo concorrencia e sim paralelismo...

     

    Acredito que concorrencia ocorre quando tem-se mais processos que CPUs disponiveis.. Alguem explica??


ID
2108659
Banca
Marinha
Órgão
CAP
Ano
2012
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
  • Threads compartilham: Código, Dados e Arquivos.

     

    @papirobizurado

  • A) Arquivos abertos.

  • THREADS

    *Um thread compartilha, com outros threads pertencentes ao mesmo processo, sua seção de código, a seção de dados e outros recursos do sistema operacional, como arquivos abertos e sinais.

    Coroado por Deus, não pela Igreja...

    Pois meu poder é divino...

    Pensavam que eu era muito jovem para governar as terras...

    Mas eles falharam em entender...

    Nascido para governar!

    Meu momento chegou.

    Fui escolhido pelo Céu!

  • Um thread compartilha, com outros threads pertencentes ao mesmo processo, código, dados, arquivos abertos e sinais.

    MACHADO, Francis B.; MAIA, Luiz P. Arquitetura de Sistemas Operacionais. 5.ed. [S.l.]: LTC, 2013.


ID
2214961
Banca
IDECAN
Órgão
INMETRO
Ano
2015
Provas
Disciplina
Sistemas Operacionais
Assuntos

O sistema operacional de um SMP (multiprocessador simétrico), que faz o agendamento de processos ou threads por meio de todos os processadores, possui algumas vantagens potenciais em relação a uma organização de uniprocessador. Assinale, a seguir, duas dessas vantagens.

Alternativas
Comentários
  • c-

    Escalabilidade é uma das caracteristicas dos sitemas distribuidos, oque permite que eles funcioname em escalas diferentes, desde de intranet ate internet. Quando sistema cresce, o sistema distribuido e softwares premanecem os mesmos. CASO HAJA SUBSTITUICAO ESTE SISTEMA NAO É CARACTERIZADO COMO ESCALAVEL.

  • Vantagens dos processadores SMP ( Symmetric Multiprocessor):

     

    ➸ Desempenho;

    Disponibilidade;

    ➸ Crescimento Incremental;

    Escalabilidade.

     

    (Stallings)

     

    Att,

    Foco na missão


ID
2241532
Banca
COPESE - UFPI
Órgão
UFPI
Ano
2014
Provas
Disciplina
Sistemas Operacionais
Assuntos

Sobre threads, assinale a opção INCORRETA.

Alternativas
Comentários
  • d) Um algoritmo concorrente é dito escalável quando a velocidade de sua execução não está associada ao acréscimo no número de processadores disponíveis. Correto: Um algorítimo concorrente é escalável se a velocidade de sua execução aumenta quanto mais processadores estão disponíveis.
     

    Fonte: https://books.google.com.br/books?id=vPldwBmt-9wC&pg=PA594&lpg=PA594&dq=algoritmo+concorrente+escal%C3%A1vel&source=bl&ots=e1Se0bZdok&sig=9Bn_T5By3rSuOeJ6Zk-KNkvnvDU&hl=pt-BR&sa=X&ved=0ahUKEwjIvJLQt83UAhUB1SYKHQBaASoQ6AEIMzAA#v=onepage&q=algoritmo%20concorrente%20escal%C3%A1vel&f=false


ID
2297632
Banca
FCC
Órgão
PGE-MT
Ano
2016
Provas
Disciplina
Sistemas Operacionais
Assuntos

Um sistema operaciona

Alternativas
Comentários
  • A - Não existe controle, "todo mundo faz tudo" - Errada

    B - Certo

    C - Tarefas de E/S é com o mestre - Errada

    D - Monoprocessado só faz um processo, "não tem throughput" (menos errada)

    E - starvation espera, espera e continua esperando - Errada

    http://www.edilms.eti.br/uploads/file/so/SO-aula-04-tipos-so.pdf

  • D - Errado - É preciso aumentar o throughput

    E- Errado - Conceito de deadlock

  • Só corrigindo o comentário do amigo Luiz Sa, na alternativa D, Monoprocessado se refere so controle do SO sobre processadores, no caso, somente um processador e não somente a um processo, como citado.


    Monoprocessado: Um processador.

    Multitarefa: Várias tarefas.

  • Muito bom Luiz, Throughtput faz referência ao número de processos executados em um determinado intervalo de tempo (livro Fundamentos de sistemas operacionais), então não cabe o monoprocessado neste contexto.

  • FCC como sempre apelando !!!


ID
2324872
Banca
IFB
Órgão
IFB
Ano
2017
Provas
Disciplina
Sistemas Operacionais
Assuntos

Sob a perspectiva da área de arquitetura de sistemas operacionais, leia as afirmativas a seguir sobre conceitos, componentes e serviços.
I) Threads dentro de um mesmo processo dividem o mesmo espaço de armazenamento.
II) A exclusão mútua implementa uma solução para o problema de dois processos concorrentes entrarem ao mesmo tempo em suas respectivas regiões críticas.
III) Sistemas com múltiplos processadores, usuários ou servidores, se enquadram na categoria de sistemas computacionais do tipo MISD (Multiple Instruction Single Data).
IV) Processos do tipo CPU-Bound estão associados a aplicações comerciais baseadas em um elevado número de operações em bancos de dados.
V) Alocação contígua, alocação encadeada e alocação indexada são exemplos de técnicas usadas por sistemas operacionais para a gerência do espaço em disco.
Assinale a alternativa que apresenta somente as afirmativas CORRETAS:

Alternativas
Comentários
  • Letra B.

     

    III) Sistemas com múltiplos processadores, usuários ou servidores, se enquadram na categoria de sistemas computacionais do tipo MISD (Multiple Instruction Single Data).

    Errado. Enquadram-se na categoria MIMD(Multiple Instruction, Multiple Data streams).

     

    IV) Processos do tipo CPU-Bound estão associados a aplicações comerciais baseadas em um elevado número de operações em bancos de dados.

    Errado. Processo com CPU predominante (CPU-bound) gasta muito tempo realizando computação, ou seja, há poucos surtos longos (ciclos) de CPU.

     

  • MIMDMultiprocessadores, Multicomputadores

    MISD ➸ Apenas teórico; 

    .

    .

    .

    At.te

    Foco na missão 

  • I, II, V


ID
2330044
Banca
CESPE / CEBRASPE
Órgão
SEDF
Ano
2017
Provas
Disciplina
Sistemas Operacionais
Assuntos

Acerca dos princípios de sistemas operacionais, julgue o item a seguir.

Em se tratando da tecnologia hyper-threading, cada um dos processadores lógicos tem seu próprio conjunto de registradores, controlador de interrupção e cache de memória.

Alternativas
Comentários
  • A simulação do segundo processador é feito utilizando partes não aproveitadas do processador na previsão de desvio do pipeline. Estas partes são conhecidas como bolhas do pipeline e não teriam utilidade nenhuma desperdiçando ciclos. Simulando em um único processador físico dois processadores lógicos, cada processador lógico recebe seu próprio controlador de interrupção programável (EPIC) e um conjunto de registradores. Os outros recursos do processador físico como cache de memória, unidade lógica e aritmética, barramentos, são compartilhados entre os processadores lógicos, parecendo assim um sistema com dois processadores.

    https://pt.wikipedia.org/wiki/Hyper-threading

  • Os processadores lógicos dividem os recursos. Questão errada

  • Na tecnologia hyper-threading, fisicamente cada um dos processadores lógicos tem seu próprio CONJUNTO DE REGISTRADORES e CONTROLADOR DE INTERRUPÇÃO, e o restante dos elementos do processador são comuns (ALU, Cache, barramentos).

    Logo, "e cache de memória." invalida a questão.

    http://www.overclock.net/a/hyperthreading-explained

  • A memória não é compartilhada apenas os registradores.
  • Errada.

     

    "A tecnologia Hyper-Threading simula em um único processador físico dois processadores lógicos. Cada processador lógico recebe seu próprio controlador de interrupção programável (APIC) e conjunto de registradores."

    "Os outros recursos do processador físico, tais como, cache de memória, unidade de execução, unidade lógica e aritmética, unidade de ponto flutuante e barramentos, são compartilhados entre os processadores lógicos."

     

    Ou seja, o cache de memória é compartilhado entre os processadores lógicos, e não um cache de memória para cada processador lógico.

    Fonte: https://www.clubedohardware.com.br/artigos/processadores/tecnologia-hyper-threading-r33723/


ID
2354698
Banca
UFMT
Órgão
UFSBA
Ano
2017
Provas
Disciplina
Sistemas Operacionais
Assuntos

No gerenciamento de processos e threads, as variáveis mutexes são usadas para

Alternativas
Comentários
  • Letra B) Mutex é uma abreviação de "mutual exclusion" (exclusão mútua).

     

    http://equipe.nce.ufrj.br/gabriel/progpar/Pthreads.pdf

  • RESPOSTA - B

     

    Mutexes (exclusividade mútua):

    Versão simplificada de semáforo;

    Quando um processo deseja manipular uma área de dados compatilhada, ele deve requisitar exclusividade mútua sobre a mesma;

    Enquanto não obtém exclusividade mútua o processo deve permanecer em espera;

    Pode estar em 2 estados:

    Desimpedido (valor 0 )

    Impedido (qualquer outro valor)

     

    Fonte - SO Modernos 3° edição - Tanenbaum

     

    @papirobizurado


ID
2354710
Banca
UFMT
Órgão
UFSBA
Ano
2017
Provas
Disciplina
Sistemas Operacionais
Assuntos

A respeito de threads, analise as afirmativas.

I - Uma das razões para existirem threads é que na maioria das aplicações não ocorrem múltiplas atividades ao mesmo tempo e algumas delas não precisam ser bloqueadas de tempos em tempos.
II - As threads são mais rapidamente criadas e/ou destruídas que os processos, pois não têm quaisquer recursos associadas a elas.
III - O uso de threads não resulta em ganho de desempenho quando elas são CPU-bound, no entanto, quando há grande quantidade de computação e de entrada e saída, as threads permitem que as atividades se sobreponham, acelerando a aplicação.
IV - Quando as threads são gerenciadas no espaço de usuário, cada processo precisa de sua própria tabela de threads para manter controle das threads naquele processo.

Está correto o que se afirma em

Alternativas
Comentários
  • RESPOSTA - B

     

    I - Uma das razões para existirem threads é que na maioria das aplicações não ocorrem múltiplas atividades ao mesmo tempo e algumas delas não precisam ser bloqueadas de tempos em tempos. - ERRADO ---> Uma aplicação pode precisar de uma I/O e passar do estado de executando para bloqueada de tempos em tempos.

     

    II - As threads são mais rapidamente criadas e/ou destruídas que os processos, pois não têm quaisquer recursos associadas a elas. CERTA ---> Os recursos são compartilhados entre as Threads ( Código, Dados e Arquivos), sendo asssim, as Threds só tem associadas a elas seus registradores e pilha.

     

    III - O uso de threads não resulta em ganho de desempenho quando elas são CPU-bound, no entanto, quando há grande quantidade de computação e de entrada e saída, as threads permitem que as atividades se sobreponham, acelerando a aplicação.CERTA ---> CPU-bound = Processo passa a maioria do tempo executando, logo não exige tanta alternância entre os processos. Por outro lado, IO-bound = Processos passam a maior parte do tempo esperando (EXECUÇÃO CURTA). Threads tem ganho de desempenho quando são IO-bound

     

    IV - Quando as threads são gerenciadas no espaço de usuário, cada processo precisa de sua própria tabela de threads para manter controle das threads naquele processo. CERTA ---> Quando os THREADS são gerenciados no espaço do usuário, cada processo precisa de sua própria tabela de threads para manter o controle de threads naquele processo. Na implementação de Threads no modo núcleo, o núcleo possui uma TABELA de THREADS (TCB) que acompanha todos os threads no sistema. Essa tabela contém registradores, o estado e outras informações de cada THREAD.

     

    @papirobizurado


ID
2354722
Banca
UFMT
Órgão
UFSBA
Ano
2017
Provas
Disciplina
Sistemas Operacionais
Assuntos

A respeito de multithreading no chip da CPU, analise as afirmativas.

I - O multithreading permite que a CPU gerencie múltiplas threads de controle ao mesmo tempo, em uma tentativa de mascarar as protelações que ocorrem devido a cache misses nas caches L1 e L2..
II - A implementação de multithreading usada nos processadores da Intel recebeu o nome de HyperThreading.
III - O multithreading de granulação fina troca threads apenas quando há uma protelação, sendo potencialmente mais eficiente do que o de granularidade grossa.

Está correto o que se afirma em 

Alternativas
Comentários
  • Corrigindo a alternativa III

    O multithreading de granualação GROSSA troca threads apenas quando há uma protelação, sendo potencialmente MENOS eficiente do que o de granularidade FINA

  • Hyperthread - A tecnologia usada em processadores que permite a um único processador físico simular a existência de mais de um processador lógico.

     

    Fonte.: Q424142.

     

    Multithreading de granulação FINA - threads comutadas a cada instrução

    Multithreading de granulação GROSSA - threads comutadas após eventos significativos

     

    Go ahead every time!!!!

  • Multithreading de granularidade fina (intercalado): quando o processador lida com dois ou mais contextos de thread ao mesmo tempo;

    Multithreading de granularidade grossa (bloqueado): instruções de uma thread são executadas sucessivamente até que possa ocorrer um evento e causar um atraso.

    (Stallings)

    .

    At.te

    Foco na missão


ID
2382751
Banca
VUNESP
Órgão
MPE-ES
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

Alguns sistemas operacionais fornecem suporte a threads. Estas, quando comparadas aos processos,

Alternativas
Comentários
  • Letra A

    O tempo necessário para criação e escalonamento de threads é menor quando comparado ao caso dos processos. O compartilhamento de memória entre as threads maximiza o uso dos espaços de endereçamento e torna mais eficiente o uso destes dispositivos.

    Como num processo todas as threads tem exatamente o mesmo espaço de endereçamento, elas também compartilham as mesmas variáveis globais, e uma thread pode acessar qualquer posição de memória dentro do espaço de endereçamento do processo.

    E já que normalmente as threads são criadas para cooperar e não competir, uma thread pode ler, escrever ou até apagar informações usadas por outra thread, sem um meio de proteção para isso.

    Referência: http://www.jairo.pro.br/introd_sist_operac/readfile.php?wget=semana13.pdf

  • Normalmente as threads são criadas para cooperar e não competir, uma thread pode ler, escrever ou até apagar informações usadas por outra thread, sem um meio de proteção para isso.

    Uma thread permite, por exemplo, que o usuário de um programa utilize uma funcionalidade do ambiente enquanto outras linhas de execução realizam outros cálculos e operações


ID
2473225
Banca
FUNDEP (Gestão de Concursos)
Órgão
CRM - MG
Ano
2017
Provas
Disciplina
Sistemas Operacionais
Assuntos

Sobre processos e threads, pode-se afirmar:

Alternativas
Comentários
  • Cada thread tem o mesmo contexto de software e compartilha o mesmo espaço de memória (endereçado a um mesmo processo-pai), porém o contexto de hardware é diferente. Sendo assim o overhead causado pelo escalonamento de uma thread é muito menor do que o escalonamento de processos.

    Fonte: https://pt.wikipedia.org/wiki/Thread_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)

    Letra C.

  • Threads:

    Processos Leves

    Compartilham espaço de endereçamento

    Comunicação ágil entre elas

    São mais fáceis de criar e detruir

    Consomem menos recursos que os processos

     

     

    Fonte: SO Modernos 3° edição - Tanenbaum

     

    @papirobizurado

  • c-

    Processo - programa em execução. POssui estados (new, ready, running, wait, finish), contextos (software-limites de recrusos alocados-, hardware - registrqadores- e espaco de enderecamento) e PCB (processo control block).

    Thread - instrucao q executa tarefas do processo. Tem mesma area q programa principal. Nao cria PCB e o contexto é o mesmo que o do processo. 


ID
2493157
Banca
Marinha
Órgão
Quadro Técnico
Ano
2017
Provas
Disciplina
Sistemas Operacionais
Assuntos

Um thread é um fluxo de controle dentro de um processo. Um processo multithreaded contém vários fluxos de controle diferentes dentro do mesmo espaço de endereçamento. Assinale a opção correta em relação a thread.

Alternativas
Comentários
  • A - Um thread compartilha, com outros threads pertencentes ao mesmo processo, sua seção de código, a seção de dados e outros recursos do sistema operacional, como arquivos abertos e sinais. ( GABARITO)

    B- O paralelismo de tarefas envolve a distribuição de dados e de tarefas (threads) em vários núcleos de computação separados.

        O paralelismo de tarefas envolve a distribuição não de dados, mas de tarefas (threads) em vários núcleos de computação separados

    C - Um thread executa uma ou várias operações. Diferentes threads podem operar sobre os mesmos dados ou sobre dados diferentes.

         Cada thread executa uma única operação. Diferentes threads podem estar operando sobre os mesmos dados ou sobre dados diferentes

    D - O compartilhamento de dados entre threads ocorre facilmente na linguagem Java porque os dados compartilhados entre dois ou mais threads são simplesmente declarados como globais.

    O compartilhamento de dados entre as threads ocorre facilmente em Win32 e Pthreads, pois os dados compartilhados são simplesmente declarados globalmente. Como uma linguagem orientada a objeto pura, a Java não possui a noção de dados globais

    E - Tornar uma aplicação interativa multithreaded impede que um programa continue a ser executado quando parte dele estiver bloqueada ou executando uma operação demorada.

    Tornar uma aplicação interativa multithreaded pode permitir que um programa continue a ser executado, mesmo que parte dele esteja bloqueada ou executando uma operação demorada, o que aumenta a capacidade de resposta para o usuário

  • por que cada thread executa uma única operação? depende da granularidade a que você se refere com "operação", acredito que a C está certa sim... 

  • As threads só não compartilham entre si o conjunto de registradores e a estrutura de pilha. Alternativa A

  • Conceitos de Threads

    ·        Threads são processos leves;

    ·        O uso de threads torna a programação mais difícil;

    ·        São mais rápidas e mais fáceis de se criar e destruir;

    ·        Os threads aceleram uma aplicação quando há uma grande quantidade de computação e de E/S

    ·        Threads proporcionam um ganho de desempenho em processadores de um só núcleo;

    ·        Um thread compartilha, com outros threads pertencentes ao mesmo processo, código, dados e arquivos abertos e sinais.

    ·        Se um processo tem múltiplos threads de controle, ele pode executar mais de uma tarefa ao mesmo tempo.

    Alternativa: A


ID
2570488
Banca
NUCEPE
Órgão
PC-PI
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

Considere as afirmativas sobre os conceitos de processo e thread.


1) Diferente dos processos, os threads possuem: um contador de programa, uma pilha de execução e registradores.

2) Além de compartilhar o mesmo espaço de endereçamento, os threads compartilham o mesmo conjunto de arquivos abertos, processos filhos, discos, impressoras e outros recursos.

3) Há dois modos principais de implementar um pacote de threads: Nível de Usuário e Nível de Núcleo.

4) Uma vantagem da implementa a nível de usuário é que podemos utilizar o recurso de threads, mesmo se o SO não suportar.


Estão corretas:

Alternativas
Comentários
  • d-

    um contador de programa, uma pilha de execução e registradores sao o conteudo armazenado no contexto de hardware do processo. os outros tipos de recursos q o SO cria para processo sao:

     

    Contexto de software - estabelece limites de recursos do processo como memoria, n° arquivos abertos, prioridade etc.(compartilhado com threads do processo)

     

    Espaco de enderecamento:armazena instrucoes que o processo fara. O processo é um programa executando, e as tarefas individuais do processo estao nessa area.

  • 1) INCORRETA, a palavra DIFERENTE invalida a alternativa, é um fato sabido por nós que as Threads possuem itens privados( Contador de Programa,  Registradores, Pilha e Estados) porém, a meu ver, a palavra DIFERENTE afirma que os processos NÃO POSSUEM TAIS ITENS o que é um erro, em ordem direta a alterntiva fica assim "os threads possuem: um contador de programa, uma pilha de execução e registradores, diferente dos processos (que não os possuem)"

    2) CORRETA.

    3) CORRETA.

    4) CORRETA.

     

    GABARITO ALTERNATIVA D

  • E o modo kernel também não é principal?


ID
2595967
Banca
Exército
Órgão
EsFCEx
Ano
2017
Provas
Disciplina
Sistemas Operacionais
Assuntos

Sobre os sistemas computacionais que permitem multithreading do hardware:


I. No multithreading de grão-fino as threads devem ser comutadas após cada instrução.

II. Processadores superescalares sem suporte a multithread do hardware não ficam completamente ociosos mesmo se houver falha na cache de instruções.

III. Cada thread pode compartilhar o banco de registradores com as demais threads.

IV. No multithreading de grão-grosso as threads devem ser comutadas apenas após eventos significativos.


Após a analise das afirmativas acima, assinale a alternativa correta:

Alternativas
Comentários
  • Multithread

    Multithreading é a capacidade que o sistema  operacional possui de executar várias threads simultaneamente sem que uma interfira na outra. Estas threads compartilham os recursos do processo, mas são capazes de ser executadas de forma independente. Para possuir processamento multithread “real”, os processadores precisam ser capazes de atender duas ou mais threads ao mesmo tempo e não simular este efeito, atendendo-as uma por vez em um curto período de tempo.

    A maior vantagem trazida com a execução multithread é permitir que os computadores com múltiplos núcleos de processamento possam aproveitar todo o seu potencial e operar de forma mais rápida. Apenas para ilustrar, nos computadores sem este tipo de suporte, quando o processo principal toma muito tempo, a aplicação inteira parece travar.

     

    Fonte: tecmundo.

  • As arquiteturas multithreading procuram reduzir o “overhead” na troca de contexto entre threads, escondendo ou reduzindo o efeito negativo da latência de certas operações demoradas realizadas pelo processador.

    Os múltiplos contextos de threads nos processadores são criados através da replicação dos elementos de “hardware” que caracterizam cada contexto, tipicamente: o banco de registradores, o contador de programas e a palavra de status do processador.

    • Granulosidade Fina – Uma instrução de cada thread ativa é buscada e enviada para o pipeline a cada ciclo.

    • Granulosidade Grossa – As instruções de uma thread são executadas sucessivamente até que um evento de grande latência ocorra. Este evento provoca uma troca de contexto.

    • Multithreading Simultâneo – Instruções são despachadas simultâneamente para as unidades funcionais de um processador superescalar. – Combina um processador superescalar com multithreading.

    Fonte: http://www.dcc.ufrj.br/~gabriel/microarq/Multithreading.pdf 

  • Os coneitos de I e IV estão perfeitos...

     

    Grão FIno - cada Instrução;

    Grão GroSso - evento Sgnificativo.

     

    Threads Compartilham:

    �Área de código;

    Área de dados�;

    Áreas da pilha de execução (de todos os threads);

     

    Fonte: https://edisciplinas.usp.br/pluginfile.php/2945126/mod_resource/content/1/22-threads-v8.pdf]

     

    go @head!!!

  • Threads Compartilham:

    -Espaço de endereçamento;

    -Variáveis Globais;

    -Arquivos abertos;

    -Processos filhos;

    -Alarmes pendentes;

    -Sinais e rotinas de tratamento de sinais;

    -informações de contabilização

    Threads não Compartilham;

    -Contador de programa;

    -Registradores;

    -Pilha;

    -Estado.


ID
2607325
Banca
FCC
Órgão
DPE-AM
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

Um sistema operacional moderno prevê uma maneira de um processo dividir a si mesmo em outras tarefas, as quais podem ser executadas concorrentemente. Essas novas tarefas são denominadas

Alternativas
Comentários
  • Linha ou Encadeamento de execução (em inglês: Thread), é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrencialmente. O suporte à thread é fornecido pelo próprio sistema operacional no caso da linha de execução ao nível do núcleo (em inglês: Kernel-Level Thread (KLT)), ou implementada através de uma biblioteca de uma determinada linguagem, no caso de uma User-Level Thread (ULT). Uma thread permite, por exemplo, que o usuário de um programa utilize uma funcionalidade do ambiente enquanto outras linhas de execução realizam outros cálculos e operações.

     

     

    https://pt.wikipedia.org/wiki/Thread_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)

  • e-

    Thread tem a ideia do subprocesso, mas com a mesma area dados do programa principal. Nao ha criação de PCB e o contexto de software é o mesmo do processo q o originou. O que diferencia os threads de 1 procvesso é os dados que eles processam. 


ID
2628523
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue o item a seguir, relativo a sistemas operacionais.


O escalonamento de threads nem sempre fica sob a responsabilidade do núcleo do sistema operacional.

Alternativas
Comentários
  • Certo, considerando as threads em modo usuário.


    Há dois tipos de threads

    • Thread em nível de “usuário”:
    – Uma biblioteca dá suporte a criação, escalonamento…, que executa em modo usuário;
    – O núcleo não interfere nas threads e nem sabe de sua existência;
    – Vantagens: muito rápidas de gerenciar, pois não necessitam do núcleo (chamada de sistema…);
    – Exemplo: bibliotecas Pthreads (POSIX), threads de SOLARIS.


    • Thread em nível de “núcleo” (kernel):
    – O núcleo oferece suporte a threads;
    – Mais lento em virtude de despender recursos para o seu gerenciamento;
    – O SO pode escalonar mais eficientemente as threads, inclusive em máquinas multi-processadas;
    – Exemplo: Windows, Solaris, Linux.

  • Assertiva CORRETA. 

     

    Complementando o comentário do Lucc: 

    - threads de usuário: o núcleo não as reconhece. Quem gerencia é o sistema supervisor;

    - threads de núcleo: o núcleo as reconhece e pode escaloná-las. 

  • Certo

    Escalonador de Processos escolhe o processo que será executado pela CPU; O escalonamento é realizado com o auxílio do hardware; O escalonador deve se preocupar com a eficiência da CPU, pois o chaveamento de processos é complexo e custoso: Ele afeta desempenho do sistema e satisfação do usuário; O escalonador de processo é um processo que deve ser executado quando da mudança de contexto (troca de processo);

  • Certo, as threads podem ser em nível de usuário, kernel ou híbridas. Quando de usuário, fica a cargo do programa gerenciar as threads, o SO vê e escalona apenas o processo. De kernel o SO escalona as threads. Em híbrido, N threads de usuário são mapeadas em M threads de kernel, e assim o escalonamento acaba sendo feito de forma híbrida também


ID
2628529
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue o item a seguir, relativo a sistemas operacionais.


Em uma execução de processo com multi-thread, o sistema operacional garante a proteção entre threads em relação ao espaço de memória compartilhado entre eles.

Alternativas
Comentários
  • Errado.

     

    Em um ambiente multithread, a unidade de alocação de recursos é o processo, em que todos os seus threads compartilham o espaço de endereçamento, descritores de arquivos e dispositivos de E/S. Por outro lado, cada thread representa uma unidade de escalonamento independente e, neste caso, o sistema não seleciona um processo para a execução, mas sim um de seus threads.

    Como threads de um mesmo processo compartilham o mesmo espaço de endereçamento, não existe qualquer proteção no acesso à memória, permitindo que um thread possa alterar facilmente dados de outros. Para que threads trabalhem de forma cooperativa, é fundamental que a aplicação implemente mecanismos de comunicação e sincronização entre threads, a fim de garantir o acesso seguro aos dados compartilhados na memória. Por outro lado, o compartilhamento do espaço de endereçamento é extremamente simples e rápido.

     

    http://www.inf.puc-rio.br/~francis/aso3ed/solexerc-v3.2-Jan-2005.pdf

  • aquele momento que você buga na hora de olhar as estatísticas para tentar descobrir se está certo ou errado, afinal, a galera se dividiu 32 acertaram e 32 erraram kkkkkkk

  • Errada.

    Conceitualmente, os threads do mesmo processo compartilham entre si o mesmo espaço de memória e os mesmos recursos do sistema.

  • Como compartilham o espaço de endereçamento, não existe proteção no acesso à memória.

    Uma thread pode alterar dados de outros!

  • Processos são protegidos, threads não


ID
2630320
Banca
FAURGS
Órgão
UFRGS
Ano
2015
Provas
Disciplina
Sistemas Operacionais
Assuntos

Em relação a conceitos gerais de sistemas operacionais, assinale a alternativa correta.

Alternativas
Comentários
  • Tanenbaum nomeia o modo núcleo como modo supervisor.
  • Considerando que a aplicação possua o devido privilégio para chamar a rotina do sistema desejada, o sistema operacional primeiramente salva o conteúdo corrente dos registradores, troca o modo de acesso do processador de usuário para kernel e realiza o desvio para a rotina alterando o registrador PC com o endereço da rotina chamada.

     

    Fonte: Arquitetura de sistemas operacionais / Francis Berenger Machado, Luiz Paulo Maia. - 5. ed. - [Reimpr.]. - Rio de Janeiro : LTC, 2014. página 75.

     

    Acredito que'o erro da B seja dizer que Threads compartilham "pilha", ou seja, variáveis locais.

  • Há diferenças e semelhanças nos itens presentes nas threads. Dentro de um processo, todas as threads possuem informações em comum, mas cada thread tem informações pertencentes somente a ela.

    Exemplos:

     

    Itens compartilhados entre as threads: Espaço de endereçamento; Variáveis globais; Arquivos abertos; Processos filhos; Alarmes pendentes; Sinais e tratadores de sinais; Informação de contabilidade.

     

    Itens privados por thread: Contador de programa; Registradores; Pilha; Estado.

  • As chamadas de sistema (system calls) são implementadas através de interrupções de software e provocam o chaveamento do modo de execução do processador de modo usuário para modo sistema.


ID
2684152
Banca
SUGEP - UFRPE
Órgão
UFRPE
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

A threads é a unidade básica de utilização de CPU, sendo uma ferramenta importante para compartilhar recursos do sistema, bem como para melhorar a execução de programas. A esse respeito, analise as proposições abaixo.

1) Threads possibilitam reduzir a alocação de recursos do sistema, além de diminuir o overhead na criação, troca e eliminação de processos.
2) Threads em modo usuário são implementadas pelos usuários, e não pelo sistema operacional. Apesar disso, tais threads são gerenciadas e sincronizadas pelo sistema operacional.
3) Threads em modo kernel são implementadas diretamente pelo núcleo do sistema operacional, através de chamadas a rotinas do sistema que oferecem todas as funções de gerenciamento e sincronização.

Está(ão) correta(s), apenas:

Alternativas
Comentários
  • 2) Incorreta. No modo usuário, as Threads não são vistas pelo sistema operacional como uma unidade que possa ser despachada; o S.O. enxerga somente o processo. 

  • Complementando o comentário do Concurseiro Francisco,

    Quem possui conhecimento de tais Threads de usuário é o Supervisor.

  • Threads no espaço do usuário

    - Cada processo possui uma tabela de thread.

     - O núcleo não tem conhecimento das threads.

     

     

    Threads de núcleo

     - Possui somente 1 tabela para todas as threads.

     - Mais lentas devido a troca de contexto

     

    @papirobizurado


ID
2721592
Banca
CEPS-UFPA
Órgão
UNIFESSPA
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

O conceito corretamente associado à multithread em sistemas operacionais é

Alternativas
Comentários
  • Gabarito A

    Multithreading é a capacidade que o sistema operacional possui de executar várias threads simultaneamente sem que uma interfira na outra. Estas threads compartilham os recursos do processo, mas são capazes de ser executadas de forma independente. Para possuir processamento multithread “real”, os processadores precisam ser capazes de atender duas ou mais threads ao mesmo tempo e não simular este efeito, atendendo-as uma por vez em um curto período de tempo.

    https://www.tecmundo.com.br/aumentar-desempenho/2841-o-que-sao-multi-e-hyper-threading-.htm

  • No conceito de Multithread, existe a ideia de programas associados a threads e não a processos. Nesse ambiente, o processo tem pelo menos um thread em execução, mas podendo compartilhar o seu espaço de endereçamento com outras threads (paralelismo) (Machado)

    .

    At.te

    Foco na missão ❢ 

  • Ambientes monothread: suportam apenas uma única thread em execução.

    Ambientes multithread: um único processo suporta múltiplos threads.

    Alternativa: A

  • Existência de múltiplas threads no mesmo processo está correto, o que pode confundir é executadas sequencialmente o que dá a entender que a CPU tem apenas um núcleo (single core) e dessa forma executa de maneira concorrente, mas não paralela. Quando existe paralelismo temos mais de um núcleo (multicore) na CPU, portanto dá pra executar 2 threads iguais ao mesmo tempo. Tanto a letra A e a letra E fazem sentido, portanto seria mais correto deixar explícito no enunciado a quantidade de núcleos da CPU.


ID
2764555
Banca
FAURGS
Órgão
TJ-RS
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

Para que seja possível executar um processo com várias threads (multithreaded process), o gerenciador de threads deve prever áreas específicas de memória para armazenar, separadamente por thread, as seguintes informações:

Alternativas
Comentários
  • A questão pede quais itens são privados(específicos) por Thread são eles:

                - Contador de Programa (PC);

                - Registradores específicos;

                - Pilha;

                - Estado;

     

    Sabendo disso, vamos as alternativas:

     a) pilha e área de código. Área de código é propriedade dos processos.

     b) registros do processador e pilha. CORRETA, por mais que a redação esteja estranha, mas acredito que foi com o intuito de nos enganar 

     c) pilha e área de dados. Área de dados é propriedade dos processos.

     d) área de código e área de dados. Ambos itens propriedades dos processos.

     e) descritores dos arquivos abertos e área de código.  Ambos itens são propriedades dos processos.

     


ID
2767840
Banca
FAURGS
Órgão
TJ-RS
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

Em relação aos conceitos de processo e thread, é correto afirmar que

Alternativas
Comentários
  •  a) um processo em execução não pode executar uma chamada de sistema.

                         Incorreta, se um processo em execução não puder fazer uma call system não há motivos para esse processo existir

     

     b) segundo o modelo de thread clássico, distingue-se processo de thread, pois processo é usado para agrupar recursos, enquanto thread é a entidade escalonada para execução em uma CPU. CORRETA

     

     c) processos ditos de segundo plano sempre estão associados a usuários e ficam aguardando alguma interação humana para entrarem em uma execução. 

                           Incorreta, geralmente processos em background não estão associados a alguma usuário, mas sim desempenhando alguma função especifica no sistema.

     

     d) em ambientes multiprogramados, precisa-se que os vários threads estejam sendo executados em diferentes processadores. 

                     Incorreta, não necessariamente precisam ser executados em processadores diferentes, visto que podem também serem executados no mesmo processador.

     

     e) quando há vários threads em execução é necessária a separação do espaço de endereçamento. 

               Incorreta, visto que o espaço de endereçamento é COMPARTILHADO pelas threads. Relembrando os itens que são PRIVADOS a cada Thread são: Contador de Programa, Pilha, Registradores especificos e o Estado.


ID
2767963
Banca
FAURGS
Órgão
TJ-RS
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

A tecnologia hyperthreading implementa o conceito de _________ e faz com que um processador físico seja visto pelo sistema como mais de um processador lógico.


Assinale a alternativa que preenche corretamente a lacuna do texto acima.

Alternativas
Comentários
  •  Multithreading  não apenas múltiplos threads podem ser executados simultaneamente em um núcleo de CPU, mas também múltiplas tarefas (com diferentes tabelas de páginas , diferentes segmentos de estados de tarefas , diferentes anéis de proteção, diferentes permissões de E / S , etc.). Embora rodando no mesmo núcleo, eles estão completamente separados um do outro.

     

     O multithreading é similar em conceito à multitarefa preemptiva, mas é implementado no nível de thread de execução em processadores superescalares modernos.

    O multithread simultâneo (SMT) é uma das duas principais implementações de multithreading.

     

    Gabarito: A

     

    Créditos: https://en.wikipedia.org/wiki/Simultaneous_multithreading


ID
2768677
Banca
COPESE - UFT
Órgão
UFT
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

Processos e threads fazem parte dos conceitos mais comuns em qualquer sistema operacional. Baseado nisso, assinale a alternativa INCORRETA.

Alternativas

ID
2823121
Banca
COMPERVE
Órgão
UFRN
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

Sistemas operacionais modernos têm uma gerência de processos e de threads bem definida. Nesse contexto, é correto afirmar:

Alternativas
Comentários
  • Thread compartilham contexto de software e espaço de endereçamento, mas não compartilha contexto de hardware.

  • Itens privados de uma Thread:

    Contador de programa Registradores Pilha Estado


    Threads de um mesmo processo compartilham o espaço de endereçamento.


    Gabarito A.

  • a) threads de um mesmo processo compartilham a mesma seção de código na memória.

    Correta, gabarito da questão.

    .

    b) threads de um mesmo processo compartilham a mesma seção da pilha na memória.

    Incorreta, conforme citado pelo colega abaixo, threads possuem 4 itens privativos: Contador de programa; Registrador; Pilha e Estado;

    .

    c) todas as variáveis de uma thread são compartilhadas com as outras threads do mesmo processo.

    Incorreta, há 4 itens privativos, conforme citado na alternativa B;

    d) todos os contextos de uma thread são compartilhados com as outras threads do mesmo processo.

    Incorreta, o contexto de hardware não é compartilhado, entretanto o contexto de software é compartilhado e neste contexto possuímos: espaço de endereçamento, variáveis globais, arquivos globais, sinais, alarmes, processos;Compartilhado a todas as Threads

  • A meu ver, a questão induz ao erro com a alternativa C, uma vez que fala de "Variáveis" e não de "Itens". De acordo com Tanenbaum, as Variáveis globais são compartilhadas entre as Threads de um mesmo processo.

  • Thread compartilha -> Recursos do SO, seção de códigos e seção de dados.

    Particular de cada thread -> Conjunto de registradores e espaço de pilha.


ID
2832277
Banca
UFPR
Órgão
COREN-PR
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

Em relação aos sistemas operacionais modernos, é correto afirmar:

Alternativas
Comentários
  • Gabarito A

    Thread - É a tarefa que um determinado programa realiza.

    Linha ou Encadeamento de execução (em : Thread), é uma forma de um  dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrencialmente. O suporte à thread é fornecido pelo próprio  no caso da linha de execução ao nível do núcleo (em : Kernel-Level Thread (KLT)), ou implementada através de uma biblioteca de uma determinada , no caso de uma User-Level Thread (ULT). Uma thread permite, por exemplo, que o utilizador de um programa utilize uma funcionalidade do  enquanto outras linhas de execução realizam outros cálculos e operações.

    Em hardwares equipados com uma única , cada thread é processada de forma aparentemente simultânea, pois a mudança entre uma thread e outra é feita de forma tão rápida que para o utilizador, isso está acontecendo paralelamente. Em hardwares com múltiplos CPUs ou multi-cores, as threads são realizadas realmente de forma simultânea.

    Os sistemas que suportam uma única thread (em real execução) são chamados de monothread enquanto que os sistemas que suportam múltiplas threads são chamados de .

    "Retroceder Nunca Render-se Jamais !"

    Força e Fé !

    Fortuna Audaces Sequitur !

  • Complementando o colega aí de cima, algumas palavras ficaram faltando:

    Em hardwares equipados com uma única CPU, ...

    que suportam múltiplas threads são chamados de multithread.

  • O Linux trabalha, essencialmente, com quatro tipos de situação, isto é, estados:

    Fonte: https://www.vivaolinux.com.br/dica/Estado-dos-processos

  • Complementando

    Sobre a D

     Associada com cada classe de E/S há um local (geralmente em um local fixo próximo da parte inferior da memória) chamado de vetor de interrupção. Ele contém o endereço da rotina de serviço de interrupção.

    Uma vez que a CPU tenha decidido aceitar a interrupção, O número do dispositivo pode ser usado como um índice para parte da memória para encontrar o endereço do tratador de interrupção (interrupt handler) para esse dispositivo. Essa parte da memória é chamada de vetor de interrupção.

    Tanenbaum.


ID
2921614
Banca
FEMPERJ
Órgão
TCE-RJ
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

Para resolver o problema da hierarquia de processos, foi criado o conceito de “thread", onde um processo pode efetuar várias operações concorrentemente ou simultaneamente, sem o consumo de espaço de endereçamento. Nesse caso, o processo é dividido no número de threads sem que haja necessidade de ser criado outro processo concorrente. Assim sendo, é INCORRETO afirmar que:

Alternativas
Comentários
  • Threads no Modo Kernel (TMK) são criadas e escalonadas pelo sistema operacional ...

     

    Gabarito C.

    .

    .

    .

    At.te

    Foco na missão 

  • Threads = forma de dividir as tarefas de um processo para que sejam executadas simultaneamente. O custo de gerenciamento delas é bem menor que um processo. O escalanador do Sistema Operacional trabalha tanto como threads como processos.

    GABARITO: C


ID
2946979
Banca
IADES
Órgão
AL-GO
Ano
2019
Provas
Disciplina
Sistemas Operacionais
Assuntos

O scheduling da CPU lida com a escolha de qual processo, ou thread, da fila de prontos deve ser alocado a seguir. Existem vários algoritmos com essa função, sendo que um é comprovadamente ótimo, no quesito de minimizar o tempo médio de espera para determinado conjunto de processos. Esse algoritmo ótimo é scheduling

Alternativas
Comentários
  • Fiquei com muita duvida e mesmo procurando no livro do Tanebaum a duvida persiste, porque ele somente sera ótimo apenas quando as tarefas estão disponíveis ao mesmo tempo. A questão fala que ele e comprovadamente ótimo.

    Escalonamento de Tarefa mais curta primeiro (Shortest-Job-First) – Como o próprio nome já diz, essa abordagem prioriza os processos mais curtos primeiro, o problema é descobrir qual dos processos atualmente executáveis é o mais curto. Uma abordagem é fazer estimativas baseadas no comportamento passado e executar o processo com o tempo de execução estimado mais curto. A tarefa mais curta primeiro é provavelmente uma ótima escolha. Vale a pena destacar que a tarefa mais curta primeiro é ótima apenas quando todas as tarefas estão disponíveis simultaneamente.

    Sistemas Operacionais Modernos, 4° ed, Tanebaum

  • João Paulo, você tem razão.

    Mas creio que a banca, ao afirmar "...para determinado conjunto de processos" já esteja considerando que as tarefas estejam disponíveis simultaneamente.

  • "no quesito de minimizar o tempo médio de espera para determinado conjunto de processos"

    Resolvendo os processos mais curtos (mais rápidos) primeiro, conseguiremos resolver mais processos numa mesma quantidade de tempo, logo o tempo médio de espera é reduzido.

  • Quando há vários trabalhos igualmente importantes esperando na fila de entrada para serem iniciados, o escalonador escolhe a tarefa mais curta primeiro (shortest job first).


ID
3092119
Banca
VUNESP
Órgão
Câmara de Indaiatuba -SP
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

As threads são suportadas por diversos sistemas operacionais modernos. Cada thread

Alternativas
Comentários
  • Assertiva D

    As threads são fluxos de um programa em execução. Um programa em execução é chamado de processo. Um processo, contém no mínimo uma thread. Como exemplo, um programa que recebe dois números, multiplica um pelo outro e retorna, contém apenas um fluxo de execução.

  • a) não pode compartilhar as mesmas variáveis de um processo.

    Incorreta, na verdadem thread compartilham as variáveis, leia-se variáveis globais, dos processos.

    .

    b) não pode se replicar, pois, nessa situação, haveria a necessidade de duplicação de todo o processo.

    Incorreta, o proposito de Thread é fazer uso da replicação para evitar a duplicidade de processos, economizando memória, processamento CPU, etc.

    .

    c) não pode voluntariamente desistir do uso da Unidade Central de Processamento, devendo sempre ser executada até o seu final.

    Incorreta, pode sim desistir se o seu processamento já houver terminado.

    .

    d) tem acesso à memória e aos recursos do processo ao qual pertence.

    Correta, GABARITO DA QUESTÃO.

    .

    e) utiliza a mesma pilha do processo que a criou.

    Incorreta, a pilha é privada à Thread a qual ela pertence

  • As threads contêm privativamente os registradores e a sua pilha.


ID
3132805
Banca
VUNESP
Órgão
Câmara de Piracicaba - SP
Ano
2019
Provas
Disciplina
Sistemas Operacionais
Assuntos

No contexto de gerenciamento de processos e fluxos de execução (threads) em sistemas operacionais, assinale a alternativa em que todos os itens listados sejam privados para cada thread, isto é, não são compartilhados com outros threads no mesmo processo.

Alternativas
Comentários
  • Itens privados por thread: Contador de programa; Registradores; Pilha; Estado.

    Itens compartilhados entre as threads: Espaço de endereçamento; Variáveis globais; Arquivos abertos; Processos filhos; Alarmes pendentes; Sinais e tratadores de sinais; Informação de contabilidade.

  • concordo!!!errei pq fiz esse raciocínio.

  • Threads Compartilham:

    -Espaço de endereçamento;

    -Variáveis Globais;

    -Arquivos abertos;

    -Processos filhos;

    -Alarmes pendentes;

    -Sinais e rotinas de tratamento de sinais;

    -informações de contabilização

    Threads não Compartilham;

    -Contador de programa;

    -Registradores;

    -Pilha;

    -Estado.


ID
3227041
Banca
INSTITUTO AOCP
Órgão
PRODEB
Ano
2018
Provas
Disciplina
Sistemas Operacionais
Assuntos

Um thread é uma unidade básica da CPU. Ele compartilha, com outros threads pertencentes ao mesmo processo, sua seção de código, a seção de dados e outros recursos do sistema operacional. Sobre benefícios da programação com vários threads, assinale a alternativa correta. 

Alternativas
Comentários
  • Alternativa C

    -Capacidade de resposta(paralelismo)

    -compartilhamento de recursos e economia(usam recursos já existentes dos processos)

    -escalabilidade são benefícios.


ID
3254935
Banca
COVEST-COPSET
Órgão
UFPE
Ano
2019
Provas
Disciplina
Sistemas Operacionais
Assuntos

O sistema operacional necessita definir quais tarefas e processos serão executados pelo processador em um determinado momento. Este gerenciamento é conhecido por escalonamento. Especificamente no contexto de sistemas Linux:

Alternativas
Comentários
  • hannnn...?!?!?
  • quem poderá nos ajudar?
  • o Escalonamento do Linux é feito com threads e com processos. Alguém sabe a fonte(fora a maconha que o examinador pode ter fumado) que foi tirada essa afirmação da alternativa A?

  • Gabarito sem lógica e passível de anulação.

  • ??????????

  • fudeu tudo o raciocínio

  • ????? ALGUEM PODE EXPLICAR COMO A LETRA A É A CERTA???

  • Também errei essa e fui pesquisar a fundo.

    Achei um artigo de um professor da puc goais que confirma o gabarito.

    Gabarito A.

    Escalonamento no Linux é baseado em threads e não processos. 

    Linux distingue três classes de threads para questões de escalonamento: 

    FIFO em tempo real.

    Chaveamento circular em tempo real.

    Tempo compartilhado.

    Fonte:

    http://professor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/

    17505/material/Threads_Escalonamento.pdf

  • Só nessa banca que o gabarito não é a A