Threads E Sua Utilização Em Windows E Linux
Artigos Científicos: Threads E Sua Utilização Em Windows E Linux. Pesquise 862.000+ trabalhos acadêmicosPor: eltonmatteus • 6/12/2014 • 592 Palavras (3 Páginas) • 352 Visualizações
Threads e sua utilização em Windows e Linux
Elton Mateus Varela; Mayconvorgel Ibrahim Ribeiro
1. Introdução
Hoje em dia os computadores realizam diversas tarefas ao mesmo tempo. É muito comum um computador executar um player de música, um navegador da internet, transferir arquivos para um disco removível simultaneamente. Entretanto, apenas computadores com múltiplos processadores conseguem realizar tarefas de forma concorrente.
Em computadores que utilizam um único processador, os sistemas operacionais utilizam diversas técnicas para simular a simultaneidade, oferecendo uma possibilidade de melhor aproveitamento dos recursos computacionais.
Juntamente com a criação de processos, normalmente pode-se criar um fluxo de execuções leves, mais conhecidos como threads, que compartilham os recursos alocados a um processo (Koslovski et al, 2012) Essas threads são escalonadas em um processador sendo que cada uma delas pode executar uma série de comandos ou instruções independente de quaisquer outros processos ou threads (Heidrich, 2009).
2. Threads
O nome “thread” se refere a um fluxo de instruções, onde linha por linha é executada. Uma thread consiste em: um apontador de instruções (ID), conjunto de registradores e espaço de pilhas (Scheffer, 2012).
As threads se tornaram recursos indispensáveis na execução e desenvolvimento de diversas aplicações. Atualmente as threads são utilizadas para a implementação de programas que necessitam de uma computação rápida e eficiente, permitindo o compartilhamento de recursos que por vezes não é possível utilizando processos (Koslovski et al, 2012).
O mecanismo de threads permite que processos sequenciais sejam executados paralelamente, apesar de poderem fazer chamadas ao sistema que bloqueiam processos (Scheffer, 2007).
Os processos leves podem ser classificados em três tipos: threads sistema, threads usuário e threads híbridas. O modelo e atrelado a estratégia de desenvolvimento utilizada na implementação da biblioteca de threads.
Processos leves implementados em nível de sistema são vistos de forma independente pelo kernel, da mesma forma que ocorre com os processos. Neste caso, para o escalonador nãoo existe uma distinção específica entre processos e threads e a concorrência pela execução acontece de uma forma igualitária (Koslovski et al, 2012).
Em contra partida, implementações em espaço de usuário realizam a manipulação do controle dos fluxos de execuções através de bibliotecas específicas, muitas vezes suprindo necessidades não providas no sistema operacional. Nesse segundo modelo, as threads são invisíveis ao kernel, deixando o escalonamento delas ao nível de usuário (Koslovski et al, 2012).
Por outro lado, o modelo de threads híbridas tenta agregar as vantagens provenientes dos dois modelos anteriores, permitindo a utilização simultânea de threads sistema e usuário (Tanenbaum, 2008).
Uma thread possui diversos estados durante a execução de uma tarefa ou processo. São eles: ‘novo’ (new), estado inicial de uma thread; ‘executável’ (ready), estado da thread após o programa inicializar a mesma; ‘executando’, a thread está sendo executada; ‘espera’
...