Vous êtes sur la page 1sur 5

Processos So todos os programas que so executados pelo PC seja pelo usurio ou pelo sistema, um exemplo provvel de processo por

usurio seria voc executar o Word onde tal e definido um pid (um numero de identificao definido pelo sistema quando um processo esta executando), uma parte da memria (principal) alocado para o aplicativo, e definido uma parte do processador pra processar os dados, para que tal funcione j um processo por sistema so todos os processos necessrios para o funcionamento correto do PC como o Windows Explorer sem ele no conseguiramos usar o PC como usamos ele.

Diagrama de Estados do Processo:

No estado executando, um processo pode fazer chamadas de sistema. At a chamada de sistema ser atendida, o processo no pode continuar sua execuo. Ele fica bloqueado e s volta a disputar o processador aps a concluso da chamada. Enquanto espera pelo trmino da chamada de sistema, o processo est no estado bloqueado. O sistema operacional ento seleciona um processo da fila de aptos para receber o processador. O processo selecionado passa do estado de apto para o estado executando. O mdulo do sistema operacional que faz essa seleo chamado de escalonador.

Threads

O que Thread?

Thread uma linha de execuo, uma seqncia de instrues a serem executadas dentro de um processo. Ela possibilita que o processo execute mais de uma funo paralelamente, quando h mais de um thread no mesmo programa. Podemos dizer ento que cada thread responsvel por uma funo dentro de um programa. Em um chat, por exemplo, uma thread responsvel pelo texto, outra pelos alertas sonoros.

Podemos exemplificar os threads de uma forma muito simples usando uma partida de futebol como exemplo, dentro de um campo cada jogador possui uma funo, um ataca, outro defende, outro articula jogadas pelo meio de campo, etc. Eles tm contato entre si atravs do toque de bola. A bola est nas mos do goleiro, este executa sua funo lanando a bola para o zagueiro, que por sua vez, toca para o meio de campo e assim vai sendo feita a jogada.

Em hardware com uma nica UCP os threads tambm so assim, ocupam o mesmo espao de endereamento, cada qual com sua funo, assim que o thread que est em execuo conclui sua tarefa o que estava aguardando comea sua execuo, tudo de uma forma muito rpida, dando a impresso para o usurio que tudo est sendo executado simultaneamente. J em hardwares com mais de uma UCP essa execuo ocorre de fato simultaneamente.

Um thread possui basicamente:

* Contador de programa. * Registradores de instrues, que informa qual a prxima instruo a ser executada. * Pilha de execuo, com essas instrues a serem executadas. * Estado de execuo.

As threads so conhecidas tambm como processos leves devido seu compartilhamento de memria, que possibilita que as threads sejam executadas em paralelismo, permitindo assim que varias execues ocorram de forma independente dentro de um processo. A principal vantagem do uso de threads para o usurio o ganho real de tempo na execuo de um programa, pois ele pode ter mais de uma linha de execuo, podendo assim executar tarefas diferentes ao mesmo tempo sem depender umas das outras.

Diferenas entre Threads e processos

Basicamente, quando um programa vai ser executado pelo sistema operacional, esse gera um processo. O processo na realidade o ambiente desse programa em execuo. Esse programa certamente executa suas tarefas e faz isso usando de uma seqncia de instrues. Thread essa seqncia de instrues, ou linha de execuo. Uma das grandes diferenas entre threads e processos o tempo de chaveamento de contexto. Esse chaveamento de contexto a troca entre o contexto de dados do processo que est em execuo, esse precisa ser guardado para liberar o contexto para o prximo processo. Esse tempo de chaveamento entre as threads bem menor devido o contexto entre as threads ser compartilhado.

Processo:

* uma linha de execuo dentro do sistema operacional. * Cada um possui um espao de endereamento. * O tempo de chaveamento de contexto entre os processos mais alto.

Thread:

* uma linha de execuo dentro do processo. * Compartilham o mesmo espao de endereamento. * O tempo de chaveamento de contexto baixo, pois o contexto entre threads compartilhado.

Multithread

