A. 硬盘是不是临界资源
从应用程序的角度看,硬盘是以文件为单位进行操作的,对文件写入之前必须先加锁,这个操作的原子性是在操作系统完成的,每个文件是一个临界资源,不同的文件之间的操作是不互斥的。当然如果直接进行底层调用修改磁盘数据,那就和下面说的操作系统相同了
从操作系统或者驱动程序的角度看,硬盘是以磁道为单位进行操作的,无论是DMA方式还是PIO方式,同一时间都只能操作一个位置,整个磁盘是一个资源
从硬盘自身的控制层面来看,一个操作序列下发之后,默认情况下是必须按照顺序进行操作的,但是如果支持NCQ的话,可以对操作的顺序进行更改以适应磁头移动的轨迹。但是需要注意的是,一个磁盘即使有多个磁头,也只有一个音圈马达来控制,所以整个磁盘同一时间只能操作一个位置。
====================================================================
从操作系统看,硬盘是临界资源,但要注意对应用程序的呈现
B. 所有共享资源都是临界资源嘛,不怎么清楚啊,求讲解
不是所有的共享资源都是临界资源。因为临界资源是一次仅允许一个进程使用的资源,而系统中有很多资源可以让多个进程同时使用,例如硬盘、正文段等。