目录
一:操作系统概述
1.1 什么是操作系统(作用)
1.2 操作系统的功能
1.3 操作系统的特征
1.4 并发和并行的区别(重要)
1.5 操作系统的运行机制
1.6 操作系统的内核
1.7 中断机制
二:进程和线程
2.1 进程的定义
2.2 PCB(进程控制块)的组成
2.3 进程的特征
2.4 进程的通信
2.5 线程的定义,为什么要引入线程
2.6 线程的特征
2.7 进程的同步和互斥
2.8 信号量机制
2.9 管程
2.10 死锁
三:内存相关知识
3.1 操作系统对内存的管理
3.2 虚拟技术
3.3 内存空间的分配和回收
3.4 根据段页式存储管理寻找具体的目标单元
3.5 虚拟内存的定义和特征
四:文件管理
4.1 硬链接
4.2 软链接
4.3 硬链接和软连接的区别
一:操作系统概述
1.1 什么是操作系统(作用)
操作系统是一种系统软件,负责管理协调硬件,软件等计算机资源的工作
1.2 操作系统的功能
- 管理资源
- 处理机管理(CPU)
- 存储器管理
- 文件管理
- 设备管理(摄像头,打印机等)
- 向用户提供服务
- 命令接口
- 程序接口
- GUI用户图形界面
- 对硬件机器扩展
1.3 操作系统的特征
- 并发:两个或多个事件在同一时间间隔内发生,在宏观上是同时发生的,在微观是CPU交替执行发生的
- 共享:资源共享,系统中的资源可供内存中多个并发的进程共同使用
- 互斥共享方式:一个时间端内只允许一个进程访问该资源
- 同时共享方式:一个时间端内允许多个进程 “同时” 访问该资源,宏观同时,微观交替进行访问(分时共享)
- 虚拟:把一个物理的实体变化成若干个逻辑上的对应物,举个例子:单核CPU运行多个进程就是将一个CPU虚拟成了多个CPU
- 异步:进程的执行不是一贯到底的,而是由不可预知的速度向前推进
1.4 并发和并行的区别(重要)
- 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。在宏观上是同时发生的,在微观是通过CPU时间片技术交替执行发生的
- 并行:当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行
1.5 操作系统的运行机制
操作系统是一种系统软件,负责管理协调硬件,软件等计算机资源的工作
1.2 操作系统的功能
- 管理资源
- 处理机管理(CPU)
- 存储器管理
- 文件管理
- 设备管理(摄像头,打印机等)
- 向用户提供服务
- 命令接口
- 程序接口
- GUI用户图形界面
- 对硬件机器扩展
1.3 操作系统的特征
- 并发:两个或多个事件在同一时间间隔内发生,在宏观上是同时发生的,在微观是CPU交替执行发生的
- 共享:资源共享,系统中的资源可供内存中多个并发的进程共同使用
- 互斥共享方式:一个时间端内只允许一个进程访问该资源
- 同时共享方式:一个时间端内允许多个进程 “同时” 访问该资源,宏观同时,微观交替进行访问(分时共享)
- 虚拟:把一个物理的实体变化成若干个逻辑上的对应物,举个例子:单核CPU运行多个进程就是将一个CPU虚拟成了多个CPU
- 异步:进程的执行不是一贯到底的,而是由不可预知的速度向前推进
1.4 并发和并行的区别(重要)
- 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。在宏观上是同时发生的,在微观是通过CPU时间片技术交替执行发生的
- 并行:当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行
1.5 操作系统的运行机制
- 管理资源
- 处理机管理(CPU)
- 存储器管理
- 文件管理
- 设备管理(摄像头,打印机等)
- 向用户提供服务
- 命令接口
- 程序接口
- GUI用户图形界面
- 对硬件机器扩展
- 并发:两个或多个事件在同一时间间隔内发生,在宏观上是同时发生的,在微观是CPU交替执行发生的
- 共享:资源共享,系统中的资源可供内存中多个并发的进程共同使用
- 互斥共享方式:一个时间端内只允许一个进程访问该资源
- 同时共享方式:一个时间端内允许多个进程 “同时” 访问该资源,宏观同时,微观交替进行访问(分时共享)
- 虚拟:把一个物理的实体变化成若干个逻辑上的对应物,举个例子:单核CPU运行多个进程就是将一个CPU虚拟成了多个CPU
- 异步:进程的执行不是一贯到底的,而是由不可预知的速度向前推进
1.4 并发和并行的区别(重要)
- 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。在宏观上是同时发生的,在微观是通过CPU时间片技术交替执行发生的
- 并行:当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行
1.5 操作系统的运行机制
- 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。在宏观上是同时发生的,在微观是通过CPU时间片技术交替执行发生的
- 并行:当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行
操作系统具有两种类型的指令
- 特权指令:不允许用户程序使用的指令(内存清零指令)
- 非特权指令:允许用户程序使用的指令(普通的运算指令)
问题?:cpu如何判断是否可以执行特权命令
操作系统有两个处理器状态
- 核心态:可以执行特权指令和非特权指令
- 用户态:只能执行非特权指令
操作系统具有两种程序
内核程序:内核程序是系统的管理者,可以执行特权指令和非特权指令,运行在核心态
应用程序:为了保证系统能安全运行,应用程序只能执行非特权指令,运行在用户态
1.6 操作系统的内核
内核是指计算机上配置的底层软件,是操作系统最核心,最基本的部分
内核是指计算机上配置的底层软件,是操作系统最核心,最基本的部分
1.7 中断机制
中断机制的诞生:早期计算机各个程序只能串行执行,系统资源利用率低,为了解决此问题,人们发明了操作系统,利用操作系统的中断机制,将多个程序同时放入内存,实现了多道程序并发执行
中断是CPU从用户态进入核心态的唯一途径
CPU的上下文切换(利用了中断机制)
- 进程1在运行,CPU中收到计时部件发出的中断信号,让进程1从用户态切换为核心态,对中断进行处理
- 在核心态,操作系统内核对中断信号进行处理,发现进程1的时间片已经用完了,换进程2运行
- 进程2运行
二:进程和线程
2.1 进程的定义
进程是程序的一次执行过程,是系统进行除CPU外的资源分配的一个调度单位
进程由PCB(Process Control Block),程序段,数据段三部分组成
2.2 PCB(进程控制块)的组成
中断机制的诞生:早期计算机各个程序只能串行执行,系统资源利用率低,为了解决此问题,人们发明了操作系统,利用操作系统的中断机制,将多个程序同时放入内存,实现了多道程序并发执行
中断是CPU从用户态进入核心态的唯一途径
CPU的上下文切换(利用了中断机制)
- 进程1在运行,CPU中收到计时部件发出的中断信号,让进程1从用户态切换为核心态,对中断进行处理
- 在核心态,操作系统内核对中断信号进行处理,发现进程1的时间片已经用完了,换进程2运行
- 进程2运行
2.1 进程的定义
进程是程序的一次执行过程,是系统进行除CPU外的资源分配的一个调度单位
进程由PCB(Process Control Block),程序段,数据段三部分组成
2.2 PCB(进程控制块)的组成
进程是程序的一次执行过程,是系统进行除CPU外的资源分配的一个调度单位
进程由PCB(Process Control Block),程序段,数据段三部分组成
2.3 进程的特征
- 动态性:进程是一次程序执行的过程,是动态产生,变化,消亡的
- 并发性:内存中有多个进程实体,各进程可并发执行
- 独立性:进程是能独立运行,独立获得资源,独立接受调度的基本单位
- 异步性:各进程各自独立,不可预知的速度向前推进,操作系统需要提供“进程同步机制”来解决异步问题
- 结构性:每个进程都会配置一个PCB,进程由PCB,程序段,数据段三部分组成
2.4 进程的通信
- 动态性:进程是一次程序执行的过程,是动态产生,变化,消亡的
- 并发性:内存中有多个进程实体,各进程可并发执行
- 独立性:进程是能独立运行,独立获得资源,独立接受调度的基本单位
- 异步性:各进程各自独立,不可预知的速度向前推进,操作系统需要提供“进程同步机制”来解决异步问题
- 结构性:每个进程都会配置一个PCB,进程由PCB,程序段,数据段三部分组成
为了安全保障,一个进程不能直接访问另外一个进程的地址空间
所有有三种方法完成进程间的通信
- 共享存储:在内存空间中,开辟一段空间作为共享空间,所有进程都能访问,但两个进程对共享空间的访问必须是互斥的,操作系统只提供共享空间和同步互斥工具(P,V操作,信号量)
- 消息传递:利用计算机网络中的通信协议(HTTP协议等)进行通信
- 管道通信:设置一个共享文件(缓冲区),管道采用半双工通信,不能同时通信,实现双向通道需要建立两个管道,各进程间要互斥访问管道,管道写满时,不能再向管道中写,管道读空时,不能再向管道中读,同时管道没写满时,不能读取,管道没读取完时,不能写
2.5 线程的定义,为什么要引入线程
线程是基本的CPU执行单元,程序执行流的最小单位,是CPU调度的基本单位
引入线程后,不仅进程之间可以并发,进程中的线程也可以并发,提高系统的并发度,减少系统开销。
2.6 线程的特征
- 线程是CPU调度的基本单位
- 多CPU计算机中,各个线程可以占用不同的CPU
- 每个线程都有一个TCB(线程控制块)和线程ID
- 线程几乎不拥有系统资源
- 同一进程的不同线程共享进程的资源
- 共享内存空间,同一进程的线程间通信无须系统干扰
2.7 进程的同步和互斥
- 进程的同步:为了解决异步问题,异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。
- 进程的互斥:两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥· 也就是说,一个进程正在访问临界资源,另一个要访问该资源的进程必须等待。
- 临界资源:一次仅允许一个进程使用的共享资源
- 临界区:每个进程中访问临界资源的那段代码称为临界区(Critical Section)
线程是基本的CPU执行单元,程序执行流的最小单位,是CPU调度的基本单位
引入线程后,不仅进程之间可以并发,进程中的线程也可以并发,提高系统的并发度,减少系统开销。
- 线程是CPU调度的基本单位
- 多CPU计算机中,各个线程可以占用不同的CPU
- 每个线程都有一个TCB(线程控制块)和线程ID
- 线程几乎不拥有系统资源
- 同一进程的不同线程共享进程的资源
- 共享内存空间,同一进程的线程间通信无须系统干扰
2.7 进程的同步和互斥
- 进程的同步:为了解决异步问题,异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。
- 进程的互斥:两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥· 也就是说,一个进程正在访问临界资源,另一个要访问该资源的进程必须等待。
- 临界资源:一次仅允许一个进程使用的共享资源
- 临界区:每个进程中访问临界资源的那段代码称为临界区(Critical Section)
- 进程的同步:为了解决异步问题,异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。
- 进程的互斥:两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥· 也就是说,一个进程正在访问临界资源,另一个要访问该资源的进程必须等待。
- 临界资源:一次仅允许一个进程使用的共享资源
- 临界区:每个进程中访问临界资源的那段代码称为临界区(Critical Section)
进程互斥需要遵守的原则
- 空闲让进:临界区空闲时,允许一个进程访问
- 忙则等待:临界区正在被访问时,其他试图访问的进程需要等待
- 有限等待:要在有限时间内进入临界区,保证不会饥饿
- 让权等待:进不了临界区的进程,要让出CPU,防止忙等
2.8 信号量机制
信号量:用来表示系统中某种资源的数量
用户进程可以通过操作系统提供的一对原语对信号量进行操作,从而方便实现进程的互斥和进程的同步,
一对原语信号:PV操作 P减少 V增加
P操作的主要动作是:
①S减1;
②若S减1后仍大于或等于0,则进程继续执行;
③若S减1后小于0,则该进程被阻塞后放入等待该信号量的等待队列中,然后转进程调度。
V操作的主要动作是:
①S加1;
②若相加后结果大于0,则进程继续执行;
③若相加后结果小于或等于0,则从该信号的等待队列中释放一个等待进程,然后再返回原进程继续执行或转进程调度。
利用信号量实现进程同步
- 分析问题,找出哪里需要实现一前一后的同步关系
- 设置同步信号量,初始值为0
- 在“前操作”之后执行V操作
- 在“后操作”之前执行P操作
利用信号量实现进程互斥
- 分析问题,确定临界区
- 设置互斥信号量,初始值为1
- 临界区之前执行P操作
- 临界区之后执行V操作
2.9 管程
- 为什么引用管程?
- 解决信号量机制编程麻烦问题,易出错的问题
- 由什么组成?
- 共享数据结构;
- 对数据结构初始化的语句;
- 一组访问数据结构的方法
- 基本特征
- 由外部进程/线程通过管程提供的特点入口才能访问共享数据
- 每次仅仅允许一个进程在管程内执行某个内部过程
- 有什么用?
- 管程可以实现进程同步和进程互斥的操作
2.10 死锁
- 为什么引用管程?
- 解决信号量机制编程麻烦问题,易出错的问题
- 由什么组成?
- 共享数据结构;
- 对数据结构初始化的语句;
- 一组访问数据结构的方法
- 基本特征
- 由外部进程/线程通过管程提供的特点入口才能访问共享数据
- 每次仅仅允许一个进程在管程内执行某个内部过程
- 有什么用?
- 管程可以实现进程同步和进程互斥的操作
什么是死锁?
各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进
死锁产生的四个必要条件
- 互斥条件:对必须互斥使用的资源争抢才会导致死锁
- 不剥夺条件:进程拥有的资源只能主动释放,不可强行剥夺
- 请求和保持条件:保持着某些资源不放的同时,请求别的资源
- 循环等待条件:存在一种进程资源的循环等待链
三:内存相关知识
3.1 操作系统对内存的管理
操作系统需要对内存做什么?
- 操作系统负责内存空间的分配和回收
- 操作系统提供“某种技术”对内存空间进行扩充
- 操作系统需要提供内存地址转换功能,负责程序的逻辑地址和物理地址的转换
- 操作系统需要提供内存保护功能,保证各个进程在各种存储空间内运行,互不干扰
操作系统需要对内存做什么?
- 操作系统负责内存空间的分配和回收
- 操作系统提供“某种技术”对内存空间进行扩充
- 操作系统需要提供内存地址转换功能,负责程序的逻辑地址和物理地址的转换
- 操作系统需要提供内存保护功能,保证各个进程在各种存储空间内运行,互不干扰
如何实现内存空间进行扩充?
利用虚拟内存
如何实现地址转换?
绝对装入:编译器负责地址转换
可重定位装入:装入程序负责地址转换
动态运行时装入:运行时进行地址转换
如何提供内存保护功能?
设置上下限寄存器,每个进程只能在当前进程的上下限寄存器内运行
利用重定位寄存器,界地址寄存器进行判断
3.2 虚拟技术
覆盖技术
将程序分为多个段(多个模块),常用的段常驻内存,不常用的段在需要时调入内存;
覆盖技术内存分为一个“固定区”和“覆盖区”,需要常驻内存的段放在固定区,固定区调入后不再调出,除非程序运行结束;不需要常驻内存的段放在覆盖区,需要时调入内存,不需时调出内存。
交换技术
内存紧张时,换出某些进程腾出内存空间,换入另外的进程
覆盖技术和交换技术的区别
覆盖技术是在同一个程序或进程中;交换技术是在不同进程或作业中
3.3 内存空间的分配和回收
覆盖技术
将程序分为多个段(多个模块),常用的段常驻内存,不常用的段在需要时调入内存;
覆盖技术内存分为一个“固定区”和“覆盖区”,需要常驻内存的段放在固定区,固定区调入后不再调出,除非程序运行结束;不需要常驻内存的段放在覆盖区,需要时调入内存,不需时调出内存。
交换技术
内存紧张时,换出某些进程腾出内存空间,换入另外的进程
覆盖技术和交换技术的区别
覆盖技术是在同一个程序或进程中;交换技术是在不同进程或作业中
分配分为连续分配管理和非连续分配管理
连续分配管理有:单一连续分配,固定分区分配,动态分区分配
非连续分配有:分页存储管理,分段存储管理,段页式存储管理
分页式存储管理
- 将内存空间分为一个个大小相等的分区,每个分区为一个内存块,
- 每个内存块有一个内存编号,从0开始,保证可以不连续分配内存
分段式存储管理
- 进程的地址空间按照自身的逻辑关系划分成若干个段,每个段都有一个段名
- 每个段在内存空间中占据连续空间,但各段之间可以不相邻
段页式存储管理:
- 分段+分页的结合,
- 将地址空间按照程序自身的逻辑关系划分为若干个段,在将各段分为大小相等的页面
- 将内存空间分为与页面大小相等的一个个内存块,系统以块为单位为进程分配内存
3.4 根据段页式存储管理寻找具体的目标单元
- 由逻辑地址得到段号、页号、页内偏移量
- 段号与段表寄存器中的段长度比较,检查是否越界由段表始址、
- 段号找到对应段表项
- 根据段表中记录的页表长度,检查页号是否越界
- 由段表中的页表地址、页号得到查询页表,找到相应页表项
- 由页面存放的内存块号、页内偏移量得到最终的物理地址访问目标单元
3.5 虚拟内存的定义和特征
在操作系统的管理下,在用户看来似乎有一个比实际内存大得多的内存,这就是虚拟内存
操作系统虚拟性的一个体现,实际的物理内存大小没有变,只是在逻辑上进行了扩充。基于一下三点。
- 基于局部性原理,在程序装入时,可以将程序中很快会用到的部分装入内存,暂时用不到的部分留在外存,就可以让程序开始执行。
- 在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。
- 若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存。
虚拟内存有一下三个主要特征:
- 多次性:无需在作业运行时一次性全部装入内存,而是允许被分成多次调入内存。
- 对换性:在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换入、换出。
- 虚拟性:从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际的容量。
四:文件管理
4.1 硬链接
- 各个用户的目录指向同一个索引结点
- 索引结点中需要有链接计数count
- 某用户想删除文件时,只是删除该用户的目录项,且count--
- 只有count == 0时才能真正删除文件数据和索引结点,否则会导致指针悬空
4.2 软链接
- 在一个Link型的文件中记录共享文件的存放路径(Windows快捷方式)
- 操作系统根据路径一层层查找目录,最终找到共享文件
- 即使软链接指向的共享文件已被删除,Link型文件依然存在,只是通过Link 型文件中的路径去查找共享文件会失败(找不到对应目录项)
- 用软链接的方式访问共享文件时要查询多级目录,会有多次磁盘I/O,因此用软链接访问
4.3 硬链接和软连接的区别
原理上,硬链接和源文件的inode节点号相同,两者互为硬链接。软连接和源文件的inode节点号不同,进而指向的block也不同,软连接block中存放了源文件的路径名。 实际上,硬链接和源文件是同一份文件,而软连接是独立的文件,类似于快捷方式,存储着源文件的位置信息便于指向。
- 由逻辑地址得到段号、页号、页内偏移量
- 段号与段表寄存器中的段长度比较,检查是否越界由段表始址、
- 段号找到对应段表项
- 根据段表中记录的页表长度,检查页号是否越界
- 由段表中的页表地址、页号得到查询页表,找到相应页表项
- 由页面存放的内存块号、页内偏移量得到最终的物理地址访问目标单元
在操作系统的管理下,在用户看来似乎有一个比实际内存大得多的内存,这就是虚拟内存
操作系统虚拟性的一个体现,实际的物理内存大小没有变,只是在逻辑上进行了扩充。基于一下三点。
- 基于局部性原理,在程序装入时,可以将程序中很快会用到的部分装入内存,暂时用不到的部分留在外存,就可以让程序开始执行。
- 在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。
- 若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存。
虚拟内存有一下三个主要特征:
- 多次性:无需在作业运行时一次性全部装入内存,而是允许被分成多次调入内存。
- 对换性:在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换入、换出。
- 虚拟性:从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际的容量。
四:文件管理
4.1 硬链接
- 各个用户的目录指向同一个索引结点
- 索引结点中需要有链接计数count
- 某用户想删除文件时,只是删除该用户的目录项,且count--
- 只有count == 0时才能真正删除文件数据和索引结点,否则会导致指针悬空
4.2 软链接
- 在一个Link型的文件中记录共享文件的存放路径(Windows快捷方式)
- 操作系统根据路径一层层查找目录,最终找到共享文件
- 即使软链接指向的共享文件已被删除,Link型文件依然存在,只是通过Link 型文件中的路径去查找共享文件会失败(找不到对应目录项)
- 用软链接的方式访问共享文件时要查询多级目录,会有多次磁盘I/O,因此用软链接访问
4.3 硬链接和软连接的区别
原理上,硬链接和源文件的inode节点号相同,两者互为硬链接。软连接和源文件的inode节点号不同,进而指向的block也不同,软连接block中存放了源文件的路径名。 实际上,硬链接和源文件是同一份文件,而软连接是独立的文件,类似于快捷方式,存储着源文件的位置信息便于指向。
- 各个用户的目录指向同一个索引结点
- 索引结点中需要有链接计数count
- 某用户想删除文件时,只是删除该用户的目录项,且count--
- 只有count == 0时才能真正删除文件数据和索引结点,否则会导致指针悬空
4.2 软链接
- 在一个Link型的文件中记录共享文件的存放路径(Windows快捷方式)
- 操作系统根据路径一层层查找目录,最终找到共享文件
- 即使软链接指向的共享文件已被删除,Link型文件依然存在,只是通过Link 型文件中的路径去查找共享文件会失败(找不到对应目录项)
- 用软链接的方式访问共享文件时要查询多级目录,会有多次磁盘I/O,因此用软链接访问
4.3 硬链接和软连接的区别
原理上,硬链接和源文件的inode节点号相同,两者互为硬链接。软连接和源文件的inode节点号不同,进而指向的block也不同,软连接block中存放了源文件的路径名。 实际上,硬链接和源文件是同一份文件,而软连接是独立的文件,类似于快捷方式,存储着源文件的位置信息便于指向。
- 在一个Link型的文件中记录共享文件的存放路径(Windows快捷方式)
- 操作系统根据路径一层层查找目录,最终找到共享文件
- 即使软链接指向的共享文件已被删除,Link型文件依然存在,只是通过Link 型文件中的路径去查找共享文件会失败(找不到对应目录项)
- 用软链接的方式访问共享文件时要查询多级目录,会有多次磁盘I/O,因此用软链接访问
原理上,硬链接和源文件的inode节点号相同,两者互为硬链接。软连接和源文件的inode节点号不同,进而指向的block也不同,软连接block中存放了源文件的路径名。 实际上,硬链接和源文件是同一份文件,而软连接是独立的文件,类似于快捷方式,存储着源文件的位置信息便于指向。
用于粗略了解操作系统是干什么用的,不是特别具体,文件管理和IO设备不是特别重要没有写,具体参考王道考研操作系统
暑期编程PK赛 得CSDN机械键盘等精美礼品!


