Operating Systems

Operating Systems


Applications rely on
the operating system. So what does it really do for you? First of all like I said before, the hardware is actually not very easy
to use if you had to use it directly. If you wanted to program your
applications, and had to work with the hardware directly it’s
going to be infinitely more complex. It may be already be hard, but
it’s going to be much harder. So what the operating system does is
that it creates easier to use and high level abstractions for the resources
that we have that the hardware provides. For example, we know that
data that must be persistent, it’s stored on the disk in disk blocks. Well we actually don’t directly
work with disk blocks and keep track of where on disk a certain
piece of information may be. We have things called files. Think of file as a high level, where we’re going to talk about
virtual resources that are created or supported by the operating system and
made available to you. So these high level abstractions
that we can use to access more user-friendly
resources in some way. Make it easier for
us to write our applications, or build our applications that are going
to run on this computer system. Now the resources that
we’re going to provide. The high level resources, the operating system makes
available to the applications. Well, they going to be implemented using
the real physical resources that we have that the hardware provides to us. The resources, the physical resources are going to be shared across
these different applications. Obviously when you have
that kind of sharing, we need to access those resources
in a controlled fashion. So the hardware resources are actually
managed by the operating system, and access to those is going to
be controlled via it as well. And that actually is one
of the fundamental reasons why operating systems have such
an important role to play, when it comes to protecting resources
and securing access to them. The last thing that is really
interesting and we’re going to spend a good bit of time on that, is all
the different applications or different processes going to run on the same
system and share the resources we have. The physical resources that
we have between them, but the operating system makes each process
believe as if it’s the only one running. And it’s able to do that
by providing what we call isolation between these
different processes. In some sense one process or one
application does not need to be aware of another application, unless it
explicitly decides to interact with it. It’s sharing these physical resources,
but think about the operating system making sure that what is being used
by one application doesn’t get used by somebody else, or
another process or another application. So, having this isolation,
sort of giving each application, sort of the feeling that
it is the only one running. We should say that if they share,
of course, not each process has all the resources, so there may be
some performance implications. But, if you don’t worry about
performance, basically each process can believe as if it has the resources,
and the computer to itself. So, the operating system
is actually going to create this isolation between these different
applications, which is really important. Because applications may
not trust each other, and if they don’t trust each other, they
don’t want any sort of interference from other processes that
are not trusted by them. So this isolation that the operating
system provided isolation is actually going to guarantee to us that
the process doesn’t have to worry about other processes, or other applications
that may be there in the system.