>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
Python

Tente Sobreviver como um Agendador de Tarefas

Estamos acostumados a xingar o sistema operacional quando a interface trava ou um aplicativo fica em um silêncio de "Não Respondendo". Parece que distribuir tempo de CPU e memória entre uma dúzia de programas é uma tarefa trivial. Mas e se você fosse quem está sentado no gerenciador de tarefas?

O projeto You're the OS! do desenvolvedor Pier-Luc Brault transforma conceitos fundamentais de Ciência da Computação em um jogo de arcade hardcore. Aqui você literalmente se torna o kernel do sistema. Seu objetivo é alocar memória manualmente, alternar contextos de processos e tratar interrupções de E/S. Alguns segundos de atraso — e um usuário irritado vai apertar o botão Reset.

Captura de tela do jogo

Como o Jogo Funciona

As filas do sistema giram continuamente na tela. Cada processo precisa de tempo de CPU, um bloco na RAM ou uma resposta do disco.

Você precisa monitorar vários parâmetros ao mesmo tempo:

  • Carga nas filas de threads prontas para executar.
  • Alocação e limpeza de páginas da RAM.
  • Requisições de E/S que bloqueiam a execução do programa.
  • O medidor de paciência do usuário, que esgota a cada ciclo de tempo ocioso.

Se você deixar uma tarefa em modo de espera por tempo demais, o processo começa a "ferver". Quando a paciência do usuário se esgota, o jogo termina com uma reinicialização de crash.

Por Que um Programador Deveria Jogar o Sistema Operacional

Além da pura emoção do jogo, o projeto oferece uma compreensão prática de coisas que geralmente tratamos como abstrações nos livros didáticos de Tanenbaum.

1. Compreensão Prática de Agendamento

Você sente em tempo real por que algoritmos como Round Robin ou Fair Share são projetados dessa forma. Tente evitar manualmente uma situação de starvation quando uma thread pesada em segundo plano entope completamente o pipeline enquanto pequenos cliques interativos do usuário ficam pendurados sem resposta.

2. Sandbox para Cenários Personalizados

O repositório inclui um modo sandbox. Você pode descrever seu próprio perfil de carga de trabalho em Python: defina a intensidade de spawn de tarefas, volumes de memória necessários e tipos de operações de E/S. Isso transforma o jogo em uma bancada de teste de estresse.

3. API para Automação e Escrita de Bots

A parte mais interessante da versão desktop é a capacidade de controlar o sistema não com suas mãos, mas com código. O repositório contém o módulo automation/skeleton.py, através do qual você pode conectar seu próprio script de agendador.

Você escreve um algoritmo de alocação de recursos em Python, executa a simulação e vê quantos ciclos seu próprio agendador dura contra o gerador de eventos do jogo.

Inicialização e Detalhes Técnicos

O projeto é escrito em Python usando a biblioteca Pygame, e a versão web é compilada para WebAssembly. Você pode jogar diretamente no navegador no GitHub Pages ou itch.io.

Se você quiser escrever bots através da API de automação, precisará executar o projeto localmente.

O repositório menciona um requisito rigoroso de versão: o autor usa Python 3.14 e o gerenciador de pacotes pipenv. Para isolamento, é melhor usar pyenv imediatamente:

# Клонируем проект
git clone https://github.com/plbrault/youre-the-os.git
cd youre-the-os

# Устанавливаем зависимости
pipenv sync --dev

# Запуск десктопной версии
pipenv run desktop

# Запуск собственного скрипта автоматизации
pipenv run auto automation/your_bot.py

Para criar uma configuração sandbox personalizada, basta criar um arquivo no diretório src/sandbox/ e executar o comando:

pipenv run sandbox sandbox.myConfig

Vale a Pena o Seu Tempo

Se você ensina fundamentos de SO, está procurando uma forma de exercitar seu cérebro nos fins de semana, ou quer escrever seu próprio bot agendador em Python, o projeto definitivamente vale a pena executar por meia hora. Ele rapidamente te humilha e explica claramente por que criar gerenciadores de tarefas confiáveis levou décadas de trabalho dos engenheiros.

Projetos relacionados