Basicamente, multithread um processo composto de vrios threads. Nesse contexto, no h a ideia de um programa mas de threads(linhas de execuo). Assim, um processo tem pelo menos um thread, que pode ter seu espao de endereamento compartilhado com outros threads, podendo ser executados de forma concorrente e/ou simultnea, este ultimo acontecendo no caso de mltiplos processadores. Por compartilharem o mesmo espao de endereamento, um thread pode alterar dados de outro, porm, eles so desenvolvidos para trabalhar em conjunto tornando essa possibilidade quase nula. Esse tipo de arquitetura tenta reduzir o overhead na troca de contextos entre threads dois modelos dessa arquitetura: multithread com granularidade (fina ou grossa) e multithread simultneo. Multithread de granularidade fina: Granularidade, por definio, dividir tarefas em varias partes. Na granularidade fina h troca de contexto em todo ciclo, por parte do processador e apenas uma instruo de cada contexto esta presente no pipeline (tarefas independentes de vrias instrues so executados simultaneamente). Durante a troca de contexto o overhead nulo.

Multithread de granularidade grossa: Esse pode ser dividido em duas classes: esttica e dinmica. Na dinmica, o processador troca de contexto quando existe uma longa latncia. Nesse caso a overhead e, este, proporcional a profundidade no pipeline do estagio que dispara a troca de contexto. Na esttica, temos o mecanismo implcito e o explicito. No implcito a troca de contexto feita quando certas instrues so encontradas. No explicito a troca de contexto ocorre quando instrues explicitas so encontradas. H overhead se a instruo for interrompida, o que no acontece no caso de ser executada corretamente. Nesse tipo de granularidade(grossa), as partes da tarefa so maiores, porem, esto em menor numero e no suportam um numero grande de troca de contexto.

Multithreading simultneo: Permite que vrios threads sejam executados no mesmo ciclo simultaneamente. Essa arquitetura tenta reduzir o numero de slots que no so ocupados a cada ciclo e o numero de ciclos em que nenhuma instruo realizada.

Vantagens Programas que utilizam multithread so mais rpidos em relao aos que utilizam subprocessos , pois compartilham recursos do processo gerando um maior desempenho. Os recursos de hardware podem ser usados de forma concorrente pelos threads, gerando um melhor uso dos mesmos. No apenas aplicaes tradicionais podem fazer uso dos benefcios do multithreading. O ncleo do sistema operacional tambm. Quando o kernel multithread possvel atender a vrias solicitaes, como, por exemplo, em device drivers. Neste caso, mecanismos de sincronizao devem ser utilizados para proteger as estruturas de dados internas do ncleo.

Diferencie Threads e Processo

Threads uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente. O suporte thread fornecido pelo prprio sistema operativo

(SO), no caso da linha de execuo ao nvel do ncleo , ou implementada atravs de uma biblioteca de uma determinada linguagem, no caso de uma User-Level Thread (ULT). Os threads, conceitualmente, se assemelham a subprocessos, porm, diferentemente destes, no possuem identidade prpria e, portanto, no so independentes. Cada thread possui seu prprio contador de programa, sua pilha e seus registradores, porm compartilham todo o mesmo espao de endereamento como se fossem uma nica entidade .

Processos Trata-se de uma estrutura mais complexa que contm, alm do programa no seu formato executvel, todas as informaes necessrias execuo e ao controle da execuo do mesmo, como por exemplo: o contador de programa, pilhas, registradores e rea de dados. Em quanto o programa uma entidade passiva, que pode ser visto como o contedo de um arquivo em disco, o processo uma entidade ativa, possuindo um contador de programa(PC), que especifica a prxima instruo a ser executada, e um conjunto de recursos a ele alocados.

Estado de execuo de um processo quando um processo em execuo solicita um recurso que no est disponvel no momento cuja obteno seja operacionalizada fora da UCP, ele automaticamente perde o controle da UCP e passa do estado de execuo para o de espera. O processo estando no estado de espera passa para o estado de pronto para execuo assim que tiver sua solicitao de recurso atendida pelo sistema. No estado de pronto ele est em condies de reiniciar sua execuo e fica aguardando apenas chegar sua vez de retomar o controle da UCP.

Definio de processo e threads Um processo constitudo por: Program Counter, Stack (Pilha), Conjunto de registradores, Registrador de status, Espao prprio de endereo, Variveis globais, Arquivos abertos, Semforos, Informaes de contabilizao. Threads constitudo: Program Counter, Stack (Pilha), Conjunto de registradores, Registrador de status e Threads filhos.

Vous aimerez peut-être aussi