建设一个网站主要受哪些因素的影响,深圳网络有限公司,滦南县建设局网站,点击图片跳转到网站怎么做链接第一章 计算机系统概述
操作系统的体系结构 大内核/单内核/宏内核微内核 通过之前的学习#xff0c;我们知道计算机系统的层次结构是这样的。 但是操作系统的内部其实还可以再进一步地划分。 一部分是内核的功能#xff0c;一部分是非内核的功能。 操作系统最核心的功能我们知道计算机系统的层次结构是这样的。 但是操作系统的内部其实还可以再进一步地划分。 一部分是内核的功能一部分是非内核的功能。 操作系统最核心的功能要放在内核当中。比如时钟管理、中断处理、原语进程管理、存储器管理、设备管理等等。这些功能都是要放在操作系统内核当中的。 时钟管理利用时钟中断实现计时功能。 中断处理略。 原语原语是一种特殊的程序具有原子性。也就是说这段程序的运行必须一气呵成不可被“中断”。要么就一气呵成的全部运行完成要么就不运行。它的执行过程是不可被中断的也就是在执行原语这一段程序的过程当中即使有外部中断信号过来了CPU也会继续把原语执行完成然后才去处理那个外部中断信号。 总之上图“内核”部分当中最底层的那三个时钟管理那一行是与硬件结合最为紧密的它们必须放在操作系统的内核当中。 Ubuntu、CentOS的开发团队其主要工作是实现非内核功能而内核都是用了Linux内核。 内核是操作系统最基本、最核心的部分。 实现操作系统内核功能的那些程序就是内核程序。 对于那三个最底层的功能它们是与硬件结合最为紧密的也必须放在操作系统内核当中。 而进程管理、存储器管理这些管理功能不会直接涉及硬件所以有的操作系统并不把这些管理功能放到内核当中。而只在内核当中保留那些与硬件接触最紧密的部分。 因此这就引出了两种截然不同的内核设计方法。 把所有的这些功能都包含在操作系统当中的这种结构就叫大内核 在内核当中只保留与硬件结合最紧密的这些部分那么这种结构就叫做微内核。 注意操作系统内核需要运行在内核态操作系统的非内核功能运行在用户态。 需要注意的是如果采用微内核结构的话。 属于内核的这些功能是需要运行在内核态的。而不属于内核的上面那些管理功能就不属于内核就要运行在用户态。 这会对我们系统的性能造成一定影响。 如何造成影响我们用一个更直观的例子来体会。 现在我们有两种体系结构的系统。 第一个系统采用的是大内核的体系结构那么由于进程管理、存储管理等等这些功能都是被划分在内核当中的所以这些功能的处理都需要运行在内核态只有应用程序是运行在用户态的。 而如果采用微内核结构的操作系统只有与硬件联系最紧密的这些被划分在了内核当中只有这些功能是在内核态下才可以执行的而其他的功能模块在用户态下就可以运行。 此时有这样一种情况。 假设现在应用程序想要请求操作系统的服务这个服务的背后需要涉及到进程管理、存储管理、设备管理这几个功能。 如果采用的是大内核的体系结构的话那么应用程序向操作系统提出服务的请求此时CPU会从用户态切换为核心态然后开始运行这一系列的内核程序。 而如果采用的是微内核的体系结构的话应用程序向操作系统提出服务的请求接下来操作系统的这几个模块都需要为应用程序提供服务而这几个模块之中进程管理这一个模块在处理应用程序请求的时候它同样也需要得到内核的支持如时钟、中断等所以在进程管理这一个模块服务的过程中CPU还需要由用户态转为内核态服务完成之后又会从内核态再转回用户态。同理存储管理、设备管理这两个模块也是一样的它们在执行相应工作的时候同样也需要得到内核功能的支持。因此每一个模块都需要请求内核的服务每一次都需要涉及到一次CPU状态转换的过程。 因此如果采用的是大内核的体系结构CPU只需要进行两次状态转变就可以了。 而如果采用的是微内核体系结构整个过程的处理就需要有六次变态。 需要注意的是CPU的状态转换这件事情是有成本的需要消耗不少的时间。因此频繁地切换CPU的状态是会降低系统性能的。
【注意】此处“变态”这个词只是我们为了方便表达正确的说法应该是“CPU状态的转换”。
小结 典型的 大内核/宏内核/单内核 操作系统Linux、UNIX 典型的 微内核 操作系统Windows NT 了解即可重要的是知道两种体系结构各自的优缺点