The Gateway to Computer Science Excellence

+3 votes

Consider a disk with $c$ cylinders, $t$ tracks per cylinder, $s$ sectors per track and a sector length $s_l$. A logical file $d_l$ with fixed record length $r_l$ is stored continuously on this disk starting at location $(c_L, t_L, s_L)$, where $c_L, t_L$ and $S_L$ are the cylinder, track and sector numbers, respectively. Derive the formula to calculate the disk address (i.e. cylinder, track and sector) of a logical record n assuming that $r_l=s_l$.

+4 votes

**GIVEN**:Consider a disk with c cylinders, t tracks per cylinder, s sectors per track

from this we can conclude that 1 cylinders contain = t*s sectors

and one track contain =s sectors

**now we have to drive formula of logical address n**

**so the **cylinder no is $\left \lfloor \left ( \frac{n}{ts} \right ) \right \rfloor$

and track no will be floor of ( (n%ts)/s)

and sector no will be n%s

+1 vote

disk address= cL(C)+tL(t)+SL(s)

we must know the cylinder number and track number in advance then only we can calculate the address of of record

we must know the cylinder number and track number in advance then only we can calculate the address of of record

+1 vote

Here logical file size d1

Now , d1 has n records of size r1

So, d1= n r1

No of sectors for the file say (sec)=n r1 % s [Now, r1=s1, then sec=0]

No of tracks say (track) =sec % t

No. of cylinder say (cyl)= sec / t

Now, disk address of the logical record is <c_{L ,}t_{L , }s_{L}>+ <cyl, track,sec>

0 votes

n%s will give the number of sectors left after making n records as groups of 's' sectors.

Now we need to add it to S*L *and check whether it will fill the current track and if yes then we will have to take that into consideration too.

Therefore, sector number of the nth record will be, let Sn= [ S*L* + (n%s) ]%s

Now for finding track number,we start with total number of tracks = n/s.

BUT we again need to check whether on adding it to T*L, will* it fill the current track.

Temp=[ S*L* + (n%s) ]÷s ,

just consider the non fractional part, it will tell us whether we need to jump track for leftover sectors. If 0._ that means we don't need extra track or else if 1._ then we need one extra track jump.

Therefore, track number of the nth record will be, let Tn = T*L* + (n/s) + Temp

And cylinder number of nth record Cn = C*L *+ (Tn - T*L*)/t

52,315 questions

60,436 answers

201,777 comments

95,257 users