临界资源及临界区(内核/普通)以及三种进程不能切换的情况

临界资源和临界区

临界资源:虽然进程可以共享系统中的各种资源,但其中许多资源一次只能为一个进程所用,我们将一个时间段内只允许一个进程使用的资源。各进程需要互斥地访问的资源叫做临界资源。

普通临界资源:如打印机,摄像头等,进程访问这些资源的时候,运行速度很慢,并且会阻塞其他请求这一资源的进程,知道本进程结束,才在等待队列中唤醒一个等待的进程

我们可以将对临界资源的访问分为四个部分:进入区(检查并上锁)、临界区、退出区(标志清除)和剩余区。

临界区:访问临界资源资源的那段代码。

内核程序临界区

内核程序临界区:用于访问某种内核数据结构,比如进程的就绪队列(由各就绪进程的PCB组成) 进入内核临界区后,进程需要独占式访问,理论上必须枷锁,以防止其他进程入内,解锁前不应切换到其他进程,以加快临界区的释放
重要:进程在操作系统内核临界区中不能进行调度与切换。

不能进行进程切换的三种情况

  • 在处理中断的过程中。中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行进程切换。
  • 进程在操作系统内核程序临界区中。
  • 在原子操作过程中(原语)。原子操作不可中断,要一气呵成。(如修改PCB的进程状态标志,并把其放入进程对列,必须一步完成)
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gary101818/article/details/124198452
今日推荐