读书笔记-许式伟架构课-4

浏览器是os之上的一款刚需app

系统调用其实也是进程通信,是用户及进程与内核进程的通信,软中断是指令,不需要cpu轮询中断线,硬中断才需要。

外置存储是持久存储,它的目的是用来存储资料的

而内存是临时存储,虽然是存储,但是它实质上是为 CPU 的计算服务的

怎么让很多的软件进程同时使用这些外置存储设备,而不会乱呢?直接基于物理的存储地址进行读写肯定是行不通的,过上几个月你自己可能都不记得什么数据写到哪里了。所以和内存管理不同,外部存储的管理,我们希望这些写到存储中的数据是“自描述”的某种数据格式,我们可以随时查看之前写了哪些内容,都什么时候写的。

对于随机读写型的存储设备,操作系统往往还支持对其进行分区,尤其是在这个存储设备的容量非常大的情况下。分区是一个非常简单而容易理解的行为,本质上只是把一个存储设备模拟成多个存储设备来使用而已。

一般来说,拿到一块存储设备,我们往往第一步是对其进行分区(当然也可以省略这一步,把整个设备看做一个分区)。

第二步是对每个分区进行格式化。所谓格式化就是给这个分区生成文件系统的初始状态。格式化最重要的是标记分区的文件系统格式(用来告诉别人这个分区是数据是怎么组织的),并且生成文件系统的根目录。

第三步是把该分区挂载(mount)到操作系统管理的文件系统名字空间中。完成挂载后,该分区的文件系统管理程序就工作起来了,我们可以对这个文件系统进行目录和文件的读取、创建、删除、修改等操作。

外存的分类,外存的数据格式,外存的使用接口

使用接口即如何使用硬盘,三种,系统调用,语言封装的系统调用,或者操作系统提供的命令行工具。

最简单的方式是用操作系统提供的命令行工具,比如mkdir ls cp vi等,最原始的方式是使用系统调用,但是大部分编程语言都对此有响应的封装,比如go的os.Mkdir os.Rename,os.Remove os.Open 等等。

早期操作系统试图把所有的输入输出设备的接口以文件抽象,典型的代表是标准输入和标准输出这两个虚拟的文件,分别代表了建盘和显示器,所以unix里面有个一切接文件的口号。

有了文件系统的使用接口,进程就可以不影响地使用这些外置存储设备,除非这些进程要操作的文件或者目录的路径产生冲突,所谓路径,就是指根目录到该节点的访问序列,eg/a/b/c是从跟目录访问子目录a,在访问子目录b在访问子目录c。

虚拟内存的支持,操作系统分配了一个磁盘分区叫swap分区,专门用于内存页的保护与恢复。

发布了241 篇原创文章 · 获赞 25 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/u013755520/article/details/104753692