Qual é a maior vantagem de se implementar threads no espaço de usuário? qual é a maior desvantagem?

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.  

9

) Escreva um programa em C que inverta os valores das linhas de uma matriz 3x3 de  

números inteiros e imprima a matriz resultante na tela. A inversão de cada linha da matriz  

deve ser realizada em paralelo por threads.  

Por exemplo, para a seguinte matriz:  

1

4

7

2 3  

5 6  

8 9  

O programa deve gerar a seguinte matriz resultante:  

3

6

9

2 1  

5 4  

8 7  

1

0) Implemente um programa em C que multiplique os elementos de um vetor de tamanho  

1000 por um escalar e depois imprima o vetor resultante na tela. O processo de  

multiplicação deve ser realizado em paralelo por 10 threads, onde cada thread deve ser  

responsável por multiplicar 100 elementos do vetor pelo escalar.  

Prof. Ricardo I. A. e Silva Sistemas OperacionaisExercícios sobre Processos e ThreadsLista 031. Suponha que você fosse projetar uma arquitetura de computador avançadaquerealizassechaveamentodeprocessosemhardware,emvezdeinterrupções.DequalinformaçãoaCPUprecisaria?Descrevacomooprocesso de chaveamento por hardware poderia funcionar.R:A CPU precisaria do tempo de iniciação e término dos processos, então diferentedo processo de alternância não precisaria finalizar um processo para que o outropudesse ser executado o processo de alternância por hardware tem a capacidadede executar dois processos ao mesmo tempo.2. Em todos os computadores atuais, pelo menos parte dos tratadores deinterrupções é escrita em linguagem de montagem. Por quê?R:Porque ações como salvar os registradores e alterar o ponteiro de pilha não podemser expressas em linguagens de alto nível como C, assim elas são implementadaspor uma pequena rotina em linguagem de montagem.3. Quando uma interrupção ou uma chamada de sistema transfere o controlepara o sistema operacional, geralmente uma área da pilha do núcleo separadada pilha do processo interrompido é usada. Por quê?R: Porque se transfere para o sistema operacional, para liberar outro processo, entãose utilizar a área da pilha do processo interrompido, esse outro processo interrompejuntamente.

Quais são as vantagens e desvantagens da implementação de threads nível de usuário )?

Assim, um processo executaria em várias threads, definidas pela biblioteca, mas chegaria ao núcleo na forma de apenas uma thread. As vantagens deste modelo estão em sua leveza e fácil implementação. No entanto, suas desvantagens estão nas operações de entrada/saída e na divisão de recursos.

Qual a principal vantagem de se ter os threads?

Os threads possuem vantagens e desvantagens ao dividir um programa em vários processos. Uma das vantagens é que isso facilita o desenvolvimento, visto que torna possível elaborar e criar o programa em módulos, experimentando-os isoladamente no lugar de escrever em um único bloco de código.

Quais as desvantagens das threads em modo usuário TMU )?

TMU possuem uma grande limitação, pois o SO gerencia cada processo como se existisse apenas um único thread. No momento em que um thread chama uma rotina do sistema que o coloca em estado de espera (rotina bloqueante), todo o processo é colocado no estado de espera, mesmo havendo outros threads prontos para execução.

Quais as vantagens e desvantagens do compartilhamento do espaço de endereçamento entre threads de um mesmo processo?

A principal vantagem é a possibilidade de compartilhar dados entre os threads. Além disso, os programas multithreads são mais rápidos. Como desvantagens, o compartilhamento do espaço de endereçamento implica na não existência de proteção no acesso da memória, ou seja, permite que um thread altere os dados de outro.