线程是调度的基本单位,一个非多线程的进程其实就是一个单线程。所以操作系统当然可以让多个进程并行。至于进程不并行的设计?没有听说过啊,能提下出处吗?
对于Linux内核,线程用的也是task_struct结构体,多核的时候,内核做的就是把task_struct任务调度到 各个CPU上,也就实现了并行。寄存器的话,每个核心都有自己的寄存器,核心执行哪个task_struct,就把那个任务的上下文加载进CPU。至于进程的其他信息,比如虚拟地址映射表都是保存在内存中的, 无关CPU。