NOTE: We use APA citations in my Master’s program, which I have retained here.

Entry #2 (although posted as the third…whoops…others are here) in my Operating System class. This time we are asked to examine our system’s process states using the command line. (This is to help us with our final project and recommending process management requirements to our fictitious organization. This class is also known as “OPS-prov”.) In Windows, that command is tasklist /v. We’re supposed to research what scheduling algorithm is used by our operating system as well. Let’s dive in.


Scheduling algorithms are the patterns which an operating system uses to determine what processes should have access to the CPU at any given time. Windows versions after Windows NT and Windows 95 use a round-robin scheduling algorithm, a widely-used and fair algorithm (Tanenbaum, 2008), to schedule threads (“Scheduling Priorities (Windows),” n.d.). This implementation takes a list of processes and assigns equal sized time slices (AKA quantum) to each process (Tanenbaum, 2008), which act as a window during which the process allowed to access the CPU (Silberschatz, Galvin, & Gagne, 2010). If the process is still running when its time is up, the scheduler interrupts the process (known as preemption), sends it to the end of the process list, and allows the next process to access the CPU (Tanenbaum, 2008).

Perhaps there’s something wrong with me, but I can’t find any reference to thread status states with regards to the scheduling algorithms in any of the textbook reading this week. Other than the implicit discussion about general thread statuses (such as “waiting” and “exit”) from earlier in the reading, there doesn’t seem to be a mention in the textbook about specific statuses for the different scheduling algorithms. I’m sure that I’m just missing something totally obvious.

That being said, the process states that are returned in my Windows 10 system are “running,” “not responding,” and “unknown.” Running refers to processes that are actively running, even if they may not be accessing the CPU at the time. “Not Responding” is assigned to processes that are not responding to OS commands and should be stopped. “Unknown” can sometimes refer to “running” or “not responding” processes and serves as a reminder of Microsoft’s dedication to semantic programming.

References

Laurie, V. (n.d.). Managing Windows Programs from the Command Line- Tasklist. Retrieved January 11, 2016, from http://commandwindows.com/tasklist.htm

non-preemptive multitasking Definition from PC Magazine Encyclopedia. (n.d.). Retrieved January 10, 2016, from http://www.pcmag.com/encyclopedia/term/48051/non-preemptive-multitasking

Scheduling Priorities (Windows). (n.d.). Retrieved January 8, 2016, from https://msdn.microsoft.com/en-us/library/windows/desktop/ms685100(v=vs.85).aspx

Silberschatz, A., Galvin, P. B., & Gagne, G. (2010). Operating system concepts (8. ed., internat. student version). Hoboken, NJ: Wiley.

Tanenbaum, A. S. (2008). Modern operating systems (3rd ed). Upper Saddle River, N.J: Pearson/Prentice Hall.

Tasklist. (2012, April 17). Retrieved January 11, 2016, from https://technet.microsoft.com/en-us/library/cc730909.aspx