In this section we will deal with how the software is structured and how the software of a computer runs. It’s the set of all programs (or data in general) contained in a computer that characterizes the behavior to the outside world represented by the user (people, machines, other computers). One fundamental purpose of Computer Science is precisely to study the interaction between the user and the computer, in order to make this interaction easy and efficient for the user.

The software consists of three components: the operating system, application programs and data created with application programs. The operating system (discussed in Section 1) is the program (or set of programs) that deals with the interaction between the user and the computer.

The application programs (will be discussed later) are tools made available by user in order to solve its various specific problems (i.e. working). Although physically the software is made up of three components aforementioned, from a functional point of view (i.e. the function that carry out in the binomial user-computer) the third component is implied and is merged with the second.

This is because the function of data created with the application programs is nothing but representing the applications (input) of the user and the response (output) to its problems related to the various application programs. In other words, the data are the information carried by the wires of an electric circuit, while the application programs are the electrical circuits (made up of wires and transistors) that control it.

 

  1. The operating system

One fundamental purpose of Computer Science is to study the interaction between the user and the computer to make it easy and efficient for us. The operating system is the set of programs that aims to make the computer user simply and efficiently. The computer (machine that serves to solve problems) consists of three resources: the hardware (consisting of the CPU, memories, peripheral I/O), the operating system and application programs (programs that are used to perform specific jobs. Examples of application programs are: text editors such as MS Word, spreadsheets as MS Excel, video games, science programs, compilers, programs made by the user to solve some of its particular specific problems, etc.). On the other hand, the user is an entity that tries to solve various problems (i.e. carrying out various tasks) thanks by several existing application programs or created by himself.

 

1.1 What is it and what is the function?

As regards the combination user-computer, the operating system is a program (or set of programs) that acts as an intermediary between the user (and its application programs) and the hardware, in order to run (or at least help you to manage) the three resources constituting the computer. The purpose of an operating system is to provide an environment in which the user can execute its programs (such as working) in a simple way, user-friendly and efficient (that is faster). All this by controlling and coordinating the use of the hardware among the various application programs of the user (or users). The function of an operating system and other components of the combination of user-computer is outlined in picture 1. Therefore, an operating system should be supposed to:

  1. Show in a clear way data contained in the mass memory to the user.
  2. It must look to marginal things that do not interest you, such as I/O with the various devices (by means of device drivers). The user should not instruct the computer on how to write a data output. It must load programs from a storage medium to the volatile memory, etc., it must also take care of passing data between a program and another in a simple way;
  3. It must ensure that the switching between a running program to another should be simple;
  4. It must monitor the implementation of a program and if that doesn’t work it must pop up the issue;
  5. It must prevent the misuse of any component of the system;

An operating system must also be efficient for:

  1. Distributing the various hardware resources (CPU, memory, printers, etc.) in an efficient and equitable way among the various application programs.
  2. Paying attention to its own survival;  

 

1.2 How does the operating system work?

Now that we have seen what they are and what is the purpose, we can see how operating systems work. They are interrupt based systems. In a nutshell, the programs are always running (and therefore always resident in RAM) and supposed to receive, and when interrupted by the user or by user programs, they execute that for the reason why they were interrupted. So that, the environment that they create is interactive.

Picture 1: Functionality of the various components in the binomial user-computer.

 

1.3 The organization of data in the operating systems:

How data are organized in the operating systems: volumes, lead editor, applications and documents

On a computer (machine to manipulate data using programs), the data is contained in files and stored on a mass memory. A file is a sequence of 0 and 1 which has been given a name. There are two types of files: files containing application programs that are called applications, and files containing data created by applications (or more properly by application programs) that are called documents. Logically, the arrangement of the files is organized as follow:

  • The files are contained in folders (or directories) or volumes.
  • The folders are stored in other folders or volumes.
  • The volumes are not included in any logical structure and they usually represent a memory unit physical (hard disk, floppy disk, CD, DVD, etc.). All this in order to be represented by a tree structure such as that represented in picture 2. In the figure, Hard Disk is a volume and is therefore the root of the tree. Folder Operating System, Applications, Luke, MS Word are folders. Temporary is an empty folder. Netscape is an application. While Readme.txt InformaticaI.doc are documents.

 

1.4 The main features of an operating system

In this section we want to clarify some fundamental features of an operating system.

An operating system is a multiprogramming if and only if it’s able to have more running programs to be carried out at any given time. In a multiprogramming system, the CPU jumps on a work to another to its advantage  (i.e. on the old computer, the system went from a work to another if the first one had to wait the printer to be finished its own work, in order to keep going on. On the contrary today we can jump on a work to another by a simple click asked by the user.

Picture 2: An example of the logic structure of a volume.

Image and video hosting by TinyPic

An operating system is time-sharing (and multitasking) if the CPU is able to jump quickly from one running program to another, and then another again so that all running programs are effectively carried out and completed. In a time-sharing system the jumping from one program to another (eg change the program executed by the CPU) it is done so quickly as to create the illusion that you are carrying out various tasks simultaneously, in parallel. We note that the time sharing is the key feature that allows the interactivity of today's operating systems.

An operating system is multi-user if it is able to seem the computer (only one) like many personal computers: one for each user (more than one). Users communicate with the computer through more terminals. A mainframe is a typical computer designed to have a multi-user operating system.

Users communicate with the computer through more terminals. A mainframe is a typical computer designed to have a multi-user operating system.

 

1.5 The main operating systems

In this section we will go through the main operating systems nowadays existing.

Unix. The oldest.  Developed in the American academic world to be used by mainframes and super computers. It is a fully multiprogramming, time-sharing and multi-user system. It is not a GUI, a Graphical User Interface (GUI Interface In Italian "Graphical User"),  but is a set of programs that defines a graphical environment in which the user can work with the machine.

Linux. It is essentially the Unix system for the PC. Developed over the past decade, it is becoming very popular lately, that the gap of computational potentiality between the pc and mainframes has almost vanished.

MS-DOS. The first PC operating system. It is similar to the Unix system without multiprogramming, time-sharing, multi-user.

Macintosh OS 9.x. The first operating system with a built-in GUI PC. It is multiprogramming and partially time-sharing. The Macintosh invented the windows, the use of the mouse and the concept of GUI.

Macintosh OS 10.x. Today the Macintosh operating system. It is a Unix/Linux with a GUI called Aqua.

Windows. Born as GUI Microsoft for MS-DOS. It developed as an operating system with the same characteristics of a Unix GUI system (from Windows NT and so on). Find out the last updated version Windwos 10 with all the new features included.

X11. It is a sort of GUI for Unix.

Solaris. SUN Microsystems GUI for Unix.

KDE. GUI for Linux.

iOS. It is an operating system developed by Apple per iPhone, iPod touch and iPad. Last updated version: iOS 9 available for other devices as Apple Watch.

Android. It is a mobile operating system (OS) currently developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets. Find out the last version called Android 6.0 Marshmallow.