file management system

35
FILE MANAGEMENT SYSTEM Group Members RAMOLY Nathan HEMMI Florent AZANGUE Roméo CHOUIKH Jaouher JRIDI Bayrem NINTIDEM Estelle Olivia Supervisor M. TIMSIT Claude Academic year 2011-2012

Upload: london

Post on 21-Feb-2016

47 views

Category:

Documents


0 download

DESCRIPTION

FILE MANAGEMENT SYSTEM. Supervisor M. TIMSIT Claude. Group Members RAMOLY Nathan HEMMI Florent AZANGUE Roméo CHOUIKH Jaouher JRIDI Bayrem NINTIDEM Estelle Olivia. Academic year 2011-2012. INTRODUCTION. PLAN. MATERIAL AND DIFFERENTS STAGES. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: FILE MANAGEMENT SYSTEM

FILE MANAGEMENT SYSTEM

Group MembersRAMOLY NathanHEMMI FlorentAZANGUE RoméoCHOUIKH Jaouher JRIDI BayremNINTIDEM Estelle Olivia

Supervisor M. TIMSIT Claude

Academic year 2011-2012

Page 2: FILE MANAGEMENT SYSTEM

INTRODUCTIONPLAN

CONCLUSION

I. MATERIAL AND DIFFERENTS STAGES

II. METHODS AND SYSTEM DESIGN

III. PROBLEMS AND SOLUTIONS

IV. DEMONSTRATION

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Page 3: FILE MANAGEMENT SYSTEM

RAMOLY Nathan, HEMMI Florent, AZANGUE Roméo, CHOUIKH Jaouher, JRIDI Bayrem, NINTIDEM Estelle

INTRODUCTION

The file management system

Software that manages data files

Create, enter, change and query files

EXT2, HFS PLUS , FAT

Page 4: FILE MANAGEMENT SYSTEM

RAMOLY Nathan, HEMMI Florent, AZANGUE Roméo, CHOUIKH Jaouher, JRIDI Bayrem, NINTIDEM Estelle

INTRODUCTION

Requirements

Functional Requirements• Management module• Execution module• Documentation module

Non-Functional Requirements• Convenient GUI• Clear errors messages

Page 5: FILE MANAGEMENT SYSTEM

RAMOLY Nathan, HEMMI Florent, AZANGUE Roméo, CHOUIKH Jaouher, JRIDI Bayrem, NINTIDEM Estelle

INTRODUCTION

Use Case Diagram

Page 6: FILE MANAGEMENT SYSTEM

RAMOLY Nathan, HEMMI Florent, AZANGUE Roméo, CHOUIKH Jaouher, JRIDI Bayrem, NINTIDEM Estelle

I. MATERIAL AND DIFFERENTS STAGES

Material• Software

o Code blocks o QT

• Turtoise SVN (Subversion)

• Libraries

o Standard libraries

Page 7: FILE MANAGEMENT SYSTEM

RAMOLY Nathan, HEMMI Florent, AZANGUE Roméo, CHOUIKH Jaouher, JRIDI Bayrem, NINTIDEM Estelle

I. MATERIAL AND DIFFERENTS STAGES

Differents Stages

• The Theory • Realisation

• Debug

Page 8: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

RAMOLY Nathan, HEMMI Florent, AZANGUE Roméo, CHOUIKH Jaouher, JRIDI Bayrem, NINTIDEM Estelle

The Theory

Simulation of the disk

Page 9: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

RAMOLY Nathan, HEMMI Florent, AZANGUE Roméo, CHOUIKH Jaouher, JRIDI Bayrem, NINTIDEM Estelle

Handling of the disk

disk_access disk_ptr disk_set_block 

disk_get_block load_disk_hard_dri

ve save_disk_hard_dri

ve…

Page 10: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Bitmaps

Root

/

Boot block

Inode

bitmap

Block

bitmap

Inodes Blocks

Bitmap

Page 11: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Bitmaps

Inodes

0, 1, 2, 3

Inodes

4, 5, 6, 7

Inodes

8,9,10, 11

Inode bitmap

0 1 0 0 0 0 0 0

Page 12: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Bitmaps

Data Block

0, 1, 2, 3

Data Block

4, 5, 6, 7

Data Block

8,9,10, 11

Block bitmap

0 1 0 0 0 0 0 0

Page 13: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Bitmaps Bitmap Inode

int8_t bitmap_inode_init() int8_t bitmap_inode_get_status(int numInode) int8_t bitmap_inode_set_status(int numInode, int

status) int32_t bitmap_first_free_inode() int32_t bitmap_nb_free_inode()

Page 14: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Bitmaps Bitmap Bloc

int8_t bitmap_block_init(). int8_t bitmap_block_get_status(int nBlock) int8_t bitmap_block_set_status(int nBlock, int

status) int32_t bitmap_first_free_block() int32_t bitmap_nb_free_block() int32_t bitmap_nb_occupied_block()

Page 15: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Inodes• The structure

o Size (in bytes)o The last access timeo Type (file or folder)o 10 addresses blockso An address for the single

indirection blocko An address for the double

indirection block

Page 16: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Inodes• Indirections

