当前位置: 首页 > wzjs >正文

懒人之家网站模板互联网广告公司排名前十

懒人之家网站模板,互联网广告公司排名前十,wordpress 如何仿站,西安网易网站建设一、文件存取方法 1. 顺序存取(Sequential Access) 原理:按记录写入顺序依次访问特点: 读操作:读取当前位置,指针自动前移写操作:追加到文件末尾 适用场景:磁带设备、日志文件 #me…

一、文件存取方法

1. 顺序存取(Sequential Access)
  • 原理:按记录写入顺序依次访问
  • 特点
    • 读操作:读取当前位置,指针自动前移
    • 写操作:追加到文件末尾
  • 适用场景:磁带设备、日志文件
文件头
记录1
记录2
记录3
当前指针
记录4
文件尾
2. 直接存取(Direct Access / Random Access)
  • 原理:直接定位到任意位置读写
  • 操作方式
    • seek(offset) 移动文件指针
    • read(size)/write(data) 在当前位置操作
  • 磁盘支持:通过计算物理地址实现
Program File seek(offset=1024) read(128 bytes) 返回第1024-1151字节 Program File
3. 索引存取(Indexed Access)
  • 原理:通过索引表查找记录位置
  • 工作流程
    1. 搜索索引找到记录键
    2. 获取记录物理地址
    3. 直接访问该地址
找到位置
查询记录 ID=100
搜索索引块
位置:0x1200
直接访问磁盘块0x1200

二、存储空间管理技术

1. 空闲空间管理方法
空闲空间管理
位示图 Bitmap
空闲链表
空闲区表
成组链接
2. 位示图法(Bitmap)

位示图法是一种用二进制位管理磁盘空间的技术,其基本原理如下:

  1. 数据结构:创建一个位数组(bit array),数组长度等于磁盘总块数
  2. 映射关系
    • 每个二进制位对应一个磁盘块
    • 0 表示空闲块
    • 1 表示已分配块
  3. 存储位置:位示图通常存储在磁盘固定位置(如超级块附近)
位示图
0=空闲
1=占用
0=空闲
...
状态
0
位0
1
位1
0
位2
...
...
?
位N
磁盘块0
磁盘块1
磁盘块2
...
磁盘块N
完整示例:16块磁盘的位示图管理

初始状态(全空闲):

磁盘块号: 0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15
位示图值: 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

操作1:分配块2、块5、块7

更新后位示图
块1:0
块0:0
块2:1
块3:0
块4:0
块5:1
块6:0
块7:1
其他:0
分配请求
扫描位示图
找到空闲块2,5,7
更新位示图

更新后位示图:

0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15
0  0  1  0  0  1  0  1  0  0  0  0  0  0  0  0

操作2:分配3个连续块

App FS Bitmap 请求3个连续块 扫描连续3个0 找到块8-10 设置位8-10=1 确认更新 返回块8,9,10 App FS Bitmap

更新后位示图:

0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15
0  0  1  0  0  1  0  1  1  1  1  0  0  0  0  0

操作3:释放块5和块10

释放块5
计算位置:i=5
设置bit5=0
释放块10
计算位置:i=10
设置bit10=0

更新后位示图:

0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15
0  0  1  0  0  0  0  1  1  1  0  0  0  0  0  0
关键技术细节
1. 地址转换计算
  • 块号 → 位位置

    • 字节偏移 = 块号 / 8
    • 位偏移 = 块号 % 8
  • 示例:访问块13

    字节偏移 = 13 / 8 = 1 (第二个字节)
    位偏移 = 13 % 8 = 5
    检查第2字节的第5位(从0开始计数)
    
2. 空间占用计算

假设:

  • 磁盘容量:1TB
  • 块大小:4KB

计算过程:

总块数 = 1TB / 4KB = 2^30 / 2^12 = 2^18 = 262,144 块
位示图大小 = 262,144 bits / 8 = 32,768 bytes = 32KB
位示图法优缺点分析
优点缺点
✅ 空间效率高:仅需约 0.0039% 的额外空间(1/256)❌ 分配连续空间需线性扫描
✅ 状态切换快:位操作效率极高❌ 大磁盘中扫描效率低
✅ 实现简单:数据结构简洁❌ 外部碎片问题仍然存在
✅ 随机访问快:直接计算位置❌ 需要整个位图载入内存
3. 空闲链表法
  • 物理链表实现
