相当于客户端服务器的模式;
内核空间为用户空间提供服务
【内核空间和用户空间】:
我们通常将运行模式称作内核空间和用户空间。模块运行在所谓的内核空间里,而应用程序运行在所谓的用户空间里。每一个模式都有自己的内存映射,即自己的地址空间。
两种操作模式在操作系统中的不同:
实际上操作系统的作用是为应用程序提供一个对计算机硬件的一致视图,必须负责程序的独立操作以及保护资源不受非法访问,而这个的完成必须依赖于CPU能够保护系统软件不受应用程序的破坏。
应对方式:在CPU中实现不同的操作模式,不同的级具有不同的功能,较低的级别将禁止这些操作,程序代码只能通过有限数目的门来从一级切换到另一级。Unix系统采用最高和最低两个级别,内核运行在最高级(也成为管理员状态),应用运行在最低级(即所谓的用户态),最低级中处理器控制着对硬件的直接访问以及对内存的非授权访问。
为了安全问题,一些I/O操作的指令都被限制在只有内核模式可以执行,因此操作系统有必要提供接口来为应用程序提供诸如读取磁盘某位置的数据的接口,这些接口就被称为系统调用。
两种模式的切换:
当应用程序执行系统调用或者被硬件中断挂起是,Unix将执行模式从用户空间切换到内核空间。执行系统调用的内核代码运行在进程上下文中,它代表调用进程执行操作,因此能够访问进程地址空间的所有数据,而处理硬件中断的内核代码和进程是异步的,与任何一个特定进程无关。
当操作系统接收到系统调用请求后,会让处理器进入内核模式,从而执行诸如I/O操作,修改基址寄存器内容等指令,而当处理完系统调用内容后,操作系统会让处理器返回用户模式,来执行用户代码。
系统中两种模式的辨别:
”用户模式“与“内核模式”,通过一个标签位来鉴别当前正处于什么模式。一些诸如修改基址寄存器内容的指令只有在内核模式中可以执行,而处于用户模式的时候硬件会直接跳过这个指令并继续执行下一个。(即系统调用)
补充:
中断挂起:因为某种原因,中断不能马上执行,所以“挂起”等待。
等程序可以中断,在执行“响应挂起的中断”
比如有高、低级别的中断同时发生,就挂起低级别中断,等高级别中断
程序执行完,在执行低级别中断。
异步:一种通讯方式,对设备需求简单。我们的PC机提供的标准通信接口都是异
步的。异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发
送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,同
时在结束时有停止位。
异步的另外一种含义是计算机多线程的异步处理。与同步处理相对,异步处理不用阻塞当前线程来等待处理完成,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程。
但此处需要明确的是:异步与多线程与并行不是同一个概念.
------------------越是喧嚣的世界,越需要宁静的思考------------------
合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。
积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。骐骥一跃,不能十步;驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也。