
操作系统
文章平均质量分 81
Real_JumpChen
这个作者很懒,什么都没留下…
展开
-
什么变量存放在栈和堆
内容会持续更新,有错误的地方欢迎指正,谢谢!什么是栈区,什么是堆区栈区(stack):由编译器自动分配释放 ,存放函数的参数值、局部变量的值等,内存的分配是连续的,类似于数组,当我们声明变量时,编译器会自动接着当前栈区的结尾来分配内存。堆区(heap):由程序员分配释放, 若程序员不释放,程序结束时由OS回收,内存的分配不是连续的,类似于链表。变量存放的位置C/C++程...原创 2017-12-12 17:27:35 · 14273 阅读 · 2 评论 -
要访问1KB的内存为啥需要10位地址线,而不是13位?
内容会持续更新,有错误的地方欢迎指正,谢谢!博主最近正在学习微机原理与接口技术、计算机组成原理等专业课程,产生了一个疑问:假设地址总线为10位,为什么就可以访问1KB的内存?难道不该是13位,才能访问1KB的内存吗?认真思考过的小伙伴,应该都会有这个疑问,接下来,我来发表一孔之见:大家都知道: 8位(Bit)=1字节(Byte) 1024位(Byte)=1KB 2的10次方=1024 那么就原创 2017-11-26 14:19:17 · 8677 阅读 · 4 评论 -
操作系统—进程和线程
内容会持续更新,有错误的地方欢迎指正,谢谢!进程与线程概念1.从底层cpu的角度去理解进程和线程:进程和线程都是CPU工作时间段的描述,不过是颗粒大小不同。进程的并发: CPU在一个时间片只能执行一个进程,当多个进程要执行时只能轮流着来,当一个进程得到CPU的临幸,相关的资源必须也已就位,然后CPU开始执行,当这个进程执行完了或者分配给它的CPU执行时间用完了,那它就要...原创 2018-01-10 22:31:02 · 828 阅读 · 0 评论 -
操作系统—杂七杂八
内容会持续更新,有错误的地方欢迎指正,谢谢!本文包括:操作系统除了进程和线程、内存管理之外的内容。1、什么是init进程?init进程是系统所有进程的起点,init进程的进程号永远是1。2、什么是内核态、用户态?内核态: CPU可以访问内存所有数据,包括外围设备。所占有的CPU是不允许被抢占的。 用户态: 只能受限的访问内存,且不允许访问外围设备。所占有的CPU是可被抢占的。当在系统中运行一个程序原创 2018-01-12 00:58:15 · 360 阅读 · 0 评论 -
操作系统—内存管理
内容会持续更新,有错误的地方欢迎指正,谢谢!内存管理问题1、什么是局部性原理?时间上的局部性:最近被访问的页在不久的将来还会被访问,例如:循环语句;空间上的局部性:内存中被访问的页周围的页也很可能被访问,例如:使用数组。2、什么是虚拟内存?1).内存的发展历程(了解)没有内存抽象(单进程,除去操作系统所用的内存之外,全部给用户的一个程序使用)有内存抽象...原创 2018-01-12 00:57:00 · 2132 阅读 · 0 评论 -
内存泄漏、内存溢出、内存越界、缓冲区溢出、栈溢出
内容会持续更新,有错误的地方欢迎指正,谢谢!内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。内存溢出(out of memory)是指程序在申请内存时,没有足够的内存空间供其使用。内存泄漏最终会导致内存溢出。内存越界是指向系统申请一块内存后,使用时超出申请范围。缓冲区溢出是指向缓冲区内填充原创 2018-04-01 10:34:23 · 1794 阅读 · 0 评论