操作系统的设计与实现(笔记7)——内存管理

[自制操作系统] 第14回 内存管理系统 目录 一、前景回顾 二、位图bitmap及函数实现 三、内存池划分 四、运行一、前景回顾前面我们已经花了一个回合来完善了一下我们的系统,包括增加了makefile,ASSERT以及一些常见的字符串操作函数。关于makefile,还是我以前学习Linux系统编程的时候学了一点点,很久没用导致就几乎都忘了,还是花了一下午时间去补了一下。看来知识这个东西,还是得温故而知新。随时还是要回过头来总结一下我们的工作,上面是目前为止的工作,其实我们可以看到,现在我们的主要工作就是不停地往init_all()里面去填充一系 阅读详情

操作系统中管理存储器的部分称为存储管理器
 

存储管理系统可以分为两类:在运行期间将进程在主存和磁盘之间移动的系统(交换和分页)和不移动的系统。
交换和分页在很大程度上是由于缺少足够的主存以同时容纳所有的进程而引入的。
 

由程序产生的地址被称为虚地址(virtual addresses),他们构成了一个虚地址空间(virtual address
space)。在没有虚拟存储器的计算机上,虚地址被直接送到内存总线上,使具有同样地址的物理存储器字被读写;
而在使用虚拟存储器的情况下,虚地址不是被直接送到内存总线上,而是送到内存管理单元(MMU),它由一个或一组
芯片组成,其功能是把虚地址映射为物理地址,如图4-7所示。

操作系统-课堂笔记系列博客(南航)-考研or期末 操作系统课堂笔记 简介 写此系列博客的初衷 我们操作系统老师讲的真的非常好,所以将所获得知识记录保存起来。 既能起到分享的作用,又能帮助笔者复习。 知识来源NUAA-刘老师。 推荐参考资料 《操作系统精髓与设计原理(原书第6版)》PDF中文版.pdf 提取码:wi9h 《Linux内核完全注释-赵炯编著》 提取码:4teu 我的另外一系列博客:Linux内核完全注释-读书笔记 目录 - 持续... 阅读详情

相关推荐

操作系统学习笔记(一) ---操作系统简介

目录 Chapter1 操作系统简介 参考资料:操作系统概念(第9版&第7版) 例题 概念整理: Chapter2 操作系统结构 例题 概念整理 Chapter1 操作系统简介 参考资料:操作系统概念(第9版&第7版) 例题 1.What are the three main purposes of an operating system? 1.Resour...

雲的博客 1万+

《Linux 内核设计与实现》12. 内存管理

当你创建了一个高速缓存后,slab 层所起的作用就像一个专门的分配器,可以为具体的对象类型进行分配。不能给 _get_free_pages() 或 kalloc() 指定 ZONE_HIGHMEM,因为这两个函数返回的都是逻辑地址,而不是 page 结构,这两个函数分配的内存当前有可能还没有映射到内核的虚拟地址空间,因此,也可能根本就没有逻辑地址。若想要释放的内存不是由 kmalloc() 申请的,或想要释放的内存早被释放了,再调用 kfree() 的话,就会导致很严重的后果。

XiaoLing 一直摆烂哇! 1490

操作系统读书笔记(一)——操作系统概述

注: 这是对 [Abraham Silberschatz. 操作系统概念 第七版. 高等教育出版社, 2010.1] 一书的概述性阅读笔记       同时也是对学校操作系统课程部份作业的整理       CH1 操作系统概述   1.操作系统定义和目的 目前对操作系统没有一个十分完整的或广泛接受的定义,操作系统是管理计算机硬件的程序,为应用程序提供基础,并且充当计算机硬件和计算机用户...

ljing的博客 1470

内存管理单元(MMU)如何通过页表实现虚拟地址转换

在现代计算机系统中,内存管理是保证系统高效运行的关键组成部分之一。内存管理单元(Memory Management Unit, MMU)扮演着中心角色,负责虚拟地址到物理地址的转换。为了理解MMU如何实现这一功能,我们首先需要探索其基本概念和它是如何与页表协作的。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 2074

