Presentation is loading. Please wait.

Presentation is loading. Please wait.

Operating Systems Practical Session 10 File Systems 1.

Similar presentations


Presentation on theme: "Operating Systems Practical Session 10 File Systems 1."— Presentation transcript:

1 Operating Systems Practical Session 10 File Systems 1

2 Quick recap Files are an abstraction mechanism Several file types: User files (regular),Directory files, Special files (Block, Char) Access: sequentially (e.g. tapes) or random access (disk) Data: structured (records) or unstructured (set of bits and bytes) 2

3 File system layout (Tanenbaum) 3

4 Quick recap: Index-Nodes (i-nodes) superblock The superblock object represents the entire file system. Each i-node is a data structure containing pointers to the disk blocks that contain the actual file contents. a single file An i-node corresponds to a single file. An i-node needs to be in the main memory only if the correspondent file is open. Besides the data blocks pointers, the i-node also contains information on the file permissions, owner, etc 4

5 Quick recap: i-Nodes General file attributes The number of hard-links to the file Usually between 10 and 12 File Size HardLink count 5

6 Quick recap: FAT A FAT (File allocation table) contains the chains of disk blocks. Each chain defines a different file. Every entry in the FAT points to the next disk block of the file. Chains of blocks are terminated by a special marker – end_of_file character. Directory entry points to first block in a file (i.e. specifies the block number). The FAT is held in Main Memory and its size is proportional to the disk size.

7 Recap: MS-DOS directory entry Tree structure (no links) directories provide information about location of file blocks (directly or indirectly..) Both names and attributes are IN the directory MS-DOS uses fixed size 32-byte directory entries read-only hidden system archive An index into the 64K –entry FAT 7

8 NTFS Each file is represented by a record in a special file called the master file table (MFT). Directories are also files. The first 16 records of the table are reserved for special information and the first record of this table describes the master file table itself, followed by a MFT mirror record. The seventeenth and following records of the master file table are for user files and directories. The master file table allocates a certain amount of space for each file record (for attributes and initial data). Small files can be entirely contained within the master file table record in this case file access is very fast.

9 MFT records

10 The MFT record of a long file A file that requires three MFT records to store its runs

11 NFS – Network File System Allows sharing of file Systems. A server exports part of its file system. A client can mount an exported file system. A stateless protocol. The server remembers nothing about previous requests from a client.

12 Question 1: i-nodes How many time will the disk be accessed when a user executes the following command: more /usr/tmp/a.txt Assume that: 1.The size of 'a.txt' is 1 block. root 2.The i-node of the root directory is not in the memory. 3.Entries 'usr', 'tmp' and 'a.txt' are all located in the first block of their directories. 12

13 Question 1: i-nodes at least Accessing each directory requires at least 2 disk accesses: reading the i-node and the first block. exactly In our case the entry we are looking for is always in the first block so we need exactly 2 disk accesses. According to assumption 2 the root directory's i-node is located on the disk so we need 6 disk accesses (3 directories) until we reach a.txt's i-node index. Since "more" displays the file's content, for a.txt we need its i-node + all the blocks of the file (1 block, according to assumption). Total disk accesses: 6 + 2 = 8. 13

14 Question 1: i-nodes A similar problem 14

15 Question 2: FAT A FAT starts with the following values: Assuming that slots with -1 indicates an end of file and slots with 0 indicates a free slot: 1.If the directory containing a certain file has 7 as the starting block, how many blocks does that file contain? 2.The owner of the file has written two more blocks to the file. Adjust the FAT to the change.

16 Question 2: FAT 1.4 2.14, 19, 8, -1, -1, 9, 3, 2, 5, 10, -1 0X 1X 2EOF 313 42 59 68 7Free 8Y 912 103 11FREE 12EOF 13EOF 14FREE 15BAD Not allocated End of file Marked as a bad block 6842 59 12 10313 File A: File B: File C:

17 Question 3: i-nodes Ofer2000 The Ofer2000 Operating Systems, based on UNIX, provides the following system call: rename(char *old, char *new) ‘old’ ‘new’ ‘old’‘new’ ‘old’ This call changes a file’s name from ‘old’ to ‘new’. What is the difference between using this call, and just copying ‘old’ to a new file, ‘new’, followed by deleting ‘old’? Answer in terms of disk access and allocation. 17

18 Question 3: i-nodes rename rename - simply changes the file name in the entry of its directory. copy copy - will allocate a new i-node and the blocks for the new file, and copy the contents of the old file blocks to the new ones. delete delete - will release the i-node and blocks of the old file. copy + delete copy + delete - is a much more complicated operation for the Operating System, note that you will not be able to execute it if you do not have enough free blocks or i-nodes left on your disk. 18

19 Question 4: i-nodes What would be the maximal size of a file in a UNIX system with an address size of 32 bits if : 1.The block size is 1K 2.The block size is 4K (The i-node has 10 direct block entries, one single, double & triple indirect) 19

20 Question 4: i-nodes 1.Block size: 1K – Direct: 10·1K – Single indirect: each address is 32 bit = 4 byte then we have 256 pointers to blocks of size 1K (i.e. 256·1K) – The same idea is applied for double and triple indirect. In total: 10·1K+256·1K+256·256·1K+256·256·256·1K 20

21 Question 4: i-nodes 1.Block size: 4K – Direct: 10·4K – Single indirect: each address is 32 bit = 4 byte then we have 1024 pointers to blocks of size 4K (i.e. 1024·4K) – The same idea is applied for double and triple indirect In total: 10·4K+1024·4K+1024·1024·4K+1024·1024·1024·4K 21

