Evaluation of the performance of the file system

Assignment Help Operating System
Reference no: EM132271982

Objectives

1. To evaluate file system performance in the face of sequential I/O requests.

2. To evaluate the impact of multiple competing threads attempting to read/write simultaneously.

Guidelines
The goal of this assignment is to gain experience with simple evaluation of the performance of the file system. Specifically you will be testing the performance of the system under varying conditions. I/O performance can be affected by more than the volume of data being moved. For example it can be affected by the size of the individual requests being made, whether the requests are reading or writing data, and by the degree of contention for access to the disk. It can also be affected dramatically by the pattern of data access (e.g., whether it is sequential or random), but we will only be looking at sequential access in this assignment.
As a first step, start by creating a collection of test files of varying sizes. Create a set of files of length 100000, 1000000, 10000000, 100000000, and 10000000000 bytes. These files can be filled with any random data you desire (or all zeroes if you prefer, the actual content of the files does not matter, only their actual size). You can create these files at the command line using the "cat" and "head" commands (where might you find a file of endless zeroes or random numbers to use as a source?).

Now you should create four test programs, and time the running of each one.

1. Your first program should read a file from beginning to end. It should accept the filename as a parameter. Each read call you make will specify a buffer and a read request size. This program should use a buffer of size 10000 bytes, which you will use for each read. How long does this program take to read through each test file (you may use the "time" command at the shell command line to time the program).

2. Your second program should accept a numerical parameter at the command line, and should repeat the behavior of your first program, but should now use a buffer of size N (where N is the value accepted at the command line) for each read request. This allows you to re-run the previous timing test but for differently sized I/O operations. Time your second program for read sizes ranging between 100, 1000, 10000 and 10000 bytes.

3. Your third program should extend your second program by adding one more step. For each read operation, there should now be a corresponding write operation where the data just read is written out to a newly created file. In other words, you should now be timing a program that copies each file that it is run against. You are now testing the speed of sequential reads+writes for files of varying size, and using I/O operations of varying size.

4. Your fourth and final program will create multiple copies of each file. You will create a number of threads, each of which will read and copy a file (as was done in program 3), but now each thread copies the file to a new file named based on the thread number. Run your timing experiments for all files, using all read/write sizes you used in parts 2 and 3, and for the following number of threads: 2, 8, 32, and 64.

Guidelines

The goal of this assignment is to gain experience with a simple parity-based resilience scheme. The basic idea is the same one behind RAID storage arrays. If you evaluate the XOR of a sequence of binary values and make a note of that result, calling it the "parity" of the original sequence, then you should be able to reconstruct any individual value from the original sequence by taking the XOR of the remaining values alongside the parity value.

This simple idea is the basis of basic RAID-4 and RAID-5 disk arrays. In this assignment you will build a simple tool to demonstrate this idea on a set of random test files. As a first step, start by creating a collection of test files of equal size

 Create a set of four files of length 100000000 bytes, filled with random data. As with last week's assignment, you can create these files at the command line using the "cat" and "head" commands (where might you find a file of endless random numbers to use as a source?).

Now you should create two test programs.

1. Your first program should read two files from beginning to end. It should accept the filenames as command line parameters. Each read call you make will specify a buffer and a read request size. This program should use two buffers, each of size 10000 bytes, which you will use for each read from each of the two files respectively.

You are to XOR the contents of the two buffers, and write the output to a third buffer (or overwrite one of the two buffers if you wish, and are careful). You are to print the contents of the output buffer to stdout. This means you should be able to run your program (called "raid-program" in this example) to produce an output file that represents the parity of the two source files.

$ raid-program
<filename1> <filename2>
>
<outputfilename>

2. Run your program using the output file as one of two input files (with e.g, "filename1" as the other). Compare the output of this run with the contents of the third file (e.g.,"filename2").

3. Your second program should be able to take up to 10 input filenames on the command line, but once again should produce a single stream of parity values as the output. This means you are reading from up to 10 files into up to 10 buffers, and calculating an XOR across all these buffers.

4. Describe how you would use your second program to recover a missing input file.

Attachment:- Project.zip

Verified Expert

The assignment is about File system performance in the face of sequential I/O requests and to evaluate the impact of multiple competing threads attempting to read/write simultaneously. Implementation of Unix-style file system contains simple multi-threaded code that wasn't fully implemented in the main program.

Reference no: EM132271982

Questions Cloud

Identify the different stages of a fire : Identify the different stages of a fire. What are the phases of a fire safety inspection.
Demonstrate a connection to your current work environment : Demonstrate a connection to your current work environment. If you are not employed, demonstrate a connection to your desired work environment.
Describe the disaster recovery plan : Describe in 500 words the disaster recovery plan and who is responsible at your place of employment.
Who is products acquisition manager for a large super market : MLC707 - Business Law Assignment, Deakin University, Victoria, Australia. Who is products acquisition manager for a large super market chain, Super Supplies Ltd
Evaluation of the performance of the file system : The goal of this assignment is to gain experience with simple evaluation of the performance of the file system - Now you should create four test programs
Which of the following is not an indicator of internal theft : Security architects should couple intrusion sensors with which of the following for enhanced detection of external threats?
Pontification ltd has a number of investment options : Pontification Ltd has a number of investment options however your client has limited these investments to only the following two options
Explain how the system could be verified as operational : Discuss how the system could be recovered to return to normal business practice. Explain how the system could be verified as operational.
Find the history of a currency through google or wikipedia : Choose any one country's currency that you are interested in. Write down how the currency'sexchange rate policy has been changed over the last 5 decades

Reviews

Write a Review

Operating System Questions & Answers

  Implementation of algorithms for process management

The Shortest Job Next (SJN) algorithm queues processes in a way that the ones that use the shortest CPU cycle will be selected for running rst.

  Develop a user mode command interpreter

Develop a user mode command interpreter which support list-short.

  Memory allocation in operating system

Analysis and implementation of algorithms for memory allocation in operating system, Explain First- t and best- t methods are used in memory allocation in operating systems.

  Stand alone child process

Forking the child process

  Write a multi-threaded program

Write a multi-threaded program to solve producer and consumer problem

  Marginal and average cost curves

n a competitive market place (pure competition) is it possible to continually sell your product at a price above the average cost of production.

  Simulating operating systems scheduling

Simulate the long-term scheduler, the short-term scheduler and the I/O scheduler of the computer using the First-Come-First-Serve algorithm.

  Issues with trusted platform module

Research paper discussing the issues with Trusted Platform Module (TPM)

  Threads

Explain a complication that concurrent processing adds to an operating system.

  Design and programming

Use the semaphore methods to control the concurrency of the solution

  Virtual machines

Virtual machines supported by a host operating system

  Discuss an application that benefits barrier synchronization

Discuss an application that would benefit from the use of barrier synchronization

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