Understanding Operating Systems
Understanding Operating Systems
Software is a set of instructions, data or programs used to operate computers and execute specific tasks.
These software programs are designed to run a computer's application programs and hardware. System
software coordinates the activities and functions of the hardware and software. In addition, it controls
the operations of the computer hardware and provides an environment or platform for all the other
types of software to work in. The OS is the best example of system software; it manages all the other
computer programs. Other examples of system software include the firmware, computer language
translators and system utilities.
Now that we know what operating system means, we can go on to find out the functions of an operating
system. They are listed below:
The operating system detects and controls errors that occur in the system. It also enables you to recover
your system when any hardware fails. Finally, with its help, you can back up data for use in case there is
a system failure.
Booting
Booting means to start the computer operating system. This operating system will check all the
resources of the computer to get it ready to start work.
User Interface
The operating system manages the computer user interface. The user interface is where you input or
type instructions and it will show up as output on the computer screen or desktop monitor. There are
two types of user interface. You have the graphics line and the command interface.
In Graphic Line Interface, you give commands for example in Windows, Mac, Chrome menus and icons,
scroll bars, which you can see displayed on your monitor. It is purely a visual interface.
Command Line Interface is where you can type commands telling the computer what it must do. For
example, Digital commanding language, UNIX shells, Windows exec files etc.
The computer is only able to manage the memory of the system when the operating system starts
working.
This is one of the major functions of all operating system in a computer since the operating system is the
tool that manages different programs working simultaneously inside the memory of the computer once
you start it. Therefore, if the operating system of the computer is not functioning, there will be a mix up
of programs and this will cause the computer system not to work well.
All programs that run a computer must first load in the memory before the computer can carry out the
instructions.
The operating system gives you the resources for loading of all programs that run in a computer
memory. It enables the computer to carry out the instructions of different programs that run in the
memory.
Data Safety
Data is the life of a computer system so, you must protect it.
The internal security man of the computer is the operating system. It makes sure no data in the system
is changed by an unauthorized person. It also stops people from using data without permission or even
deleting it without meaning to do so.
It is the operating system that checks and controls the disk space properly. It also cares for all files
stored in the system and all folders in the computer system.
You are aware that a computer has many devices which you can attach to it at any time. Some devices
like printer, the keyboard, mouse, etc. These are hardware devices.
It is the operating system that controls these hardware devices using software inside the operating
system called device drivers.
Management of Printing
It is the role of an operating system to control how the printer will receive and carry out the printing
instructions which you send from any word processing software or other devices.
You can send one print command or ten to your printer. The operating system will make sure the print
jobs which get to the printer as separate files so that they do not mix up.
The computer processing unit (CPU) can only carry out one task at a time.
It is the operating system that selects the most important task that the system will carry out at any time.
No matter the number of tasks sent to the computer, it is the task approved by the operating system
that will run on the computer. All the list I gave above is an example of an operating system and its
functions.
Multiuser OS:
In a multiuser OS, more than one user can use the same system at a same time through the multi I/O
terminal or through the network.
Multiprocessing OS:
A multiprocessing OS can support the execution of multiple processes at the same time. It uses multiple
number of CPU. It is expensive in cost however, the processing speed will be faster. It is complex in its
execution. Operating system like Unix, 64 bit edition of windows, server edition of windows, etc. are
multiprocessing.
Multiprogramming OS:
In a multiprogramming OS more than one programs can be used at the same time. It may or may not be
multiprocessing. In a single CPU system , multiple program are executed one after another by dividing
the CPU into small time slice.
Multitasking OS:
In a multitasking system more than one task can be performed at the same time but they are executed
one after another through a single CPU by time sharing. For example: Windows, Linux, Mac, Unix,etc.
a) Pre-empetive multitasking
b) Co-operative multitasking
In the pre-empetive multitasking, the OS allows CPU times slice to each program. After each time slice,
CPU executes another task. Example: Windows XP
In co-operative multitasking a task can control CPU as long as it requires . However, it will free CPU to
execute another program if it doesn’t require CPU. Exaample: windows 3.x, multifinder,etc.
Multithreading:
A program in execution is known as process. A process can be further divided into multiple sub-
processers. These sub-processers are known as threads. A multi-threading OS can divide process into
threads and execute those threads. This increases operating speed but also increases the complexity.
For example: Unix, Server edition of Linux and windows.
Batch Processing:
A batch processing is a group of processing system in which all the required input of all the processing
task is provided initially. The result of all the task is provided after the completion of all the processing.
Its main functions are:
It is an individual processing system in which the task is processed on individual basis as soon as they are
provided by the user. It has features like:
Compiler
Interpreter
Just like a compiler, is a translator used to convert high-level programming language to low-level
programming language. It converts the program one at a time and reports errors detected at once,
while doing the conversion. With this, it is easier to detect errors than in a compiler. An interpreter is
faster than a compiler as it immediately executes the code upon reading the code.
It is often used as a debugging tool for software development as it can execute a single line of code at a
time. An interpreter is also more portable than a compiler as it is not processor-dependent, you can
work between hardware architectures.
Assembler
Examples of Translators
Translator Examples
OCaml
Interpreter List Processing (LISP)
Python
Antivirus
A virus is a malicious software that enters the system along with a host program. Moreover, it multiplies
with time and makes several copies which in turn slows down and corrupts the system
An antivirus is a utility software that helps to keep the computer virus-free. Moreover, it notifies when
any malicious file is detected and removes such files. In addition, it scans any new device attached to the
computer and discards any virus if there. Moreover, it also scans the system from time to time for any
threats and disposes of them. Examples of antivirus are McAfee Antivirus, Quickheal Antivirus, Windows
Defender, etc.
These utility software are used to manage files of the computer system. Since files are an important part
of the system as all the data is stored in the files. Therefore, this utility software help to browse, search,
arrange, find information, and quickly preview the files of the system.
Windows Explorer is a default file management tool present in the system. Some other examples of file
management tools are Google Desktop, Double Commander, Directory Opus, etc.
Compression Tools
An important part of a computer is storage space, it is very important to maintain this storage.
Therefore, we use certain utility software to compress big files and decrease their size, these are
compression tools.The format of the files changes while compressing and we cannot access or edit them
directly. In addition, we can easily decompress the file and get the original file back. Examples of
compression tools are WinZip, WinRAR, WinAce, PeaZip, 7-Zip, etc.
These utility software are used to manage data on disks. Moreover, they perform functions like
partitioning devices, manage drives, etc.Examples of disk management tools are MiniTool Partition
Wizard, Paragon Partition Manager, etc.
This utility software helps to free up the disk space. In addition, the files which are no longer in use are
removed from the disk. Examples are Razer Cortex, Piriform CCleaner, etc.
Disk Defragmenter
This utility software helps to reduce the fragmentation and hence, reduces the access speed.
Defragmenting refers to rearranging files and storing them in contiguous memory locations. Moreover,
saves time in reading from files and writing files to disk. Examples of disk defragmenters are Perfect disk,
Deflaggler, etc.
Backup Utility
This utility software helps to back up the files, folders, databases, or complete disks. Moreover, backup
refers to duplicating the disk information so that the data can be restored if any data loss happens.
Block devices are characterized by random access to data organized in fixed-size blocks. Examples of
such devices are hard drives, CD-ROM drives, RAM disks, etc. The speed of block devices is generally
much higher than the speed of character devices, and their performance is also important.
Character device drivers normally perform I/O in a byte stream. Examples of devices using character
drivers include tape drives and serial ports. Character device drivers can also provide additional
interfaces not present in block drivers, such as I/O control (ioctl) commands, memory mapping, and
device polling.
Types of Application Software: According to the need of users it is categorized into following types.
Presentation Software: Presentation program is a program to show the information in the form of slides.
We can add text, graphics video and images to slides to make them more informative.
Presentation software helps the presenter to present their ideas with ease and visual information easy
to understand. Example of presentation software: Microsoft’s PowerPoint and Apple’s Keynote.
Database Software: Database is a collection of data related to any applications. Today is environment
every application has some database where data regarding users stored. For this purpose, we
used database software. When we operate the application data is accessed from the database, and after
manipulation, it gets back stored in the database.
Database Management System (DBMS) software tool used for storing, modifying extracting and
searching for information within a database. MySQL, MS Access, Microsoft SQL Server and Oracle is the
example of database application Software.
Multimedia Software: Multimedia is a combination of text, graphics, audio and Multimedia software
used in the editing of video, audio and text. Multimedia software used in the growth of business,
educations, information, remote system and entertainment.
Entertainment: This area deal with the general public, media and telecommunication. With the growth
entertainment mode, many application is available for mobile phone as well as the system. Like Music
and video entertainment app, navigation app, social networking application, news and weather
application, educational apps and e-book reader’s app for preparation of any type of exams.
Word Processing Software: Word Processing software is used to manipulate, format the text, to create
memos, letters, faxes and documents. Processing Software is used to format and beautify the text. It
provides a list of features. Likethesaurus, the option provides synonyms, antonyms and related words
for chosen word or phrase. Find and replace feature enables users to scan and replace selected words or
phrases in the document. Font option provides font colour, font style, font effect, font size to modify the
txt. Word Art option to modify or animated titles, hyphens, columns and text boxes in documents.
Grammar and Spelling check option available for checking errors. Many more option is listed here in
software.
For example Microsoft Word, Lotus Word Pro, Word pad and Corel WordPerfect.
Tailor-made Solution
When you purchase off the shelf solutions, they may or may not be built around your business goals.
Developing a software solution specifically for your company ensures that it is tailored to suit your
needs.
In fact, during the process of building custom software, you may find several opportunities to optimize
your processes, which leads to higher productivity for your organization.
There are several outsourcing partners who would be willing to analyse the complete set of processes
followed within the organization to give you highly optimized solutions for automation.
This will increase your productivity, which in turn makes it financially more rewarding in the long run.
Check out our portfolio page to find out what custom tailored solutions we have created for our
customers.
Return on Investment
Custom software development may look like an expensive option at the beginning as a lot of investment
is involved in software development but in the long run, they may get you higher returns.
On the other hand, readily built software packages also involve some cost.
At times you may need to purchase extra hardware, high-end servers (sometimes even with version
updates) to run them effectively. The additional cost that you need to bear every year is annual license
fees.
Custom software is high on investment at the beginning but the costs become almost negligible in the
long run.
A detailed ROI needs to be done to find out paying huge sums for custom software development which
will pay for itself in few years vis-à-vis license fees during the same period and other costs involved in
buying off-the-shelf software.
Security Concerns
One of the benefits of custom written software is that security, as required by your organization, can be
inbuilt in the software.
Hackers love the popular commercial off-the-shelf software (COTS) and are more likely to find ways
through vulnerable portions of such tools to enter your systems.
With custom software, chances on intrusion are considerably reduced as you use your own tool which is
predominately used by your own team.
Flexibility
This will ensure that the software addresses any changing needs of your organization. On the other
hand, features of an off-the-shelf application remain constant more or less and cannot be manipulated
easily.
With off-the-shelf software, you will have to wait for some other company to enhance their features to
make your life easier.
This is not the case with custom software, you have a team in hand who can take up all your requests at
any time and enhance the features for you.
In case you are outsourcing development to another company, it is always better to ensure maintenance
is built into your contracts and they are flexible enough to incorporate any changes that you may need
at any point of time.
Compatibility
There may be several other tools that your organization may be using.
You may want that all the tools talk to each other and may need to build interfaces which makes it easy
to transfer data from one application to other.
This compatibility can, however, be built in a custom software. Off-the-shelf software may have some
options to integrate with other software but this may not be too seamless as you may want it to be.
Easy to Operate
Another advantage of custom software is that they are easy to operate as they are not bulky and have
just enough features required for your operations.
Off-the-shelf software may have a lot of functionalities based on a generic set of requirements.
You may not be needing many of these functionalities and may be using just some features. The tools
become bulky and difficult to operate due to this.
The ease of use increases productivity and reduces costs by automating repetitive tasks. This will
increase your profits and lower the cost involved further.
Long-term Risks
Many times, off- the- shelf companies release newer versions of their software and they stop all support
for older versions.
You can run your business without worrying about an off-the-shelf software that is being used to run
your entire business or a critical function may be discontinued and no further updates or improvements
can be received.
A custom software is always available and can be updated as many times as you may want.
Improved Software Support
You get better support from teams working on custom software than off-the-shelf software.
Most of the time, continuous support is built into your contracts with outsourcing partners which means
there will be a dedicated team that they will provide you to maintain the software.
This provides better problem solving and defect fixing than the support provided by off-the-shelf
software.
The response and resolution time are faster with custom software development and this can be ensured
by building Service level agreements (SLAs) in your contracts.
The control of support that you will receive is in your hands and not the other way around.
Competitive Advantage
You can get all kinds of unique features built into the system which your competition may not have.
You have a unique solution in hand which can become your USP (unique selling proposition) and gives a
competitive advantage to you over your competitors. An off-the-shelf software is rigid and you need to
align your processes against it.
With custom software, you have what you need and you can focus on your target audience better.
This can ensure higher customer satisfaction and more business for you in the long run.
High Investment
While it may pay in the long run, the initial investment may be a little overwhelming for some
organizations.
Time Involved
Apart from investment in terms of money, a huge time investment is required to complete the software
development process.
While off-the-shelf solutions will give benefits quickly, it may take months or years to actually get the
custom software delivered.
The organization need to invest a lot of their time in providing requirements to the outsourcing
company or to your in-house software development team.
An off-the-shelf software has been tested for all defects, has gone through elaborate usability tests and
is ready to use when it reaches your desk.
This may not be the case with custom software.
The custom software requires investment in terms of time to test the software from a user’s perspective
and the process may go through several iterations before you get the desired results.
This whole time spent in various software development phases may be draining for you or the teams
working with the outsourcing partner.
When going for custom software, there is the extra worry of needing to get relatively high technical
proficiency. It is best to consider other off-shelf options with easier handling and management
requirements especially if your organization lacks a technically strong software team having the skill set
necessary for building and configuring the custom software. It will be very difficult to achieve efficiency
if your developers can’t be held accountable for the entire project.
With the use of custom software, the unavailability of the original developer for support to the program
makes it very difficult and sometimes impossible to get others capable of updating or adding new
features to the software. Also, routine and commercial software packages usually have readily available
training and documentation resources in comparison with custom software packages. This is a major
limitation to the effective functioning of research management systems based on custom software.
Taking a look at already existing commercial software, they have been designed in several capacities,
sizes, scope, functions etc. This implies checking for systems proven with an efficiency that fulfill your
requirements or similar requirements is always a better option than trying out an untested custom
software. A working commercial system from one organization can be employed to successfully set up
another with similar purposes.
A custom software limits the use of technology as a competitive advantage. Also, there is a reduced
possibility of sharing important information with other, different, systems which give a great advantage
in enriching the research with more data.
One of the main advantages of commercial software is that it is easy to acquire. Virtually any technology
store, computer or that has something to do with devices and accessories, have different types of
commercial software for sale in your inventory. Unlike non-commercial software, to call it in any way,
this type of software you regularly have to download from the Internet, and you will not find it in
commercial stores, although this is not always the case and this is where many confuse free software
with software not commercial, which would seem to be the same, but it is not. Unfortunately that is
another issue that we will be seeing later, so we must continue.
As a second advantage to point out and see that it does not take order, in reality that does not matter,
they are advantages and period. We can highlight the fact that commercial software is developed to
execute specific tasks. With this, the quality of the software increases and the user experience
mainly. Unlike free software that we can find anywhere, but that may not be especially for the task we
want. At least with the commercial software, you will always have on hand a prop for what you need to
do, even if it costs you a license.
Possibly for many this would not be an advantage as such. But imagine using the software they designed
among a team of developers, which is continually being updated to eliminate bugs or small computer
holes, which are always aware of security and therefore offer you a guarantee. Compared with a
software, designed by a person, which you just uploaded to the network and now you can use it, but it is
abandoned, without updates, or corrections. In this type of case, the commercial software takes a big
advantage, because the security and the good functioning will always be guaranteed, above all because
you are paying for it.
Best Interface
Surely by now you have tested commercial software and free software. Well, without a doubt,
something you should have noticed, is that in design and graphic issues, commercial applications are
much better. As your graphic design team puts the batteries and make the scheme of work for you the
customer, is much more pleasant and comfortable. Unlike a person who developed software and is
simply functional, but the design or area where you will work is really bad, without organization, without
color and without visual enthusiasm. This dear reader, is one of the main reasons why people who use
commercial software, are hardly passed or moved to what is the use of free or non-commercial
software.
Greater Compatibility
Mainly, in what refers to Games and all the multimedia area that today is so abundant, commercial
software stands out for having the greatest compatibility. Therefore, if this is the sector that you use the
most in a computer, surely you will always approach the commercial software, the purchase of games
and everything that moves in this sector of software development
Do not think that commercial software is expensive, just because yes. The reality is that it is done with
different development processes of such high quality. That the compatibility of the software with the
Hardware is simply perfect. In fact, you will always see that the commercial software brings in detail the
specifications by means of which it works of a better way, something that with the free software they do
not take so much importance to him, eye, that I do not say that they do not mention it or that they do
not give importance him. Simply the optimal performance well analyzed can be found in commercial
software commonly.
Of course as well as we have a lot of advantages. The reality is that there are also some disadvantages
that we as software users should consider. Mainly when you want to use it in a certain way, commercial
software is more delicate, then we will see each of the disadvantages of commercial software and why
many users, customers, developers and programmers, prefer to focus their daily walk in free software or
not commercial.
No Multiplatform Programs
Do you want a program for Windows ?, then go and buy it. Now you want the same program, in its
version for MAC ?. I’m sorry, you’ll have to buy it also individually. What is it about?. Well, the licenses
through which the commercial software is handled, does not speak about the fact that you can be the
owner of each of the versions of the purchased software, only of the desktop version, so to speak. But if
you want to use it in MAC and not in Windows, then you will surely have to go to the store to buy the
MAC version now. Sadly, this is how it is handled.
Cannot Copy
You bought a licensed software and you want to share it with your friends … I regret to tell you that this
activity is illegal and in case two or more access with your same license, it can be banned and
canceled. So in a nutshell, one of the most notorious disadvantages of Commercial Software is the fact
that you can not copy the software. It is only of the person who bought it and you swim, for any doubt
with this, you can consult the license or the same developer.
Impossible to Modify
A few paragraphs ago, he mentioned that for developers, commercial software is not his favorites, nor
for programmers, something that ordinary users do not share. And one of the main reasons, is because
you can not get your hands on the source code of the software. In fact, most of the systems you buy, do
not give you access to the source code. Therefore, there is no way you can make any changes.
Now imagine this at the business level. If a company has a development team with 10 people, you will
need 10 licenses. For a company is much more delicate process of licensing, since they are constantly
monitored and monitored by the companies responsible for legal software and the legality and use of
this mainly.
Possibly I have already mentioned it before, but it is important to mention this great inconvenience that
commercial Software has in itself. For example let’s see. A very noticeable drawback is that it is not
possible to redistribute the software that you just bought. For example, you can not make a CD image
and upload it to the Internet so that others can download it, because this activity is completely illegal
and if you do not believe me, you can find it in the license that you just acquired, just check it to find out
of what you can not really do.
Do you want to talk about prices ?. Surely you have already gone to a technology store and checked the
price of the Office package, a good antivirus or the Windows operating system itself. Any of these
Commercial Software has a really high cost or market value. Obviously comparing what would be free
software and the possibility of downloading the internet programs quietly and without spending or
moving your economy. This is one of the reasons why many use pirated software, something that is not
good, but that the high cost borders on that.
Technical support
Earlier I mentioned that technical support was one of the advantages of commercial software. And that
certainly was an important part to highlight, for the help that this can provide us. However, something
that few know, is that the technical support of a software is only for that person who acquired it. If more
people use it, and want to contact technical support, this help will be denied, even when you are already
in a phone call with them.
Proprietary Software
As you know, commercial software is also called Proprietary Software. And specifically, this is also one of
the drawbacks. When acquiring a proprietary software, you as a client or user, will have a certain level
of dependence towards the company that owns the software. Unlike Free Software as such, in which
you will not even have the need to contact the developer, you can send your comments or doubts, but
regularly among the same users in some forums, they give what is the attention to clients or the support
help.
Hardware and Operating System. Acquiring software package needs examining performance. When you
examine performance, a number of factors influence how much capacity a given hardware configuration
will need in order to support a given application. The hardware capacity required to support your
application depends on the specifics of the application and configuration. You should consider how each
factor applies to your configuration and application. Choosing an Operating System considers the
following factors; Stability and Robustness, Memory Management, Memory Leaks, Sharing Memory,
Cost and Support, Discontinued Products and Operating System Releases. Selecting right hardware leads
to great software performance, choosing hardware considers; I/O Performance, Memory, CPU and
Bottlenecks (Solving Hardware Requirement Conflicts).
Product's Interoperability. Product's Interoperability with other Departments criteria defines the term
Inter-operate, the ability of diverse systems and organizations to work together. Interoperability is used
to describe the capability of different programs to exchange data via a common set of exchange
formats, to read and write the same file formats, and to use the same protocols. (The ability to execute
the same binary code on different processor platforms is 'not' contemplated by the definition of
interoperability.) The lack of interoperability can be a consequence of a lack of attention
to standardization during the design of a program. Indeed, interoperability is not taken for granted in
the non-standards-based portion of the computing world.
User Training. According to Jonathan Wu, a columnist in Information Management Online said that,
Each software company that develops Business Intelligence (BI) applications offers training courses on
their products. The goal of this standard BI training is to demonstrate the features and functionality of
the application to the customers through lecture and lab exercises. Most companies that purchase a BI
application will have users attend the standard training that is provided by the BI company because it is
readily available and requires very little preparation or planning.
Product Support. Need for Continuing Product Support Offers a wide range of product and service
solutions. This criteria will provide the end to end support you need to control costs and maximize value
for your product returns. From returns management through fulfillment, channel remarketing or
recycling, this criteria will support your specific product returns needs often at a substantial savings over
other options.
Cost. Software licensing cost is among several major cost factors that must be considered when
acquiring software packages. The real cost of a product includes the price of the software and the cost
implementing it as well. The real cost of a product includes the price of the software and the cost of
implementing it as well. Contributing to the overall cost of implementation are costs associated with;
Computer hardware, Database platform, New System Maintenance, Old System Maintenance, Data
Conversion services, Project management services, Technical training and User Training.
Briefly explain the five generations of programming languages
The first generation languages, or 1GL, are low-level languages that are machine language.
The second-generation languages, or 2GL, are also low-level assembly languages. They are sometimes
used in kernels and hardware drives, but more commonly used for video editing and video games.
The third-generation languages, or 3GL, are high-level languages, such as C, C++, Java, JavaScript, and
Visual Basic.
The fourth-generation languages, or 4GL, are languages that consist of statements similar to statements
in a human language. Fourth generation languages are commonly used in database programming and
scripts examples include Perl, PHP, Python, Ruby, and SQL.
The fifth-generation languages, or 5GL, are programming languages that contain visual tools to help
develop a program. Examples of fifth generation languages include Mercury, OPS5, and Prolog.