# Overview of processes in MOP3 ## What is a process? A process represents a piece of executing code, has it's own stack and CPU state. Think of it as a "task". There are no kernel processes, only userspace processes. A process must be a member of a broader process group or procgroup for short. ## Procgroups A procgroup owns things like memory, kernel resources and such. Processes work within the scope of a procgroup. Once all procgroup's members die, the procgroup is considered unreachable and thus cleaned up. ## Scheduling MOP3 uses a round-robin based scheduler. For now priorities are left unimplemented, ie. every processes has equal priority, but this may change in the future. A good explaination of round-robin scheduling can be found on the OSDev wiki: [the article](https://wiki.osdev.org/Scheduling_Algorithms#Round_Robin)