空闲链头
块3
块7
块9
NULL

在这里插入图片描述

4. 空闲区表法(Extent-Based)
原理

空闲区表法(Free Space Management with Extent Lists)是一种通过记录连续空闲区域来管理磁盘空间的技术,特别适合处理连续分配的场景。其核心思想是:

  1. 数据结构:维护一张表格(或链表),每个表项记录:
    • 空闲区的起始块号
    • 空闲区的长度(连续块数)
  2. 分配策略:当需要空间时,在表中查找满足需求的空闲区
  3. 合并机制:释放空间时自动合并相邻空闲区
FreeExtent
+start_block: int
+block_count: int
+next: FreeExtent*
完整示例:16块磁盘的空闲区表管理

初始状态(全空闲):

空闲表头
起始块:0 长度:16
NULL

操作1:分配3个连续块

App FS FreeList 请求3个连续块 查找足够空闲区 找到[0-15]长度16 从头部分配3块 更新为[3-15]长度13 alt [首次适应] 返回块0-2 App FS FreeList

更新后空闲表:

空闲区1: 起始块=3, 长度=13

操作2:再分配5个连续块

首次适应
请求5块
查找策略
扫描表项
找到3-15长度13>5
分配块3-7
更新为起始块=8,长度=8

更新后空闲表:

空闲区1: 起始块=8, 长度=8

操作3:释放块0-2(3块)

与块8不相邻
释放块0-2
创建新空闲区
起始块=0,长度=3
检查相邻性
插入表头
新表:0,3->8,8

更新后空闲表:

空闲区1: 起始块=0, 长度=3
空闲区2: 起始块=8, 长度=8

操作4:释放块3-7(5块)

左邻块2
右邻块8
释放块3-7
创建新区间3,5
检查相邻性
与0,3合并:0+3+5=8 -> 0,8
与8,8合并:0+8+8=16 -> 0,16

最终空闲表:

空闲表头
起始块:0 长度:16
NULL
分配策略对比
策略操作方式优点缺点
首次适应从表头扫描,选择首个足够大的区域分配速度快易产生外部碎片
最佳适应扫描整个表,选择最小的足够区域减少大空闲区割裂易产生微小碎片
最差适应扫描整个表,选择最大的空闲区减少微小碎片破坏大空闲区
空间占用计算

假设:

  • 磁盘容量:1TB
  • 块大小:4KB
  • 平均空闲区大小:16块

计算:

总块数 = 1TB / 4KB = 256M 块
平均空闲区数 = 256M / 16 = 16M
表项大小 = 8字节(4字节起始块 + 4字节长度)
总空间 = 16M × 8B = 128MB
优缺点分析
优点缺点
✅ 减少外部碎片❌ 分配时间随表增大而增加
✅ 高效管理大文件❌ 小碎片无法利用
✅ 支持快速连续访问❌ 需要定期合并操作
✅ 实现相对简单❌ 大磁盘中表可能很大
5. UNIX成组链接法

成组链接法是UNIX文件系统采用的高效空闲块管理方法,核心思想是:

  1. 分组管理:将空闲块分成若干组
  2. 链式连接:每组最后一个块存储下一组信息
  3. 超级块缓存:内存中缓存第一组空闲块信息
块102指向
块202指向
超级块
块100,101,102
块200,201,202
块300,301,302
完整示例:12块磁盘的成组链接管理

初始状态(3块/组):

块3存储
块6存储
块9存储
块12存储
超级块
块1,2,3
下一组指针:块4
块4,5,6
下一组指针:块7
块7,8,9
下一组指针:块10
块10,11,12
结束标记:0

内存超级块内容:

空闲块数空闲块列表
3[1, 2, 3]

操作1:分配3个块

App SuperBlock Disk 请求分配3块 直接分配块1,2,3 读取块3内容 返回[下一组指针:块4] 读取块4内容 返回块4,5,6信息 分配成功 超级块更新为空闲数=3列表=[4,5,6] App SuperBlock Disk

