what's the difference between system and application software? stick with me and find out in this video
My name is Tim Buchalka from the Learn Programming Academy and I'm going to be talking
about system software in this video. You'll learn the difference between system and application
software as well. There's two classifications of software; system and application. And in this video,
I'll talk briefly about system software which generally includes operating systems and utility programs.
In the next video, I'll cover application software. So what's the difference between system
and application software. We'll see if this example gives you a sense of the difference. Most of us
just expect all software system and application to just work. However, most non-computing consumers,
and that's probably not you, don't know and don't care to know about system software.
They just want to play games write papers with word processing do accounting and spreadsheets etc
which is classified as application software or apps. An analogy that I've used for many years to
distinguish and explain system from application software, utilizes a live play or concert. Both of
which need men and women dressed in black as support staff working behind the scenes.
Those people are analogous to system software but the actual actors for the play and the musicians
for the concert are the real reason I take in a play or a concert. Which is much like the
application software which will do all the work I needed to do, whether it's playing a game, writing
the document, paying the bills or whatever. The role of an operating system in any computing device
is to coordinate a computer's internal activities as well as oversee its communication
with the outside world. Without the operating system the computer hardware can do nothing
Knowing about the operating system is central to being an enlightened computer user or programmer.
Most operating systems chunk work into jobs based on the application software being executed by the
operating system. Some jobs are done in what is called batch processing which requires very little,
if any, end-user interaction. Today many of these jobs run in the background throughout the day
or night and you and I rarely know they exist except for the amount of RAM they consume or the
impact they have on the computer's performance. The other type of job is called real-time processing.
This type of process is what you and I demand of our computing devices every day. We surf the
web, we launch a game, we open and edit documents, and so forth. The operating system must be able
to accommodate this right now type of processing or we just give up and stop using the computer.
In a single user system like our desktops, laptops, tablets, phones, and wearables, the operating system
allows you and I to switch between the various activities as I just mentioned. The operating
system uses a concept that's called multitasking whereas the server computers that allow tons of
users to interact simultaneously with it use the concept called multi-programming. In both
multitasking and multi-programming the operating system divides time into intervals and then the
execution of each job is restricted to only one interval at a time. At the end of each interval, the
current job is temporarily set aside and another is allowed to execute during the next interval.
By rapidly shuffling the jobs back and forth in this manner, it creates the illusion of several
jobs executing simultaneously. Have you ever wanted to use a particular item? Bicycle, automobile, game
controller, or a good book, and you discover that your friend or family member is using the item?
Both of you cannot use these types of items simultaneously, can you? The same is true
for the resources associated with a computer. What if two apps want to direct output to a
printer at the same time or what if apps want access to the same data simultaneously?
How can this be handled? Operating systems must manage this competition for resources and in the
case of printing for example, the operating system uses a term called "spooling" to put printer output
in a first in, first out queue and then releases the output in sequential order. Another issue
that could arise is known as deadlock. This occurs when two or more apps are blocked from progressing
because each is waiting for a resource that is allocated to another app. For example, one app
has access to the printer while waiting for access to a dvd player and another app has access to the
dvd player while waiting for access to the printer. Deadlocks are not very common today but when they
occur a super user or user with administrative privileges may be required to kill at least one
of the apps. Kill is a strong word but that is the term used for such situations in computing.
Operating systems play a vital role in the security of the computer. Its processes and its
data. Security is a huge topic so just some simple aspects are offered for you to think about here
Attacks can come from the outside hence the need for login authentication, credentials and other
security aspects, such as two-phase authentication also known as two-factor authentication which
sends a time-sensitive code to another device. That code must be entered after your authentication
credentials to gain access to the computer or website. Another often used security concept
is known as a captcha. This concept often presents you with a series of scrambled letters and numbers
that you must manually enter or a series of images that you must click on certain
ones that meet the captcha requirement in order to prove that you're not a robot or bot.
Attacks that the operating system must guard against also come to the inside once an authorized
user gains access to the computer. The operating system makes sure no app gains access to main
memory that's allocated to another app. There are other safeguards for inside attacks and these
are covered in the section on utility programs coming up. The evolution of operating systems
continues with the emergence of multi-processor machines such as dual and quad-core processors for
example, has led to operating systems that provide multi-programming and multi-tasking capabilities
by assigning different tasks to each of the different processes as well as sharing the time
of each involved single processor these operating systems must wrestle with such challenges as load
balancing dynamically allocating tasks to the various processes so that all processes
are used effectively as well as scaling which involves separate tasks into a number of subtasks
compatible with the number of processes available. Oh my! Exciting software! Software that supports and
enhances the role of the operating system is known as utility programs. These programs are provided
by the operating systems creator and are used for the installation of the operating system
and other features once the operating system is running. A few examples of these programs
include ones that format storage devices, copy files to a storage device, compress and
decompress data, playing multimedia presentations, and software for handling network communications.
A couple of utility programs that focus on security include auditing software that record
and analyze activities that take place with the computer. Auditing software is also designed
to detect the presence of sniffing software which is software added by a malicious intruder
that records activities and later reports them to the intruder. You want to find out more about apps
and how they work well stay tuned for the next video where we'll explore this in more detail.
Thanks for watching see you in the next video. Okay here's where i meant to pump you to click on the
subscribe and click on the bell notification. Do that if you want to keep updated with the videos
There's also links on this page who knows where they are but you'll find the first video in the
series which might be a good thing to do if you're not watching the first one, or the previous video
so click on those links, subscribe, do whatever thanks for watching see you in the next video!