Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais Professor: Lucas Cambuim alunos: Edvaldo Ribeiro, Elvison Victor Lista de exercícios 4 Processos e threads partes 2 e 3 1. Enumere pelo menos três motivos para adotar múltiplos threads ao invés de múltiplos processos - Simplificação do modelo de programação: Em muitas aplicações ocorrem múltiplas atividades simultaneamente, e algumas delas podem ser bloqueadas de tempo em tempos. Ao decompor uma aplicação em múltiplos threads sequenciais que executam quase em paralelo, há uma simplificação do modelo de programação. - Threads são mais rápidos de criar e destruir se comparado aos processos, uma vez que não possuem quaisquer recursos associados a eles. - Desempenho: quando há grande quantidade de computação e de E/S, os threads permitem que essas atividades se sobreponham, acelerando a aplicação. 2. Diga as vantagens e desvantagens de se implementar threads no espaço do usuário em relação a threads no espaço do núcleo Modo usuário Vantagens : - possibilidade de sistema operacional que não suporta threads, implementar aplicações multithreads. - Utilizando a biblioteca, múltiplos threads podem ser utilizados, compartilhando o mesmo espaço de endereçamento do processo e outros recursos. - Threads em modo usuário são rápidos e eficientes, por dispensar acesso ao kernel do sistema para a criação, eliminação, sincronização e troca de contexto das threads. - A biblioteca oferece todo o suporte necessário em modo usuário, sem a necessidade de chamadas ao sistema - O sistema operacional desconhece a existência dos threads, sendo responsabilidade da biblioteca particionar o tempo de CPU do processo (timeslice) entre os diversos threads existentes. - Como cada aplicação possui sua cópia da biblioteca, é possível implementar uma política de escalonamento diferente, em função da sua necessidade. Desvantagens: - Threads em modo usuários são difíceis de implementar - compartilhamento de variáveis da biblioteca multithread sem a devida sincronização. Modo Kernel Vantagens: - O sistema operacional (escalonador) sabe da existência de cada thread e pode escalona-los individualmente. - O sistema operacional (escalonador) sabe da existência de cada thread e pode escalona-los individualmente. - No caso de múltiplos processadores, os threads de um mesmo processo podem ser executados simultaneamente. - compartilhamento de variáveis, tratamento de sinais, chamadas síncronas, escalonamento em múltiplos processadores. Desvantagens: - O grande problema para pacotes em modo kernel é o seu desempenho, sendo da ordem de dez vezes mais lento que o modo usuário. - Enquanto que pacotes em modo usuário todo tratamento é feito sem a ajuda do sistema operacional, ou seja, sem a mudança do modo de acesso (usuário-kernel-usuário), pacotes em modo kernel utilizam chamadas ao sistema e consequente mudança de modo de acesso. 3. Descreva o que é implementação de threads em modo híbrido e sua principal vantagem. Nesta arquitetura existe a ideia de combinar as vantagens de threads implementados em modo usuário e modo kernel. Os threads em modo kernel chamados de TMKs e os de modo usuário de TMUs. Um processo pode ter vários TMKs e, por sua vez, um TMK pode ter vários TMUs. O núcleo do sistema reconhece os TMKs e pode escaloná-los individualmente. Um TMU pode ser executado em um TMK, em um determinado momento, e no instante seguinte ser executado em outro. O programador desenvolve a aplicação em termos de TMUs e especifica quantos TMKs estão associados ao processo. Os TMU são mapeados em TMK enquanto o processo está sendo executado. O programador pode utilizar apenas TMKs, TMUs ou uma combinação de ambos. A principal vantagem do pacote híbridoé possuir maior flexibilidade,porém também apresenta problemas herdados de ambas as implementações. Por exemplo, quando um TMK realiza uma chamada bloqueante, todos os TMUs são colocados no estado de espera. TMUs que desejam utilizar vários processadores devem utilizar diferentes TMKs, o que influenciará no desempenho. 4. Qual a vantagem da thread Pop-up em relação a uma thread operando a maior parte do tempo em modo bloqueado. - Por serem criadas novas threads no caso de threads pop-up, não existem: registradores, pilhas ou qualquer coisa a ser restaurada, e com isso a criação de uma nova thread é bem mais rápida. 2
Compartilhar