Pular para o conteúdo principal

Escalonador de Processos e a biblioteca Qt

Com prazo de 1 mês para a entrega de um projeto integrador das disciplinas: Estrutura de Dados e Arquitetura de Sistemas Operacionais, fiquei empolgado e ao mesmo tempo preocupado para desenvolver de forma rápida um Escalonador de Processos, que eu só sabia como funcionava na teoria (que é simples, ao contrário da prática como sempre). A primeira etapa foi decidir a tecnologia a ser utilizada, e sem dúvidas eu queria algo mais "janela e botões", e também conhecer alguma biblioteca nova, já que até então eu só tinha trabalhado com a SDL, e que eu pudesse utilizá-la no futuro de maneira mais profissional.



Bom, melhor do que eu falando aqui sobre a Qt é vocês visitarem o site oficial. Ah, uma boa sacada é visualizar os 'Customers' no rodapé do site.

Em breve disponibilizarei para download do código fonte e o executável do projeto.

O primeiro problema encontrado foi achar uma solução para que nossas animações e o escalonamento em si (feito com o uso de filas de prioridade e etc.) estivessem sincronizados, neste ponto que encontramos idéias como o uso de threads ou timers.

Para quem se interressar eu recomendo dar uma olhada nas facilidades que a Qt nos oferece ao utilizarmos threads ou timers, vai soar de uma maneira homossexual, mas é apaixonante programar com a dita cuja.

O segundo problema, e talvez o mais grave, é que ela é toda escrita com orientação à objetos, isso é ótimos para alguns, mas não para mim que ainda não aprendi muita coisa de POO, portanto o código saiu um verdadeiro POG, mas tá 'funcionando'.
No geral valeu muito a pena a experiência de pensar que não ia dar tempo de aprender a utilizar a biblioteca e escrever o algoritmo do programa em si, mas para primeira vez (novamente) a pressão e a impressão foram boas. Recomendo.

Comentários

Postagens mais visitadas deste blog

Utilizando o padrão de referências da ABNT no Word

Uma importante funcionalidade do Microsoft Word é o seu Gerenciador de Fontes Bibliográficas. Para aqueles que estão escrevendo algum trabalho acadêmico ou científico, é possível cadastrar todas as referências do trabalho e no final gerar a listagem já enumerada dos documentos que foram consultados na pesquisa. Essa postagem traz os arquivos necessários e as instruções para facilitar essa etapa da elaboração.

Como interpretar e utilizar gráficos

A quantidade de uma única postagem nos últimos 5 anos de blog mostra o quanto estive focado em outras coisas e sem tempo para escrever aqui. Porém, no meio de uma pandemia e com a finalização do meu doutorado, acabei ficando com mais tempo e colocando como meta a volta das publicações aqui no blog.
Nunca antes na história desse país a população, de uma maneira geral, se preocupou tanto com gráficos, curvas, média e outras questões básicas da estatística. Assim, em tempos de coronavírus, essa postagem tem o objetivo de auxiliar que mais e mais pessoas consigam interpretar gráficos, fazer comparações e, inclusive, saber o melhor tipo de gráfico para usar em determinados casos.

Programação Paralela e por que você deveria se preocupar com isso (Parte 1)

Creio que a maioria dos desenvolvedores já deve ter ouvido falar de threads, aprendeu um pouco sobre semáforos, monitores e travas. Partindo desse meu pensamento, imagino que essa mesma maioria não utiliza nenhuma forma de programação paralela em suas aplicações. A pergunta que fica é: utilizar paralelismo e lidar com concorrência tem baixa popularidade entre os desenvolvedores porque não tem utilidade ou porque os cursos de graduação em computação estão carentes de uma disciplina que ensine aos graduandos os reais benefícios em ter uma base sólida nesta área?

Esta série de publicações irá trazer uma visão básica sobre Parallel Programming, os exemplos serão baseados em Java e muito do que mostro aqui pode ser encontrado de maneira mais aprofundada no livro "The Art of Multiprocessor Programming", dos autores Maurice Herlihy e Nir Shavit.