Kernel Scheduling Entity

Before jumping into the threading model. Let’s understand the kernel scheduling entity. For any kernel, the scheduling entity could be a process or thread. Some kernels are not multi-threaded, the scheduling entity will be processed. Most of the recent kernels are multi-threaded. This helped in general for someone implementing threading in userspace vs depending on kernel threading.

Different Thread Models

There are three different threading models we can see Mx1, 1x1, MxN

Image for post
Image for post
Different Threading Models

Mx1 — There are two different possible operating systems, where scheduling entity for kernel is a process or a thread. Either case one would have implemented Mx1 threading model in userspace.

In this implementation, kernel is not aware of any of the user threads. a scheduled user thread maps to kernel thread/process based on the scheduling entity in kernel. …

Uday Kiran Jonnala

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store