22 Question 5: FAT (2007a) בשאלה זו עליכם להציע שינויים ( במבני הנתונים ובקוד ) של מערכת הקבצים של MS-DOS על מנת להוסיף לה תמיכה ב -links. לאחר השינוי, תתמוך MS-DOS בשתי הפקודות החדשות הבאות : soft-link old-path new-path –הפקודה : soft-link old-path new-path יוצרת soft link חדש מ -new-path אל old-path. hard-link old-path new-path –הפקודה : hard-link old-path new-path יוצרת hard link חדש מ -new-path אל old-path.

23 Question 5: FAT (2007a) א.(13 נקודות ) אנו רוצים להוסיף למערכת הקבצים של MS-DOS תמיכה ב -soft links, מבלי לבצע שינוי כלשהוא בטבלת ה -FAT ומבלי להוסיף מבני נתונים חדשים. a) תארו בפירוט אילו מבני נתונים של MS-DOS ישתנו וכיצד. השינוי היחיד הנדרש הינו תוספת flag ב -directory entry, המציין האם הקובץ המוצבע ע " י ה -entry הינו symbolic link או לא. במידה וה -flag מורם, תוכנו של הקובץ ששמו מופיע ב -entry הינו ה -link ( כלומר, old-path).

24 Question 5: FAT (2007a) b) כתבו פסאודו - קוד המתאר את פעולתה של פרוצדורה soft-link(old-path, new-path) המממשת את הפקודה soft-link. Procedure soft-link(old-path, new-path) } // get directory-name and entry-name Convert new-path to // allocate a new directory entry in directory dirName new-entry ← allocate-new-entry(dirName) new-entry.filename ← entryName new-entry.link ← true // indicate that this is a symbolic link allocate a single block, initialize with old-path, set it as new-entry's single block new-entry.data ← old-path {

25 Question 5: FAT (2007a) c) האם נדרשים שינויים נוספים בקוד של MS-DOS? אם כן, ציינו אותם בקצרה. כאשר מבצעים parsing ל -pathname עוברים על ה -directories שבו ( אם ישנם כאלה ) על פי הסדר, החל מן ה root directory או ה -current directory ( בתלות אם זהו absolute או relative path). עבור כל שם name בו נתקלים, יש לבדוק אם הוא מיצג link, ע " י בדיקת ה -flag שהוספנו. אם כן, יש לקרוא את תוכן הקובץ name למשתנה link, להחליף את name ב -link, ולהמשיך את פעולת ה -parsing החל מתחילת link. המימוש שלנו בסעיף b. מרשה הצבעות של link ל -link. יש למנוע לולאה אינסופית במהלך פעולת ה -parsing, למשל ע " י ספירה של מספר הפעמים בהן התהליך נתקל ב -link ויציאה עם הודעת שגיאה מתאימה במידה והמונה מגיע לערך סף שנקבע מראש. אפשרות נוספת היא למנוע מראש הצבעות בין לינקים. כאשר יוצרים קובץ רגיל, יש לאתחל את דגל link ל -false.

26 Question 5: FAT (2007a) מבלי לבצע שינוי כלשהוא בטבלת ה -FAT ב.(12 נקודות ) כעת נוסיף למערכת הקבצים של MS-DOS תמיכה ב -hard links, מבלי לבצע שינוי כלשהוא בטבלת ה -FAT ( הניחו כי ניתן להיעזר במבני נתונים נוספים ). a) תארו בפירוט אילו מבני נתונים של MS-DOS ישתנו וכיצד, ואילו מבני נתונים יתווספו. נוסיף טבלה הדומה מבחינות מסוימות לטבלת ה - inodes ב -Unix. נקרא לה טבלת dnodes. שינוי נוסף הוא במבנה של directory entries. כל directory entry יצביע לכניסה בטבלת ה -dnodes במקום להצביע לבלוק הראשון של הקובץ. בכל כניסה כזו יהיו שני שדות. השדה הראשון מונה את מספר ההצבעות לרשומת ה -dnode והשדה השני מצביע לבלוק הראשון של הקובץ. ה -FAT נשאר ללא שינוי.

27 Question 5: FAT (2007a)

28 b) כתבו פסאודו - קוד המתאר אל פעולתה של פרוצדורה hard-link(old-path, new-path), המממשת את הפקודה hard-link. Procedure hard-link(old-path, new-path) } // get directory-name and entry-name Convert new-path to // allocate a new directory entry in directory dname new-entry ← allocate-new-entry(dname) new-entry.filename ← ename // locate old-path dnote entry dnode-entry-num ← locate-dnote-entry(old-path) // point from directory entry to dnode entry new-entry.dnode ← dnode-entry-num // Increment links number dnodes[dnodes-entry-num].links++ {

29 Question 5: FAT (2007a) c) האם נדרשים שינויים נוספים בקוד של MS-DOS? אם כן, ציינו אותם בקצרה. מובן כי כעת כל הפרוצדורות הפועלות על קבצים נדרשות לעבוד עם מבני הנתונים החדשים. כאשר נוצר קובץ חדש, יש לאתחל את מספר הלינקים של ה -dnode החדש ל -1. כאשר מוחקים קובץ יש להפחית את מספר הלינקים של ה -dnode שלו באחד. רק אם מספר זה מתאפס, יש למחוק את הקובץ עצמו.


Download ppt "Operating Systems Practical Session 10 File Systems 1."

Similar presentations


Ads by Google