【专栏必读】王道考研408操作系统+Linux系统编程万字笔记使用说明及章节导航

王道408考研操作系统)第一章计算机系统概述-第一节1、2:操作系统概念、概念和特征1:理解fork的作用prinf("还没有执行fork函数的本进程为:%d\n" , getpid());//其返回值是pid类型的 sleep(1);if(ret > 0) //父进程返回的是子进程ID {printf("我是父进程,我的id是:%d,我的孩子id是%d\n" , getpid() , ret);sleep(1);} } else if(ret == 0) //子进程fork返回值是0 {.........

快乐江湖的博客 3万+

内存管理模型的设计与实现(操作系统)

对内存的可变分区申请采用链表法管理进行模拟实现。要求: (1) 对于给定的一个存储空间自己设计数据结构进行管理,可以使用单个链表,也可以使用多个链表,自己负责存储空间的所有管理组织,要求采用分页方式(指定单元大小为页,如4K,2K,进程申请以页为单位)来组织基本内容; (2) 当进程对内存进行空间申请操作时,模型采用一定的策略(如:首先利用可用的内存进行分配,如果空间不够时,进行内存紧缩或其他方案进行处理)对进程给予指定的内存分配; (3) 从系统开始启动到多个进程参与申请和运行时,进程最少要有3个以上,每个执行申请的时候都要能够对系统当前的内存情况进行查看的接口; (4) 对内存的申请进行内存分配,对使用过的空间进行回收,对给定的某种页面调度进行合理的页面分配。 (5) 利用不同的颜色代表不同的进程对内存的占用情况,动态更新这些信息。

操作系统中的存储管理是怎么设计的呢?

计算机系统中的存储器可以分成两类:内存储器(简称内存)和外存储器(简称外存)。 处理器可以直接访冋内存,但不能直接访冋外存。处理器要通过启动相应的输人/输 出设备后才能使外存与内存交换信息。 与早期的计算机相比较,现在的计算机的内存容量已经是非常之大了,但是程序大小的增长速度与内存容量的增长几乎一样快。正如帕金森定律所说的那样:“存储器有多大,程序就会有多大”。使用计算机的人们总在抱怨机器的内存...

一个不爱说话的程序员 1282

内存管理模型的设计与实现

内存管理模型的设计与实现,内存管理模型的设计与实现课程设计,内存管理模型的设计

操作系统内存管理详细总结

对操作系统内存管理的详细介绍总结

ckckckcckckc的博客 2007

操作系统-内存管理 java实现代码

1、在该实验中,采用可变分区方式完成对存储空间的管理(即存储空间的分配与回收工作)。 2、设计用来记录主存使用情况的数据结构:已分区表和空闲分区表或链表。 3、在设计好的数据结构上设计一个主存分配算法。 4、在设计好的数据结构上设计一个主存回收算法。其中,若回收的分区有上邻空闲分区和(或)下邻空闲分区,要求合并为一个空闲分区登记在空闲分区表的一个表项里。

自己动手设计一个内存管理子系统.pdf

对于 “内存管理子系统” 接触和理解最多的应该是 Linux 内核里面的各种内存分配 器和各种内存管理行为等。回归到最开始的地方,内存管理子系统的出现要解决的问题, 根据计算机架构可以知道,当系统运行之后需要将数据从永久存储介质上拷贝到内存 上缓存,然后 CPU 与内存交换数据进以便完整特定的任务

操作系统概念 学习笔记

目录 第一章、导论 1.1 操作系统 1.1.1 用户视角 1.1.2 系统视角 1.1.3 定义操作系统 1.2 计算机系统组织 1.2.1 计算机系统操作 1.2.2 存储结构 1.2.3 I/O结构 1.3 计算机系统体系结构 1.4 .操作系统结构 1.5 操作系统操作 1.5.1 操作系统的双重模式操作 1.5.2 定时器 第二章 操作系统结构 2.1 操...

