Pythonは多くのプラットフォームで動作しますが、それぞれのプラットフォームでの動作は異なる場合があります。特に、WindowsとUnix系のOSでは、シグナル処理の扱いが大きく異なります。
Unix系のOSでは、SIGALRMのようなシグナルを利用して、一定時間後に処理を中断するといったことが可能です。しかし、WindowsではSIGALRMは利用できません。
そのため、WindowsでPythonを使っていて、Unix系のOSで利用可能なSIGALRMのような機能を使いたい場合は、別の方法を探す必要があります。
一つの方法として、スレッドを利用することが考えられます。以下に、スレッドを利用して一定時間後に処理を中断するサンプルコードを示します。
import threading
import time
def alarm_handler():
    raise Exception("Time's up!")
def long_running_task():
    try:
        # ここに時間のかかる処理を書く
        while True:
            time.sleep(1)
    except Exception as e:
        print(str(e))
# アラームをセット
alarm = threading.Timer(5.0, alarm_handler)
alarm.start()
# 長時間実行するタスクを開始
long_running_task()
このコードでは、threading.Timerを使って5秒後にalarm_handler関数を実行するように設定しています。そして、long_running_task関数内で時間のかかる処理を行っています。この処理が5秒以内に終わらない場合、alarm_handler関数が実行され、例外が発生して処理が中断されます。
ただし、この方法ではSIGALRMと全く同じ動作を実現することはできません。特に、SIGALRMはシステムやプロセスからプロセスに送られるもので、送られたプロセスは何をやっていたとしてもそのシグナルを受け取って、関連付けられたハンドラの処理を実行するようになっています。しかし、上記のコードでは、スレッドが例外を発生させるだけで、それを受け取るのはlong_running_task関数内の処理だけです。
したがって、WindowsでPythonを使っていて、SIGALRMのような機能を使いたい場合は、その制限を理解した上で適切な方法を選ぶ必要があります。