1.什么是内存管理
内存管理就是对内存架构进行管理,内存架构如下图。
用户无需担心自己的程序存在哪里,反正输入,计算,输出的结果是一样的。让内存管理实现这种媒介透明的手段就是虚拟内存,提供给用户一个比物理主内存大的多的地址空间。
2.随着程序在内存与磁盘之间进行交换,内存将变得越来越碎片化,假设有8个程序,
此时总内存足够,但是因为碎片化,无法提供连续的200KB地址空间。这种散布在进程之间的闲置空间叫做外部碎片。
解决方案:碎片整理,将内存上的数据导出到硬盘上,然后再重新按顺序加载到内存上,但这种方式比较耗时间。
更好的解决方案:分页
3.分页的原理
将虚拟内存和物理内存都划分为大小相同的部分,称为页,然后按页进行分配。程序太大的话,部分放在页中,部分放在硬盘中,这样就能够运行很大的程序了
4.地址翻译的原理
MMU如何完成翻译?查页表
页表是一个硬件数据结构
5.多级页表采用相同的方式,内存中只存顶级页表,次级页表等存放到磁盘上,需要的时候再放到内存中。
实现多级页表需要多次访问内存,降低了效率,如何解决这个问题呢?通过硬件TLB解决,TLB是硬件,所以很快就能得出结果。
6.分页太大,一个页面没有全部用完,剩下的部分就是内部碎片。减小内部碎片的办法就是减小分页的大小,但是分页太小的话,页表记录就会增多,页表级数增加,降低效率。
7.内存抖动
多次访问的虚拟内存,都不在物理内存上,都要发出缺页中断,整个系统的效率急剧下降,这种现象就叫内存抖动。
8.分段管理系统
分页系统的缺点:很难共享;数据增长时,地址空间受到限制。如何解决这个问题?
这种分段式内存管理模式,在运行程序的时候,要将程序所有的段放到内存中,又面临之前的问题,于是,人们对段进行分页,出现了段页式内存管理模型。
9.文件系统就是磁盘的抽象
10.文件系统让磁盘变得容易使用,用户不需要知道数据存放的细节
11.当用户给出一个文件名的时候,文件系统就会找出这个文件在磁盘上的所有数据块。具体如何查找数据块呢?就是将文件名翻译成其数据块在磁盘上存放的地址
12.块文件
块文件是关于输入,输出设备的。具体来说,块文件是模拟输入,输出的,对于每一个输入输出设备,我们以一个文件来表示,需要与该设备发生数据交换时就以该文件来替代,这样,输入输出与文件系统就统一了。
13.临时文件
是为了保存程序的中间结果而创建的,进程结束后,临时文件就被删除了
14.给定一个文件名,操作系统如何知道文件在磁盘上的位置?
这当然需要一个数据结构来记录,这个数据结构就是文件夹。文件夹的角色就是来跟踪文件的,里面存放的是文件名到磁盘地址的映射,即相当于从虚拟地址到实际地址的翻译。
15.磁盘为什么必须要分区
必须分区的理由是对磁盘空间的使用,计算机的内存字长度有限,而磁盘地址需要存放在内存字里面。因此操作系统能够访问的地址数是一个有限的值,如果磁盘的空间很大,那么操作系统将不能够访问到多余的空间
16.磁盘的结构如下图
17.为什么一个分区只能建立一个文件系统呢?
一个磁盘有多个扇面,第0个扇面有重要意义,该扇面存放主引导记录,就是一个小程序,用来启动计算机,如果该扇面损坏,那么这个分区就不可用。主引导记录之后就是磁盘分区表,磁盘分区表给出的是磁盘所有分区及其开始地址和终结地址。其中的一个分区是主分区,操作系统就装载在这个主分区里,主分区最前面是引导记录。
18.文件的实现
文件的实现,归根结底,就是能够把文件的内容存放在合适的地方, 并能够在需要时很容易地读出这些数据。
文件的实现需要解决以下几个问题:
- 1.给文件分配磁盘空间
- 2.记录这些磁盘空间的位置
- 3.将文件内容放在这些空间
19.FAT文件系统
FAT文件系统的表太大了,FAT表的大小与物理磁盘的大小和磁盘数据块大小有关,这与内存的分页一样,太大了占据的空间就大,如何解决这个问题呢?非对称多级索引。
20.硬链接的实现
硬链接就是将文件的地址映射直接加到链接目录下
21.文件系统的挂载
挂载是将一个文件系统并入另外一个文件系统的方法,
光盘,U盘本身也是一个文件系统,当我们要访问U盘时,就要将U盘挂载到"我的电脑"
22.文件系统访问控制
地址保护如何实现?
有2种方式,一种是从文件角度出发,一种是从用户角度出发。
由此产生了访问控制表和能力表
23.保护域
访问控制表和能力表都有一个缺点,针对个体的文件需要设置个体的访问控制。
保护域是将访问控制权限一样的文件和对象组织成同一个域,一个进程必须处在某个域中。
24.文件要保持一致性需要的功能
事务,日志。但是事务和日志在复制数据的时候,源数据就暂时不能使用了,这时怎么办?
使用随影技术,随影就是保持2个版本,等到复制或者更新完毕后,再改动数据。
相关推荐
计算机的心智操作之哲学原理
本书《计算机程序的构造和解释》第二版旨在深入探讨计算机程序的设计原理及其背后的逻辑思考方式。第一章作为开篇,介绍了Scheme语言的基础语法,并通过简单的语法实践解决较为复杂的数学问题。该章节的核心思想在于...
心智计算是指通过计算机模拟人类大脑的认知过程,以实现人工智能系统的智能化。心智计算的研究主要集中在人类大脑的认知机理、计算模型、算法和应用等方面。 本白皮书的主要内容包括心智计算的发展历程、科学问题、...
七维大脑原理:探索人类心智的多元维度七维大脑原理:探索人类心智的多元维度七维大脑原理:探索人类心智的多元维度七维大脑原理:探索人类心智的多元维度七维大脑原理:探索人类心智的多元维度七维大脑原理:探索...
- **《计算机的心智:操作系统之哲学原理》**:Jorge E. Lopez, Mark G. Sinder著,介绍操作系统的哲学和原理。 - **《现代操作系统(第 2 版)》**:Andrew S. Tanenbaum著,全面阐述现代操作系统的各个方面。 - ...
心智哲学认为,心灵是程序,大脑是计算机系统的硬件。这意味着,我们可以通过计算机来模拟人类的智能活动。然而,这也引发了一个核心的问题:心灵和我们的身体关系到底是怎样的?心灵哲学问题认为,心灵和机器是否有...
本书从历史和跨学科两个视角,对认知科学基础问题进行了导论性质的...它描绘了从19世纪到当代认知科学领域某些核心概念的发展轨迹,考察了哲学、心理学、神经科学和计算机科学等学科对认知科学发展的重要贡献和影响。
"基于MEC理论与心智模型的高铁出行APP设计研究" 本文探讨了基于MEC理论与心智模型的高铁出行APP设计策略。随着生活水平的提高,高铁用户需求逐渐呈现多元化趋势。不同类型的用户在使用高铁出行APP的过程中,需求和...
本文从数据、过程、内容和方法三个方面阐述心智模型(Mental model)的复杂特性,并通过链接表分解心智模型节点,结合不同节点的链接关系,通过EC算法、PR算法分析识别心智模型网络关键节点,从口语数据分解、节点...
2. 静电场学习中的心智模型: 静电场是中学物理教学中的一个重要知识点,它涉及到电荷、电场、电场力、静电平衡和电势差等概念。学生在学习这些概念时会形成自己的心智模型,这些模型可能与科学心智模型相符合,也...
### 通用人工智能与人类心智模型 #### 摘要与背景 本文《通用人工智能与人类心智模型》由Roman V. Yampolskiy(路易斯维尔...此外,跨学科的合作也将是解决这些问题的关键,涉及哲学、伦理学、计算机科学等多个领域。
品牌定位是商业策略的核心部分,它涉及到如何在消费者心智中占据独特且有价值的位置。这篇关于“品牌定位的关键:研究心智”的文章强调了心智在品牌传播中的重要作用。文章指出,人的大脑只能处理有限的信息,因此...
这份报告旨在全面解码美妆消费者的心智,并开辟美妆行业中针对心智人群的赛道。 首先,该报告基于阿里妈妈的营销研究中心、市场公关部和营销创意中心的专业经验,利用阿里巴巴生态内的大数据进行深入分析,为品牌...
心智模型是人类对信息、任务或系统的一种心理表征,它反映了用户对于系统操作的认知习惯和期望。在电子商务平台中,有效的目录导航设计是至关重要的,因为这直接影响到用户查找商品的效率和满意度。 文章首先指出了...
### 软件开发的哲学思考 #### 一、引言 在《软件开发的哲学思考》这篇译文中,作者探讨了软件开发的本质及其面临的挑战。尽管文章写作于1996年,但对于当今的软件开发领域仍然具有深远的意义。本文将深入分析该...
数学哲学问题是一个深邃的领域,它探讨了数学的基础、逻辑和无穷的性质,同时也触及了哲学的核心议题。从标题和描述中,我们可以看到数学哲学问题不仅涉及数学本身的发展,也涉及数学家如何通过数学来思考哲学问题。...
把时间当作朋友:运用心智获得解放。很好的书,每个人都应该读一下
"心智理论可能在大语言模型中自发出现" 心智理论(Theory of Mind,ToM)是指人类社会交往、交流、移情、自我意识和道德判断的核心能力,即将无法观察到的精神状态归咎于他人。这种能力对人类的成功至关重要,但是...
【心灵哲学与人工智能心智分类】 心灵哲学探讨的核心是人类及动物的心灵本质,以及与之相关的意识、思考、感知等问题。从笛卡尔的"我思故我在"开始,心灵哲学一直是一个重要的哲学分支,它与现代科技特别是人工智能...