Page 17: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Inodes• Indirections 1 block = N bytes 10 blocks: 10*N bytes Single indirection: N²/4 Double indirection: N3/16 Total: [10 + N/4 + (N/4)²]*N

Page 18: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Inodes• Navigation functions

Inode_get_next_block:next adress block

Inode_get_pos_block_from_byte:block adress which contains the byte number

Page 19: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Inodes• Inode low level function

Function in charge allocating and freeing blocks

Two choices: Allocate and stop (no more free

space) Don’t allocate if there is not enough

space Take two parameters:

A pointer to an inode A new size for the inode

Page 20: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Inodes• Allocating a block Allocated an indirection block if

necessary Asked to the bitmap the address of

the first free block Added it to the inode by selecting the

correspond block (10 blocks or indirections)

Indicated that the block in now occupied

Page 21: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Inodes• Freeing a block Flagged the address block to -1 Removed indirection block from the

inode if necessary(memory leak possible if it is not done)

Indicated that the block in now free so it can be used by another

Page 22: FILE MANAGEMENT SYSTEM

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Inodes• Basic functions

Initialization:◦Size: 0◦Type: 1 for a file (by default)◦Last access time: system time◦Addresses: -1

Last access time Inode storage:

◦Get an inode from the RAM-disk◦Save an inode to the RAM-disk

Page 23: FILE MANAGEMENT SYSTEM

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Needed in any file systemLists all the filesAllows the user to create

hierarchy◦Travel in the tree◦Main directory called root

II. METHODS AND SYSTEM DESIGN

Directories

Page 24: FILE MANAGEMENT SYSTEM

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

II. METHODS AND SYSTEM DESIGN

Directories Directory implementation

◦ A special file (inode, blocks, etc…)◦ Contains the list with the following

forms 4 bytes for the address 8+1 bytes for the name Not sorted

◦ First entry: “..” referring the parent directory

◦ Root corresponds to the first inode◦ Current directory saved as a global

variable

Page 25: FILE MANAGEMENT SYSTEM

RAMOLY Nathan, HEMMI Florent, AZANGUE Roméo, CHOUIKH Jaouher, JRIDI Bayrem, NINTIDEM Estelle

Addition of an element◦Two steps Increase the size Add the entry at the end

Directories

II. METHODS AND SYSTEM DESIGN

Page 26: FILE MANAGEMENT SYSTEM

Directories

II. METHODS AND SYSTEM DESIGN

Deletion of an element◦Four main steps Save the last element Find the element to delete Replace it by the last one Reduce the size of the

directory◦No memory is released

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Page 27: FILE MANAGEMENT SYSTEM

Directories

II. METHODS AND SYSTEM DESIGN

Deletion of an element◦Schemas of a deletion in the

system

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Page 28: FILE MANAGEMENT SYSTEM

Directories

II. METHODS AND SYSTEM DESIGN

Searching a file◦Main interest of directory◦Simply do a loop Entry to entry until the

directory’s size is reached Moving inside a block until there

is no more space, then go on to the next block

Exit as soon as the file is foundNathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle

NINTIDEM

Page 29: FILE MANAGEMENT SYSTEM

Directories

II. METHODS AND SYSTEM DESIGN

Creation of a directory◦Four steps Check if it doesn’t already

exists Allocate an inode Create a basic inode and put

it in the allocated space Add the entry “..”

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Page 30: FILE MANAGEMENT SYSTEM

Directories

II. METHODS AND SYSTEM DESIGN

Deletion of directory◦Delete all the content Loop to read all the content File: call the specified

function Directory: recall this function

◦Set the size to 0◦Misallocate the inode◦Remove the entry from the

parent directory Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle

NINTIDEM

Page 31: FILE MANAGEMENT SYSTEM

Directories

II. METHODS AND SYSTEM DESIGN

Printing◦ Extraction of the directory’s content as a

linked list◦ Sorting the list

Using comparison functions (Size, date and name)

Using a bubble sort algorithm ◦ Printing the list◦ Function ls

Allow user to select simply The kind of sort Ascendant or not Complete or not

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Page 32: FILE MANAGEMENT SYSTEM

Directories

II. METHODS AND SYSTEM DESIGN

Moving in the tree◦Move the current directory◦Path syntax used:

“dir1/dir2/dir3”◦Path interpretation by cut_dir◦Movement done by mini_cd Moves the current directory

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Page 33: FILE MANAGEMENT SYSTEM

Files

II. METHODS AND SYSTEM DESIGN

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

HEADER FUNCTIONS

mini_format mini_writemini_close mini_lsmini_cp mini_openmini_rm mini_readmini_df mini_cp

Page 34: FILE MANAGEMENT SYSTEM

III. PROBLEMS AND SOLUTIONS

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

Technical problemsConceptionTestsErrors HandlingGraphical interfaceNone technical Problems

Page 35: FILE MANAGEMENT SYSTEM

CONCLUSION

Nathan RAMOLY, Florent HEMMI, Roméo AZANGUE, Jaouher CHOUIKH, Bayrem JRIDI, Estelle NINTIDEM

FMS with a GUIUNIX BasedFurther improvementsIndirection algorithmAlias & shortcutsImprove the block structureUpper layer applications -> OS