
operate system
浩south
这个作者很懒,什么都没留下…
展开
-
虚拟地址和物理地址(1)
物理内存其实就是RAM。RAM和ROM的区别说一下,因为RAM的读取速度要比ROM快很多,但是也贵很多,所以RAM也被放在离CPU更近的地方。如果我们的程序都存放在ROM里面,每次读取数据和指令都得跑到磁盘上去取,速度就会很慢,也造成了CPU性能的浪费。所以说RAM的大小关乎程序运行的性能。 但是,假设我们运行一个程序,就把这个程序所以资源全部装载到内存,会遇到这些问题: ...原创 2018-04-19 19:07:13 · 259 阅读 · 0 评论 -
虚拟地址和物理地址(2)
注意: *这里讨论的以Windows下普通模式分页的情况, 也就是2级页表的情况*1.首先把虚拟地址拆分成3个部分(低12位, 中10位, 高10位), 换成2进制如下: -> 0000 0001 10101111 0101 0101 0001 1000 按照10, 10, 12的位数重新排列后 -> (页目录索引)00 000 00110, (页表项索引)10 111...原创 2018-04-19 19:16:40 · 600 阅读 · 0 评论 -
进程线程
表面上看来我们在对计算机操作的时候,我们同时能够听歌,还能打字,屏幕还能显示。。。严格来说在某一特定的时间内,CPU上只有一个进程在执行,在一秒内会有很多的进程进行不断的切换,这样就产生了一种并行的错觉。 为了能够立即进程的概念,打个比方。一个而学家在为他的女儿做一份早餐,他有做早餐的食谱,材料。那么早餐的食谱就是程序————有代码和算法组成。科学家自己就是CPU,科学家去洗菜,炒菜...翻译 2018-04-19 19:17:50 · 125 阅读 · 0 评论 -
管程
一 什么是管程? 管程是一个有过程,变量和数据结构等组成的集合。官方给的定义很模糊,不过应该可以这样理解:管程可以看做是一个类,里面定义一些方法,这些方法完成了对临界区的操作,进程要想进入临界区,只要调用管程里面的方法即可。 二管程如何实现互斥? 管程的互斥由编译器来决定,这样程序员就不用操心互斥如何实现,因为管程天然的就实现了互斥 ...转载 2018-04-19 19:20:24 · 788 阅读 · 0 评论 -
互斥问题
上次我们学习到在进程中的线程对于数据是共享的,那在一个线程对数据进行操作的时候,很有可能遇到中断,将那个线程正在处理的数据进行修改,而中断事件之后,原来的线程还是以为用到的数据就是正确的,这就造成了错误。这里给出临界区的定义————对共享内存进行访问的程序片段。 为了避免这种情况,我们需要保证在一个线程对临界区进行操作的时候,其他线程不会进入临界区,这就是互斥问题。 最...原创 2018-04-19 19:21:39 · 455 阅读 · 0 评论