操作系统的执行(或者称为操作系统与进程的运行关系)

操作系统既在所有进程外执行(无进程内核),也可在用户进程中执行,分为内核态和用户态。无进程内核时,操作系统中断用户进程执行系统功能,之后恢复或调度进程。而在用户进程中,操作系统作为例程在用户进程上下文中运行,减少上下文切换,提高效率。此模式在多处理器环境中尤为有利,允许操作系统服务在专用处理器上执行。

操作系统的两个特殊的事实:

  1. 操作系统 与普通的计算机软件以同样的方式运行,也就是说,它也 是由处理器执行的一个程序。
  2. 操作系统经常释放控制权,并且依赖于处理器恢复控制权 。

操作系统与进程的运行关系分为以下 2种 方式:

  1. 无进程的内核 (一般为老式操作系统)
    此种情况下,操作系统在所有的进程之外执行,即此时的操作系统为一个单独的内核。通过 这种方法 ,当前 正在执行的进程被中断或者产生一个系统调用时 , 该进程的模式的上下文环境“就会”被保存起来 , 控制权转交给内核 !操作系统有自己的内存和系统栈,用于控制过程调用和返回。 操作系统可以执行任何预期的功能,并“恢复”被中断进程的上下文 ,这将导致被中断的用户进程重新继续执行。或者,操作系统可以完成保存进程环境的功能,并且继续调度和分派另一个进程,是否这样做取决于中断的原因和当前情况。

此种情况下,其关键点在于“进程的概念”只适用于用户程序,操作系统代码作为一个在特权模式下工作的独立实体被执行!
在这里插入图片描述

2.在用户进程中执行
此种情况下又可以分为两种类型:
(1)在用户进程的上下文中执行几乎所有的操作系统软件(一般为较小的机器(PC、工作站)的操作系统中)。其本质为:操作系统是用户调用的一组例程,在用户进程中执行,实现各种功能!。此时在任何时刻,操作系统管理着n个进程镜像,每个镜像不仅包含下图中列出的区域,而且还包括内核程序的程序、数据和栈区域。
在这里插入图片描述

(2)进程的执行的状态分为“内核态”和“用户态”。当进程在内核态下时,独立的内核栈用于管理调用/返回。操作系统代码和数据位于“共享地址空间”中,被所有的用户进程共享。当发生一个中断、陷阱(程序运行错误,如除0)或系统调用时,处理器被置于内核态,控制权转交给操作系统。为了将控制从用户程序转交给操作系统,需要保存模式上下文环境并进行模式切换,然后转换到一个操作系统例程,但此时仍然是在当前用户进程中执行,因此,不需要执行进程切换,仅在同一个进程中进行模式切换。
这种模式下,不需要进行进程的上下文切换,只需要保存切换之前的模式下的数据(上下文内容),再切换下模式就行。当操作系统例程执行完后再进行切换下模式,切换回用户态!!
此种模式如下图所示:
在这里插入图片描述

额外篇:基于进程的操作系统(原理都是上述的,只是策略不一样)
此系统是图3.15c中显示的另一种选择,即把操作系统作为一组系统进程来实现。与其他选择一样,作为内核一部分的软件在内核态下执行,不过在这种情况下,主要的内核函数被组织成独立的进程,同样,还可能有一些在任何进程之外执行的进程切换代码。
这种方法的优点如下:
1.它利用程序设计原理,促使使用模块化操作系统,并且模块间具有最小的、简明的接口。
2.一些非关键的操作系统函数可简单地用独立的进程实现。比如一些监控系统各种资源的使用程度和系统中用户进程的执行速度的监控程序。由于这个程序没有为任何活动进程提供特定的服务,它只能被操作系统调用。作为一个进程,这个函数可以在指定的优先级上运行,并且在分派器的控制下与其它进程交替执行。
3.把操作系统作为一组进程实现,在多处理器或多级环境中是非常有用的,这是,一些操作系统服务可以传送到专用处理器中执行,以提高性能。(此时,在此处理器上也不用发生进程切换)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值