一,内存部分
1.请简单描述Windows内存管理的方法。
答:
内存管理是操作系统中的重要部分,两三句话恐怕谁也说不清楚吧~~
我先说个大概,希望能够抛砖引玉吧
当程序运行时需要从内存中读出这段程序的代码。代码的位置必须
在物理内存中才能被运行,由于现在的操作系统中有非常多的程序
运行着,内存中不能够完全放下,所以引出了虚拟内存的概念。把
哪些不常用的程序片断就放入虚拟内存,当需要用到它的时候在load
入主存(物理内存)中。这个就是内存管理所要做的事。内存管理
还有另外一件事需要做:计算程序片段在主存中的物理位置,以便
CPU调度。
内存管理有块式管理,页式管理,段式和段页式管理。现在常用段
页式管理
块式管理:把主存分为一大块、一大块的,当所需的程序片断不在
主存时就分配一块主存空间,把程 序片断load入主存,就算所需的
程序片度只有几个字节也只能把这一块分配给它。这样会造成很大
的浪费,平均浪费了50%的内存空间,但时易于管理。
页式管理:把主存分为一页一页的,每一页的空间要比一块一块的
空间小很多,显然这种方法的空间利用率要比块式管理高很多。
段式管理:把主存分为一段一段的,每一段的空间又要比一页一页的
空间小很多,这种方法在空间利用率上又比页式管理高很多,但是也
有另外一个缺点。一个程序片断可能会被分为几十段,这样很多时间
就会被浪费在计算每一段的物理地址上(计算机最耗时间的大家都知
道是I/O吧)。
段页式管理:结合了段式管理和页式管理的优点。把主存分为若干页
,每一页又分为若干段。好处就很明显,不用我多说了吧。
各种内存管理都有它自己的方法来计算出程序片断在主存中的物理地
址,其实都很相似。
这只是一个大概而已,不足以说明内存管理的皮毛。无论哪一本操作
系统书上都有详细的讲解
--------------------------------------------------------------------------
二:进程
2:进程间通信的方式有?
进程间通信的方式有 共享内存, 管道 ,Socket ,消息队列 , DDE等
--------------------------------------------------------------------------
32.简述Critical Section和Mutex的不同点
答:
对几种同步对象的总结
1.Critical Section
A.速度快
B.不能用于不同进程
C.不能进行资源统计(每次只可以有一个线程对共享资源进行存取)
2.Mutex
A.速度慢
B.可用于不同进程
C.不能进行资源统计
3.Semaphore
A.速度慢
B.可用于不同进程
C.可进行资源统计(可以让一个或超过一个线程对共享资源进行存取)
4.Event
A.速度慢
B.可用于不同进程
C.可进行资源统计
1: 什么是Virtual Memory, 其作用是什么?
2: OS相关的问题,内存访问,cache等(包括cache在整个系统中的位置,画出来,并解释)
3: 解释例如mov ax,100H 这样一条指令的cpu, os, memory等都完成了什么样的工作。
4: GDT and LDT