|
Page 1 of 3 What are Processes? Process is one of the core terms in operating systems. The simplest but very precise explanation is that a process is a program in execution, a running instance of a program. In the theory of operating system there are several states of a process, like running, blocked, terminated etc. but this is too much detail for somebody who is just eager to be able to monitor what is going on on his or her computer. (For those, who are interested in more detail, Operating Systems: Design and Implementation and Modern Operating Systems by Andrew Tanenbaum are an excellent source of indepth information about processes and operating systems as a whole.)
Modern operating systems can run simultaneously many processes, though actually at any given point of time only one process has the processor at its disposal. The other processes are waiting for their turn to come and that is why when you look at the processes on your computer, you might see a long list of the processes that are running. With dual core processors there are two processes that can execute simultaneously but still this does not change the fact that there is one (or two) processes that are executing and a dozen of others that are waiting to be given the processor. Many operating systems allow processes to be divided further - into threads. For example, Program A is running as a Process A and Process A has the following threads – A1, A2, A3, etc., all of which execute subtasks that are related to the execution of Program A. Threads are dependent on the process that started them and when the process terminates, they terminate as well. Process management is one of the basic activities of operating systems and when a process consumes too much CPU power, this slows down the whole system, so in order to free some resources, one or more processes is terminated. When processes are forcibly terminated, this often results in loss of data but given the choice between a hung system and a killed process, loss of data might be acceptable. There are processes that can't be terminated because their execution is vital for the functioning of the whole system. Also, killing processes arbitrarily is a bad idea (even if the operating system allows to kill a process of your choice) and the right approach to killing processes is first to identify which is the program that started the process, what resources are used by it and then to proceed with termination. Killing the bad guys, i.e. processes is described in the last section of this article.
|