Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais – Lista de Exerćıcios Processos e Threads 1. Na figura mostrada abaixo, são mostrados três estados de processo. Na teoria, com três estados de processos, poderia haver seis transições, duas para cada estado. Contudo, apenas quatro transições são mostradas. Há alguma circunstância na qual uma delas ou ambas as transições não ilustradas possam ocorrer? 2. Suponha as seguintes tarefas em lote: ID Tempo de Chegada Tempo Necessário Prioridade 1 2 10 3 2 3 6 5 3 1 2 2 4 5 4 1 5 4 8 4 Para cada algoritmo abaixo, calcule: tempo de resposta (turnaround) e tempo de espera para cada processo, tempo de resposta médio e tempo de espera médio. (a) Round-Robin com quantum 2; (b) Escalonamento por prioridades preemptivo; (c) FCFS; (d) SJF; (e) SRTN. Se a tabela listada representasse um contexto comum de um SO, qual algoritmo de escalonamento você escolheria? Justifique. 3. Cinco tarefas em lote, de A até E, chegam em um centro de computação ao mesmo tempo. Elas tem um tempo estimado de 15, 9, 3, 6 e 12 minutos, respectivamente. Suas prioridades sao 6, 3, 7, 9 e 4 respectivamente. Quanto menor o valor de prioridade, mais prioritario é o processo. Para cada um dos algoritmos de escalonamento abaixo, determine o tempo de resposta para cada processo e o tempo de resposta médio. Ignore o tempo de troca de contexto. Mostre como você chegou nas respostas. Assuma que os três últimos escalonadores não são preemptivos. (a) Round robin com quantum = 1 minuto; (b) Escalonamento por prioridades; (c) FCFS (de acordo com a ordem mostrada no enunciado); (d) SJF. 4. A maioria dos escalonadores round-robin usam um quantum fixo. Dê um argumento em favor de um quantum pequeno. Agora dê um argumento em favor de um quantum grande. Compare e contraste os tipos de sistemas e tarefas para os quais os argumentos se aplicam. Há argumentos que se aplicam para qualquer sistema? 1 5. Tarefas múltiplas podem ser executadas paralelamente e terminar mais rápido do que se tivessem sido executadas sucessivamente. Suponha que duas tarefas, cada uma precisando de dez minutos do tempo da CPU, começassem simultaneamente. De quanto tempo a última precisará para terminar se elas forem executadas sucessivamente? Quanto tempo se forem executadas paralelamente? Suponha 50% de tempo de espera de E/S. 6. A Figura abaixo mostra um servidor da Web multithread: Na Figura, uma thread despachante lê as requisições de trabalho que chegam da rede. Depois de examinar a requisição, ele escolhe uma thread operário ocioso (isto é, bloqueado) e entrega-lhe a requisição. O despachante então acorda o operário que está descansando, colocando-o no estado de pronto. Quando desperta, o operário verifica se a requisição pode ser satisfeita pela cache de páginas da Web, à qual todos as threads tem acesso. Se não puder, ele inicializará uma operação de read para obter a página do disco e permanecerá bloqueado até a operação de disco terminar. Você acha que threads de usuário ou de núcleo estão sendo usadas para os servidor da Web? Por quê? 7. Durante as aulas vimos que o conjunto de registradores é relacionado como um item por thread, e não por processo. Por quê? (Afinal, a máquina tem somente um conjunto de registradores). 8. Uma thread pode sofrer preempção por uma interrupção de relógio? Em caso afirmativo, sob quais circunstância? Do contrário, por que não? 9. Qual a maior vantagem de implementar threads no espaço do usuário? Qual a maior desvantagem? 2 10. Considere o código abaixo: A criação das threads e as mensagens impressas pelos threads são intercaladas aleatoriamente. Há algum modo de impor que a ordem seja estritamente thread 1 criado, thread 1 imprime a mensagem, thread 1 sai, thread 2 criado, thread 2 imprime, thread 2 sai e assim por diante? Em caso de resposta afirmativa, qual é esse modo? Em caso de resposta negativa, por que não? 11. Em um sistema com threads, quando são utilizados threads de usuário, há uma pilha por thread ou uma pilha por processo? E quando se usam threads de núcleo? Explique 12. Até que ponto é posśıvel estabelecer uma medida sobre quanto um processo é limitado pela CPU ou limitado por E/S analisando o código fonte? 13. Cinco tarefas estão esperando para serem executadas. Seus tempos de execução previstos são 9, 6, 3, 5 e X. Em que ordem elas deveriam ser executadas para minimizar o tempo médio de resposta? (Sua resposta dependerá de X). 3
Compartilhar