N.B.: in V7 (and 32V), inodes are locked identically for both writes and reads[1],
if((ip->i_mode&(IFCHR&IFBLK)) == 0)
plock(ip);
if(mode == FREAD)
readi(ip);
else
writei(ip);
if((ip->i_mode&(IFCHR&IFBLK)) == 0)
prele(ip);
I imagine a more serious bottleneck to random read/write concurrency would have been disk performance.Average seek time / rotational latency (years by manual copyright, so estimated):
RL02 (1978): 55 ms / 12.5 ms RK07 (1978): 36.5 ms / 12.5 ms RA81 (1982): 28 ms / 8.3 ms RA92 (1989): 16 ms / 8.3 ms.
Note that the RL02 (and V7) and RA92 mentioned in the article are separated by about a decade.
[1] https://github.com/dspinellis/unix-history-repo/blob/Researc...
Maybe? You're probably locking each block at a time in the buffer cache during reads anyway.