In addition to all of its other jobs, the kernel provides a range of services both to user processes and to kernel subsystems. These include a large number of system calls provided for applications as well as managing timeouts and kernel memory for kernel subsystems.