assunto: so2015-10 O que é threading e quais os seus principais benefícios? R. Sistemas atuais suportam múltiplas threads de controle, ou seja, pode fazer mais de uma tarefa ao mesmo tempo, servindo ao mesmo propósito; Thread é uma entidade básica de utilização da CPU. Também conhecidos como processos leves (lightweight process ou LWP); Processos com múltiplas threads podem realizar mais de uma tarefa de cada vez; Razões para existência de threads: • Em múltiplas aplicações ocorrem múltiplas atividades “ao mesmo tempo”, e algumas dessas atividades podem bloquear de tempos em tempos; •As threads são mais fáceis de gerenciar do que processos, pois elas não possuem recursos próprios o processo é que tem! •Desempenho: quando há grande quantidade de E/S, as threads permitem que essas atividades se sobreponham, acelerando a aplicação; •Paralelismo Real em sistemas com múltiplas CPUs. •Processos são usados para agrupar recursos; threads são as entidades escalonadas para execução na CPU •A CPU alterna entre as threads dando a impressão de que elas estão executando em paralelo; Como funciona as threads em modo usuário ? Em modo usuário (espaço do usuário): implementadas por bibliotecas no espaço do usuário; o Criação e escalonamento são realizados sem o conhecimento do kernel; ? Sistema Supervisor (run-time system): coleção de procedimentos que gerenciam as threads; ? Tabela de threads para cada processo; o Cada processo possui sua própria tabela de threads, que armazena todas a informações referentes à cada thread relacionada àquele processo; Como funciona as threads em modo kernell ? R. Em modo kernel: suportadas diretamente pelo SO; Criação, escalonamento e gerenciamento são feitos pelo kernel; ?Tabela de threads e tabela de processos separadas; ?as tabelas de threads possuem as mesmas informações que as tabelas de threads em modo usuário, só que agora estão implementadas no kernel;