操作系统 临界资源 临界区

为了保护共享资源,不让多个进程同时访问这个共享资源,即阻止多个进程同时进入访问这些资源的代码段,这个代码段称为临界区(也称为管程),这种一次只允许一个进程访问的资源称为临界资源.

临界资源是指每次仅允许一个进程访问的资源.

属于临界资源的硬件有打印机磁带机等,软件有消息缓冲队列、变量数组、缓冲区等。 诸进程间应采取互斥方式,实现对这种资源的共享。

每个进程中访问临界资源的那段代码称为临界区。显然,若能保证诸进程互斥地进入自己的临界区,便可实现诸进程对临界资源的互斥访问。为此,每个进程在进入临界区之前,应先对欲访问的临界资源进行检查,看它是否正被访问。如果此刻该临界资源未被访问,进程便可进入临界区对该资源进行访问,并设置它正被访问的标志;如果此刻该临界资源正被某进程访问,则本进程不能进入临界区

在操作系统中,有临界区的概念。临界区内放的一般是被1个以上的进程或线程(以下只说进程)共用的数据。

临界区内的数据一次只能同时被一个进程使用,当一个进程使用临界区内的数据时,其他需要使用临界区数据的进程进入等待状态。

操作系统需要合理的分配临界区以达到多进程的同步和互斥关系,如果协调不好,就容易使系统处于不安全状态,甚至出现死锁现象。

那么,硬盘是不是临界资源?

从应用程序的角度看,硬盘是以文件为单位进行操作的,对文件写入之前必须先加锁,这个操作的原子性是在操作系统中完成的,每个文件是一个临界资源,不同的文件之间的操作是不互斥的.当然如果直接进行底层调用修改磁盘数据,那就和下面说的从操作系统角度看相同了;

从操作系统或着驱动程序的角度看,磁盘是以磁道为单位进行操作的,无论是DMA方式还是PIO方式,同一时间都只能操作一个位置,整个硬盘是一个资源;

从硬盘自身的控制层面看,一个操作序列下发之后,默认情况下是必须按照顺序进行操作的,但是如果支持NCQ的话,可以对操作的顺序进行更改以适应磁头移动的轨迹.但需要注意的是,一个硬盘即使有多个磁头,也只有一个音圈马达来控制,所以整个硬盘同一时间只能操作一个位置.

从操作系统的角度看,硬盘是临界资源,但要注意对应用程序的呈现.

注:硬盘是磁盘中的一种,软盘也是磁盘。磁盘就是通过磁性进行读写功能的设备,断电后保存的文件不会丢失。内存也可以储存,但存储的载体和磁盘不同,断电后就不能保存数据。
  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值