Prévia do material em texto
Centro Universitário Farias Brito Ciência da Computação � FBUni� Curso de Ciência da Computação� Disciplina Sistemas Operacionais Professor Sérgio Yunes� 4º Semestre� 5ª Lista de Exercícios Quais os problemas de aplicações concorrentes desenvolvidas em ambientes monothread? A aplicação deve implementar a concorrência através do uso de múltiplos processos independentes ou subprocessos, permitindo dividir uma aplicação em partes que podem trabalhar de forma concorrente. O que são threads e quais são as vantagens de sua utilização É a tarefa que um determinado programa realiza. Linha ou Encadeamento de execução, é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrencialmente. Explique a diferença entre unidade de alocação de recursos e unidade de escalonamento. Com a unidade de alocação de recursos o processador seleciona um processo para execução e com a unidade de escalonamento permite a execução de threads. Quais as vantagens e desvantagens do compartilhamento do espaço de endereçamento entre threads de um mesmo processo? As vantagens são que programas com multithreads são mais rápidos, a comunicação entre eles é feita de forma mais rápida e eficiente e podem compartilhar facilmente outros recursos. As desvantagens são que não existe qualquer proteção no acesso à memória, permitindo que um thread possa alterar facilmente dados de outro. Compare os pacotes de threads em modo usuário e modo kernel. Threads em modo usuário (TMU) são implementados pela aplicação e não pelo sistema operacional. Para isso, deve existir uma biblioteca de rotinas que possibilita à aplicação realizar tarefas como criação/eliminação dethreads, troca de mensagens entre threads e uma política de escalonamento. Neste modo, o sistema operacional não sabe da existência de múltiplos threads, sendo responsabilidade exclusiva da aplicação gerenciar e sincronizar os diversos threads existentes. Threads em modo kernel (TMK) são implementadas diretamente pelo núcleo do sistema operacional, através de chamadas a rotinas do sistema queoferecem todas as funções de gerenciamento e sincronização. O sistema operacional sabe da existência de cada thread e pode escaloná-los individualmente. No caso de múltiplos processadores, os threads de um mesmo processo podem ser executados simultaneamente. Um thread pode sofre preempção por uma interrupção de relógio? Em caso afirmativo, sob quais circunstâncias? Do contrário, por que não? Como o uso de threads pode melhorar o desempenho de aplicações paralelas em ambientes com múltiplos processadores? Quais os benefícios do uso de threads em ambientes cliente-servidor?