Kernel-level threads are threads that are known and managed by the operating system kernel. The kernel maintains a thread table to track all threads in the system as well as the traditional process table. The kernel provides system calls to create and manage threads. Advantages include the scheduler having knowledge of all threads to allocate more time to processes with more threads, and suitability for applications that frequently block. Disadvantages are that kernel-level threads are slower and less efficient than user-level threads, and managing threads increases kernel complexity and overhead.