当前位置:网站首页 > C++编程 > 正文

操作系统基本操作docx(操作系统基本操作教案)



在这里插入图片描述

文件系统可以向上提供以下几种功能:创建文件(creat系统调用)、删除文件(delete系统调用)、打开文件(open系统调用)、读取文件(read系统调用)、写入文件(write系统调用)、关闭文件(close系统调用)。可用几个基本操作完成更复杂的操作,比如:“复制文件”:先创建一个新的空文件,再把源文件读入内存,再将内存中的数据写到新文件中。

1.功能介绍:通过提供文件名、存储地址、所需空间大小等参数创建文件;

2.执行流程
(1)在外存中找到空间(通过空闲链表、位图、成组链接等空闲盘块管理算法);
(2)创建目录项,目录项包含文件名、地址等。

1.功能介绍:通过提供文件名、存储地址等参数删除文件;

2.执行流程
(1)找到文件目录项;
(2)通过目录项找到文件存储位置,回收文件所占磁盘块;
(3)删除目录项。


1.功能介绍:通过提供文件名、存储地址、操作类型等参数打开文件;

2.执行流程
(1)找到文件的目录项,检查用户是否具有操作权限;
(2)将目录项复制到内存中的“打开文件表”中,系统会将文件的索引号(这个“索引号”,也称“文件描述符”)返回给用户,之后用户使用打开文件表的索引号来指明要操作的文件,即之后用户进程再操作文件就不需要每次都重新查目录了,这样可以加快文件的访问速度;

3.注意事项
(1)打开文件时并不会把文件数据直接读入内存,而是将目录项复制到内存的“打开文件表”中,而读文件会将文件数据从外存读入内存。

1.功能介绍:通过打开文件表中的索引号,定位读指针,并从读指针指向的外存中,将用户指定大小的数据读入用户指定的内存区域中。

2.执行流程
(1)找到打开文件表中文件对应的索引号;
(2)指明读取数据大小、位置。

3.注意事项
(1)打开文件时并不会把文件数据直接读入内存,而是将目录项复制到内存的“打开文件表”中,而读文件会将文件数据从外存读入内存。

1.功能介绍:通过打开文件表中的索引号,从用户指定的内存区域中,将指定大小的数据写回写指针指向的外存。

2.执行流程
(1)找到打开文件表中文件对应的索引号;
(2)指明写入数据大小、保存位置。

1.功能介绍:关闭打开的文件。

2.执行流程
(1)删除进程打开文件表相应表项;
(2)系统打开文件表的打开计数器count减1,若count=0,则删除对应表项;
(3)回收分配给该文件的内存空间等资源。


首先,读取磁盘文件首先要通过open系统调用从磁盘中打开文件,之后,read系统调用从打开文件表中找到该文件并读取。

  1. open系统调用过程:用户提供路径和文件名两个信息,操作系统根据路径和文件名找到FCB并调入内存。调入内存的是FCB,不是文件,且FCB中也仅仅只有文件的一个指针,并在打开文件表中添加表项,此时open系统调用返回一个文件描述符(文件对应打开文件表表项的索引值)。
  2. read系统调用过程:用户程序使用文件描述符查找文件是否在内存中。注意,read时不需要提供路径和文件名,只需要提供文件描述符即可,此时用户程序从用户态变换到核心态,如果发现文件不在内存的话,就产生中断,进程阻塞,等待将数据调入内存。

写在后面

这个专栏主要是我在学习408真题的过程中总结的一些笔记,因为我学的也很一般,如果有错误和不足之处,还望大家在评论区指出。希望能给大家的学习带来一点帮助,共同进步!!!

参考资料
[1]王道408教材(2025版)
[2]王道课程资料

到此这篇操作系统基本操作docx(操作系统基本操作教案)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • kubectl 常用命令(kubectl常用命令汇总)2025-07-30 12:45:07
  • git clone在哪里(git clone下来的项目怎么运行)2025-07-30 12:45:07
  • dchat怎么读(hadnt怎么读)2025-07-30 12:45:07
  • 2258xt ce(2258XT CE不对称)2025-07-30 12:45:07
  • conda虚拟环境列表(conda虚拟环境位置)2025-07-30 12:45:07
  • Cp1515n设置中文(cp1300设置中文)2025-07-30 12:45:07
  • c++单向链表实现(c单链表的实现)2025-07-30 12:45:07
  • cnxna是哪个港口(cnxin是哪个港口)2025-07-30 12:45:07
  • 加载msvcp失败(msvcp140已加载但找不到入口)2025-07-30 12:45:07
  • tomcat乱码(tomcat乱码解决方法)2025-07-30 12:45:07
  • 全屏图片