操作系统:1.3操作系统运行环境

1. 运行器运行模式(选择题)

在这里插入图片描述

1.1 CPU执行的两种程序

  1. 内核程序:执行一些特权指令
  2. 应用程序:又称自编程序,执行一些非特权指令,出于安全考虑不能执行特权指令

1.2 CPU的两种运行模式

  1. 核心态:又称管态、内核态,当CPU处于核心态时,此时CPU可以执行特权指令,由核心态转换到用户态的指令也是特权指令。内核程序在核心态。

  2. 用户态:又称目态,当CPU处于用户态时,此时CPU可以执行非特权指令。用户自编程序在用户态。

    问:处理器为什么要区分核心态和用户态两种操作方式?在什么情况下进行两种方式的切换?

    答:区分执行态的主要目的是保护系统程序。用户态到核心态的转换发生在中断产生时,而核心态到用户态的转换则发生在中断返回用户程序时

  3. 内核态和用户态的切换:

    1. 内核态 -> 用户态:执行一条特权指令——修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权。

    2. 用户态 -> 内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权。(被动:只可由中断引起

      计算机区分核心态和用户态指令后,从核心态到用户态的转换是由操作系统程序执行后完成的,而用户态到核心态的转换则是由()完成的。
      A. 硬件   B. 核心态程序  C.用户程序  D.中断处理程序


      答案:A
      解析:计算机通过硬件中断机制完成由用户态到核心态的转换。B显然不正确,核心态程序只有在操作系统进入核心态后才可以执行。D中的中断处理程序一般也在核心态执行,因此无法完成“转换成核心态”这一任务。若由用户程序将操作系统由用户态转换到核心态,则用户程序中就可使用核心态指令,这就会威胁到计算机的安全,所以C不正确。

1.3 两种指令

  1. 特权指令:是指不允许用户直接使用的指令,如 I/O指令、置中断指令,存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等的指令。
  2. 非特权指令:是指允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。

1.4 内核

由很多个内核程序组成了“操作系统内核”,简称“内核”。

  • 内核是计算机上配置的底层软件,是操作系统中最核心的部分,也是最接近硬件的部分

  • 大多数操作系统的内核包括4个部分:
    在这里插入图片描述

    在这里插入图片描述

2. 中断和异常的概念

请添加图片描述

[2018统考真题】定时器产生时钟中断后, 由时钟中断服务程序更新的部分内容是(
I. 内核中时钟变量的值
II. 当前进程占用CPU的时间
III.当前进程在时间片内的剩余执行时间
A.仅 I、II  B.仅 II、III  C.仅 I、III  D. I、II、III


答案:D
解析:时钟中断的主要工作是处理和时间有关的信息及决定是否执行调度程序。和时间有关的所
有信息包括系统时间、进程的时间片、延时、使用CPU的时间、各种定时器,因此I、II、III
均正确。

在中断发生后,进入中断处理的程序属于()。
A.用户程序      B. 可能是用户程序,也可能是OS程序
C. 操作系统程序    D. 单独的程序,即不是用户程序也不是OS程序


答案:C
解析:当中断或异常发生时,通过硬件实现将运行在用户态的CPU立即转入核心态。中断发生时,若被中断的是用户程序,则系统将从目态转入管态,在管态下进行中断的处理;若被中断的是低级中断,则仍然保持在管态,而用户程序只能在目态下运行,因此进入中断处理的程序只能是OS程序。中断程序本身可能是用户程序,但是进入中断的处理程序一定是OS程序。

3. 系统调用

在这里插入图片描述
系统调用过程:

  • 用户执行陷入指令(又称访管指令,trap指令)——用户把CPU的使用权主动交给操作系统内核程序(CPU状态会从用户态进入核心态

  • 内核根据系统调用的请求作出处理。

  • 处理完后,操作系统内核程序又会把CPU的使用权还给用户程序(即CPU状态会从核心态回到用户态
    在这里插入图片描述

    [2019统考真题】下列关于系统调用的叙述中,正确的是()。
    I. 在执行系统调用服务程序的过程中,CPU处于内核态
    II. 操作系统通过提供系统调用避免用户程序直接访问外设
    III. 不同的操作系统为应用程序提供了统一的系统调用接口
    IV. 系统调用是操作系统内核为应用程序提供服务的接口
    A.仅 I、IV   B.仅 II、III   C.仅 I、II、IV   D.仅 I、III、 IV


    答案:D
    解析:执行系统调用的过程如下:正在运行的进程先传递系统调用参数,然后由陷入(trap)指令
    负责将用户态转换为内核态,并将返回地址压入堆栈以备后用,接下来CPU执行相应的内核态服
    务程序,最后返回用户态。所以选项C正确。

目的:
用户程序不能直接执行对系统影响非常大的操作,必须通过系统调用的方式请求操作系统代为执行,以便保证系统的稳定性和安全性,防止用户程序随意更改或访问重要的系统资源,影响其他进程的运行。

参考资料

《王道:23操作系统考研复习资料》

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值