执行模式
大多数处理器至少支持两种执行模式。某些指令只能再特权模式下执行,某些内存区域也只能再特权模式下访问。
非特权模式一般称为用户模式,因为用户程序通常再该模式下运行;
特权模式称为系统模式,控制模式或内核模式。
为什么需要两种模式?
答案当然是为了安全。
就像在进程描述中学到的进程控制块是可以被操作系统中多个模块访问并修改的,这样就有可能对进程产生影响,或是反过来由于进程控制块收到影响之后继而对操作系统产生伤害。
所以使用两种模式的原因是:保护操作系统和重要的操作系统表不受用户程序的干扰。在内核模式下,软件会完全控制处理器及所有指令寄存器和内存,然而这种过大的权限对用户来说是不需要的,为了安全起见,将两种模式区分开来,为了保护操作系统。
进程创建
操作系统决定创建一个进程时,会做如下步骤:
- 为新进程分配一个唯一的进程标识符。此时主进程表中会为该新建进程添加一个新标项
- 为进程分配空间。包括进程映像中的所有元素。因此,操作系统必须知道程序数据和用户栈需要多少空间。也可由父进程将此作为请求创建新进程的一部分传递给操作系统。最后,必须为进程控制块分配空间。
- 初始化进程控制块。例如:进程状态通常初始化为就绪或就绪挂起;优先级默认为最低,除非显示地请求了更高的优先级;进程最初不拥有任何资源,除非显示地请求了这些资源,或继承了父进程的资源。
- 设置正确的链接。例如,要将新建进程放入就绪或就绪挂起链表中。
- 创建或扩充其他数据结构。如: