关于操作系统的一些事,这些你应该要知道~

点击上方蓝字“轮子工厂”关注公号

  后台回复“我要造轮子”获取100本经典图书

操作系统的运行机制

  • 计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序或系统外层的应用程序。对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此“管理程序”要执行一些特权指令,而“被管理程序”出于安全考虑不能执行这些指令。所谓特权指令,是指计算机中不允许用户直接使用的指令,如I/O指令、 置中断指令,存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等指令。操作系统在具体实现上划分了用户态(目态)和核心态(管态),以严格区分两类程序。

  • 现代计算机几乎都是层次结构,操作系统的各项功能分别设置在不同层次上,一些与硬件关联较紧密的模块,诸如时钟管理、中断处理、设备驱动等处于最底层。其次是运行频率较髙的程序,诸如进程管理、存储器管理和设备管理等。这两部分内容构成了操作系统的内核。这部分内容的指令操作工作在核心态。

  • 内核一般包括四个方面的内容:

  1. 时钟管理:

  2. 中断机制

  3. 原语

  4. 系统控制的数据结构及处理

中断和异常的概念

  • 当中断或异常发生时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的.

  • 中断(Interruption),也称外中断,指来自CPU执行指令以外的事件的发生,如设备发出的I/O结束中断,表示设备输入/输出处理已经完成,希望处理机能够向设备发下一个输入 / 输出请求,同时让完成输入/输出后的程序继续运行。时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。这一类中断通常是与当前程序运行无关的事件,即它们与当前处理机运行的程序无关。

  • 异常(Exception),也称内中断、例外或陷入(Trap),指源自CPU执行指令内部的事件,如程序的非法操作码、 地址越界、算术溢出、虚存系统的缺页以及专门的陷入指令等引起的事件。对异常的处理一般要依赖于当前程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理。关于内中断和外中断的联系与区别如图下所示。

640?wx_fmt=jpeg

系统调用

  • 所谓系统调用就是用户在程序中调用操作系统所提供的一些子功能,系统调用可以被看做特殊的公共子程序。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、进行I/0传输以及管理文件等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。通常,一个操作系统提供的系统调用命令有几十乃至上百条之多。

  • 这些系统调用按功能大致可分为如下几类:

  1. 设备管理。完成设备的请求或释放,以及设备启动等功能。

  2. 文件管理。完成文件的读、写、创建及删除等功能。

  3. 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。

  4. 进程通信。完成进程之间的消息传递或信号传递等功能。

  5. 内存管理。完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。

  • 系统调用运行在系统的核心态。通过系统调用的方式来使用系统功能,可以保证系统的稳定性和安全性,防止用户随意更改或访问系统的数据或命令。系统调用命令是由操作系统提供的一个或多个子程序模块实现的。

  • 操作系统的运行环境可以理解为:用户通过操作系统运行上层程序(如系统提供的命令解释程序或用户自编程序),而这个上层程序的运行依赖于操作系统的底层管理程序提供服务支持,当需要管理程序服务时,系统则通过硬件中断机制进入核心态,运行管理程序;也可能是程序运行出现异常情况,被动地需要管理程序的服务,这时就通过异常处理来进入核心态。当管理程序运行结束时,用户程序需要继续运行,则通过相应的保存的程序现场退出中断处理程序或异常处理程序,返回断点处继续执行。

  • 由用户态转向核心态的例子:

  1. 用户程序要求操作系统的服务,即系统调用。

  2. 发生一次中断。

  3. 用户程序中产生了一个错误状态。

  4. 用户程序中企图执行一条特权指令。

  5. 从核心态转向用户态由一条指令实现,这条指令也是特权命令。一般是中断返回指令。

640?wx_fmt=jpeg为你推荐以下文章

机器学习之线性回归案例研究

这真的是你了解的网络吗?

97 条 Linux 运维工程师常用命令总结 | 史上最全Linux命令总结

640?wx_fmt=jpeg

640?wx_fmt=jpeg

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值