The kernel allocates the resources to all the processes running in the system i.e. CPU, memory and I/O processes. The kernel is a software resource that processes use to perform tasks such as creating new processes and communicating with other processes. Fair resource allocation is important as each process should be allocated a fair share of time and resources, so that none of the processes could hold the system for longer than required time.