Wilder's Blog.

每月一牛客———并发篇(2)

字数统计: 596阅读时长: 2 min
2018/09/16 Share

SQL 题目

2018.9.16

  • 轮询调度和可抢占式调度
    • 轮询调度的原理是每一次把来自用户的请求轮流分配给内部中的服务器,从1开始直到N(内部服务器的个数),然后重新开始循环。只有在当前任务主动放弃CPU控制权的情况下(比如任务挂起),才允许其它任务(包括高优先级的任务)控制CPU。它的优点是简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度,但不利于后面的请求及时得到响应。
    • 抢占式调度允许高优先级的任务打断当前执行的任务,抢占CPU的控制权。这有利于后面的高优先级任务也能及时得到响应。但实现相对比较复杂且可能出现低优先级的任务长期得不到调度。
  • 产生死锁的主要原因
    • 系统资源不足
    • 进程运行推进的顺序不合适
    • 资源分配不当等
  • 产生死锁的四个必要条件
    • 互斥条件:一个资源每次只能被一个进程使用
    • 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放
    • 不可剥夺条件:进程已经获得的资源,在未使用完之前不能强行剥夺
    • 循环等待条件:若干个进程之间形成一条头尾相接的循环等待资源关系
  • 同步机制应该遵循的准则
    • 空闲让进:当无进程处于进阶区时,表明临街资源处于空闲状态,允许一个请求进入临界区的进程立即进入临界区,以有效利用临界资源
    • 忙则等待:当已有进程处于临界区时,表明临界资源正在被访问,因而其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问
    • 有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入死等状态
    • 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态
CATALOG
  1. 1. SQL 题目
    1. 1.1. 2018.9.16