Implement the creation of files and directories

Assignment Help Operating System
Reference no: EM131721551

Operating Systems : Assignment - Filesystem

1. Introduction:
The task for this project is to use the block storage library created in Assignment 3 as a logical storage device, on top of which you are now going to build the F17 Filesystem (F17FS). F17FS will closely model the original Unix Filesystem and the Unix Fast Filesystem.

2. Filesystem Design:
Files and filesystems are designed to operate using an abstraction of the underlying storage hardware. You will implement a filesystem that interfaces to a Block Store similar to Assignment 3. Recall the Block Store library specifications; specifically, the purpose of the library is to simulate a block storage device that provides access to storage blocks based on a block index.

The following are the sizing constraints of the Block Store (note these sizes differ from the block store assignment):
1. The total number of blocks is 2^16.
2. The size of blocks is fixed at 512 bytes.
3. Some of these blocks are pre-allocated to the free block map (as before).

The following are sizing constraints with regard to the file system itself. In particular, these constraints should allow you to pass the write_full_fill() test.
1. Any overhead (meta-data) for your file system should be stored within 34 blocks.
2. If your overhead takes less than 34 blocks, say 32, then we waste the additional 2 blocks.

3. Milestones:
This project will be divided into four submissions:
0. Design (M0),
1. Milestone 1,
2. Milestone 2, and
3. Milestone 3

Design:
A failure to plan is a plan to fail. This will be a large project; understanding the basic concepts, planning your structures, functions, and what issues can occur is vital to any programming project.

You are to draft pictorial representations of (drawings on paper and scanned/photographed are sufficient):
1. Inodes and their block references
2. The filesystem layout, and how its layout relative to Back Store.

You are to put together your proposed layout (read: structure definitions) for:
1. F17FS objects
2. Inodes
3. Directory files

You are to write pseudocode for the following problems given the specified information and list potential errors that can occur:
1. File/Directory Creation given an absolute path to the file/directory and a flag indicating file or directory
2. File Writing given a file descriptor, a buffer, and a byte count
3. File/Directory Deletion given an absolute path to the file/directory

Milestone 1 - Basic Building Blocks:
You are to implement formatting, mounting, and unmounting (fs_format, fs_mount, and fs_unmount) of your F17FS filesystem. You will also prepare pseudocode for the following milestone.

Once you have completed your implementation, be sure to commit all changes and push to master branch on OSGit by the M1 due date.

Milestone 2 - Directory Traversal, Inodes, and File Descriptors:
You are to implement the creation of files and directories, the opening and closing of files, and the enumeration of directories (fs_create, fs_open, fs_close, and fs_get_dir). You will also prepare pseudocode for the following milestone.

Once you have completed your implementation, be sure to commit all changes and push to master branch on OSGit by the M2 due date.

Milestone 3 - Data management:
You are to implement the reading and writing of data to a file, the seeking of file descriptors, and the deletion of files as well as empty directories (fs_read, fs_write, fs_seek, and fs_remove).

Graduate students will also need to submit implementation for the moving files and directories as well as the creation of hardlinks (fs_move and fs_link). This will also be bonus for undergrads. It is suggested that you start early on these features, as you will need to consider these operations while implementing Milestone 2.

Once you have completed your implementation, be sure to commit all changes and push to master branch on OSGit by the M3 due date.

4. Filesystem Specification, Implementation, and API:
Your implementation of the F17 Filesystem must be a CMake system library project. A header with the expected functions and operation details will be located in your repository. Please refer to it for implementation details and bring any additional questions to the Canvas LMS.

Specifications:
Your F17FS implementation must be capable of:
- Format an F17FS file
- Mount and unmount an F17FS file
- Create directories and regular files
- Open, close, and seek files
- Read and write to files
- Remove files
- List directory contents
- *Move files and directories
- *Create hardlinks

File Descriptors:
The F17FS filesystem will be using file descriptors to manage open files. The filesystem will be limited to 256 file descriptors. Each file descriptor will track a single read/write position for that descriptor. How you manage this is up to you. Files should be able to be opened multiple times, meaning your implementation should support multiple descriptors to the same file, but with different read/write positions. Seeking allows the user to move the read/write position to where they want. Be sure to read the header for additional notes or requirements on how a function affects a file descriptor.

