讲个故事先
这就像一个舞台(CPU核心),
要供多个剧组演出多个剧目(进程),
剧目中有多个各自独立的角色(线程),有跑龙套的,有主角,第一配角,第二配角等,
他们在同一个舞台(CPU和虚拟地址空间)上各自执行着自己的动作,互不干扰,偶有交谈(线程间共享访问变量);
还有专门的一个角色(I/O线程)负责向幕后人员(操作系统)发出信号(系统调用)控制幕布、灯光角度和颜色、背景图片道具切换的;
或许还有一个角色(负责创建新线程)专门负责通知幕后人员请其他角色(线程)上台执行以及向幕后人员申请舞台某个区域使用权的(申请分配新虚拟地址空间)。
如果系统只有一个CPU核心,那么舞台上的所有角色(线程)只能一个接一个地执行,当一个角色举手投足时,其他角色都静止在原地,大家轮流执行,只要切换速度足够快,给观众的感觉就会是所有角色都在“同时”做出各种动作。
当某个角色执行完一个细小的时隙(比如10ms)后,幕后会响起一个闹铃(时钟中断),中断该角色的演出,
CPU停止执行该角色,并将该角色的身体各部位的位置(CPU内部关键寄存器值)保存起来,这个演员就可以下台休息了。
然后,幕后人员根据下一个要执行的角色按照之前方式保存的位置信息,将其身体形状拧巴成对应的形状(恢复安置各个寄存器值到CPU上),搬上台,然后CPU开始执行,该角色会继续从之前的断点执行,就好像什么也没有发生过一样。
接受几个设定:
进程是一家almost密不透风的公司,缅甸KK园区
线程里面工作的…人
进程**[园区]**内公共资源对于进程来说,可以共享.
别的园区[进程],一般不能和自己的园区共享人员资源,除非…
好的,现在再接受设定:
- 单个CPU在任一时刻