1.3 操作系统的第三个功能——存储管理功能

作者zobol:关于操作系统概论-存储管理功能,我给出下列问题:

一般来讲,制约我们计算机使用快慢感觉的瓶颈,不在于CPU的计算速度(正常情况下,你上个网是不可能跑满的),而在于你购买的存储器的性能。

现代计算机从以CPU核心转到以存储器为核心的原因之一就是,存储器的搬运数据速度已经跟不上CPU的计算速度了

问1:操作系统的文件管理系统主要是负责哪些任务?

  • 文件资源虚拟逻辑化、虚拟内存功能。负责将内存资源、硬盘资源统一逻辑化。
  • 管理数据的搬运。因为CPU的计算需要数据,计算完的数据,也需要找个地方存放。
  • 确保文件的稳定性,对于临时性的缓存文件要定时自动删除,对于用户要求永久保存的文件,必须确保断电后也存在。

其中我们主要讲解第二点数据的搬运,这是因为它关系到我们计算机性能的快慢。而剩余两点都涉及操作系统到底在硬盘上做了什么,这其中过程十分复杂繁琐,考研不做要求。


问2:为什么数据的转移会成为影响计算机的性能的主要原因?

因为CPU的寄存器空间很小,我们的数据都是要存放在Cache、内存、硬盘里的。当CPU需要的时候,数据从存储器中取出来,通过总线传输进CPU。等计算完再传输回来。而这种接口间的传输速度,是远远赶不上CPU的计算速度的。这就导致CPU总是处于“饥饿”的状态。

平常我们想要提高旧计算机性能,性价比最高的办法就是买一块固态硬盘。你会立刻感受到一秒钟开机的舒服感。


问3:硬盘、内存、Cache都是什么?

硬盘、内存、Cache都是存储器,用来存放数据的。只是它们的价格、性能、传输速度不一样。

我们理想状态下,肯定是希望都买成最快的,容量最大的存储器。

但是在资金有限的情况下,我们需要仔细考虑,分开处理。

  • CPU经常访问的数据,放到贵的,速度快的Cache、内存里面。
  • 把不经常访问的数据,放到便宜的,速度慢,容量大的内存和硬盘里面

```
关于把数据放到哪种存储器,是操作系统主要关心的,这被称为存储器调度管理方式。
此外当内存空间不够的时候,操作系统还会使用虚拟内存技术。
```
```
三种存储器CPU都能直接访问到,不需要层层递交。
```


问4:存储器内部的读取方式对计算机性能有影响吗?

有影响,当从CPU发出读取某个数据信号,中间的过程都是会造成延时。其中主要是关于磁盘调度部分,不过这一部分具体操作,操作系统很难去具体影响,所以一般是交给硬盘厂商实现最优算法。


问5:操作系统是怎么根据CPU发出的消息得到数据的位置?

首先我们访问文件资源管理器,使用的都是资源地址符。

C:\Program Files

但是CPU一般使用的是二进制的地址,0101011110101011.你可以将它简单理解成一串数字,操作系统得到了它就会去搜索对应的逻辑地址,然后根据逻辑地址找到真实的物理地址。

我们主要学习操作系统如何更快地搜索对应的逻辑地址,肯定不能傻傻地线性搜索,一般都会采用分区、分段、分页等划分方式,减小搜索的时间复杂度。

欢迎访问:个人博客-zobolの计算机操作系统学习札记

