Baixe o app para aproveitar ainda mais
Prévia do material em texto
Trabalho Sistemas Operacionais. Aluno: Diego Medeiros de Araújo Mat.: 201903491169 O que são processos e suas divisões e estados: Processo: Um processo pode ser considerado como um programa em execução, também um conjunto de informações necessárias para a concorrência de programas no sistema operacional. Além disso, também pode ser entendido como o ambiente onde um programa é executado. Espaço de endereçamento: Esta parte do processo refere-se a área da memória que pertence ao processo, que ele possui para armazenar instruções e dados para sua execução. Estados de um processo: Um processo pode ter basicamente três estados: em execução, pronto ou em espera. Execução (running) Dizemos que um processo está em execução quando ele está sendo processado pela CPU. Pronto (ready) Estar em estado de pronto significa que o processo aguarda para ser executado. A ordem de execução dos processos em estado de pronto é determinada pelo mecanismo de escalonamento. Espera (wait) O processo encontra-se em estado de espera quando aguarda por algum evento externo ou algum recurso para prosseguir sua execução. Relação entre as Threads e os Processos: Definição De Thread: A tradução literal da palavra thread é linha, e em computação pode ser entendida como a linha (ou instrução) de programa em execução. Mas o conceito de thread estende o simples conceito de linha de programa, pois um thread não é definido isoladamente, e sim em conjunto com outras threads: “Threads são partes independentes de um processo em execução”. Definição De processo: Em computação, um processo é uma instância de um programa de computador que está sendo executada. Ele contém o código do programa e sua atividade atual. Dependendo do sistema operacional (SO), um processo pode ser feito de várias linhas de execução que executam instruções concorrentemente. A diferença básica entre threads e processos é: um processo não compartilha um mesmo recurso do computador simultaneamente com outro processo, enquanto que uma thread pode compartilhar um mesmo recurso simultaneamente com outras threads (dentro do mesmo processo). Várias threads são executadas simultaneamente pelo processador, pois são partes distintas de um processo, como por exemplo: uma thread que irá realizar a soma de dois números pode ser executada simultaneamente com uma outra thread que irá gravar uma informação no disco-rígido. Diferenças entre Threads e Processos As threads se diferenciam dos processos nas seguintes propriedades: • Os processos em execução no computador utilizam os recursos de modo exclusivo, não permitindo que outro processo (nem mesmo do próprio programa) acesse o mesmo recurso que já estiver em uso; • As Threads podem compartilhar a utilização de um recurso, mas este compartilhamento ocorre apenas dentro de um único processo (pois o compartilhamento entre processos não existe). • Os processos possuem uma grande quantidade de informação associada a eles, informações que são utilizadas pelo sistema operacional para gerenciar a execução de vários processos sem que aconteçam erros; • Threads não necessitam de muita informação para gerenciamento, pois são específicas de cada processo, tornando seu gerenciamento mais fácil e rápido. • Quando o sistema operacional vai realizar a Troca de Contexto de um processo para outro, várias informações têm que ser salvas, os recursos utilizados têm que se manter bloqueados, e o trecho de execução (linha de código) do processo têm que ser salva para que o mesmo possa continuar a execução em um segundo momento. As threads em um mesmo processo compartilham os mesmos recursos do computador. Isto implica em Acesso Concorrente aos recursos, e Execução Concorrente das instruções do programa. 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. Essa abordagem difere do multiprocessamento e não deve ser confundida; Em um aplicativo multithread, os threads compartilham os recursos de um ou mais núcleos do processador, incluindo unidades de computação, cache e o buffer de pesquisa de tradução (TLBL). 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. 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. Referencias: http://tuti-sisop.blogspot.com/2014/04/6.html https://canaltech.com.br/produtos/o-que-e-thread/ https://www.youtube.com/watch?v=xNBMNKjpJzM https://www.youtube.com/watch?v=Yb0rViAwVQ0 https://itigic.com/pt/multi-threaded-execution-on-cpu-how-it-works-in- performance/ http://tuti-sisop.blogspot.com/2014/04/6.html https://canaltech.com.br/produtos/o-que-e-thread/ https://www.youtube.com/watch?v=xNBMNKjpJzM https://www.youtube.com/watch?v=Yb0rViAwVQ0 https://itigic.com/pt/multi-threaded-execution-on-cpu-how-it-works-in-performance/ https://itigic.com/pt/multi-threaded-execution-on-cpu-how-it-works-in-performance/
Compartilhar