码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 计算机操作系统 (王道考研)笔记(二)


    目录

    • 1 内存
      • 1.1 内存的基础知识
        • 1.1.1 内存定义、作用
        • 1.1.2 指令的工作原理
        • 1.1.3 三种装入策略
        • 1.1.4 从写程序到程序运行
        • 1.1.5 链接的三种方式
        • 1.1.6 总结
      • 1.2 内存管理
        • 1.2.1 内存空间的分配与回收
          • a) 连续分配管理
          • b) 非连续分配管理
            • 1) 基本分页存储管理
            • 2) 基本分段存储管理
            • 3) 段页式存储管理
        • 1.2.2 内存空间的扩充
          • a) 覆盖技术
          • b) 交换技术
          • c) 虚拟存储技术
        • 1.2.3 地址转换
        • 1.2.4 内存保护

    请添加图片描述

    • 🙋‍♂️ 作者:海码007
    • 📜 专栏:计算机四大基础专栏
    • 💥 标题:【一文读懂】计算机操作系统(王道考研)笔记:深入解析内存管理的关键!
    • ❣️ 寄语:人生的意义或许可以发挥自己全部的潜力,所以加油吧!
    • 🎈 最后:文章作者技术和水平有限,如果文中出现错误,希望大家能指正

    1 内存

    1.1 内存的基础知识

    1.1.1 内存定义、作用

    内存可存放数据。程序执行前需要先放到内存中才能被CPU处理----缓和CPU和硬盘之间速度矛盾
    在这里插入图片描述

    1.1.2 指令的工作原理

    在这里插入图片描述

    在这里插入图片描述

    1.1.3 三种装入策略

    装入策略是为了解决将指令中的逻辑地址(相对地址)转换为物理地址(绝对地址)。
    有三种装入策略:1. 绝对装入;2.可重定位装入(静态重定位);3.动态运行时装入(动态重定位)

    1. 绝对装入

    在这里插入图片描述

    1. 可重定位装入

    在这里插入图片描述

    1. 动态运行时装入

    在这里插入图片描述

    1.1.4 从写程序到程序运行

    在Windows系统重装入模块就是.exe文件
    在这里插入图片描述

    1.1.5 链接的三种方式

    链接指的是将编译后的二进制文件与引用的三方库二进制文件,链接成一个.exe文件(也就是装入模块)。
    在这里插入图片描述

    在这里插入图片描述

    1.1.6 总结

    在这里插入图片描述

    1.2 内存管理

    1.2.1 内存空间的分配与回收

    *** 操作系统负责内存空间的分配与回收
    在这里插入图片描述

    内存空间的分配与回收主要有两种:连续分配管理、非连续分配管理。

    a) 连续分配管理

    连续分配:指为用户进程分配的必须是一个连续的内存空间。
    在这里插入图片描述

    动态分区分配算法
    在这里插入图片描述

    b) 非连续分配管理

    有三种方法:基本分页存储管理、基本分段存储管理、段页式存储管理;

    1) 基本分页存储管理

    在这里插入图片描述

    2) 基本分段存储管理

    在这里插入图片描述

    3) 段页式存储管理

    是两种方法的结合
    在这里插入图片描述

    1.2.2 内存空间的扩充

    *** 操作系统需要提供某种技术从逻辑上对内存空间进行扩充
    因为电脑内存有限16g,有程序超过80g大小,所以就需要内存空间扩充技术。

    内存扩充的技术有三种:覆盖技术、交换技术、虚拟存储技术;

    a) 覆盖技术

    缺点:必须由程序员声明覆盖结构,操作系统完成自动覆盖。对用户不透明,增加了用户编程负担。覆盖技术只用于早期的操作系统,现在已经被淘汰。
    在这里插入图片描述在这里插入图片描述

    b) 交换技术

    在这里插入图片描述
    在这里插入图片描述

    c) 虚拟存储技术

    虚拟内存技术

    1. 定义与特征

    在这里插入图片描述

    1. 实现虚拟内存技术

    虚拟内存技术的实现是建立在离散分配的内存管理方式基础上。
    离散分配的内存管理方式有三种:基本分页存储管理、基本分段存储管理、基本段页式存储管理;
    由此衍生出三种虚拟内存实现方法:请求分页存储管理、请求分段存储管理、请求段页式存储管理;
    在这里插入图片描述

    1. 三种虚拟内存实现方法
      请求分页管理方式:

    在这里插入图片描述

    1.2.3 地址转换

    操作系统需要提供地址转换功能,负责程序的逻辑地址与物理地址的转换
    原因:为了使编程更方便,程序员写程序应该只需关心指令、数据的逻辑地址。而逻辑地址到物理地址的转换(这个过程称为地址重定位)应该由操作系统负责,这样就保证了程序员写程序时不需要关注物理内存的实际情况。(和封装的思想很像,就是把负责的实现过程封闭起来,别人只需要调用,不需要考虑内部实现逻辑)

    拓展:有三种装入方式可以实现地址重定位

    1.2.4 内存保护

    操作系统需要提供内存保护功能。保证各进程在各自存储空间内运行,互不干扰。

    内存保护的两种方法:

    1. 设置一对上限、下限寄存器。
      在这里插入图片描述
    2. 采用重定位寄存器和界地址寄存器
      在这里插入图片描述
  • 相关阅读:
    iOS 嵌套 view 传值到 controller 的一种可行方案
    【MySql进阶】索引详解(一):索引数据页结构
    伴读计划 01 | 想要读透一本书?那就来参加吧
    ClickHouse学习笔记
    DDD之模块(Module)
    【前端】什么是面包屑?
    ipv4正则和ipv6正则
    【爬虫】7.1. JavaScript动态渲染界面爬取-Selenium
    滚珠螺母在工业机器人中的应用优势
    【 背包九讲——完全背包问题】
  • 原文地址:https://blog.csdn.net/hhw_hhw/article/details/132905535
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号