TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Exercícios Do Cap 6,7 3 9 Arquiteturas Do SO

Casos: Exercícios Do Cap 6,7 3 9 Arquiteturas Do SO. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  26/5/2014  •  1.889 Palavras (8 Páginas)  •  13.921 Visualizações

Página 1 de 8

CENTRO UNIVERSITÁRIO ANHANGUERA DE

CAMPO GRANDE – UNIDADE 1

CURSO: SUPERIOR EM TECNOLOGIA EM REDES DE COMPUTADORES

EXERCÍCIOS CAPÍTULOS 6, 7 E 9 SISTEMAS OPERACIONAIS

CAMPO GRANDE – MS

MAIO/2014

CAPÍTULO 6

TRHEAD

1. Como uma aplicação pode implementar concorrência em um ambiente Monothread?

Resposta = A aplicação deve implementar a concorrência através do uso de Múltiplos processos independentes ou subprocessos, permitindo dividir uma plicação em partes que podem trabalhar de forma concorrente.

2. Quais os problemas de aplicações concorrentes desenvolvidas em ambiente Monothread?

Resposta = O uso de múltiplos processos e subprocessos geram gastos de recursos do sistema, consumindo tempo de processamento e espaço na memória Principal, tanto para alocar ou desalocar recursos. Cada processo tem endereçamento diferente, isso significa que a comunicação entre esses processos se torna muito lenta e difícil de se programar, nesse caso usa-se técnicas muito complicadas como semáforos,pipes, sinais, memória compartilhada ou troca de mensagens.

3. O que é um ambiente Multithread e quais as vantagens de sua utilização?

Resposta = A ideia do ambiente Multithread é trabalhar de forma concorrente dentro do mesmo processo, dividindo as tarefas em várias tarefas menores chamadas de thread ou sub-rotinas.

O thread é tratado pelo processador como um processo. A vantagem é a minimização de recursos do sistema, e ganho de desempenho uma vez que os processos demandam muito tempo com a criação, troca e eliminação de processos. Os threads trabalhar de forma cooperativa e Utilizam o mesmo espaço de endereçamento. Isso torna o acesso às informações mais rápida e simples, pois evita mudança de modo de acesso e permissão de acesso.

4. Explique a diferença entre unidade de alocação de recursos e unidade de escalonamento.

Resposta = 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.

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

Resposta = A vantagem é permitir o compartilhamento de dados entre os threads de maneira mais rápida e eficiente.

A desvantagem é necessidade de implementar mecanismos de comunicação e sincronização para garantir acesso seguro aos dados compartilhados na memória.

6. No programa Multithread do item 6.7, qual o thread que terminará primeiro?

Resposta = Como o escalonamento dos threads fica a critério do sistema operacional não há como saber qual thread irá terminar primeiro. Para isso a aplicação deve criar mecanismos para isso.

7. Altere o programa do item 6.7 de forma a incluir mais um contador totalizando uma aplicação concorrente com quatro Threads.

Resultado =

function ThreadConta1 (ThreadParm: pointer): longint;stdcall;

var i: integer;

begin

for i := 1 to 1000000 do

Form1.Label1.Caption := IntToStr(i);

end;

function ThreadConta2 (ThreadParm: pointer): longint;stdcall;

var i: integer;

begin

for i := 1 to 1000000 do

Form1.Label2.Caption := IntToStr(i);

end;

function ThreadConta3 (ThreadParm: pointer): longint;stdcall;

var i: integer;

begin

for i := 1 to 1000000 do

Form1.Label3.Caption := IntToStr(i);

end;

function ThreadConta4 (ThreadParm: pointer): longint;stdcall;

var i: integer;

begin

for i := 1 to 1000000 do

Form1.Label4.Caption := IntToStr(i);

end;

procedure TForm1.FormCreate (Sender: Tobject);

var

Thread1, Thread2, Thread3, Thread4: Thandle;

ThreadID1, ThreadID2, ThreadID3, ThreadID4: Dword;

begin

Form1.Caption := 'Programa Multithread';

Thread1 := CreateThread (nil,0,@ThreadConta1,0,0,ThreadID1);

if (Thread1=0) then MessageBox (Handle,'Erro na criação do thread',nil,MB_OK);

Thread2 := CreateThread (nil,0,@ThreadConta2,0,0,ThreadID2);

if (Thread2=0) then MessageBox (Handle,'Erro na criação do thread',nil,MB_OK);

Thread3 := CreateThread (nil,0,@ThreadConta3,0,0,ThreadID3);

if (Thread3=0) then MessageBox (Handle,'Erro na criação do thread',nil,MB_OK);

Thread4 := CreateThread (nil,0,@ThreadConta4,0,0,ThreadID4);

if (Thread1=4) then MessageBox (Handle,'Erro na criação do thread',nil,MB_OK);

end;

8. Compare os pacote de thread em modo usuário e modo kernel.

Resposta = Nos Threads em Modo usuário o Sistema operacional usa uma biblioteca de rotinas para criar/eliminar,trocar mensagens e escalonar os Threads. Esse modo possibilita utilizar Threads em sistemas operacionais que não suportam threads. A desvantagem

...

Baixar como (para membros premium)  txt (13.7 Kb)  
Continuar por mais 7 páginas »
Disponível apenas no TrabalhosGratuitos.com