操作2:再分配1个块

空闲数=3
分配1块
超级块状态
分配块4
更新超级块
空闲数=2
列表=5,6

操作3:释放块10,11,12

App SuperBlock Disk 释放块10,11,12 检查超级块状态 添加块10,11,12到列表 释放成功 将当前组写入新释放块 确认写入 重置超级块指向新组 alt [超级块未满] [超级块已满] App SuperBlock Disk
优缺点分析
优点缺点
✅ 分配效率高(O(1)平均)❌ 实现复杂度高
✅ 释放操作快速❌ 小规模磁盘不划算
✅ 减少磁盘I/O(超级块缓存)❌ 需维护链式结构
✅ 天然抵抗碎片化❌ 极端情况需递归加载

三、文件共享和保护

文件共享机制

软链接与硬链接

硬链接(Hard Link)

底层原理

在 Linux 文件系统中:

  • 每个文件对应一个唯一的 inode(索引节点)
  • inode 存储文件的元数据(权限、大小、时间戳等)
  • 硬链接是指向同一个 inode 的多个目录项
file.txt
backup.txt
目录A
Inode 123
目录B
数据块
元数据:链接数=2

创建与操作(终端命令)

# 创建原始文件
$ echo "Original Content" > original.txt# 创建硬链接
$ ln original.txt hardlink.txt# 查看inode信息
$ ls -li
123456 -rw-r--r-- 2 user group 17 Jan 1 10:00 hardlink.txt
123456 -rw-r--r-- 2 user group 17 Jan 1 10:00 original.txt
# ↑ 相同的inode号(123456)和链接数(2)# 修改硬链接文件
$ echo "New content" >> hardlink.txt# 检查原始文件
$ cat original.txt
Original Content
New content# 删除原始文件
$ rm original.txt# 硬链接仍然有效
$ cat hardlink.txt
Original Content
New content

关键特性

特性说明
inode 相同所有硬链接共享同一 inode
文件大小与原文件相同(不占用额外空间)
跨文件系统❌ 不支持
链接目录❌ 不允许(避免循环引用)
删除影响减少链接计数,仅当计数为0时删除数据
权限同步所有硬链接权限始终相同(同一 inode)

使用场景

  • 文件多重备份(防止误删)
  • 同一文件需要在多个位置访问
  • 节省空间的"副本"创建
软链接(Symbolic Link / Symlink)

底层原理

  • 软链接是独立的文件,有自己的 inode
  • 内容存储目标文件的路径(字符串)
  • 类似Windows的快捷方式
file.txt
symlink.txt
内容为
目录A
Inode 123
数据块
目录B
Inode 456
/path/to/file.txt

创建与操作(终端命令)

# 创建原始文件
$ echo "Source Content" > source.txt# 创建软链接(绝对路径)
$ ln -s /home/user/source.txt abs_link.txt# 创建软链接(相对路径)
$ ln -s source.txt rel_link.txt# 查看链接信息
$ ls -l
lrwxrwxrwx 1 user group 11 Jan 1 10:00 abs_link.txt -> /home/user/source.txt
lrwxrwxrwx 1 user group 10 Jan 1 10:00 rel_link.txt -> source.txt
-rw-r--r-- 1 user group 15 Jan 1 10:00 source.txt# 访问软链接
$ cat rel_link.txt
Source Content# 删除原始文件
$ rm source.txt# 软链接失效(断链)
$ cat rel_link.txt
cat: rel_link.txt: No such file or directory# 检查断链状态
$ ls -l rel_link.txt
lrwxrwxrwx 1 user group 10 Jan 1 10:00 rel_link.txt -> source.txt  # 红色显示

关键特性

特性说明
inode独立于目标文件
文件大小等于路径字符串长度
跨文件系统✅ 支持
链接目录✅ 允许
删除影响目标文件删除后失效
权限总是 777(实际权限由目标决定)

核心区别对比

