Buscar

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

O quê são processos, suas divisões e estados?
	Os processos representam tarefas em execução, mas nem todas têm relação direta com algum aplicativo. Muitas delas são executadas em pano de fundo e mantêm o sistema trabalhando - gerenciando redes, memória, disco, checagem antivírus, etc. Logo, podemos definir processos como softwares que executam alguma ação e que podem ser controlados de alguma maneira, seja pelo usuário, pelo aplicativo correspondente ou pelo sistema operacional.
	Um processo passa por diferentes estados desde sua criação até seu término. Enquanto ele é criado, seu estado é considerado "Novo"; em ação, muda para "Executando"; quando depende da ocorrência de algum evento, vira "Esperando"; quando não mais necessário, o processo é "Terminado". 	O sistema operacional reúne todas essas informações através de estruturas específicas chamadas PCB (sigla de Process Control Blocks, o que em tradução livre seria Blocos de Controle de Processos).
Qual a diferença básica entre processos e threads?
	Os processos e os encadeamentos são sequências independentes de execução. A diferença típica é que os threads (do mesmo processo) são executados em um espaço de memória compartilhado, enquanto os processos são executados em espaços de memória separados.
	Em SO tradicionais, cada processo tem um único fluxo de execução (o que define uma thread), a unidade de processamento concorrente destinada para ser executada sob as condições de desempenho de um processador da época. Com o surgimento de processadores de mais alto desempenho, uma nova unidade de processamento concorrente pôde ser definida dentro do próprio processo, materializando novas unidades de fluxo de execução e assim pode-se ter múltiplos fluxos de execução (múltiplas threads) num mesmo processo. O que as threads acrescentam ao modelo de processo é permitir que múltiplos fluxos de execução ocorram no mesmo ambiente do processo, com um grau de independência uma das outras. Assim, múltiplas threads executam concorrentemente em um processo, e é análogo a múltiplos processos executando concorrentemente em um único computador. No primeiro caso, threads compartilham o mesmo espaço de endereçamento e recursos do processo onde são executadas e o termo multhreading é usado para descrever a situação em que múltiplas threads são executadas no mesmo processo. 	Quando um processo com múltiplas threads é executado em um SO com um único processador, os threads são escalonados para execução, alternando rapidamente entre os threads, dando a ilusão que são executadas em paralelo num processador mais lento que o processador real.
O que são sistemas multithread e como funcionam?
	Multithreading é a capacidade que o sistema operacional possui de executar vários threads simultaneamente sem que uma interfira na outra. Estes 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.

Mais conteúdos dessa disciplina