01 September 2014

操作系统笔记

  1. 进程与线程的区别
    • 进程是拥有资源的基本单位,线程是进程的一个实体,是调度资源的基本单位。线程共享进程资源。
    • 进程的撤销和建立开销较大。
  2. 程序与进程区别
    • 进程是个动态概念,程序是静态概念
    • 进程具有并行特征,程序不反映
    • 进程是竞争系统资源的基本单位,程序不反映
    • 不同进程可以包含同一程序,只要程序对应的数据集不同
  3. I/O控制方式
    • 轮询
    • 中断
    • 直接存储器(DMA);不通过CPU完成
    • I/O管道
  4. 就绪态与阻塞态
    • 进程已获得了除CPU以外的所有资源
    • 进程由于某事件(如请求IO)而放弃CPU
  5. 分页和分段存储管理
    • 页是信息的物理单位,页大小固定,地址一维(一个地址就能确定页号和页内地址)
    • 段是信息的逻辑单位,段大小不固定,地址二维(需要段号和段内地址)
  6. 进程间通信方式
    • 管道机制
    • 共享内存
    • 信号机制
    • 信号量机制
    • 消息队列
    • socket机制
  7. 线程间通信方式
    • 锁机制
    • 信号量机制
    • 信号机制
  8. 系统通过树形目录结构来解决重名问题

  9. 死锁
    • 概念 每个进程都持有某种资源而又等待别的进程释放它或它们现在保持的资源,称这一组进程产生了死锁。
    • 产生的原因:
      • 竞争资源
      • 进程推进顺序不当
    • 死锁的必要条件:
      • 互斥条件
      • 不可剥夺条件
      • 请求和保持条件
      • 循环等待条件
  10. 操作系统的基本功能
    • 处理机管理
    • 存储管理
    • 设备管理
    • 信息管理
    • 用户接口
  11. 线程同步的方式和机制
    • 临界区
    • 互斥量
    • 信号量
    • 事件
  12. 什么是线程安全

    如果你的代码在多线程中同时运行的结果和单线程运行的结果是一样的,变量的值也和预期一样,就是线程安全的。

    如何保证线程安全,参考上一问题:线程同步

  13. 8位有符号型整数,-1的补码是多少

    -1的补码等于1的源码取反加1,带符号位一起取反 0000 0001==>1111 1111 -1的补码取反加1能得到1的源码

    则最小的负数是 1000 0000==>取反加1还是本身 -256 最大的整数时0111 1111==>255 1000 0001==>0111 1111=-255

    求一个负数的补码,只要把这个数的整数连同符号位取反加1即可

  14. 硬链接、软链接区别

    linux系统中的硬连接有两个限制:不能跨越文件系统和不允许普通用户对目录作硬连接。

  软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。

  1. 进程调度算法
    • 先来先服务
    • 短作业优先
    • 高优先级优先
      • 优先权 动态、静态、高响应比属于动态
    • 时间片轮转
  2. 页面调度算法 算法好坏的依据:命中率高

    • 先进先出 FIFO
    • 最近最少使用 LFU
    • 最近最不常用 LRU
    • 最优替换算法 OPT
  3. 空闲分区分配算法

    • 首先适应算法
    • 最佳适应算法
    • 最坏适应算法
  4. 缓冲区溢出

    缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,使得溢出的数据覆盖在合法数据上。

    覆盖函数的返回地址,跳转到恶意代码上。

  5. 虚拟地址

    虚拟地址(Virtual Address)标识一个非物理的实体地址。 CPU(准确来说,是MMU,即Memory Management Unit,内存管理单元)会自动根据页目录和页表中的信息,把虚拟地址转换成物理地址,完成该指令。



blog comments powered by Disqus