Operating Systems

INTRODUCTION

A RTS or “Real Time System” is an information processing system which responds to external command inputs, and delivers information in a reliable expected time (Petters, 2008). It is very common to be embedded systems running inside cars, electronic devices, airplanes and cell phones, for instance.

REQUIREMENTS IN REAL-TIME SYSTEMS

One of the most important subjects in this discussion is the timing non-functional requirement for real-time systems. On the need of responding in expected time, the timing should flow the way as the requirement expects, in order to do not have the loss in the quality of the real-time system.

According to Magalhães (1993), real-time systems can be cataloged into two views:

  • Soft real-time System

    • Soft real-time systems are systems in which not meeting a timing deadline will not affect or damage the environment, which makes this acceptable.

  • Hard real-time System

    • A hard real-time system, it would not be acceptable that a timing deadline to be not met because it would have catastrophic results to the environment.

REAL-TIME SYSTEMS AND OOP

The most difficult concern and OOP and real-time systems in the concurrency because of the need for fusing the two concepts, which are different. According to (R. Welch, L. & Dieter K., H, 1996) the difficulties while working with OOP programming languages to build RTS’s are:

#1 Parallelization in real-time systems should not be arbitrary but according to the application semantics;

#2 Traditional real-time computing paradigms may not be adequate in addition to objects, abstractions at higher levels of granularity are needed (e.g., execution paths consisting of time-constrained sequences of method invocations);

#3 Object-oriented features that make real-time system engineering difficult include: method lookup, garbage;

#4 Collection, and variation in invocation latency due to object distribution and dynamic binding;

CONCLUSION

In spite of the object-oriented paradigm to be very popular in the development of enterprise applications, the low-level programming languages such as C (for instance) are still a better fit for programming real-time systems. The ‘virtual world’ created by the virtual machines in order to allow programmers to deal with more ‘human’ data types and classes/objects allows more ease while developing some kinds of systems, but systems that get closer of the machine and low-level requirements, usually tends to be best solved with low-level programming languages.

REFERENCES

Petters, S., 2008. Real-Time Systems Lecture, [PPT] Australia: UNSW SIDNEY. Available at: <http://www.cse.unsw.edu.au/~cs9242/08/lectures/09-realtimex2.pdf&gt; [Accessed 23 July 2017].

António P. Magalhães, et. al, 1993. Deadlines in Real-Time Systems, [Technical Report] Portugal: Faculdade de Ciências e Tecnologia, Universidade de Ciombra (Portugal). Available at: <https://web.fe.up.pt/~apmag/Suportehome/Ficheiros/drts.pdf&gt; [Accessed 23 July 2017].

R. Welch, L. & Dieter K., H., 1996. OOPS Messenger special issue on object-oriented real-time systems. ACM SIGPLAN, 1 January, pp.1-2.

Since the early years in computing, Operating Systems were used in computers to make an interface between the human user and the computer machine. OS or Operating System can be defined by “operating system is the software that controls the overall operation of a computer” (Glenn Brookshear, J, 2011).

Nowadays, users have plenty of options to choose as its operating systems, there are Operating Systems for final users, small business, medium and large business, mobile, server/networks, and so many others.

Operating Systems have some characteristics to be compared, in this paper will be covered: Usage (Desktop, Server?), Ease of Use (Graphical, Non-Graphical) and Costs.

            The most popular operating systems for desktop final-users nowadays are:

  • Microsoft Windows;
  • Apple Mac OS;
  • Linux.

For mobile most users use:

  • Apple iOS;
  • Google Android;
  • Windows Mobile.

And Server/Network Computers:

  • Linux;
  • FreeBSD/OpenBSD/NetBSD;
  • Oracle Solaris;
  • Windows Server;

To have a better understanding of OSs it is necessary to know a little bit about history. Most of them are based on the Unix Operating System, which is: Apple Mac OS, Oracle Solaris and Linux (including Google Android and Apple iOS). The UNIX Operating System was created in 1969 by system engineers at AT&T’s Bell Labs (Unix Help, 2014), and since nowadays it continues to be very influencing for the modern Operating Systems. Linux, in the beginning, was more focused in the server business, with a small slice of the market for final-users, but nowadays it became more popular with the effort of open-source collaborators and investing companies. Microsoft Windows, which is the most popular OS worldwide, was completely developed by Microsoft Corporation, not following the Unix OS concepts.

The ease of use is a very important topic to be pointed. Microsoft Windows became the most popular OS in the world because it has been always oriented by the GUI system, nevertheless, Mac OS is as simple as Windows, but it wasn’t much popular because of the Apple’s business strategy to sell their own built computers.

The table bellows points, the big difference between prices for Operating Systems.

Operating System Price
Windows 8.1 (Amazon, 2014) $95.91
Mac OS X version 10.6.3 Snow Leopard (Amazon, 2014) $29.38
Ubuntu Linux (Amazon, 2014) $10.99 (free to download)

While Apple OSX is cheaper than Microsoft Windows, you must consider that Apple sells its machines, and you can use only with Apple computers, on the other hand, Microsoft only sells operating systems but It can be used in any PC based computer. Ubuntu is totally free for download, but if you want to have the original DVD you can buy for a very cheap price at Amazon.

I personally used almost all the covered Operating Systems in this paper. I became a Linux enthusiast in 1999, using Caldera Open Linux and afterward used Slackware, Debian, Mandrake, Conectiva, RedHat, and others; I tested also NetBSD and OpenBSD OSs; I used Microsoft Windows since the Windows-95 version (going through Windows-98, Windows ME, Windows 2000, Windows XP, Windows Vista and Windows 7) and since 2012 I am a Mac OS user. My cell phone is an Android 4 operating system, which I really like to use.

REFERENCES

Glenn Brookshear, J, 2011. Computer Science: An Overview. 11th ed. United States of America: Addison-Wesley.

UNIXhelp. 2014. History of the UNIX operating system. [ONLINE] Available at: http://unixhelp.ed.ac.uk/concepts/history.html. [Accessed 30 July 14].

Amazon. 2014. Windows 8.1 System Builder OEM DVD 64-Bit. [ONLINE] Available at: http://www.amazon.com/Windows-8-1-System-Builder-64-Bit/dp/B00F3ZN2W0/ref=lp_229653_1_5?s=software&ie=UTF8&qid=1406762026&sr=1-5. [Accessed 30 July 14].

Amazon. 2014. Mac OS X version 10.6.3 Snow Leopard. [ONLINE] Available at: http://www.amazon.com/version-Leopard-computer-processor-required/dp/B001AMHWP8/ref=lp_229653_1_12?s=software&ie=UTF8&qid=1406762026&sr=1-12. [Accessed 30 July 14].

Amazon. 2014. Ubuntu Linux 13.04 Special Edition DVD. [ONLINE] Available at: http://www.amazon.com/Ubuntu-Linux-13-04-Special-DVD/dp/B00CFRF7UY/ref=sr_1_1?s=software&ie=UTF8&qid=1406763048&sr=1-1&keywords=ubuntu. [Accessed 30 July 14].