[3]-操作系统

来源:互联网 发布:韩国进出口贸易数据 编辑:程序博客网 时间:2024/06/01 22:09

简短

  • 直接内存访问DMA:独立于CPU,设备-内存
  • 通道:独立于CPU,有自己的指令系统,管理IO操作
  • Spooling:用软件技术模拟独享设备的工作
  • 页表:每一个作业都有关于自己的页表
  • 请页静态替换:OPT理想、LRU、LFU、FIFO

进程:资源分配的基本单位 程序+数据+PCB

  • 进程间通信
    • 信号量、信号
    • 管道、消息队列
    • 共享内存、套接字

线程:独立调度的基本单位

  • 线程同步通信
    • 信号量、信号
    • 互斥量、临界区

死锁

  • 定义:多个进程因为竞争资源,造成的互相等待的现象
  • 原因:系统资源不足、推进顺序不合理
  • 必要条件:互斥、 请求保持、非剥夺、循环等待
  • 处理策略
    • 预防:破坏必要条件
    • 避免:银行家算法
    • 检测:资源分配图检查环路
    • 恢复

死锁例子:+m1 +m2 -m1 +m1

  • 线程T1持有锁L1并且申请获得锁L2
  • 而另一个线程T2持有锁L2并且申请获得锁L1
  • 因为默认的锁申请操作都是阻塞的,所以线程T1和T2永远被阻塞了

实模式、保护模式

  • 实模式:程序通过段地址:偏移值直接访问物理内存
  • 保护模式
    • 程序通过段选择:偏移值访问虚拟内存
    • 然后操作系统通过全局描述符表将虚拟内存转为物理地址
    • 好处:进程有了严格边界,任何进程无法访问不属于自己进程的物理内存

缓冲区溢出

  • 定义:计算机向缓冲区填充数据时,超过了本身的容量,溢出的数据覆盖在合法数据上
  • 原因:程序没有仔细检查用户输入的参数
  • 危害:攻击,堆栈溢出,函数返回时,跳转到任意地址
    • 程序崩溃并拒绝服务
    • 跳转并执行恶意代码

0 0
原创粉丝点击