王文萱的博客 3万+

操作系统的cpu和内存设计

操作系统的进程设计,同时用颜色条动态显示进程内存占用的情况。

操作系统学习笔记

程序是由若⼲个逻辑分段组成的,如可由代码分段、数据分段、栈段、堆段组成。不同的段是有不同的属性的,所以就⽤分段(Segmentation)的形式把这些段分离出来。

lbwnbdedede的博客 1609

Linux中断子系统分析之(四):驱动程序申请中断

中断子系统中有一个重要的设计机制,那就是Top-half和Bottom-half,将紧急的工作放置在Top-half中来处理,而将耗时的工作放置在Bottom-half中来处理。 如果中断不分上下半部处理,那么意味着只有等上一个中断完成处理后才会打开中断,下一个中断才能得到响应。当某个中断处理处理时间较长时,很有可能就会造成其他中断丢失而无法响应,影响系统性能。 中断分成上下半部处理可以提高中断的响应能力,在上半部处理完成后便将中断打开,这样就可以响应其他中断了,等到中断退出的时候再进行下半部的处理。为了进

m0_46525308的博客 1226

Ubuntu桌面消失?可能是lightdm配置在捣鬼:详细解析/etc/lightdm.conf的优先级机制与实战修复

本文详细解析了Ubuntu系统因lightdm显示管理器配置错误导致桌面消失的问题。通过分析/etc/lightdm.conf的优先级加载机制,提供了从systemctl诊断、调试模式运行到实战修复配置语法错误(如缺失[Seat:*]组)的完整方案。文章还探讨了在系统无法启动时使用chroot或恢复模式进行高级救援,并对比了lightdm与gdm3在NVIDIA驱动环境下的不同表现,帮助用户高效恢复图形界面。

weixin_29313547的博客 420

操作系统期末复习笔记

操作系统期末复习目录一、引论1. 操作系统概念2. 操作系统的作用?3. 操作系统提供的服务?4. 操作系统的演变?5. SPOOLing假脱机技术6. 操作系统的基本概念:7. 个体重复系统发育:8. 系统调用9. 操作系统的功能10. 操作系统的特点?11. OS的发展与分类12. 中断、异常和陷入13. 操作系统的结构①单体系统②层次式系统③微内核④客户机——服务器⑤虚拟化ⅠVM/370Ⅱ 虚拟机的再现Ⅲ Java虚拟机6.外核二、进程与线程(一)进程1、创建进程的四种主要事件:2、进程的状态3

qq_43984062的博客 3270

Hi3516CV610开发板实战:从零搭建智能视觉监控系统

本文详细介绍了从零开始基于Hi3516CV610开发板搭建智能视觉监控系统的完整实战流程。涵盖硬件连接、系统配置、摄像头集成、网络设置、固件烧录到视频处理与智能分析功能开发,提供了丰富的实践经验和调试技巧,帮助开发者快速掌握嵌入式视觉系统开发。

vvv99的博客 564

操作系统期末速成笔记

用户级线程是指不依赖于操作系统核心,由应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制的线程。

m0_69112934的博客 7096

Palantir解密:“本体”的建模逻辑及其扩展方向

上一篇重点从对现实世界建模的角度探讨了“本体”在数字化架构中的核心意义。这里借Palantir的“本体”概念、解析Palantir只是起点,目标旨在以他山之石攻玉——探索数字世界的底层架构逻辑,最终为构建自主体系提供思考。Palantir以“本体论”为核心的建模方案是否代表终极答案,不宜过早下结论,但其思路值得深入剖析。

SZSDQJC的博客 2635

YOLOv26全流程实战手册:从yaml配置拆解到训练推理参数调优(附虚拟环境搭建)

