免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 802 | 回复: 0
打印 上一主题 下一主题

Linux内核概述(2) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-18 07:36 |只看该作者 |倒序浏览
    先来说说其他控制管理。
    进程调度。Linux内核提供的是一个多任务环境。在Linux上可以同时执行多个任务,但我们知道,实际上从微观上看,一个CPU在某一时刻只能执行一个任务,但从宏观上我们的确看到了同时执行着多个任务。这个效果其实就是内核通过进程调度来实现的。就好像杂技演员只用两只手可以同时向空中抛出多个球一样,并让所有球都能够保持在空中不落地。所不同的是,杂技演员手中的球往往是一样大小,一样分量的,因此它们从杂技演员手中到空中,再回到手中所用的时间几乎是相同的。而Linux要处理的任务往往是不同分量的,所以每个任务所要占用的CPU时间就往往不等。这个分量的概念在这里叫做优先级,进程调度中加入了优先级的概念,就复杂了。以后在详述吧。
    中断和延迟。中断主要是在控制硬件系统的设备驱动中和时钟里发生。中断发生时,内核暂停当前任务的处理,进入相应的中断处理程序。中断处理程序结束后,内核马上恢复之前的任务处理。为了提高中断处理的响应效果,同时也减轻由于中断处理而给整个系统造成的负担,Linux采用了一种叫做软中断的方法,通过这种方法可以让一些不是很紧急的中断处理延迟进行。这种方式是不同于传统Unix中是所采用的中断优先级的方式的。
  Linux有自己的时钟。每隔一定时间就会捕捉一次硬件发生的时钟中断。时钟中断处理除了计时外,还负责处理各种定时任务,比如网络协议栈,设备驱动等。Linux在时钟处理上是非常重视效率的。以后详述。
    系统调用。系统调用是应用程序向内核请求服务的唯一手段。从应用程序的角度看,系统调用就是一些函数。一旦发生系统调用,应用程序自己的正在执行的代码暂停,进入到内核中执行内核代码,这就是所谓的内核态。系统调用执行完后,恢复到应用程序原来的执行轨迹继续,所谓的用户态。如果系统调用执行失败,那么和其他函数一样会返回一个错误。系统调用是一种很好的保护内核区代码和数据不受破坏的机制,因为应用程序要访问内核区时,必须通过系统调用进入内核态,而不能自己直接访问内核区。
    同步互斥。在Linux中往往同时存在着多个执行流,它们都有独立动作任务和环境。而无论硬件资源还是软件资源都是有限的,所以多个执行流之间难免会发生如何协调的问题。为此,Linux准备了一些同步和互斥的方法。当多个进程请求同一资源时,可以用信号量。多个处理器的情况下,多个CPU之间的协调可以用互斥锁。另外还有RCU,顺序锁等方法可用。以后逐一说。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/91477/showart_1802345.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP