The creation of so many processes is wasteful of kernel memory.
The processes consume kernel memory by requiringallocation of kernel stacks, task structs, and memory hanging off the task structure.
It also slows down searches for processes by creating so many of them.
Context switching must be done carefully in order to avoid races.
Device interrupts need to be forwarded from process to process in order to be handled correctly. This is done with fcntl(F_SETOWN).
On i386, the hardware debug registers are process-specific, and need to be updated in the incoming process.