10.什么是进程和线程?有何区别?
  线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.
  线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.
  11.Windows下的内存是如何管理的?
  Window操纵内存可以分两个层面:物理内存和虚拟内存。
  其中物理内存由系统管理,不允许应用程序直接访问,应用程序可见的只有一    个2G地址空间,而内存分配是通过堆进行的,对于每个进程都有自己的默认堆,当一个堆创建后,通过虚拟内存操作保留了相应大小的地址块(不占有实际的内 存,系统消耗很小),当在堆上分配一块内存时,系统在堆的地址表里找到一个空闲块(如果找不到,且堆创建属性是可扩充的,则扩充堆大小)为这个空闲块所包 含的所有内存页提交物理对象(物理内存上或硬盘上的交换文件上)。这时可以访问这部分地址了。提交时,系统将对所有进程的内存统一调配,如果物理内存不 够,系统试图把一部分进程暂时不访问的页放入交换文件,以腾出部分物理内存。释放内存时,只在堆中将所在的页解除提交(相应的物理对象被解除),继续保留 地址空间。
  如果要知道某个地址是否被占用/可不可以访问,只要查询此地址的虚拟内存状VirtualQuery),如果是提交,则可以访问。如果仅仅保留,或没保留,则产生一 个  软件异常。此外有些内存页可以设置各种属性。如果是只读,向内写也会产生软件异常
  12.操作系统的内容分为几块?什么叫做虚拟内存?优点管理属于操作系统的内容吗?
  13.进程是一个比较重要的概念,那么进程有哪几种状态?
  基本状态有3种,即ready(绪),running(运行),wait(等待).
  14.说出你所知道的保持进程同步的方法?
  进程间同步的主要方法有内存屏障,互斥锁,信号量和锁,管程,消息,管道
  15.OS中如何实现物理地址到逻辑志址的转换?
  16.解释一下分页式管理。
  用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配.
  17.什么是死锁,其条件是什么?怎么避免死锁?
  死锁是指,在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它们现在保持着的资源,否则不能向前推进.此时,每个进程都占用了 一定的资源但是又不能向前推进,称这一组进程产生了死锁. 通俗的讲,是两个或多个进程无止境的等候着永远不会成立的条件的一种系统状态. 其条件是为
  1.互斥:存在这样一种资源,它在某个时刻只能被分配给一个执行绪使用;
  2.持有:当请求的资源已被占用从而导致执行绪阻塞时,资源占用者不但无需释放该资源,而且还可以继续请求更多资源;
  3.不可剥夺:执行绪获得到的互斥资源不可被强行剥夺,换句话说,只有资源占用者自己才能释放资源;
  4.环形等待:若干执行绪以不同的次序获取互斥资源,从而在由多个执行绪组成的环形链中,每个执行绪都在等待下一个执行绪释放它持有的资源。
  避免死锁:按顺序访问,事务小化
  18.什么是缓冲区溢出?有什么危害?其原因是什么?
  缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢出的数据覆盖在合法数据上,
  危害:在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出,其中的例子是1988年利用fingerd漏洞的蠕虫。而缓冲区溢出 中,为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害一种是程序崩溃导致拒绝服务, 另外一种是跳转并且执行一段恶意代码,比如得到shell,然后为所欲为。
  通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数
  19.什么是临界区?如何解决冲突?
  每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允许其他进程进入。
  ① 如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
  ② 任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
  ③ 进入临界区的进程要在有间内退出,以便其它进程能及时进入自己的临界区。
  ④ 如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
  20.解释一下P操作与V操作。
  P是请求资源,V是释放资源
  21.中断和轮询的特点。