Due to the progress of the microcontrollers, the usage of the multicore devices became common in the area of the embedded systems. For the effective usage of such microcontrollers, it is absolutely necessary to create a scheduler, which is capable of distributing the tasks among the cores. Therefore in this document I present the most pressing problems for the scheduler and kernel, and propose some methods for solving them. In order to illustrate the work of such a program, I created a scheduler optimized for multicore microcontrollers, and to support the remaining tasks, I also made the necessary kernel functions. While going through the creation of the scheduler, I also introduced my choice and decisions in solving the aforementioned problems. This does not only include the problem of scheduling. Among the kernel functions you can also find the problems of memory allocation, the separation of tasks and threads, handling timeouts, achieving inter processor communication and servicing interrupts. In order to introduce the architecture dependent parts of the kernel, I simulated a multi cored Intel x86 processor working in 64 bit mode, which allowed me to test the program under various conditions. To verify the correct operation of the scheduler and kernel, I carried out multiple tests, among others I have prepared a serial driver along with an accompanying framework.