It sounds like you may be overthinking the whole question. Scheduling is done internally to the kernel, and is not generally a matter for end users or userspace applications in any general sense. There are some ways that you can influence the scheduling algorithm that is built into the kernel by selecting appropriate configurations at build time. This is probably not what you want.
In general, any userspace process will be scheduled to run by the kernel according to the process's requirements and state. It may do various things that cause it to enter various states within the kernel's scheduler, such as request IO, sleep, etc. You may use nice to influence any process's priority within the scheduler.
In other words, just run your program, and let the kernel figure out how to schedule it's runtime.