临界资源一定是不可剥夺的吗?
不一定。临界资源是在任何时刻只允许一个进程访问的资源。但这个资源是否是“不可剥夺的”取决于系统的策略和设计。
不可剥夺的资源:当一个进程获得了某种资源后,直到该进程释放资源之前,其他进程都不能夺走它。例如,某些实时操作系统中,一旦一个任务获得了CPU控制权,就不能被剥夺,直到该任务完成或达到其分配的时间片为止。
可剥夺的资源:如果一个进程正在使用某种资源,操作系统可以中断该进程的执行并将资源分配给另一个进程。这常常是为了满足某些优先级策略或避免死锁。例如,在许多操作系统中,当一个高优先级的进程就绪并请求CPU时,一个正在运行的低优先级进程可能会被剥夺CPU。
对于临界资源的管理,重要的是确保在任何时刻只有一个进程访问它,以避免竞态条件。是否可以剥夺这种资源取决于特定的应用和设计需求。
可剥夺性资源:CPU、RAM等;
非剥夺性资源:打印机、磁带机等:还没用完,就不能强行抢走资源;
临时性资源:通信数据。
系统中配备的非剥夺性资源的数量不能满足诸进程运行的需要时,会使进程因争夺资源而陷入僵局。