特性硬链接软链接
本质同一文件的多个目录项存储路径的特殊文件
inode与目标文件相同独立 inode
跨文件系统❌ 不支持✅ 支持
链接目录❌ 禁止✅ 允许
原始文件删除仍可访问(链接数减1)链接失效(断链)
文件大小与目标文件相同路径字符串长度
路径依赖相对路径依赖位置
更新影响所有链接同步更新链接指向不变,目标可更换
权限与目标相同总是 lrwxrwxrwx
查找命令find . -samefile 文件find -type l -ls
Linux 系统视角
Inode表
文件A inode
文件B inode
软链接 inode
数据块
数据块
路径字符串
目录
fileA → inodeX
hardlink → inodeX
目录
symlink → inodeY
文件保护机制
1. 访问控制矩阵
访问控制矩阵
域:用户/进程
对象:文件
权限:R/W/X
2. 访问控制列表(ACL)
  • 原理:为每个文件维护权限列表
  • 结构
文件X ACL
用户A:RWX
用户B:R--
组C:R-X
3. UNIX权限模型(9-bit)

权限位分解

“文件类型”: 1
“所有者权限” : 3
“组权限” : 3
“其他用户” : 3

权限示例

第一位表示文件的类型,-代表文件,d代表目录

 -rwxr-xr--↑↑↑↑ ↑↑│||| |└─ 其他:读│||| └── 组:执行│|│└── 组:读││└──── 所有者:执行|└───── 所有者:写└────── 所有者:读

[“hardlink → inodeX”]
Directory2[目录] --> EntryC[“symlink → inodeY”]


#### 文件保护机制##### 1. 访问控制矩阵```mermaid
graph LRA[访问控制矩阵] --> B[域:用户/进程]A --> C[对象:文件]B --> D[权限:R/W/X]
2. 访问控制列表(ACL)
  • 原理:为每个文件维护权限列表
  • 结构
文件X ACL
用户A:RWX
用户B:R--
组C:R-X
3. UNIX权限模型(9-bit)

权限位分解

“文件类型”: 1
“所有者权限” : 3
“组权限” : 3
“其他用户” : 3

权限示例

第一位表示文件的类型,-代表文件,d代表目录

 -rwxr-xr--↑↑↑↑ ↑↑│||| |└─ 其他:读│||| └── 组:执行│|│└── 组:读││└──── 所有者:执行|└───── 所有者:写└────── 所有者:读
http://www.dtcms.com/wzjs/37546.html

相关文章:

  • 电子商务网站建设实训展示企业邮箱入口
  • 网上做网站怎么赚钱中小型企业网站设计与开发
  • 什么可以做冷门网站友情链接交换网址大全
  • 网站是由什么组成的2345网址导航官网
  • 用dw做的网页如何上传到网站批量查询指数
  • 怎么给网站做谷歌seo青岛网站seo服务
  • 苏州网站建设哪家好网站开发公司
  • 武汉做优化网站公司百度关键词屏蔽
  • 做网站怎么收集资料如何在网上做销售推广
  • 学校网站建设策划书百度大数据平台
  • 网站建设什么语言比较好营销推广策划
  • 建网站优化服务网站排名咨询
  • 公司为什么做网站百度官方网页
  • 网站建设策划方案书下载微信广点通广告平台
  • 什么网站做调查能赚钱吗电商seo优化是什么意思
  • 广州门户网站制作成人厨师短期培训班
  • 网站建设花费百度手机助手app下载安装
  • 柳州哪家公司做网站好武汉百度推广seo
  • 网站模板和源码区别微商引流一般用什么软件
  • 哪里可以申请免费域名下载优化大师app
  • wordpress 插件 销量杭州seo网站哪家好
  • wordpress cdn优化南昌seo推广公司
  • 河北省做网站的企业自媒体平台有哪些
  • 网站开发维护合同模板电子版哪家网站推广好
  • 自己做的网站怎么植入erp自助建站平台源码
  • 门户网站建设的作用及意义张雪峰谈广告学专业
  • 新市网站建设百度推广客服电话人工服务
  • iview做的网站棋牌软件制作开发多少钱
  • 永嘉网站制作免费的app推广平台
  • vps可以做多少网站网络营销出来可以干什么工作