# Process Scheduling is not “Process” Scheduling - Should I disclose it to students?

I have been teaching Operating Systems basics in a class and after Processes, Child Processes and Threads, we have managed to move to "Process Scheduling"

Now, ironically, as we know that it is not the Process which is scheduled, but the threads precisely (we are following Linux Ubuntu there).

Here is what Silberchatz book (by the way, the title of the chapter is also "Process Scheduling") says about it:

In Chapter 4, we introduced threads to the process model. On operating systems that support them., it is kernel-level threads-not processes-that are in fact being scheduled by the operating system. However, the terms process scheduling and thread scheduling are often used interchangeably.

(Silberschatz, Operating System Concepts, 8th Edition)

Although, I have taught them the respective algorithms; should I bring this discussion within the class and press the panic button by telling that its not the Processes which are scheduled but Threads? This question has been in my mind since long time and I couldn't look for a better place to get an answer than here.

• No references, so this is a comment not an answer. A lot of Tremont in CS is what it is for historical reasons, and not related to the way things really work today. I'd say have the discussion. My seven year old is comfortable with "we cali it X because that's how it used to work, but it works differently now.". If students in an operating systems course haven't already figured this much out, they don't belong in the OS course IMHO. – pojo-guy Apr 28 '18 at 14:14
• Before the 1990's each process in Unix had only one thread, so they were the same thing. No one had bothered to add threads to Unix, because in Unix: Processes are cheep; select works, so event driven is easy; we have a windowing system (that runs in a different process), so no need to have each application manage its own windowing operations in a separate thread. – ctrl-alt-delor Apr 28 '18 at 17:13
• Yes tell them, but work it in to a discussion, on the difference between threads and processes. – ctrl-alt-delor Apr 28 '18 at 17:15
• Thanks to both of you! Its a good idea to work it in to a discussion on difference between the two. – Failed Scientist Apr 29 '18 at 6:04
• The "process" in "process scheduling" is an abstraction. What is called a "thread" in Linux is a process and what is called a "process" in Linux is a process. Just as in Java there are two kinds of variables--"variables" & "objects". – philipxy Jun 21 '18 at 21:45