Skip to content

Desenvolvimento de um sistema de gestão de processos na linguagem de programação C

License

Notifications You must be signed in to change notification settings

D1ogoCS/Despertador

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Despertador

Desenvolvimento de um sistema de gestão de processos na linguagem de programação C

Neste trabalho prático, o objetivo é desenvolver um sistema de gestão de processos utilizando a linguagem de programação C. O sistema deverá ser capaz de criar processos filhos a partir de um processo pai, permitindo a execução simultânea de múltiplos processos independentes. Além disso, o trabalho deve conter a implementação de conceitos fundamentais de sistemas operativos, como criação de processos, comunicação entre processos e sincronização.

Objetivos:

  • Implementar um programa concorrente em linguagem de programação C para simular um despertador
  • O programa deve permitir que o utilizador defina um horário de despertar e, quando esse horário for alcançado, deve exibir uma mensagem indicando que é hora de acordar.
  • Enquanto o programa estiver a aguardar o horário de despertar, deve ser capaz de executar outras tarefas concorrentemente, como por exemplo: alterar a hora de despertar, desligar ou suspender o alarme.

Funcionalidades:

  • O utilizador pode definir o horário de despertar através da entrada de dados
  • O programa exibe a hora atual enquanto espera pelo horário de despertar
  • Quando o horário de despertar é alcançado, o programa exibe a mensagem "Hora de acordar!"
  • O programa é capaz de executar outras tarefas concorrentemente enquanto aguarda o horário de despertar como por exemplo: alterar a hora de despertar, desligar ou suspender o alarme

Ferramentas utilizadas:

  • Ubuntu: Sistema operativo baseado em Linux
  • Nautilus: Gestor de ficheiros padrão do Ubuntu

Tecnologias utilizadas:

  • Linguagem C

Descrição:

O programa possui três funções fundamentais que são:

  • mostrarHoraAtual(): Possui um ciclo infinito para executar a função menu() de minuto a minuto, mas a função menu() só é executada se o utilizador não estiver a definir um horário de despertar
  • alarme(): Possui um ciclo infinito. Foi criada uma variável do tipo localtime, que permite verificar se a hora atual é igual à hora que o utilizador definiu para despertar. Assim que a hora atual for igual à hora de despertar, é impresso no terminal a mensagem “Hora de acordar! Clique 9 para parar.” e se estiver a usar o código no Ubunto é também emitido um som de alerta, mas isto só acontece se o utilizador tiver as notificações sonoras ativas. Para o utilizador parar a mensagem de despertar basta digitar “9” no terminal o que fará mudar o valor da variável dslMsg e por consequência interromper o alarme
  • menu(): Sempre que é executada, imprime no ecrã a hora atual do sistema, assim como o menu com as funções do despertador

Resultados:

O Ubuntu foi instalado no computador atraves do WSL(Subsistema do Windows para Linux). O WSL é um recurso do Windows que permite executar um ambiente Linux no computador com sistema operativo Windows, sem a necessidade de utilizar uma máquina virtual.

Nautilus

Nautilus

Código no processador de texto do Ubuntu

Código no processador de texto do Ubuntu

Menu

Menu

Se o utilizador escolher a opção “1-Definir Despertador”, consegue definir um horário de despertar para definir as horas com um valor no intervalo de 0 a 23 e os minutos com um valor no intervalo de 0 a 59. Sempre que o valor de uma destas variáveis sair do intervalo permitido, é indicado ao utilizador para o introduzir novamente o horário de despertar. Após o horário definido, a thread do despertador é criada e o horário escolhido para despertar é impresso no terminal e a variável notificacaoSonora é também ativa.

Definir despertador

Definir despertador

Se o utilizador escolher a opção “2-Desligar despertador”, a thread do despertador é terminada e é impresso no terminal uma mensagem a dizer que o alarme foi desligado.

Desligar despertador

Desligar despertador

Se o utilizador escolher a opção “3-Silenciar Alarme” ou a opção “4-Ativar Alarme” permite escolher se as notificações estão ativas ou não e imprime no terminal a respetiva escolha.

Silenciar alarme

Silenciar alarme

Ativar alarme

Ativar alarme

Se o utilizador escolher a opção “5-Ver Despertador”, é impresso no terminal o horário de despertar definido que o utilizador escolheu.

Ver despertador

Ver despertador

About

Desenvolvimento de um sistema de gestão de processos na linguagem de programação C

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages