Chapter3 进程描述和控制
一、 通常哪些事件会导致创建一个进程?
1、 新作业的进入
2、 父进程由于某种原因开启一个派生进程
3、 一个新的服务的启动,操作系统因提供一项服务而创建。
4、 交互登陆,终端用户登陆到系统。
二、抢占一个进程是什么意思?
抢占就是优先级高的进程去抢占优先级低的且正在执行的进程的资源,导致优先级低的正在运行态的进程被迫阻塞(终端)。通俗的讲就是一个进程正处在运行态执行,此时一个比他优先级高的进程启动,正处于运行态的进程被阻塞,优先级高的进程执行。
比如:B进程正在运行,而另一个具有更高优先级的A进程处于阻塞态,当处于阻塞态的进程A由于某个事件的触发而转换为就绪态,由于A优先级大于B,因此,此时中断进程B,将处理器分派给进程A。
三、 什么是交换,目的是什么?
交换:就是将内存中的进程换到外存中的“挂起队列”。其目的是为了让内存有更多的可运行空间,加快执行速度。
四、 挂起进程的四个特点。
1、 处于外存。从内存中被换出。
2、 不能自启动,除非有外部事件的触发。
1、 进程不能立即执行
2、 进程可能是或不是正在等待一个事件
3、 为阻止进程执行,可以通过代理把这个进程置于挂起状态,代理可以是自己,也可以是父进程或操作系统
4、 除非代理显示地命令系统进行状态转换,否则进程无法从这个状态中转移
五、 对于哪类实体,操作系统为了管理它而维护其信息表?
1、 进程表(进程)
2、 内存表(内存使用情况、虚拟内存分配)
3、 设备(I/O表,I/O使用情况)
4、 文件()
六、 进程控制块中的三类信息
进程控制块:进程属性的集合。而程序、数据、栈和属性的集合称做进程映像。
作用:包含操作系统所需要的关于进程的所有信息。
进程:一段运行的程序和维持它运行所需要的数据集。
1、 进程ID,表示当前进程的身份(1、进程标识信息(进程标识符、用户标识符、创建该进程的标识符))
2、 进程存储空间,当前进程需要执行所需要的内存空间()
3、 CPU状态(2、CPU状态信息(用户可见寄存器、控制和状态寄存器以及栈指针的信息))和进程控制信息(3、进程控制信息(调度和状态信息、进程通信、进程特权和存储管理等信息))
4、 程序实体
七、 为什么需要两种CPU执行模式
针对内存保护,因此某些机器指令(特权指令)只能由操作系统执行,比如I/O指令就属于特权指令。被内核程序两种模式是指用户态(非特权态)和内核态(特权态)。是指CPU的两种不同的执行模式。使用两种模式是为了提高程序的执行效率和信息安全,利用两种模式的优点并克服两种模式各自的缺点。(保护操作系统和重要的操作系统表(比如PCB表)不受用户程序的干涉。在内核态下,软件具有对处理器以及所有指令、寄存器和内存的控制能力。)
什么时候CPU处于内核模式呢?当用户调用一个操作系统服务或中断触发例程的执行时,执行模式被设置成内核模式,当从系统服务返回到用户进程时,执行模式被设置为用户态。(这点对Windows或者UNIX都是同样的)
八、 创建一个新进程所执行的步骤。
1、 分配进程ID
2、 分配内存空间
3、 初始化进程控制块
4、 设置正确的连接,将进程加入就需队列链表中
5、 创建或扩充其他数据结构
九、 中断和陷阱的区别
中断是由于外部的事件触发,而陷阱是由于自身的程序运行故障所导致的中断
十一、中断的例子(I/O中断,内存溢出(内存失效),时钟中断(时间片到))
十二、模式切换和进程切换的区别。
模式切换:是指同一个进程中用户态与内核态的切换。因为他们共享内存,所以不涉及资源的重新分配,因此模式切换效率更高。并且不改变正在运行的进程的状态,在这种情况下,保存上下文环境和以后恢复上下文环境只需很少的开销。
进程切换:进程切换是由于进程之间不同状态的切换,需要重新分配各种资源,操作系统必须使其环境产生实质性的变化。
十三、Windows操作系统内核与UNIX操作系统的执行比较
在Windows中,操作系统的执行是被当做一组系统进程来实现的。当发生中断、陷阱或系统调用时,CPU转到内核态执行,但由于操作系统是作为一组系统进程实现的,所以需进行进程切换。Windows操作系统是基于进程的操作系统。
而在UNIX中,操作系统是融合在用户进程的上下文中被执行的。当发生一个中断、陷阱或系统调用时,处理器被置于内核态,控制权转交给操作系统,为了将控制从用户进程转交给操作系统,需要保存模式上下文环境并进行模式切换,然后切换到一个操作系统例程,但此时仍然是在当前用户进程中继续执行。UNIX是基于用户进程的操作系统。
UNIX使用两类进程,系统进程和用户进程,系统进程处于内核态运行,用户进程处于用户态执行,当发生中断、异常或用户进程发出系统调用时,用户进程可进入内核态。