C++随笔

  1. 用户态和内核态:
    用户态是3级特权(最低特权),内核态是0级特权(最高特权),以下三种情况会从用户态切换到内核态:
    1、系统调用。是用户态主动要求切换到内核的一种方式,比如fork()是通过中断来实现的。
    2、异常。
    3、外围设备中断。
  2. 用户栈和内核栈:
    内核栈是操作系统空间的一块区域,用于保存操作系统子进程间的调用,保护中断现场;用户栈是用户空间的一块区域,用于保存用户进程的相互调用。
    如果只有系统栈(大小有限),可能内存不足;如果只有用户栈,则不能提供相应的保护措施。
  3. 内存池和线程(进程)池:
    内存池:程序预先从操作系统申请一块足够大的内存,当需要时直接从内存池获取,当释放时返回内存池,最后程序退出时才真正的释放内存。
    进程(线程)池:启动若干的线程(进程)并处于睡眠状态,当需要时唤醒一个线程(进程),用完又处于睡眠状态。
  4. 死锁:
    必要条件:
    1、互斥条件:一个资源每次只能被一个进程使用;
    2、请求与保持条件:进程因请求资源而阻塞,对已获得的资源保持不放;
    3、不剥夺条件:对于已获得的资源,未使用完不能强行剥夺;
    4、循环等待条件:进程间形成循环等待资源。
    若系统发生死锁,则上述四个条件都成立。
  5. 进程调度算法:
    1、按先后(长短)顺序
    1.1、先来先服务(FCFS):有利于长作业(进程)、CPU繁忙型;不利于短作业(进程)、I/O繁忙型。
    1.2、短作业(进程)优先调度算法(SJ/PF):反之。
    2、按优先权
    2.1、最高优先权优先(FPF)
    2.2、高响应比优先:弥补FPF的不足,引入动态优先权,使得优先等级随着时间增加而提高。
    3、基于时间片的轮转调度算法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值