Saturday, January 5, 2013

Problem



First thing towards solving a problem is to understand it. It is the
understanding of this problem we attempt to do in this chapter. We will see why we need some thing called as a file system. We will then see what is a file system and where it should be placed in the system inorder to solve our problem. The rest of the study as to 'how' and 'which' of the file systems will be dealt with in the future chapters.
Data retention
In computing, we have a procedure, a flow of logic, called a process which is a thread of execution with finite set of instructions to be executed. And we have data that the procedure acts upon to manipulate and transform it into something tangible. The most native method of making a processor execute such a process and to manipulate data is by storing code and data in a special container called as memory. We call it random access memory, RAM. RAM is a semi conductor device capable of storing binary information. At a very fundamental level a semiconductor memory is a decoder chip which decodes a block of bits called address into one or more bits of data.
There is circuitary built to connect such a memory device to processor by binding the address lines and data lines of the processor and of the memory together. Having a such a simple set up would enable to perform only a limited operations on the processor since semiconductor memory such as RAM is a volatile memory and it loses data upon reset. There are situations in almost all practical applications to have data to be retained across resets of the computer.
One part of the problem has been established. We need data retention upon resets.


Large data
Assuming a macro-system capable of multitasking each process is assigned a virtual address space. This space for a few programs might suffice but there are engineering problems that involve data of magnitudes quite larger than the address spaces allocated to a process. This calls for a need to store the data of larger magnitudes elsewhere (Not in RAM). The next part of the problem is Large data.
Concurrency
Another common requirement in multi-tasking environment is ability to share data among processes concurrently. If data is localised to process address space this sharing would be difficult to achieve. So concurrency is the another part of the problem.

We should mark that file system attends these problems by providing a framework to store data on a persistent medium.  This infra-structure should made use of appropriately by other programs in order to provide good user experience.
Having understood the problem we conclude that we must design a system that would help us retain data on a persistant physical medium with a larger capacity and also help us have concurrent access to it. And such a system is called a file system. The reason to call such data as files is simple. If you observe the problem's outlined, it is something that's been dealt with in our lives. It is to do about keeping notes.
Let me elaborate -
Data rerention – Some really blessed people with extra ordinary memory will probably not agree to this but most of us forget things. There is a limit for how long we can remember.
Large Data:
In a social system there are offices, industries,schools and government organisations at work. These systems have to store and operate on enormous amount of data. There is a limit to how much humans can remember.
Concurrency:
Obviously the data should be out in public for those who'd want to see and interpret it. It should made open to all.
The solution we have found in our social system is to keep the data in what are called as files(a piece of paper). We have enforced some rules about organising the data when we write to the files. We index the files and group them based on some common characterisitics and place them under a wrapper and call it a directory. Even inside a file we have mandated to follow a common structure while writing the data on it. So the problem we have outlined earlier has beed solved already in the society and what we should do is to simply copy the principles and apply them in the computer system. We hence call it a file system.
Now. We have addressed why and what of file systems. Let us see as to where we can place the file system in the computing environment. Needless to say the very nature of the file system is to provide generic interfaces for users. File systems interact closely with the hardware that retains the data. All file systems must implement common interfaces and abstract the underlying differences in the type of hardware. All these charecteristics conform to be of system services in nature. Thus file systems go in to a system as one of the sub systems in an operating system.

No comments:

Post a Comment