Operating Systems: Introduction

This article is an introduction to a new series about computer operating systems.

Lately I’ve been reading a book – ‘Modern Operating Systems’ by Andrew S. Tanenbaum. I’m not done with reading yet but I’ve already come up with an idea for the new series of articles for my blog. Therefore, I would like to cover topics like processes and threads, memory management and file systems. At later stages we will find out how it relates to the Android. In the meantime I plan to write my own bootloader so you should expect some article about it as well.

I believe that this series may be very educational and horizons broadening.

1. What is an Operating System?

Operating system is a piece of software that fulfils two purposes:

  1. managing the hardware (down-top approach)
  2. providing clean and abstract set of resources to programmers and their applications (top-down approach)
Zrzut ekranu 2017-03-18 o 17.01.42
‘Modern Operating Systems’, Andrew S. Tanenbaum, p.33


2. Hardware management

In a nutshell, computer is a bunch of devices put together – processor, memory, disk etc.

The role of the operating system is to provide controlled  access to these devices for all programs wanting them. In modern operating systems resource management is based on multiplexing.

Intuition: multiplexing is related to sharing resources

We distinguish multiplexing

  • in time
    • i.e. if there is only one processor and multiple computer programs that want to use the processor, operating system allocates the CPU to one program, then to the second one and so on
  • in space
    • i.e. main memory (RAM) is divided into parts so that multiple programs can live simultaneously, not only one at time

3. Clean and abstract set of resources for programmers

Good example of abstraction is a file. It easier to save your data as a file instead of having to deal with details of a disk interface so data management would become almost impossible.

The role of the operating system is to provide a set of abstractions so that programmers can use them to implement programs without bothering hardware details.


Until next time:)



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s