Unix操作系统块知识讲解

系统 其他OS
在文章中,我们会介绍下Unix操作系统中设备的知识,然后全面介绍Unix操作系统中设备功能分析。设备分为面向块的设备和面向字符的设备,块的如磁盘、磁带等字符的如纸带输入/穿孔输出机、打印机等。

首先让大家了解下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 知识
责任编辑:小霞
相关推荐

2010-04-29 13:30:20

Unix操作系统

2010-04-20 11:34:26

Unix操作系统

2010-04-20 10:12:40

Unix操作系统

2010-04-19 17:34:02

Unix操作系统

2010-05-04 17:17:46

Unix类

2010-04-19 12:40:00

Unix操作系统

2010-05-07 17:31:42

Unix类操作系统

2010-05-07 13:04:11

Unix Shell

2010-04-15 18:06:08

Unix操作系统

2010-05-07 17:41:36

BSD Unix

2010-04-29 14:08:38

Unix操作系统

2010-04-20 17:34:25

Unix操作系统

2010-04-20 11:16:08

Unix操作系统

2010-04-09 16:36:54

Unix操作系统

2010-04-19 17:25:31

Unix操作系统

2010-04-19 17:06:18

2010-04-20 17:11:33

Unix操作系统

2010-04-21 13:47:45

Unix内核

2010-04-15 14:40:26

Unix操作系统

2010-04-08 16:40:35

点赞
收藏

51CTO技术栈公众号