Chinaunix首页 | 论坛 | 博客
  • 博客访问: 851829
  • 博文数量: 90
  • 博客积分: 766
  • 博客等级: 军士长
  • 技术积分: 1867
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-18 08:42
个人简介

linux

文章分类

全部博文(90)

文章存档

2021年(2)

2020年(2)

2017年(1)

2015年(11)

2014年(1)

2013年(53)

2012年(16)

2011年(4)

分类: LINUX

2020-12-02 22:14:48

    虽然一直在学习内核,但是对"内核",进程内核态一直不能清楚的认识,尤其不清楚“内核”的内涵。经过一段时间的思考,有了结论。

    该从何说起?比如完成进程切换的是“内核”吗?毫无疑问,是“内核”,但这样回答问题并没有深一步的理“内核”是泛指操作系统的内核代码,在软件层面并不是一个过程,也不是一个对象,对实际运行的过程并没有什么解释,说某某事情是在“内核”当中完成的,倒是可以让人初步了解“内核”代码包含些什么内容。

    所以“完成进程切换的是什么”这个问题本身的问法就有点问题,因为这个语法当中的什么是一个对象,而且更像是独立于进程的另外一个对象。为了正确的解释进程切换这个问题,并且在过程、对象层面对系统有更清楚的认识,这个问题应该是,什么时候会发生进程切换?因为答案可以是进程本身主动完成进程切换,当然也包括其它的切换场景如时间片用完被动切换,但终究不是“内核”这个对象来完成的。这个过程是在内核当中吗? 当然,因为它是使用的内核代码,但是代码是死的,并不是一个对象,只有进程,中断等才包含过程并且是一个对象(会有对象的描述信息),也就是说是进程、中断使用内核的代码完成进程的切换,对于进程而言,此时进程工作在内核态。
   
    以上是其一,其二:“内核”中定义的一些全局数据到底属于谁的? 答案是属于全体进程的,所有的进程都可以使用“内核”  中定义的全局数据,只是是要切换在内核态当中来使用而已!!!
   
    以上两点可以简要说明,进程内核态,“内核”的一些内涵及其差别。简而言之,事情不是由“内核”完成的,而是由进程在内核态使用“内核”提供的数据完成的。内核是“死”的,进程是“活”的。
阅读(1409) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~