in Operating System retagged by
29 votes

In the index allocation scheme of blocks to a file, the maximum possible size of the file depends on

  1. the size of the blocks, and the size of the address of the blocks.
  2. the number of blocks used for the index, and the size of the blocks.
  3. the size of the blocks, the number of blocks used for the index, and the size of the address of the blocks.
  4. None of the above
in Operating System retagged by

1 comment

This question belong to Operating System's File System

Tags: operating-system file-system

Subscribe to GO Classes for GATE CSE 2022

4 Answers

51 votes
Best answer

In Index allocation size of maximum file can be derived like following:

No of addressable blocks using one Index block $(A)=$ Size of block / Size of block address

No of block addresses available for addressing one file $(B)=$

No of Maximum blocks we can use for the Index *  No of addressable blocks using one Index block $(A)$

Size of File = $B$ * Size of Block

So, it is clear that:

Answer is (C).

A & B are incomplete.

edited by


Akash ,

I have a doubt -  

Total Size  of File = Size of Access Structure  + Size of the total records stored.

so in option C  , is the size of the address of the blocks nothing but the size of blocks storing the records ?
What about the search key value..??

To know the No of addressable blocks we should know the search key value
@Akash Kanase

The number of addressable blocks should be = size of block/(size of key field + size of block address)

So it also depends on key field.So how option C is correct.
One confusion I will clear that in this A ie. SIze of the block/Size of the Block Address is actually the total no of keys in that Index block if you see it intuitively.
9 votes

As the size of the block increases, file size increases (Keeping number of blocks constant).

As the number of blocks for index increases, number of index entries increases (keeping size of block contstant) and so file size increases (we cannot have an index record without it's corresponding file record so as i keep on increasing index records even file records increases)

As the block address size increases,  number of index entries decreases (keeping block size and number of blocks constant) and so file number of file records decreases and so file size decreases.

So option C) 

1 comment

As the size of key field increases ( keeping number of blocks and size of block and address of block constant ) , then number of index entries per block decreases .So the file size should also decrease due to key field i.e file size should depends on key field.So why option C is correct.
5 votes

someone please verify.  answer answer is C. 

First some background on indexing.

File is stored in form of blocks in hard disk. File is made up of records, each record has some key field on which indexes are created(for faster access of file). suppose record is of 64 byte and key field is of 14 byte. hence we create index  on this 14 byte key field(not necessary as you can index on non key field also). Apart from 14 bytes of key field it must also include block address in which record with this key value is present . lets say block address is 2 byte.

Now come to question

size of the index file directly proportional to number of blocks used for the index

if we have 1000 records. there will be 1000(14+2) Bytes for index. If we store all of them in single block(provided it fits in single block) there will not be multilevel indexing, hence no memory needed to store secondary indexes.

I still have doubt in this .

size of block  

If size of block is large we can accommodate  more indexes per block hence number of levels in indexing is less hence file size is lesser.

siz of address of block 

If block size becomes 1 byte instead of 2 byte , we need less number of block hence file size is less

please correct me if my answer is wrong.

1 vote

The question simply means "The size of the file(data+ index)depends upon which factor"

1) Size of the Block= True if the block size is more, it can accommodate more no of row or tuples or data, and indexing could be done of 1st row in a block(SPARSE INDEXING). Hence index size will be decreased.

2) No. of block used for Indexing = Although it looks true but it is false because we can not decide, how many blocks needed to store database in memory. It will store the complete database in memory and moreover we can not decide on which block there should be indexing is done & which block not to be. So "no of Block" is fine but "no of blocks used for indexing " is the wrong statement.

3) Size of the address of block= True, because record pointer in index file stores key and corresponding address of block where it is stored.

So in my opinion the answer should be A

edited by

Related questions