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.
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