Process management is an integral part of any modern day operating system. The OS must allocate resources to processes, enable processes to share and exchange information, protect the resources of each process from other processes and enable synchronization among processes. To meet these requirements, the OS must maintain a data structure for each process, which describes the state and resource ownership of that process and which enables the OS to exert control over each process.
Process management is one of the most important and relevant tasks in operating system design. In this paper,we investigate the process management in Linux, FreeBSD, and Darwin. We compare the data structures used to representprocess and the global variables used to control the current active process in three operating systems. Based on the definitionuseanalysis, we study how the number of instances of process control global variable can affect the maintenance of theoperating system kernel. This effect is demonstrated in an empirical study in the relationship between the number of kernellines of code modified and the number of instances and number of definitions of process controller global variable. Weconclude that the way process management implemented in Linux makes it more difficult to maintain than FreeBSD and Darwin.