Files को disk blocks में स्टोर करना allocation कहलाता है। file Allocation methods यह define करती है कि disk block में कोई भी फाइल किस प्रकार store होती है। ऑपरेटिंग सिस्टम में files को डिस्क ब्लॉक में स्टोर करने के लिए तीन allocation methods का प्रयोग किया जाता है जो कि निम्नलिखित है:-
- Contiguous Allocation
- Linked Allocation
- Indexed Allocation
इन तीनों विधियों का प्रयोग disk blocks को प्रभावपूर्ण रूप से utilize करने तथा files को तेजी से एक्सेस करने के लिए किया जाता है। परन्तु इन तीनों के कुछ लाभ है तथा कुछ हानियाँ होती है. जिन्हें हम नीचे पढेंगे।
Contiguous Allocation
Contiguous allocation method में, यूजर को फाइल को create करने से पहले file size को दर्शाना पड़ता है। उसके बाद ऑपरेटिंग सिस्टम, उस फाइल के साइज़ के आधार पर disk में contiguous blocks को ढूंढती है और फाइल को allocate करती है। अगर फाइल के size का कोई भी contiguous block उपलब्ध नहीं होता है तो फाइल को create नहीं किया जा सकता। directory में 5 files हैं और table में प्रत्येक फाइल की length तथा starting disk block को दर्शाया गया है ।

Advantage Of Contiguous Allocation
- इसको implement करना बहुत ही आसान है क्योंकि files के blocks को आसानी से track किया जा सकता है.
- यह direct access तथा sequential access दोनों को support करता है.
- इसमें किसी भी फाइल को आसानी से read किया जा सकता है.
- यह files में random access को support करता है.
- यह बहुत ही तेज विधि है.
Disadvantages:-
- इसमें डिस्क fragmented हो जाती है. इसमें external तथा internal दोनों प्रकार का fragmentation हो जाता है.
- फाइल के size को बढ़ाने में परेशानी होती है क्योंकि ये contiguous memory पर निर्भर करता है.
Linked Allocation
इस एलोकेशन में प्रत्येक फाइल disk blocks की linked list होती है। तथा इसमें फाइल को contiguous blocks में allocate नहीं किया जाता है। Disk blocks जो है वह disk में कही भी हो सकते है। इसमें फाइल की directory, पहले block तथा अंतिम block के pointer को contain किये हुए रहती है। इस विधि को chained allocation भी कहते है।

Advantage Of Linked Allocation
- इस विधि में external fragmentation नहीं होता है.
- इसमें हमें फाइल के size को specify करने की जरुरत नहीं होती है.
- अगर कोई free block है तो उसे आसानी से utilize किया जा सकता है.
- जब तक free block उपलब्ध होते है तब तक फाइल के size को बढाया जा सकता है.
- इसमें compaction को परफॉर्म करने की जरूरत नहीं होती है.
- यह sequential access को support करता है.
Disadvantages-
- इसमें random access उपलब्ध नहीं होता है.
- pointers के लिए disk blocks में कुछ जगह की आवश्यकता होती है.
- linked list में कोई भी pointer टूटा हुआ नहीं होना चाहिए क्योंकि इस स्थिति में पूरी फाइल ही corrupt हो जाएगी.
- प्रत्येक block को traverse करने की आवश्यकता होती है जिससे यह विधि slow कार्य करती है.
- यह direct access को सपोर्ट नहीं करती है.
Indexed allocation
यह contiguous तथा linked एलोकेशन में आने वाले परेशानी को दूर करता है। इस विधि में, एक विशेष प्रकार का ब्लॉक होता है जिसे index block कहते है यह index block फाइल के सभी pointers को contain किये रहता है. प्रत्येक फाइल का अपना एक index block होता है। directory entry भी index block के address को hold करके रखती है।

Advantage Of Indexed Allocation
- यह सबसे ज्यादा प्रयोग की जाने वाली file allocation methods है. यह direct access तथा sequential access को सपोर्ट करती है.
- इसमें external fragmentation नहीं होता है.
- इसमें अगर कोई data block ख़राब हो जाता है तो केवल उसी block का नुकसान होगा.
Disadvantages:-
- अगर एक index block में कोई परेशानी आ जाती है तो पूरी फाइल का नुकसान हो जाता है.
- फाइल का साइज़ index block पर निर्भर करता है.
- छोटी फाइल के लिए index block का होना मैमोरी का wastage है.
- इस विधि में pointers का overhead ज्यादा होता है.