Unix操作系统块知识讲解
创始人
2024-06-28 14:40:58
0

首先让大家了解下Unix操作系统中设备的知识,然后全面介绍Unix操作系统中设备功能分析,希望对大家对Unix操作系统的学习有所帮助。

设备分为面向块的设备和面向字符的设备,块的如磁盘、磁带等字符的如纸带输入/穿孔输出机、打印机等。块设备通过一层缓冲软件管理,字符设备通过字符缓冲实现。

块设备中存储的信息从Unix操作系统硬件组织上是有结构的,由若干固定大小的块所组成,信息的存取通常是以块为单位的,从块设备的用户方面看。

有三种用法:
(1)程序对换系统使用,它有自己的数据结构和管理程序。

(2)文件系统使用,为了有效支持文件系统,利用了多重缓冲技术。

(3)将磁盘当作字符设备来使用,从块设备管理系统的实现方式和程序组成看,可分为三个层次:***层为设备驱动程序,它的主要数据结构是磁盘的各种控制寄存器和设备表;第二层是缓冲区的管理,包括申请、释放、摘链、查链、清零、写回和初启,主要数据结构是15个缓冲首部和一个作为链头的缓冲首部,主要有文件系统使用。最上层是与使用方式有关的程序,相当于块设备与外部的接口。

Unix操作系统设备功能分析

块设备除了用作程序对换空间之外,主要用于Unix操作系统文件系统。为了克服慢速外部设备和快速处理机加工速度之间的不匹配问题。Unix操作系统采用了多重缓冲技术,以便给文件系统以有效的服务,为此系统维持了一个缓冲池,内含15个缓冲,这些缓冲起着虚拟存储器的作用,而getblk函数正是为了申请一块指定设备,块号的缓冲,其主要应用于:

1系统调用(exec())执行一个文件,为将要执行的文件申请新的缓冲。

2进程的自我终止(exit()),getblk为将要终止的进程查找相应的缓冲。

3读一块到缓冲(bread()),为其申请一块缓冲。

4读当前块到缓冲,再预读一块(breada()),为将要读的块申请缓冲。

5从空闲盘区链中获得一空闲盘块(alloc()),函数根据分配到的盘块号申请一缓冲区。

6将释放的盘块号记入专用的空闲块栈中(free()),申请一缓冲区,将空闲块栈中的信息复制到该缓冲区中。

7文件系统初启(iinit()),申请一块不与任何设备有联系的内存专用区,存放专用块。

8完成转储任务(update())为superblock复制回文件卷而申请缓冲区。

9系统文件卷的安装(smount()),为存储文件卷的superblock申请缓冲区。

10把文件复制到I/O缓冲区然后再记到外存(writei()),为I/O设备申请缓冲区。

这样,我们对Unix操作系统的设备以及其功能分析就到这里了。谢谢大家的阅读。

【编辑推荐】

  1. 基础讲解Unix操作系统进程
  2. 讲解Unix操作系统cat知识
  3. Unix操作系统基础讲解
  4. Unix操作系统知识概要
  5. Unix操作系统fork 知识

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...