• 操作系统之文件的基本操作


    文件的基本操作

    创建文件

    使用create的系统调用,需要提供的主要参数:
    1.所需的外村空间;
    2.文件存放路径;
    3.文件名;
    在这里插入图片描述
    操作系统处理create系统调用时主要做的两件事:
    1.在外存中找到文件所需的空间;
    2.根据文件存放路径的信息找到该目录对应的目录文件,在目录中创建该文件对应的目录项;
    目录项中包含了文件名,文件在外村中的存放位置等信息
    在这里插入图片描述

    删除文件

    使用了Delete的系统调用:需要的参数创建文件,但是没有“所需的外存空间大小”;
    在这里插入图片描述
    操作系统处理Delete系统调用时需要做的事情;
    1.根据文件路径找到对应位置的目录文件;
    从目录文件中找到文件名对应的目录项

    2.根据目录项记录的文件在外存中的存放位置,文件大小等信息,回收文件占用的磁盘快
    在这里插入图片描述

    打开文件

    使用open系统调用;三个参数
    在这里插入图片描述
    open系统调用处理的事情:
    在这里插入图片描述
    在这里插入图片描述

    用户和系统的打开文件表

    1.系统有且仅有一张系统的打开文件表,返回的是对应文件的编号;
    如图,编号就是文件的编号,打开计数器表示了该文件被几个用户进程打开;
    2.用户进程表可以有多个,其中由于对文件读写指针和访问权限不同而被放在表项之中,另外有系统表索引号,用来指向系统的打开文件表中的某一个表项,表示用户对指向的文件进行某些操作;
    3.用户进程的读写指针记录了该进程对用户的读写操作进行到的位置,不同用户的读写指针进行到的位置不一样,因此不同进程的读写指针也不一样;
    4.访问权限则记录了该用户进程所能对该文件进行操作的权限,如果是只读,那么就不能进行写操作等等;
    在这里插入图片描述
    我们可以通过打开文件表份方便的实现某些文件管理功能。如图:在这里插入图片描述

    关闭文件

    在这里插入图片描述

    读文件

    在正式开始读文件的时候,记事本进程已经有了该文件对应的表项,因此记事本进程只需要知道要读的文件对应的文件编号就可以了;
    在这里插入图片描述
    在这里插入图片描述

    写文件

    在这里插入图片描述
    读文件和写文件的区别:
    读文件:从读指针指向的外存区域,将用户指定大小的数据读入用户指定的内存区域中;
    需要明确的信息:指明是哪个文件(提供打开文件表中的文件索引号);指明要读入多少数据;指明要从外存读入的数据存放在内存中的什么位置;
    写文件:从用户指定的内存区域中,将指定大小的数据写回写指针指向的外存;
    需要明确的信息:指明是哪个文件(提供打开文件表中的文件索引号);指明要写出多少数据;指明要写回外存的数据存放在内存中的什么位置;

    文件系统的层次结构

    在这里插入图片描述
    用户接口:文件的基本操作;
    文件目录系统:文件目录;
    存取控制模块:文件保护;
    逻辑文件系统与文件信息缓冲区:文件的逻辑结构;
    物理文件系统:文件的物理结构;
    辅助分配模块:文件存储空间分配管理; 设备管理模块:磁盘管理,和硬件交互;

    举例子来进行说明:
    在这里插入图片描述
    如图,用户给定文件路径,请求删除文件;
    1.用户通过os提供的接口,发出请求删除文件的请求,操作系统执行删除的系统调用;
    2.根据用户提供的文件的路径,os一层层的查找目录,找到文件对应的目录项;
    3.不同的用户有着不同的操作权限,为了保证安全,检查用户是否具有访问权限;
    4.验证了用户的访问权限之后,将用户提供的文件的记录号,转变为对应的逻辑地址;
    5.将文件的逻辑地址转换成实际的物理地址;
    6.向磁盘设备发出请求以删除这条记录;
    7.删除记录后,会有磁盘空闲,将空闲磁盘回收;

  • 相关阅读:
    最全HTTP/HTTPS面试题整理(三)
    【华为】测试工程师面试题汇总,你可知道华为的高薪技术岗有多香~
    Spring Framework 6.0 框架
    Vue3:组件的生命周期函数
    【视频教程】统计方法在变量变化及变量间关系分析中的应用
    编码与进制
    网络安全宣传周 | 校园日奉上高校数据安全场景化方案
    【编程题】【Scratch三级】2021.06 计算成绩总和
    第29节-PhotoShop基础课程-滤镜库
    【3D游戏建模全流程教学】使用3dsmax与UE4制作世界末日地铁场景
  • 原文地址:https://blog.csdn.net/linjianshaonian_/article/details/127828819