文件系统
文件系统文件系统层次结构 用户接口:文件系统需要上层用户提供一些简单易用的功能接口。这层就是用于处理用户发出的系统调用请求。 文件目录系统:用户时通过文件路径来访问文件的,因此这一层需要根据用户给出的文件路径找到相应的FCB或索引节点。所有和目录、目录目录项相关的的管理工作都在本层完成。 存取控制块:为了保证文件数据安全,还需要验证用户是否有访问权限。这一层主要完成了文件保护的相关功能。 逻辑文件系统与文件信息缓冲区:用户想要指明文件的记录号,这一层需要将记录号转换为对应的逻辑地址。 物理文件系统:这一层需要把上一层提供的文件逻辑地址转换为实际的物理地址。 辅助分配模块:负责文件存储空间的管理,即负责分配和回收存储空间。 设备管理模块:直接与硬件交互,负责和硬件直接相关的一些管理工作。如:分配设备、分配设备缓冲区、磁盘调度、启动设备、释放设备等。 举例:假设某用户请求删除文件 “D:/工作目录/学生信息.xlsx”...
文件结构
文件结构文件逻辑结构按文件是否有结构分类,可以分为无结构文件、有结构文件两种。 无结构文件无结构文件:文件内部的数据就是一系列二进制流或字符流组成。又称“流式文件”。如:Windows 操作系统中的 .txt...
文件管理概述
文件管理概述文件属性文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件。标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称。类型:指明文件的类型位置:文件存放的路径(让用户使用)、在外存中的地址(操作系统使用,对用户不可见)大小:指明文件大小创建时间、上次修改时间文件所有者信息保护信息:对文件进行保护的访问控制信息 文件数据组织 无结构文件(如文本文件):由一些二进制或字符流组成,又称流式文件。 有结构文件(如数据库表)———由一组相似的记录组成,又称记录式文件 文件内部数据组织 操作系统应该提供哪些功能 可以创建文件,(点击新建后,图形化交互进程在背后调用了 create 系统调用) 可以读文件,将文件数据读入内存,才能让CPU处理(双击后,记事本应用程序通过操作系统提供的读文件功能,即 read...
内存空间的拓充
...
内存空间的分配和回收
...
内存概述
内存概述内存内存可以存放数据。程序执行前需要先放到内存中才能被CPU处理————缓和CPU和硬盘之间的速度矛盾。 内存编址在多道程序环境下,系统中会有多个程序并发执行,也就是说会有多个程序的数据需要同时放到内存中。那么,如何区分各个程序的数据是放在什么地方的呢? 我们可以给内存编址 程序运行原理 程序经过编译、链接后生成的指令中指明的是逻辑地址(相对地址),即:相对于进程的起始地址而言的地址。 程序装入内存运行,操作系统会将程序中的逻辑地址转换为物理地址进行装入。 如果将程序调入了其他进程的地址空间中,就会导致内存资源混乱。有三种装入内存的方式。 程序装入绝对装入绝对装入:在编译时,如果知道程序将放到内存中的哪个位置,编译程序将产生绝对地址的目标代码。装入程序按照装入模块中的地址,将程序和数据装入内存。 举例:如果知道装入模块要从地址为 100...
死锁
...
管程
...
线程
...
模块化
模块化概述模块化是指将一个复杂程序划分为一系列独立、可互操作的模块的过程。每个模块负责特定的功能或任务,并通过定义好的接口与其他模块进行通信。简单来说, 就是将代码进行分解、按功能进行管理。模块化的目的是提高代码的可维护性、可重用性、可测试性和可扩展性。开发者能够更容易地处理大型JavaScript项目。 目录结构 默认导出和导入123456789min.jsexport default function min(m, n){ return m > n ? n : m}index.jsimport min from './utils/min.js'console.log(min(12, 45)) 注意: export default 在同一个模块中只能使用一次 默认导入的变量名可以随便起,一般建议和模块功能保存一致。 按需导出和导入按照导入的变量必须要用花括号括起来,并且变量名和导出名必须保持一致。 12345678910111213141516math.jsexport function add(x,...




