IPRJ – SISTEMAS OPERACIONAIS
LISTA DE EXERCÍCIOS 02
1
2
) Qual a diferença entre processos e threads?
) Cite três exemplos de operações que fazem um processo transitar do estado “em
execução” para o estado “bloqueado”.
3
4
5
6
7
) Descreva uma aplicação que utilize múltiplas threads para o seu funcionamento. Como
seria o funcionamento desta aplicação se ela fosse implementada em uma única thread?
) Qual a maior vantagem de implementar threads no espaço do usuário? Qual a maior
desvantagem?
) Qual a maior vantagem de implementar threads no espaço do núcleo do sistema
operacional? Qual a maior desvantagem?
) É possível converter o código de qualquer programa monothread em código multithread?
Quais as principais dificuldades e soluções encontradas ao se realizar essa tarefa?
) Escreva um programa em C composto por duas threads: a primeira deve contar e exibir na
tela todos os números entre 1 e 500 (de forma crescente); a segunda deve contar e exibir
na tela todos os números entre 500 e 1 (de forma decrescente). As duas threads devem
ser executadas em paralelo.
8
) Implemente um programa em C que realize o cálculo das somas dos valores das linhas de
uma matriz 5x5 de números inteiros e imprima o resultado na tela. O cálculo do somatório
de cada linha deve ser realizado em paralelo por threads.