现在,我们有了4个进程,分别是TTY、A、B、C。其中A、B和C是可有可无的,它其实不是操作系统的一部分,而更像用户在执行的程序。而TTY则不同,它肩负着重大的职责,没有它我们连键盘都无法使用。所以,我们有必要把它们区分开来,分为两类。我们称TTY为 “任务”,而称A、B、C为 “用户进程”。在具体的实现上,也来做一些相应的改变,让用户进程运行在ring3,任务继续留在ring1。
具体实现上,只是把系统任务和用户进程分成了2个表格存储,在设置GDT描述符的特权级时设置不同值,eflags设置成不同值,其他没有大的修改。