以“车辆、行人、小型物体”3类数据集为例,修改# 1. 修改类别数nc: 3# 2. 调整锚框(适配小目标)anchors:- [12,16, 16,24, 33,23] # 增加小锚框# 3. 轻量化调整(边缘部署)depth_multiple: 0.25 # 降低深度系数width_multiple: 0.20 # 降低宽度系数# 其余Backbone/Head结构不变yaml配置:核心是调整nc(类别数)、(轻量化)、anchors(适配目标尺度);虚拟环境。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 879

操作系统内核与设计原理笔记

文章目录操作系统内核与设计原理笔记第1章 计算机系统概述1.1 基本构成1.2 微处理器的发展演化1.3 指令的执行1.4 中断1.5 存储器的层次结构1.6 高速缓存1.7 直接内存存取(DMA)1.8 多处理器和多喝计算机组织结构第2章 操作系统概述2.1 操作系统的目标和功能2.2 操作系统的发展2.3 主要成就2.4 现代操作系统的特征第3章 进程描述和控制3.1 什么是进程3.2 进程状态3.3 进程描述3.4 进程控制3.5 操作系统的执行第4章 线程4.1 进程和线程4.2 用户级和内核级线程

tthere的博客 1446

[23]-->变长SPI接口

然而,FPGA技术复杂,学习门槛较高,许多人(初学者或学生)在学习过程中面临诸多挑战。(1)模式0:SCK串行时钟线空闲是为低电平,数据在SCK时钟的上升沿被采样,数据在SCK时钟的下降沿切换,CPOL= 0,CPHA=0;(2)模式1:SCK串行时钟线空闲是为低电平,数据在SCK时钟的下降沿被采样,数据在SCK时钟的上升沿切换,CPOL= 0,CPHA=1;(3)模式3:SCK串行时钟线空闲是为高电平,数据在SCK时钟的上升沿被采样,数据在SCK时钟的下降沿切换,CPOL= 1,CPHA=1;

m0_46498597的博客 178

操作系统学习笔记(一)

1.1 什么是操作系统 1、操作系统的核心目标是()B A.管理硬件 B.运行程序 C.让用户方便使用 D.提高CPU利用率 解释: 2、从设备到本地缓冲之间传输数据由()完成。A A.I/O控制器 B.CPU C.设备机械装置 D.内存 解释: 3、CPU和设备控制器可并行工作,但不同的设备控制器都不能并行工作。× 4、操作系统是所有软件中最底层的软件。√ 5、操作系统只管理硬件资源。× 1...

海到无边天作岸 山登绝顶我为峰 5816

飞牛fnNAS免费内网穿透之zerotier篇

本文介绍了如何通过ZeroTier实现飞牛NAS的远程文件共享。首先,用户需要在ZeroTier官网注册账号并创建虚拟局域网。接着,分别在Windows和飞牛NAS上安装ZeroTier客户端,并通过SSH登录飞牛NAS进行配置。安装完成后,用户可以在ZeroTier页面中授权设备加入虚拟局域网。最后,通过Windows的“网上邻居”功能访问飞牛NAS的共享文件夹,实现跨局域网的文件共享。这种方法不仅适用于文件共享,还可以用于打印机共享和远程桌面连接。

dgnankai的专栏 2466

YOLOv11在视频流中的时序建模改进-(加入ConvLSTM或Transformer捕捉帧间关联)

本文提出了一种结合ConvLSTM和Transformer的改进YOLOv11算法,用于增强视频目标检测的时序建模能力。针对视频检测中运动模糊、遮挡等挑战,研究分析了ConvLSTM的局部时空特征建模和Transformer的全局注意力机制之间的互补性。通过数学公式详细阐述了ConvLSTM的门控机制和Transformer的自注意力计算原理,并提出分层融合策略:底层使用ConvLSTM处理高分辨率特征捕捉局部运动,高层应用Transformer建立全局时空关联。改进方案在YOLOv11架构中插入时序增强模

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 680
上一篇: 操作系统的设计与实现(笔记6)——I/O
下一篇: 单点登录2 (https://blog.youkuaiyun.com/javaloveiphone/article/details/52439613)
wiscourper_
博客等级 码龄17年 1641粉丝 272原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值