内核时间指明线程执行操作系统代码已经经过了多少个100ns(纳秒)的CPU时间。
内核
在计算机科学中,内核(英语:Kernel),又称核心,是操作系统最基本的部分,主要负责管理系统资源。内核,是一个操作系统最基本的部分;内核,是一个操作系统的核心,其重要性不言而喻。它是为众多
应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可以分为单内核和双内核以及微内核。所以,严格地说,内核并不是计算机
系统中必要的组成部分。
基本概述/内核编辑
内核并不是计算机系统中必要的组成部分。程序可以直接地被调入计算机中执行,这样的设计说明了设计者不希望提供任何硬件抽象和操作系统的支持,它常见于早期计算机
系统的设计中。最终,一些辅助性程序,例如程序加载器和
调试器,被设计到机器核心当中,或者固化在只读
存储器里。这些变化发生时,操作系统内核的概念就渐渐明晰起来。直接对硬件操作是非常复杂的,所以内核通常提供一种硬件抽象的方法来完成这些操作。硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。
种类/内核编辑
单内核
单内核为潜在的硬件提供了大量完善的硬件抽象操作。单内核结构在硬件之上定义了一个高阶的
抽象界面,应用一组原语(或者叫系统调用)来实现操作系统的功能,例如进程管理,文件系统,和存储管理等等,这些功能由多个运行在核心态的模块来完成。尽管每一个模块都是单独地服务这些操作,内核代码是高度集成的,而且难以编写正确。因为所有的
模块都在同一个内核空间上运行,一个很小的bug都会使整个系统崩溃。然而,如果开发顺利,单内核结构就可以从运行效率上得到好处。
很多现代的
单内核结构内核,如Linux和FreeBSD内核,能够在运行时将模块调入执行,这就可以使扩充内核的功能变得更简单,也可以使内核的核心部分变得更简洁。
单内核结构的例子:1、传统的UNIX内核,例如伯克利大学发行的版本;2、Linux内核。
微内核
微内核只提供了很小一部分的硬件抽象,大部分功能由一种特殊的用户态程序:服务器来完成。微内核结构由一个非常简单的
硬件抽象层和一组比较关键的原语或系统调用组成,这些原语仅仅包括了建立一个系统必需的几个部分,如:线程管理,地址空间和
进程间通信等。微核的目标是将系统服务的实现和系统的基本操作规则分离开来。例如,进程的输入/输出锁定服务可以由运行在微核之外的一个服务组件来提供。这些非常模块化的用户态服务器用于完成操作系统中比较高级的操作,这样的设计使内核中最核心的部分的设计更简单。一个服务组件的失效并不会导致整个系统的崩溃,内核需要做的,仅仅是重新启动这个组件,而不必影响其它的部分。微内核将许多OS服务放入分离的进程,如文件系统,
设备驱动程序,而进程通过消息传递调用OS服务。微内核结构必然是多线程的,第一代微内核,在核心提供了较多的服务,因此被称为“胖微内核”。它的典型代表是
MACH,它既是GNU HURD也是APPLE SERVER OS 的核心,可以说,
蒸蒸日上。第二代为内核只提供最基本的OS服务,典型的OS是QNX,QNX在理论界很有名,被认为是一种先进的OS。
微内核的例子:
1、AIX
2、BeOS
3、L4微内核系列
4、Mach, 用于GNU Hurd和Mac OS X
5、Minix
6、MORPHOS
7、QNX
8、RadiOS
9、VSTa
单内核与微内核的比较
单内核结构是非常有吸引力的一种设计,由于在同一个地址空间上实现所有低级操作的
系统控制代码的复杂性的效率会比在不同地址空间上实现更高些。20世纪90年代初,单内核结构被认为是过时的。把Linux设计成为单内核结构而不是微内核引起了无数的争议。现在,单核结构正趋向于容易被正确设计,所以它的发展会比微内核结构更迅速些。两个阵营中都有成功的案例。微核经常被用于机器人和医疗器械的嵌入式设计中,因为它的系统的关键部分都处在相互分开的,被保护的存储空间中。这对于单核设计来说是不可能的,就算它采用了运行时加载模块的方式。尽管Mach是众所周知的多用途的微内核,人们还是开发了除此之外的几个微内核。L3是一个演示性的内核,只是为了证明微内核设计并不总是低运行速度。它的后续版本L4甚至可以将Linux内核在单独的地址空间作为它的一个进程来运行。
QNX是一个从20世纪80年代就开始设计的微内核系统。它比Mach更接近微内核的理念。它被用于一些特殊的领域,在这些情况下由于软件错误导致系统失效是不允许的。例如航天飞机上的机械手,还有研磨
望远镜镜片的机器,一点点失误就会导致上千
美元的损失。很多人相信,由于Mach不能够解决一些提出微内核理论时针对的问题,所以
微内核技术毫无用处。Mach的爱好者表明这是非常狭隘的观点,遗憾的是似乎所有人都开始接受这种观点。
混合内核
混合内核很像微内核结构,只不过它的的组件更多的在核心态中运行,以获得更快的执行速度。
混合内核实质上是微内核,只不过它让一些微核结构运行在用户空间的代码运行在内核空间,这样让内核的运行效率更高些。这是一种妥协做法,设计者参考了微内核结构的系统运行速度不佳的理论。然而后来的实验证明,纯微内核的系统实际上也可以是高效率的。大多数现代操作系统遵循这种设计范畴,微软视窗就是一个很好的例子。另外还有XNU,运行在苹果Mac OS X上的内核,也是一个混合内核。
混合内核的例子:
1、BeOS 内核
2、DragonFly BSD
3、ReactOS 内核
Windows NT、Windows 2000、Windows XP、
Windows Server 2003以及
Windows Vista等基于NT技术的操作系统。XNU一些人认为可以在运行时加载模块的单核系统和混合内核系统没有区别。这是不正确的。混合意味着它从单核和微核系统中都吸取了一定的设计模式,例如一些非关键的代码在用户空间运行,另一些在内核空间运行,单纯是为了效率的原因。
简介
[英] core time [kɔ: taim]
指明线程执行操作系统代码已经经过了多少个100ns(纳秒)的CPU时间
内核时间图表
内核方式
“任务管理器”“性能”
CPU工作显示框内红线为内核时间。是表明处理器工作时间百分比的图表。该计数器是处理器活动的主要指示器。查看该图表可以知道您当前使用的处理时间是多少。如果您的计算机看起来运行较慢,该图表就会显示较高的百分比。
用户方式
任务管理,用图表表示加在CPU上的全体负荷。Windows 2000/XP,完全分离OS的系统编码和设备
驱动程序等的编码,和
文字处理机等的用户应用软件的编码,用完全不同的系统编码做各自实行。
具体是前者用内核方式,后者用户方式被实行的。
这个时候用被用户方式来实行的应用软件,不能直接访问内核方式管理的存储器资源等。在象加上这样的限制的事上,即使万一在用户方式实行中的应用软件发生混乱时,对于系统也不会有很大的影响。
在向图表作追加表示来自于内核方式程序的CPU使用率上,实行任务管理的[表示]-[表示内核时间]菜单。绿色的线是表示全体的使用率,红色是表示内核·方式的各自的程序的CPU使用率和使之增加系统的负荷的原因,能简单地辨别是来自于用户应用软件(
文字处理机和批应用软件等),还是来自于系统编码(OS编码和设备
驱动程序等)。即使是全体的CPU使用率高的时候,来自于内核方式程序的使用率也并不是那么高的情况下,可以认为来自于被用户方式实行的应用软件的负荷大。总之如果想使之减轻负荷,找出成为原因的应用软件,再结束哪个应用软件就行了。
另一方面,在来自于内核方式程序的使用率高的时候(红的线向绿色的线接近的时候),能预测内核内部的系统程序的处理或是网络访问,
软盘访问,图解绘画,以及来自于
设备驱动程序的处理等是负荷的原因。在发生这个情况时候,是要从最近进行的设备构成和
网络构成的变化等那些地方追求原因,讨论硬件的改进吧。