创作不易,来了的客官点点关注,收藏,订阅一键三连❤😜
系列文章目录
概述
操作系统NO.2 | 详解操作系统的非连续内存管理,通过本期内容你将了解内层的层次结构、分页、分段等知识。
目录
TLB(Translation Look-aside Buffer)
操作系统思维导图
计算机系统基本结构和工作原理
计算机系统的基础结构
计算机系统是由硬件系统和软件系统两大部分组成。
计算机硬件: 计算机硬件由五个基本部分组成:运算器、控制器、存储器、输入设备和输出设备。硬件是构成计算机系统各功能部件的集合。是由电子、机械和光电元件组成的各种计算机部件和设备的总称,是计算机完成各项工作的物质基础。计算机硬件是看得见、摸得着的,实实在在存在的物理实体。
计算机软件:指与计算机系统操作有关的各种程序以及任何与之相关的文档和数据的集合。其中程序是用程序设计语言描述的适合计算机执行的语句指令序列。
CPU:程序执行的地方
内存:防止程序的代码和需要处理的数据
设备:主要是外设,例如硬盘、鼠标等
计算机硬件系统工作原理
(1)计算机内部采用二进制来表示程序和数据。
(2)采用“存储程序”的方式,将程序和数据放入同一个存储器中(内存储器),计算机能够自动高速地从存储器中取出指令加以执行。
工作原理
内存的层次结构
内存分层体系
运行内存(主存) / 磁盘(虚拟内存). 主存是在运行程序时所需要保存的数据空间,而磁盘是用于持久化数据保存的数据空间
CPU可以访问的内存包括两大类 : 寄存器 / cache(L1缓存 / L2缓存)
层次如下:
微处理器(CPU访问)
|___CPU寄存器 / L1缓存
|___L2缓存
主存(程序访问)
磁盘(程序访问)
从CPU寄存器到磁盘,读写速度不断降低,单位成本不断降低,大小不断增大。
内存管理目标
抽象:逻辑地址空间。应用程序在内存中运行有利于操作系统的有效管理,让操作系统不要考虑太多底层的原理,只需要访问一个连续地址空间,即逻辑地址空间。
保护:独立地址空间。内存中可以运行多个不同的应用程序,应用程序相互之间可以访问别的进程的地址空间,可能造成破坏,为了保护进程间的地址空间,需要进行隔离,因此需要独立的地址空间。
共享:访问相同内存。进程之间也需要交互,因此需要操作系统提供一个共享的空间,让进程来访问相同的内存。
虚拟:更多的地址空间。当我们在内存运行了较多进程后,内存可能不够,此时我们可以将最需要最必要的程序(进程)放到内存中,而其他程序(进程,不需要进行访问的程序)放到硬盘(磁盘)上,通过此方法可以实现更多的地址空间。
图解:从图中可以看到,在操作系统管理下,有四个放在内存中的程序(P1、P2、P3、P4),而正在运行的程序是P1,而其他等待中,尤其是P4可能由于当前正在等待某个进程需要一段时间后发生,因此P4的数据没有必要放到内存中,操作系统就将P4导入到硬盘中(虚拟),这样也有利于P1、P2、P3程序的进行。
在操作系统中管理内存的不同方法
地址空间和地址生产
地址空间的定义
地址空间:地址空间分为物理地址空间和逻辑地址空间。
物理地址空间:硬件支持的地址空间。比如内存条代表的主存,以及硬盘代表的存储空间,这两种存储空间即为物理内存。物理内存的控制和管理是由硬件来完成的。( address : [0, Max_sys] )
逻辑地址空间:一个运行的程序所看到的地址空间,一维的线性地址空间。( address : [0, Max_prog] )