当前位置: 首页 > news >正文

操作系统 | 【一 概述】强化阶段 —— 应用题总结

 

        平衡复习重点。

 


 

大致内容

        一.中断、异常、系统调用

        二.进程、调度、进程的状态转换、PCB

        三.虚拟页式存储管理、页面置换算法

        四.文件的逻辑结构、物理结构,文件的目录、FCB、文件操作

        五.磁盘、I/O方式

 


 

文件物理/逻辑结构

1、文件的逻辑结构只与文件的格式有关(如 .mp3 等后缀)。文件的逻辑格式(用户角度)与文件系统无关。任何一种文件格式放到不同的文件系统,被拆分成若干个块,这些块在不同文件系统中的物理存储就会出现区别。块的大小由文件系统规定。

文件的逻辑层面的索引结构:从文件的格式来看,从用户的视角。

2、

 


 

打开文件的过程(简陋版)

本例文件系统UFS为例。

 

        ①当双击 word.exe 后,操作系统在虚拟内存中进行分区,创建一个进程,同时建立进程对应的PCB,进程等待调度。

        (从虚拟内存视角看好像是为该文件分配了一块连续的存储空间,而实际上在物理内存中它一定会被分页,即离散存放。)

        (文件在运行过程中它的视角看到的是虚拟内存,而不是物理内存;当物理内存不够用时,就采用页面置换算法进行页面置换,将不用的页面暂时淘汰,需要使用的页面替换进来。)

        ②open(“D/xxx/宝典.doc”)系统调用,需要指明该文件的存储路径。

        ③根据路径一级一级查文件目录(目录由若干的目录项组成,即FCB,保存了文件物理结构的相关信息),最终查到目标文件对应的FCB,而FCB中保存了文件的物理结构相关的信息,本例中为该文件的索引结点编号(UFS文件系统)。

        ④获取索引节点。索引节点连续存储,且有固定位置。假设为2,再根据起始地址和大小,打开对应索引节点的信息,读入内存。

        (索引结点在系统中的某个固定的位置开始(所有索引结点的起始位置相同),采用连续存储的存储方式(每个索引结点的大小相同,类似数组),且操作系统知道这些索引结点的起始位置,即操作系统可以根据索引结点的编号找到该文件的索引结点,并根据该索引结点将该文件相对应的数据读入内存)

        ⑤根据索引节点信息,映射到文件的逻辑块所存放的物理块的位置。通常前半部分,后半部分分别调入。所以会出现转圈圈的情况。

        操作系统根据读入的该文件的索引结点(inode,采用混合索引方式)就可以找到其的数据部分(所有)分别存放在哪些物理块中(操作系统可以找到该文件的所有数据,但是通常情况下不需要一次将其全部读入,按需要读入)

       ⑥操作系统使用read调用读入需要的数据

 

 


部分文字参考于

408王道操作系统强化——概述_江南江南江南丶的博客-CSDN博客

 

相关文章:

  • 深度学习(PyTorch)——python中的两大法宝(dir与help)
  • 记一次vue^2.6.5-router^3.0.6的keep-alive事故
  • vi vim 快速跳到文件末尾 在最后一行下方新增一行 (光标换行,文字不换行)
  • 【我不熟悉的css】03. 使用px、em、rem
  • 1.直流无刷电机BLDC转速计算推论
  • 猿创征文|小而巧的API文档生成工具之smart-doc
  • PyTorch错误定位系列之DDP训练中 double free or corruption (out)
  • Go template详解(中)- 变量使用、if语句、迭代(数组、切片、map)、内置函数(比较、逻辑判断、打印、索引、函数调用)
  • JavaScript(三):理解异步
  • JVM阶段(3)-OutOfMemoryError异常
  • 企业运维容器之 docker 网络
  • 【QML】 如何导入QML文档目录
  • 【前端】命令行基础,linux常用命令
  • 【ZYNQ-嵌入式】zynq学习笔记(二)—— GIPO的硬件配置和软件配置
  • vue echarts 镂空饼图配置
  • 2017-08-04 前端日报
  • 4. 路由到控制器 - Laravel从零开始教程
  • create-react-app做的留言板
  • Lucene解析 - 基本概念
  • webpack入门学习手记(二)
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 仿天猫超市收藏抛物线动画工具库
  • 简单数学运算程序(不定期更新)
  • 经典排序算法及其 Java 实现
  • 聊聊flink的TableFactory
  • 深度学习入门:10门免费线上课程推荐
  • 写给高年级小学生看的《Bash 指南》
  • 用Python写一份独特的元宵节祝福
  • 智能网联汽车信息安全
  • nb
  • 国内开源镜像站点
  • #include到底该写在哪
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (五)IO流之ByteArrayInput/OutputStream
  • (五)关系数据库标准语言SQL
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (转)使用VMware vSphere标准交换机设置网络连接
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .Net FrameWork总结
  • .NET 回调、接口回调、 委托
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • [100天算法】-不同路径 III(day 73)
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [2669]2-2 Time类的定义
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [C++从入门到精通] 14.虚函数、纯虚函数和虚析构(virtual)