1.3 操作系统的第三个功能——存储管理功能 -《zobolの操作系统学习札记》的更多相关文章

  1. 1.4 操作系统的其余功能 -《zobolの操作系统学习札记》

    1.4 操作系统的其余功能 操作系统除了虚拟化.并发.存储管理三个主要功能,还有许多子功能,我主要介绍几种常见的功能比如 目录 1.4 操作系统的其余功能 稳定性 高性能 隔离保护 易用性(可视化) ...

  2. 1.2 操作系统的第二个功能——并发功能 -《zobolの操作系统学习札记》

    1.2 操作系统的第二个功能--并发功能 目录 1.2 操作系统的第二个功能--并发功能 问1:什么是并发功能?并发功能是必要的吗? 问2:并发功能必须要求拥有多核CPU吗? 问3:多核CPU和单核C ...

  3. 1.1 操作系统的第一个功能——虚拟化硬件资源 -《zobolの操作系统学习札记》

    1.1 操作系统的第一个功能--虚拟化硬件资源 目录 1.1 操作系统的第一个功能--虚拟化硬件资源 问1:操作系统一般处于计算机系统的哪一个位置? 问2:管理硬件资源为什么要单独交给操作系统? 问3 ...

  4. OneZero第三周——预完成功能点统计

    本周OneZero将完成“摇一摇”功能. 功能点统计如下: 1.点击主页面“摇一摇”按钮,进入摇一摇界面. 2.摇一摇界面布局(上,中,下). 3.摇动手机,在摇一摇界面中显示一条消费记录. 4.继续 ...

  5. Trove系列(三)—Trove的功能管理功能介绍

    Trove的功能管理功能Trove的功能管理功能包括给各种不同的版本的 datastore 安装不同的 功能. 本管理功能只适用于激活/去活全系统的功能.唯一例外的是数据存储功能列表功能,该功能对所有 ...

  6. Atiit 常见功能 常用功能与模块的最快速解决方案

    Atiit 常见功能 常用功能与模块的最快速解决方案 一.大力使用第三方API接口 一.导出excel jquery.table2excel 二.Form表单验证,使用h5验证属性 验证发生在form ...

  7. ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS)

    ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS) 1. 网站资源: ROSwiki官网:http://wiki.ros.org/cn GitHub    ...

  8. linux下实现两人、三人无序对话功能

    序:引子 对话功能实际上就是利用管道见得通信.最原始的是一方发另一方收,不能进项交互,发送方的代码如下: /*============================================ ...

  9. 富文本编辑器UEditor自定义工具栏(三、自定义工具栏功能按钮图标及工具栏样式简单修改)

    导读 富文本编辑器UEditor提供丰富了定制配置项,如果想设置个性化的工具栏按钮图标有无办法呢?答案是肯定的!前两篇博文简要介绍了通过将原工具栏隐藏,在自定义的外部按钮上,调用UEditor各命令实 ...

随机推荐

  1. python---反转链表

    class Node: def __init__(self, data): self.data = data self.next = None class Solution: "" ...

  2. Springboot集成cache的key生成策略

    代码接上文:深度理解springboot集成redis缓存之源码解析 ## 1.使用SpEL表达式 @Cacheable(cacheNames = "emp",key = &quo ...

  3. Vue基础二之全局API、实例属性和全局配置,以及组件进阶(mixins)的详细教程(案列实现,详细图解,附源码)

    本篇文章主要是写Vue.directive().Vue.use()等常用全局API的使用,vm.$props.vm.$options.vm.$slots等实例属性的使用,以及Vue全局配置.组件的mi ...

  4. perf性能分析工具使用分享

    @ 目录 前言 perf的介绍和安装 perf基本使用 perf list使用,可以列出所有的采样事件 perf stat 概览程序的运行情况 perf top实时显示当前系统的性能统计信息 perf ...

  5. 简单手写一个jqurey

    1 /** 2 * @description 手写jquery 3 * @author ddxldxl 4 */ 5 class Jquery { 6 constructor(selector) { ...

  6. PTA刷题笔记

    PTA刷题记录 仓库地址: https://github.com/Haorical/Code/tree/master/PTA/GPLT 两周之内刷完GPLT L2和L3的题,持续更新,包括AK代码,坑 ...

  7. ImageView的scaleType属性 与 adjustViewBounds属性

    ImageView的scaleType的属性有好几种,分别是matrix(默认).center.centerCrop.centerInside.fitCenter.fitEnd.fitStart.fi ...

  8. 基于Koa与umi实现服务端(SSR)渲染

    工具: umijs:react前端应用框架. koa:基于 Node.js 平台的web 开发框架. 介绍: 本文主要是简单介绍,利用umi开发前端页面,打包成服务端渲染工程包.由Koa实现服务端渲染 ...

  9. cookie、sessionStorage、localStorage的区别?

    数据存储位置 三者都是存储在游览器本地的 区别在于cookie是服务器端写入的,而sessionStorage.localStorage是由前端写入的 生命周期 cookie的生命周期是由服务器端写入 ...

  10. kubernetes源码学习-环境配置篇

    下载源码 根据kubernetes github 方式可以 mkdir -p $GOPATH/src/k8s.io cd $GOPATH/src/k8s.io git clone https://gi ...