Testing:
Your implementation should be capable of doing all operations listed above cleanly and safely. Like all projects, a tester will be provided to test the frontend of your implementation. You will be expected to deliver a functional and correct solution for each milestone. Be sure to be comfortable with various debugging and file inspection tools, and they will prove vital to writing a correct implementation.

Reference no: EM131721551

Questions Cloud

What should expect from the point forward in given case : Suppose you became interested in opening a School of Rock franchise. You fly to Philadelphia and visit the company's headquarters.
What is the expected average time in the system-in minutes : What is the average waiting line length (in cars)? What is the expected average time in the system, in minutes?
What are the ethical considerations in not submitting : What are the ethical considerations in not submitting what the actual results show? In general, is doing what the boss wants more important?
Buying an outlet in an american franchise system : Suppose you are an American citizen living in Japan. You just lost your job with an electronics company that merged with a firm in Singapore.
Implement the creation of files and directories : You are to implement the reading and writing of data to a file, the seeking of file descriptors, and the deletion of files as well as empty directories
Discuss its appropriateness in organizational settings : Describe the inquisitional approach and discuss its appropriateness in organizational settings.
Discussing the different stakeholders and clients interest : discussing the different stakeholders and clients' interests and any potential political conflicts in implementing your information system project
Prepare a master budget for the company for each quarter : Prepare a master budget for the Company for each quarter of 2018 and for the year in total. Calculate 2018 Net Income if 4thQtr Sales for 2018 is changed.
What would you tell brian about licensing : Brian Brunner is an entrepreneur who has invented several devices that are used in the telecommunications industry. He has patented the devices.

Reviews

len1721551

11/14/2017 1:50:47 AM

5. Rubric: Design (M0) 50 points Milestone 1 80 points Milestone 2 130 points Milestone 3 140 points Total 400 points fs_move + fs_link +30 points For all students, for all milestones: Insufficient Parameter Validation: up to -25% of rubric score Insufficient Error Checking: up to -25% of rubric score Insufficient Comments: up to -25% of rubric score Incorrect implementation: up to -50% of rubric score Memory Leaks: up to -20% of rubric score Submission compiles with warnings: -90% of rubric score Submission does not compile, or refuses to build: -100% of rubric score

Write a Review

Operating System Questions & Answers

  Wireless encryption standards

Compare the several wireless encryption standards. Determine the purpose of implementing wireless encryption and discuss the benefits of each standard?

  Socket programming in unix using c programming

Identify the values of pidat lines A, B, C, and D and write an echo server using socket programming in UNIX using C programming.

  Implement a program to simulate the operation

Design and implement a program to simulate the operation of the SIMMAC - define the notion of an interrupt handler that will process a time quantum for ea ch running job.

  What are the advantages of using dynamic loading

Briefly describe the segmentation memory management scheme. How does it differ from the paging memory management scheme in terms of the user's view of memory - What are the advantages of using dynamic loading?

  Autonomous intelligent software agents are used in

autonomous intelligent software agents are used in artificial intelligence to solve an increasing number of complex

  Will it always be the result of one''s experience

Or do you forecast more and more automatic ways (algorithms?) to accomplish these tasks?

  Assessing security risks

In your new position at XYZ Company, you have been asked to lead a risk assessment group. As part of your assignment to assess security risks for the computing infrastructure.

  Article and your own research

Using the above article and your own research, write a 3- to 5-page paper comparing 3-4 of the operating systems you find in the readings and other materials from your research. Compare both technical and non-technical features and explain what you b..

  Write pseudocode for the citron car rental policy below

Standard transmission is available only for A, B, and C. Automatic transmission is available for all cars. If a customer reserves a subcompact

  Why thread belonging to same process affected by page fault

Other user user threads belonging to the same process also be affected by the page fault (i.e., would they also have to wait for the faulting page to be brought into memory?) Explain.

  Continuing to build your marketing plan this assignment

continuing to build your marketing plan this assignment focuses on your product and service. remember from the

  Show the user level thread implementation

multitasking and one to one relationship between user level threads and kernel level threads which allows one or more threads from a process to issue blocking system calls while other threads(within that process) continue to run. Explain with desi..

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd