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

O Curso de Graduação em Engenharia de Computação

Por:   •  9/11/2021  •  Exam  •  1.146 Palavras (5 Páginas)  •  47 Visualizações

Página 1 de 5

UNIVERSIDADE  FEDERAL DE PELOTAS

Centro de Desenvolvimento Tecnológico

Curso de Graduação em Engenharia de Computação

[pic 1]

Trabalho - Sistemas Operacionais

Welder Carlos Siqueira                         Matrícula : 18100639

Pelotas, 2021

1 Introdução

O problema desenvolvido neste projeto foi o de um simulador de Agencia Bancaria, utilizando programação concorrente e seus paradigmas, sendo threads, locks, variáveis condicionais e semáforos os principais conceitos utilizados.

A execução simultâ nea de vá   rias tarefas do computador pode ser simulada e implementada como fluxos de execu¸c˜ao diferentes chamado de threads que s˜ao criadas por um u´nico programa. As threads s˜ao definidas como tarefas diferentes que um mesmo programa realiza, podendo assim criar uma intera¸c˜ao e dividir processos em tarefas que podem ser executadas concor- rencialmente.

Com  o  uso  de  diferentes  tarefas  se  relacionando,  pode-se  criar  v´arios programas com um problema de implementa¸c˜ao onde os v´arios fluxos de execu¸c˜ao precisam ser controlados.

Nesse contexto, o objetivo do projeto ´e criar um problema onde existe uma desorganiza¸c˜ao em um sistema, como condi¸c˜oes de corrida. E conseguir desenvolver uma solu¸c˜ao com os recursos aprendidos no decorrer do semestre,.

2 Fundamentação Teórica

 Para o desenvolvimento e implementação deste projeto, os principais conceitos utilizados foram:

2.1 Programação concorrente

Na programação concorrente instruções são executadas por diversos processos ou threads simultâneos que cooperam entre si para a realização de uma tarefa, usando entrelaçamento de ações e um processamento simultâneo lógico. Um processo é dito cooperante quando é capaz de afetar ou ser afetado (mudado), pela execução de outro processo. Os processos se relacionam através de troca de mensagens e áreas de memória (variáveis) compartilhadas. Também podem ser chamados de fluxos de execução.

2.2 Condição de Corrida

 Condições de corrida são situações onde dois ou mais processos estão acessando dados ou recursos compartilhados e o resultado final do processamento depende de quem executa e quando é executado.

2.3 Threads

 A diferença básica entre threads e processos é que um processo não compartilha um mesmo recurso do computador simultaneamente com outro processo, enquanto que uma thread pode compartilhar um mesmo recurso simultaneamente com outras threads (dentro do mesmo processo). Dessa forma, threads são segmentos independentes de um processo em execução e também são as entidades escalonadas para usar a CPU.

 2.4 Locks

É um mecanismo de sincronização de processos ou threads, em que processos ou threads devem ser programados de modo que seus efeitos sobre os dados compartilhados sejam equivalentes serialmente, ou seja, é uma ferramenta utilizada para acessar uma variável compartilhada, uma região crítica de memória compartilhada.

 2.5Variável Condicional

 O processo de utilização de uma variável condicional consiste na criação de uma variável que é utilizada para sinalizar o acesso e liberação de uma thread sobre uma região crítica, ela pode ser usada para indicar uma certa preferência de umas threads em relação a outras.

2.6 Semáforos Semáforos

Sendo estes muito similares aos locks, a diferença está no fato que se forem dados vários unlocks em um mutex e, em sequência, for dado um lock, ele fecha. Já com o semáforo, se der vários up’s, ele vai contando, aumentando as permissões e, depois, quando der um down, só retira uma permissão. Se for utilizado um semáforo de apenas uma permissão e sempre der down e em seguida der up, funcionará igual a um lock

3. Formalizando o Problema

O problema consiste em utilizar Programação Concorrente para

simular o atendimento de um gerente de banco, considerando as

seguintes características:

- O local possui N cadeiras para espera e uma cadeira para o atendimento com o gerente.

- Se o gerente não tem cliente para atender, ele vai ate uma sala reservada e fica tomando café [em outras palavras, fica sem fazer nada de útil e não consome os recursos do trabalho].

- Quando chega um cliente, ele chama o gerente [somente nesse momento o gerente retorna a ativa].

- O tempo de atendimento de cada cliente varia conforme complexidade das solicitações [por exemplo, na simulação, alguns clientes podem necessitar de atendimento por 5 segundos e outros podem necessitar 12 segundos].

...

Baixar como (para membros premium)  txt (7.6 Kb)   pdf (138.2 Kb)   docx (46.4 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com