当前位置: 首页 > news >正文 大型网站建设兴田德润实惠梧州网站优化公司 news 2025/10/27 1:23:22 大型网站建设兴田德润实惠,梧州网站优化公司,韩国美食做视频网站,南京网站建设 雷仁网文章目录 操作系统运行机制特权指令VS非特权指令内核态VS用户态中断和异常内中断(异常)外中断中断机制基本原理中断处理过程 系统调用系统调用和库函数的区别为什系统调用时必须的#xff1f;什么功能需要用到系统调用系统调用的过程小结 操作系统内核 操作系统运行机制 特权… 文章目录 操作系统运行机制特权指令VS非特权指令内核态VS用户态中断和异常内中断(异常)外中断中断机制基本原理中断处理过程 系统调用系统调用和库函数的区别为什系统调用时必须的什么功能需要用到系统调用系统调用的过程小结 操作系统内核 操作系统运行机制 特权指令VS非特权指令 “指令”就是CPU能识别、执行的命令和Linux的命令不一样Linux的命令是交互式的命令行也就是前面所提到的联机命令接口。 应用程序普通程序员写的就是普通“应用程序”应用程序只能使用非特权指令如加法指令、减法指令等 内核程序比如windows或者是苹果公司写的操作系统内核由很多内核程序组成操作系统内核。操作系统内核作为“管理者”有时会让CPU执行一些“特权指令”这些指令影响巨大只允许“管理者”操作。这些操作系统内核程序具有原子性 在CPU设计和生产的时候就划分了特权指令和非特权指令因此CPU执行一条指令前就能判断出指令类型。 内核态VS用户态 CPU有两种状态内核态和用户态 处于内核态时说明此时正在运行的是内核程序此时可以执行特权指令。处于用户态时说明此时正在运行的是应用程序此时只能执行非特权指令。 在CPU中有一个寄存器叫做程序状态字寄存器(PSW)其中有个二进制位用1和0分别表示内核态和用户态。 CPU在什么时候会进行切换状态 在刚开机的时候操作系统要进行初始化此时CPU处于内核态操作系统内核程序先上CPU运行开机完成后用户可以启动某个应用程序操作系统内核程序在合适的时候会主动让出CPU让该应用程序上CPU上运行此时操作系统内核在让出CPU之前会用一条特权指令把PSW的标志位设置为用户态应用程序运行在用户态 假设此时有黑客在应用程序中植入了一条特权指令企图破坏操作系统CPU发现接下来要执行的这条指令是特权指令但是自己此时又处于用户态这个非法事件会引发一个中断信号CPU检测到中断信号后会立即变为核心态并停止运行当前的应用程序转而运行处理中断信号的内核程序中断使操作系统再次夺回CPU的控制权操作系统会对引发中断的事件进行处理处理完了再把CPU使用权交给别的应用程序 也就是说 内核态到用户态的转换执行一条特权指令修改PSW的标志位为“用户态”这个动作意味着操作系统将主动让出CPU使用权 用户态到内核态由中断引发硬件自动完成转换过程触发中断信号意味着操作系统将强行夺回CPU的使用权。除了非法使用特权指令之外但凡需要操作系统介入的地方都会触发中断信号。访管指令仅能在用户态下使用执行访管指令可以将用户态转变为核心态 中断和异常 CPU上会运行两种程序一种是操作系统内核程序整个系统的管理者一种是应用程序。 中断是让操作系统夺回CPU使用权的唯一途径如果没有中断机制一旦应用程序上CPU运行CPU就会一直运行这个应用程序。 内中断(异常) 内中断内中断也被称为异常、陷入(trap)与当前执行的指令有关中断信号来源于CPU内部 比如说CPU执行一条非法指令就发生内中断比如说企图在用户态执行特权指令或者说执行除法时发现除数为0都会引发一个中断信号。 又比如说有时候应用程序向请求操作系统内核的服务此时会执行一条特殊的指令(陷入指令),该指令会引发一个内部中断信号再由处理中断信号的内核程序来处理这个中断信号。所谓的系统调用就是由陷入指令完成的。 内中断其实是在CPU内部执行的指令发生了异常比如地址越界、算数溢出而且异常不能被屏蔽一旦出现应该立即处理 外中断 外中断与当前执行的指令无关中断信号来源于CPU外部。 比如说时钟中断由时钟部件发来的中断信号通过这个时钟中断信号就可以时间多道程序并发运行。假设时钟部件每50ms会发送一条中断指令。 有两个应用程序分别在运行需要执行对应指令。假设程序1的指令现在CPU上执行执行了两条指令后已经50ms了此时时钟部件就会向CPU发送一个中断信号这个中断信号是和CPU无关的也就是说是在CPU外部的. 当CPU检测到一个中断信号后它就会先暂定此时正在执行的应用程序然后去执行一个处理时钟中断的内核程序所以CPU就会对时钟中断信号进行处理同时从用户态转换为内核态。 在内核态下CPU开始执行这个内核程序来处理刚才时钟部件发送的中断信号这个内核程序执行的过程当中发现应用程序1刚刚已经执行了50ms的时间了为了公平起见于是这个内核程序就会把CPU的使用权交给第二个程序。 此时就又会切换为用户态第二个应用程序就开始执行对应指令。 但第二个应用程序执行了一系列指令之后如果又过了50ms那么时钟部件则又会给CPU发送一个中断信号和上面类似就又会切换成内核态同时执行对应于的内核程序又会发现程序2已经执行了50ms了就又会把CPU的使用权交给程序1。 这样就实现了应用程序的并发执行 除此之外还有来自一些输入输出设备发来的中断信号比如说打印机。比如说world这个应用程序请求打印机的打印服务那么打印机输出完成之后就会向CPU发送中断信号来通知CPU的任务已经完成接下来CPU会使用相对应的内核程序来对这个中断信号进行处理。这些都是CPU外部的中断和CPU内部没有关系。CPU在每条指令执行完毕之后都会例行的检查一下是否有外部中断需要处理。 中断机制基本原理 CPU会根据不同的中断信号需要用不同的中断处理程序来处理。当CPU检测到中断信号后会根据中断信号的类型去查询中断向量表以此来找到相应的中断处理程序在内存中的存放位置中断处理程序运行在内核态的。 中断处理过程 关中断CPU响应后中断后首先要保护程序的现场状态在保护现场的过程中CPU不应响应更高级中断源的中断请求。否则若现场保存不完整在中断服务程序后也就不能正确地恢复并继续执行先行程序保存断点为保证中断服务程序执行完毕后能正确返回到原来程序必须将原来的程序的断点(程序计数器)保存起来引出中断服务程序取出中断服务程序的入口地址送入程序技术器PC保存线程和屏蔽字进入中断服务后首先要保存现场现场信息一般是指程序状态字寄存器PSWR和某些通用寄存器的内容开中断允许更高级中断请求得到响应执行中断服务程序中断请求目的关中断保证在恢复现场和屏蔽字恢复到原理的状态恢复现场和屏蔽字中断服务程序的最后一条指令通常是一条中断返回指令使其返回到原程序的断点处以便继续执行原程序。 系统调用 操作系统作为用户和计算机硬件直接的接口需要向上提供一些简单易用的服务。主要包括命令接口其中程序接口由一组系统调用组成。 应用程序可以通过系统调用请求获得操作系统内核的服务这个过程会发送用户态和内核态的切换。 系统调用和库函数的区别 普通应用程序可以直接进行系统调用也可以使用库函数。有的库函数涉及到系统调用创建文件有的不涉及获取最大值。 编程语言向上提供库函数有时候会将系统调用封装成库函数以影藏系统调用的一些细节是程序员编程更加方便。 操作系统向上提供系统调用使得上层程序能请求内核的服务。 为什系统调用时必须的 生活场景:去学校打印店打印论文你点击了 Word 的“打印”选项打印机开 始工作。 你的论文打印到一半时另一位同学点击了了 浏览器的的“打印”按钮开始打印他 自己的论文。 如果两个进程可以随意地、并发地共享打印机资源会发生什么情况? 两个进程并发运行打印机设备交替地收到WPS和Wrd 两个进程发来的打印请 求结果两篇论文的内容混杂在一起了… 解决方法:由操作系统内核对共享资源进行统一的管理并向上提供**“系统调用”**用户进程想要使用打印机这种共享资源只能通过系统调用向操作系统内核发出请求。内核会对各个请求进行协调处理。 什么功能需要用到系统调用 应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等)都必须通过系统调用的方式向操作系统内核提出服务请求由操作系统内核代为完成。这样可以保证系统的稳定性和安全性防止用户进行非法操作。 系统调用的过程 假设有一个应用程序在执行一些指令此时这个CPU在用户态但这个应用程序想要执行系统调用的指令的时候就需要用传参数的指令给CPU的寄存中传递一些必要的参数传递的参数可能会有多条主要看的是这个系统调用需要传递几个参数。操作系统会根据传递的参数来判断应用程序到底需要哪种类型的服务。 当这些参数都放入CPU的寄存器之后应用程序就会执行一条特殊的指令叫做陷入指令。而这个陷入指令的执行会引发一个内中断信号CPU在检测到这个内中断信号后返现这个信号是trap指令发出的此时就会先暂停这个应用程序再去执行处理陷入指令的内核程序而这个程序就是系统调用入口程序而这个程序是操作系统内核程序CPU就会转换为内核态进行运行。 而这个系统调用入口程序就会检查CPU寄存器中的参数来判断应用程序需要哪种类型的系统调用。 知道应用程序需要执行哪种类型的系统调用程序后操作系统就会去执行对应的系统调用程序。 小结 陷入指令是非特权指令它是在用户态执行的执行陷入指令后意味着应用程序把CPU的使用权主动的交还给了操作系统的内核用这样的方式来请求操作系统的内核服务。所以陷入指令执行之后就会触发一个内中断然后CPU会切换为内核态转向的去执行一个处理系统调用的内核程序。等这个内核程序执行完毕后就会返回到原来的应用程序接着往下执行。发出系统调用请求是在用户态而对系统调用的相应的处理是在核心态下进行。陷入指令就是trap指令/访管指令 操作系统内核 像时钟管理、中断处理这样的功能是在操作系统内核中完成的而所谓的原语指的就是在运行过程中不能打断的即使在运行的过程中有外部中断信号过来了CPU仍然会先把原语执行完成再去处理中断信号。 像Centos和乌班图的开发团队其主要工作是实现非内核的功能它们发行的操作系统其实都是使用的Linux内核。 内核是操作系统最基本、最核心的部分。实现操作系统内核功能的那些程序就是内核程序。 大内核如下图把所有功能都包含在操作系统当中的就是大内核 微内核如下图如果内核中只是保留与硬件最接近的这些部分就是小内核 需要注意的如果采用的是微内核的这种方式不处于内核中的功能是运行在用户态处于内核中的功能是运行在内核态的。这就会对系统的性能照成影响。 举个例子 假设有一个应用程序想要请求操作系统的服务这个服务的处理同时涉及到进程管理、存储管理和设备管理。 如果是大内核只需要两次的状态转换而微内核则需要6次的状态转换。 需要注意的是内核态和用户态之间的切换是会有开销的需要消耗一定的系统资源和时间频繁的进行内核态和用户态的切换是会降低系统性能的。 文章转载自: http://www.morning.rmxk.cn.gov.cn.rmxk.cn http://www.morning.rmqlf.cn.gov.cn.rmqlf.cn http://www.morning.zpzys.cn.gov.cn.zpzys.cn http://www.morning.cpfbg.cn.gov.cn.cpfbg.cn http://www.morning.qzpkr.cn.gov.cn.qzpkr.cn http://www.morning.wdhhz.cn.gov.cn.wdhhz.cn http://www.morning.fyglr.cn.gov.cn.fyglr.cn http://www.morning.nfdty.cn.gov.cn.nfdty.cn http://www.morning.rcdmp.cn.gov.cn.rcdmp.cn http://www.morning.pgmbl.cn.gov.cn.pgmbl.cn http://www.morning.pbbzn.cn.gov.cn.pbbzn.cn http://www.morning.prddj.cn.gov.cn.prddj.cn http://www.morning.tnthd.cn.gov.cn.tnthd.cn http://www.morning.rpwck.cn.gov.cn.rpwck.cn http://www.morning.ctxt.cn.gov.cn.ctxt.cn http://www.morning.dfltx.cn.gov.cn.dfltx.cn http://www.morning.tmbtm.cn.gov.cn.tmbtm.cn http://www.morning.gqjqf.cn.gov.cn.gqjqf.cn http://www.morning.hghhy.cn.gov.cn.hghhy.cn http://www.morning.mtyhk.cn.gov.cn.mtyhk.cn http://www.morning.rlpmy.cn.gov.cn.rlpmy.cn http://www.morning.kmqms.cn.gov.cn.kmqms.cn http://www.morning.gqflj.cn.gov.cn.gqflj.cn http://www.morning.cnhgc.cn.gov.cn.cnhgc.cn http://www.morning.jjzxn.cn.gov.cn.jjzxn.cn http://www.morning.rqxhp.cn.gov.cn.rqxhp.cn http://www.morning.nmtyx.cn.gov.cn.nmtyx.cn http://www.morning.njddz.cn.gov.cn.njddz.cn http://www.morning.pbsqr.cn.gov.cn.pbsqr.cn http://www.morning.cprls.cn.gov.cn.cprls.cn http://www.morning.ktblf.cn.gov.cn.ktblf.cn http://www.morning.tqpr.cn.gov.cn.tqpr.cn http://www.morning.grlth.cn.gov.cn.grlth.cn http://www.morning.bpmtg.cn.gov.cn.bpmtg.cn http://www.morning.httzf.cn.gov.cn.httzf.cn http://www.morning.lmjkn.cn.gov.cn.lmjkn.cn http://www.morning.nmrtb.cn.gov.cn.nmrtb.cn http://www.morning.fdzzh.cn.gov.cn.fdzzh.cn http://www.morning.dgxrz.cn.gov.cn.dgxrz.cn http://www.morning.qpntn.cn.gov.cn.qpntn.cn http://www.morning.xwlmg.cn.gov.cn.xwlmg.cn http://www.morning.lekbiao.com.gov.cn.lekbiao.com http://www.morning.lpsjs.com.gov.cn.lpsjs.com http://www.morning.plfy.cn.gov.cn.plfy.cn http://www.morning.btjyp.cn.gov.cn.btjyp.cn http://www.morning.pzrrq.cn.gov.cn.pzrrq.cn http://www.morning.tlyms.cn.gov.cn.tlyms.cn http://www.morning.rbjth.cn.gov.cn.rbjth.cn http://www.morning.mmxnb.cn.gov.cn.mmxnb.cn http://www.morning.qhjkz.cn.gov.cn.qhjkz.cn http://www.morning.ndhxn.cn.gov.cn.ndhxn.cn http://www.morning.zrrgx.cn.gov.cn.zrrgx.cn http://www.morning.hbtarq.com.gov.cn.hbtarq.com http://www.morning.haibuli.com.gov.cn.haibuli.com http://www.morning.rbnp.cn.gov.cn.rbnp.cn http://www.morning.qwmpn.cn.gov.cn.qwmpn.cn http://www.morning.bnwlh.cn.gov.cn.bnwlh.cn http://www.morning.fglxh.cn.gov.cn.fglxh.cn http://www.morning.wxqmc.cn.gov.cn.wxqmc.cn http://www.morning.wjhpg.cn.gov.cn.wjhpg.cn http://www.morning.ryysc.cn.gov.cn.ryysc.cn http://www.morning.cftkz.cn.gov.cn.cftkz.cn http://www.morning.fldk.cn.gov.cn.fldk.cn http://www.morning.yxmcx.cn.gov.cn.yxmcx.cn http://www.morning.hlfnh.cn.gov.cn.hlfnh.cn http://www.morning.mzydm.cn.gov.cn.mzydm.cn http://www.morning.gpsrk.cn.gov.cn.gpsrk.cn http://www.morning.pgmbl.cn.gov.cn.pgmbl.cn http://www.morning.wfhnz.cn.gov.cn.wfhnz.cn http://www.morning.qyhcm.cn.gov.cn.qyhcm.cn http://www.morning.tqdqc.cn.gov.cn.tqdqc.cn http://www.morning.zcwtl.cn.gov.cn.zcwtl.cn http://www.morning.rui931.cn.gov.cn.rui931.cn http://www.morning.ycwym.cn.gov.cn.ycwym.cn http://www.morning.kcsx.cn.gov.cn.kcsx.cn http://www.morning.lkjzz.cn.gov.cn.lkjzz.cn http://www.morning.pttrs.cn.gov.cn.pttrs.cn http://www.morning.qqklk.cn.gov.cn.qqklk.cn http://www.morning.mjtft.cn.gov.cn.mjtft.cn http://www.morning.cbvlus.cn.gov.cn.cbvlus.cn 查看全文 http://www.tj-hxxt.cn/news/252515.html 相关文章: 韩雪冬做网站多少钱深圳企业社保登录入口 知名网站建设公司电话wordpress创建动态页面 建网站公司浩森宇特兰州网站建设推荐q479185700顶你 多国语言网站做网站为什么不要源代码 专门做简历的网站软件如何制作个人公众号 制作一个网站的成本做钓鱼网站教程视频 怎样给网站做一张背景济宁市网站建设 蜗牛星际做网站服务器263企业邮箱官网登录 网站建设栏目分析织梦网站栏目无法生成 安阳市商祺网络有限责任公司网站基础优化 江苏省建设厅网站首页长沙企业宣传片制作公司 自助建站教程给别人做彩票网站违法吗 网站建设和网袷宣传郑州网络推广培训 广东企业网站建设价格网站管理员登录 怎么用阿里云建设网站域名 利用域名做网站 邮箱 五站合一自建网站优化大师是干什么的 高端的咨询行业网站制作怎么网站是谁做的 行业网站建设怎么做一个电子商务网站 做平台网站要多久php文件怎么打开 jsp网站开发之html入门知识云校招企业服务平台 微信网站响应式网站网站域名查询注册 合肥网站关键词推广卓创源码网 网站制作新报价哪个省份做网站的多 网站建设类书籍深圳网站公司哪家好 站酷网app福州网站设计软件公司 html5网站和传统网站的优点新开传奇网站刚开 免费搭建微信网站设计国内管理咨询公司排行 合肥网站建设推广服务html毕业设计题目大全 网站域名过期怎么办什么网站好建设 安做省民改厅网站网站免费制作平台