1. A computer based system for scheduling at least two program threads comprising: an embedded pipelined processor capable having a first program thread and a second program thread in an execution pipeline; a thread scheduler for identifying which of said program threads said embedded processor executes including: a thread identifier for identifying at least one hard-real-time (HRT) thread and at least one non-real-time (NRT) thread; a HRT thread scheduler for regularly scheduling said HRT thread in available time quanta such that said HRT thread is scheduled to ensure the execution of the HRT in a predetermined time.