码迷,mamicode.com
首页 > 其他好文 > 详细

内核基本的体系结构

时间:2018-03-23 15:22:38      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:进入   网络通信   open   系统   系统管理   传输   逻辑   存储   因此   

技术分享图片

 

  图 2-2 给出了内核的框图,示出了各种模块及他们之间的相互关系,特别的,它示出了内核的两个主要成分:左边的文件子系统和右边的进程控制子系统。虽然,在实际上,由于某些模块同其它模块的内部操作进行交互而使内核偏离该模型,但该图仍可以作为观察内核的一个有用的逻辑观点。

  在图 2-2 中我们看到了三个层次:用户、内核及硬件。系统调用与库接口体现了图 2-1中描绘的用户程序与内核间的边界。系统调用看起来象 C 程序中普通的函数调用,而库把这些函数调用映射成进入操作系统所需要的源语。然而,汇编语言程序可以不经过系统调用库而直接引用系统调用。程序常常使用像标准 I/O 库这样一些其它的库程序以提供对系统调用的更高级的使用。由于在编译期间把这些库连接到程序上,因此,以这里的观点来说,这些库是用户程序的一部分。图 2-2 把系统调用的集合分成与文件子系统交互作用的部分及与进程控制子系统交互作用的部分。文件子系统管理文件,其中包括分配文件空间,管理空闲空间,控制对文件的存取,以及为用户检索数据。进程通过一个特定的系统调用集合,比如通过系统调用open,close,read,write,stat,chown 以及 chmod 等与文件子系统交互。文件子系统使用一个缓冲机制存取文件数据,缓冲机制调节在核心与二级存储设备之 间的数据流。缓冲机制同块 I/O 设备驱动程序交互作用,以便启动往核心去的数据传送及从核心的来的数据传送。设备驱动程序是用来控制外围设备操作的核心模块。块 I/O 设备是随机存取存储设备,或者说,它们的设备驱动程序似的它们的设备驱动程序使得它们对于系统的其它部分来说好像是随机存取存储设备。例如,一个磁带驱动程序可以允许核心把一个磁带装置作为一个随机存取存储设备看待。文件子系统和可以在没有缓冲机制干预的情况下直接与“原始” I/O 设备驱动程序交互作用。原始设备,有时也被成为字符设备,包括所有非块设备的设备。

  进程控制子系统负责进程同步、进程间通讯,存储管理及进程调度。当要执行一个文件而把该文件装入存储器中时,文件子系统与进程控制子系统交互:进程子系统在执行可执行文件之前,把它们读到内存中。输入输出存储管理模块控制存储分配。在任何时刻,只要系统没有足够的屋里存储供所有进程使用,核心就在内存与二级存储之间对进程进行交换,以便所有的进程都得到公平的执行机会。

  调度程序模块把 CPU 分配给进程。该模块调度各进程依次运行,直到它们因等待资源而自愿放弃 CPU,或者知道们最近一次的运行时间超出一个时间量,从而核心抢占它们。于是调度程序选择最高优先权的合格进程投入运行;当原来的进程成为最高优先权的合格进程时,还会再次投入运行。进程间通信有几种形式,从时间的异步软中断信号到进程间消息的同步传输,等等。本书中主要的讲的网络通信,也是进程间通信的一种。

  最后,硬件控制负责处理中断及与及其与机器通信。象磁盘或终端这样的设备可以在一个进程正在执行时中断 CPU。如果出现这种情况,在对中断服务完毕之后核心可以恢复被中断了的进程的执行。中断不是由特殊的进程服务的,而是由核心中的特殊函数服务的。这些特殊函数是在当前运行的进程上下文中被调用的。

    

内核基本的体系结构

标签:进入   网络通信   open   系统   系统管理   传输   逻辑   存储   因此   

原文地址:https://www.cnblogs.com/pobizr/p/8630193.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!