语言 计算机课程
课程语言学习
soul? mate
这个作者很懒,什么都没留下…
展开
-
”程序行为的工作集模型“学习记录
读了这篇文章,真正讲工作集模型的部分是没看懂的,只是对内存管理有了理解。缺乏对资源分配的一般处理的最基本的原因可能是缺乏一个适当的程序行为模型,所以建立了一个新的模型——工作集模型。工作集的目的是为通用计算机系统或计算机实用程序的行为建模,开发统一的方法来解决流程调度和内存管理。首先根据系统需求,在多程序环境中对过程行为进行建模,但是流程行为应仅基于其动态资源需求进行建模,不能期望来自用户的输入或来自编译器的帮助。每个进程都有自己的虚拟机,该虚拟机由处理器和无限的一级虚拟内存组成,仅按需引入页面。背景章原创 2020-06-13 10:14:13 · 336 阅读 · 0 评论 -
初识ACRN
为了满足物联网产品的实时约束等需求,现有的嵌入式虚拟化解决方案通常针对特定的物联网场景进行定制,这使得它们很难扩展到各种场景。此外,大多数商业解决方案都价格昂贵且封闭源代码,基于这种情况,2018年3月,由Linux基金会发布了具有小型化、实时性、可适应性、开源性等特点的嵌入式系统管理程序—ACRN。英特尔工程师王禹在LC3开源盛会介绍了 “ACRN” 的名字由来和美好寓意,ACRN 与 “a...原创 2020-04-18 13:21:02 · 2143 阅读 · 0 评论 -
初识VMM
三篇文章就VMM、虚拟机和容器的性能比较作了详细介绍对以下问题予以解决:如何虚拟化操作系统下的机器大多数现代CPU架构的设计都不是可虚拟化的如何在无法虚拟化的cpu上实现VMM。虚拟化让一台机器上可以运行多种操作系统类型和版本,文章通过讨论Disco的基本技术,了解虚拟化工作机制。要在虚拟机监视器上运行虚拟机所使用的基本技术是有限的直接执行,也就是操作系统如何虚拟化CPU...原创 2020-04-18 13:20:43 · 763 阅读 · 0 评论 -
微内核学习记录
微内核设计的基本思想是简化内核功能,这个概念从提出开始就在不断地发展、完善进步。第一代微内核的主要代表是Mach,一个由卡内基梅隆大学开发的用于支持操作系统研究的操作系统内核。该项目在1985年启动,并且在1994年因为mach3.0的显著失败而告终。设计Mach的目的是替代传统的UNIX内核,所以他对UNIX是有兼容性的,实验证明Mach 2.5的效率最多比UNIX少25%,但是考虑到M...原创 2020-04-01 22:06:59 · 382 阅读 · 0 评论 -
MULTICS摘录
“Exokernel: An Operating System Architecture forApplication-Level Resource Management”主要介绍了一个“外内核”,重点研究了exokernel的体系结构设计,以及如何安全高效地实现exokernel。文章第2节提供了关于exokernels的更详细的案例。第3节讨论了设计中出现的问题。第4节Aegis和Ex...原创 2020-03-22 14:08:34 · 428 阅读 · 0 评论 -
Multiprogramming System观感
读Dijkstra的“The Structure of the‘THE’-Multiprogramming System”了解Multiprogramming System,Dijkstra在这篇文章中介绍了系统结构,设计过程以及一些经验。在这个系统中,所有的程序,I/O设备,都被抽象成了一个进程,即一个顺序执行指令的程序。不同进程之间使用同步机制来协调,使用消息message interpr...原创 2020-03-14 20:26:21 · 391 阅读 · 0 评论 -
modbus指令集(转载)
2、 Modbus RTU报文基本格式起始应有 不小于3.5个字符的报文间隔目标站号功能码数据CRC校验码1字节1字节N字节2字节 2.1 Modbus命令简介注:下面对于各请求命令的“应答格式”的描述是指命令被正确执行时的应答格式。若CPU接收到错误的命令或者命令被执行错误,则返回的应答帧中“功能码”部分变为如下数...转载 2020-08-12 21:33:30 · 1755 阅读 · 0 评论 -
* 与++优先级
前缀递增递减和*优先级相同,从右到左;后缀递增递减比前缀优先级高,从左到右。int arr[5] = { 1,3,5,7,9 };int *p = arr;比如*++p:p先自+,然后*p,最终为3——马上改变指针,*下一个指针*p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1] ————之后改变指针,*原数据,指针++*(p++):效果等同于*p++ ——之后改变指针,*原数据,指针++(*p)++:先*p,即arr[0]=1,然后1++,该语...转载 2020-08-10 13:24:18 · 634 阅读 · 0 评论 -
__DATE__和__TIME__
printf("%s–%s",TIME,DATE);这样就可以了,在你编译的时候,这个时间就是确定的了,它记录的是你最后一次编译的时间。然后无论你程序运行了多少次,这个时间都是不变的,所以你就可以从这个编译的时间来判断程序是什么时候编写的了,但是重新编译的话这个时间就会被改变。unsigned char code DataStr[]=DATE;unsigned char code TimeStr[]=TIME;这样,编译后TimeStr的字符串正好是编译的当前时刻,相当于unsigned char转载 2020-07-31 21:25:03 · 1005 阅读 · 0 评论 -
printf()、sprintf()、vsprintf()
C语言printf()、sprintf()、vsprintf()的区别与联系printf() 在控制台应用程序中最为常用,使用也很简单。其参数为格式化字符串。函数原型:printf(const char *format,[argument]);例如:int a=1,b=2;printf("a=%d,b=%d",a,b);输出:a=1,b=2sprintf() 用于将输出存到字符缓冲中。函数原型...转载 2020-07-23 08:48:08 · 262 阅读 · 0 评论