Important Terminology
This list has been collected for the impatient readers. It describes key terms, in the way the writer understands them.
- Process
- A process is usually a code segment in memory which the CPU can execute. A process can be a parent of other processes it has created or a child of parent process. It can even be both a parent and a child, which also mean it can have grand-parents and grand-children.
- Task
- From the users point-of-view the processes are grouped in tasks. These tasks then contain additional threads. The different tasks could fx. be a text editor and a server. These two tasks wouldn't benefit from sharing the same address space, so the system would not allow it. Now the text editor is only one process, which received keyboard input and print it on the screen. But the server contain several threads, one monitoring all the others, three serving http request, another serving ftp request. All these, especially the http threads may benefit from sharing the same address space.
- Thread
- When an application is started, it starts as one process. This process has it own address space, and thus called a task. The process can then request more threads, which are seperate processes that run in the same address space as the parent.