:PROPERTIES:
:ID: b46acdba-9a9d-4ec7-89f7-2ef1170e4457
:mtime: 20240305025151
:ctime: 20240305025150
:END:
#+title: process creation
#+filetags: :public:project:
* Process Creation Tree
- process creation is
hierarchical, like a tree
- [[id:9903fd7a-39b0-47c9-adeb-7f98cdefa4d5][Parent processes]] create
[[id:7405eae1-0686-41c0-a87d-7c402d98e018][child process]]es, this forms a tree
* Key questions about process creation
1. How are resources shared?
1. Parent and children share all resources
2. Children share subset of parent’s resources
3. Parent and child share no resources
2. How is the child’s memory initialised?
1. Child starts with a duplicate of the parent and then modifies it
2. Child explicitly has a program loaded into it
3. How is execution of parent and children handled?
1. Parent and children execute concurrently
2. Parent waits until children terminate
* Mechanism of Process creation
• fork clones a child process from parent,
• then execve replaces child’s memory space
with a new program,
• meanwhile parent waits until child exits
• Alternative approach in NT/2K/XP
• CreateProcess explicitly includes name of
program to be executed