The document discusses various types of system software including operating systems, utility software, loaders, linkers, compilers, and others. It describes the functions of system software such as allocating resources, monitoring activities, and file management. Linkers and loaders are discussed as important tools that allow programs to be built from modules. The roles of various utility software like antivirus utilities, backup utilities, and disk cleaners are also summarized.
2. • Introduction
• What are the system software in practice?
• Operating systems.
• Utility software.
• Loaders, Linkers and decoders.
• Compilers.
AGENDA
3. INTRODUCTION
Invitation to Computer
3 Science, C++ Version, Fourth
Edition
4. • System software
• Acts as an intermediary between users and hardware
• Creates a virtual environment for the user that hides the
actual computer architecture
• Virtual machine (or virtual environment)
• Set of services and resources created by the system software
and seen by the user
System Software: The
Virtual Machine Invitation to Computer
4 Science, C++ Version, Fourth
Edition
5. Figure 6.1
The Role of System Software 5
Invitation to Computer Science, C++ Version, Fourth Edition
6. • System software is a collection of many different
programs
• Operating system
• Controls the overall operation of the computer
• Communicates with the user
• Determines what the user wants
• Activates system programs, applications packages, or user
programs to carry out user requests
Types of System Software Invitation to Computer
6 Science, C++ Version, Fourth
Edition
7. Figure 6.2
Types of System Software 7
Invitation to Computer Science, C++ Version, Fourth Edition
8. • User interface
• Graphical user interface (GUI) provides graphical control of
the capabilities and services of the computer
• Language services
• Assemblers, compilers, and interpreters
• Allow you to write programs in a high-level, user-oriented
language, and then execute them
Types of System Software
(continued) Invitation to Computer
8 Science, C++ Version, Fourth
Edition
9. • Memory managers
• Allocate and retrieve memory space
• Information managers
• Handle the organization, storage, and retrieval of
information on mass storage devices
• I/O systems
• Allow the use of different types of input and output devices
Types of System Software
(continued) Invitation to Computer
9 Science, C++ Version, Fourth
Edition
10. • Scheduler
• Keeps a list of programs ready to run and selects the one
that will execute next
• Utilities
• Collections of library routines that provide services either to
user or other system routines
Types of System Software
(continued) Invitation to Computer
10 Science, C++ Version, Fourth
Edition
11. • The three major functions of system software are
• 1. Allocating system resources
• 2. Monitoring system activities
• 3. File and disk management
Functions Of System Software
Invitation to Computer
11 Science, C++ Version, Fourth
Edition
12. • Linkers and loaders have been part of the software
toolkit almost as long as there have been
computers, since they are the critical tools that permit
programs to be built from modules rather than as one
big monolith.
• Linker is a program that takes one or
more objects generated by a compiler and combines
them into a single executable program.
Usually large applications are written into small
modules and are then compiled into object codes. A
linker is a program that combines these object
modules to form an executable.
LINKER AND LOADER
13. • As early as 1947, programmers started to use primitive
loaders that could take program routines stored on
separate tapes and combine and relocate them into one
program.
• By the early 1960s, these loaders had evolved into full-
fledged linkage editors.
• During the 1970s and 1980s there was little progress in
linking technology. This is due to the arrival of virtual
memory.
• In the 1990s linkers have again become more complex,
adding support for modern features including dynamically
linked shared libraries.
CONT
14. • Loader is utility program which takes object code as input
prepares it for execution and loads the executable code into
the memory. Thus loader is actually responsible for
initiating the execution process.
Functions of Loader:
The loader is responsible for the activities such as
allocation, linking, relocation and loading
1)It allocates the space for program in the memory,
by calculating the size of the program. This activity is
called allocation.
LOADER
15. 2) There are some address dependent locations in the
program, such address constants must be adjusted
according to allocated space, such activity done by
loader is called relocation.
3) Finally it places all the machine instructions and data
of corresponding programs and subroutines into the
memory. Thus program now becomes ready for
execution, this activity is called loading.
CONT
16. Utility software is system software designed to
help analyze, configure, optimize or maintain a
computer. A single piece of utility software is
usually called a utility or tool.
Utility software usually focuses on how the
computer infrastructure (including the computer
hardware, operating system, application
software and data storage) operates.
UTILITY SOFTWARE
17. UTILITY SOFTWARE CATEGORIES
Anti-virus utilities scan for computer viruses.
Backup utilities can make a copy of all information stored on a
disk, and restore either the entire disk (e.g. in an event of disk failure)
or selected files (e.g. in an event of accidental deletion).
Data compression utilities output a shorter stream or a smaller file
when provided with a stream or file.
Disk checkers can scan operating hard drive.
Disk cleaners can find files that are unnecessary to computer
operation, or take up considerable amounts of space. Disk cleaner
helps the user to decide what to delete when their hard disk is full.
Disk compression utilities can transparently compress/uncompress
the contents of a disk, increasing the capacity of the disk.
18. • Disk defragmenters • Hex editors
• Disk partitions • Memory testers
• Disk space analyzers • Network utilities
• Disk storage • Registry cleaners
• Archive • Screensavers
• File managers • System monitors
• Cryptographic • System profilers
19. • Microsoft software utility first introduced with Windows 98 and
included with all other versions of Windows released after it that
enables users to configure how their computer starts and what
programs or services automatically load each time the computer
starts.
• Users running these versions of Windows can open msconfig by
following the below steps.
• Click Start and Run.
• Type msconfig and press enter, once done you should see the System
Configuration Utility window as shown in the below example picture.
MICROSOFT UTILITY SOFTWARE
21. CCleaner (formerly Crap Cleaner), developed by Piriform, is
a utility program used to clean potentially unwanted files and
invalid Windows Registry entries from a computer.
A public version 1.01 for the Mac OS X has been released along
with a Network Edition.
CCleaner can be employed to uninstall programs.
CCleaner allows the alteration of start-up programs, similar to
the Microsoft Windows MSConfig utility.
Users can disable start-up programs.
As of version 2.19.901, CCleaner also allows users to delete
system restore points.
24. CCLEANER
Developer(s) :Piriform
Initial release :23 September 2003; 8 years ago
Stable release :3.20.1750 / 25 June 2012; 10 days ago
Operating system : Windows 2000 and later
Mac OS X 10.5 and later
Platform :IA-32 and x64
Available in :47 languages
Type :Utility software
License :Freemium
Website :www.piriform.com/ccleaner
25. OPERATING SYSTEM
• Operating System is a software, which makes a computer
to actually work.
• It is the software the enables all the programs we use.
• The OS organizes and controls the hardware.
• OS acts as an interface between the application programs
and the machine hardware.
• Examples: Windows, Linux, Unix and Mac OS, etc.,
29. • Users seeking services from same machine at the same
time – time sharing
• Implemented using a technique called multiprogramming (time is
divided into multiple intervals, execution of one job is limited to a
single time interval)
• Multiple terminals connected to same machine
• Driven by the fact that in the past computers were very expensive
• When multiprogramming is applied to single-
user environments is usually called multitasking
Time Sharing / Multitasking
30. • Provide time sharing/multi-tasking capabilities by assigning
different tasks to different processors as well as sharing the
time of one single processor
• Problems to solve:
• Load balancing – dynamically allocating tasks to the various
processor so that all of them are used efficiently
• Scaling – breaking tasks into sub-tasks compatible with the number
of processors available
• Trend to develop a network wide operating system
rather than networks of individual operating systems
Multiprocessor Operating
Systems
31. • Used in hand held devices (PDAs), mobile phones, cars,
etc…
• Limited data storage and power conservation are the big
challenges.
• Examples: VxWorks, Windows CE (Pocket PC), Palm
OS, Symbinan, ThredX, RomDOS, etc…
Embedded Operating
Systems
32. • Many people are not satisfied with proprietary operating
system.
• As Linux is a open source operating system, they
develop their own kernal and other applications for their
system.
Open source operating
system
33. NEXT GENERATION
• In future the microsoft is deciding to develop cloud OS.
• They decided to develop Operating System integrated
with browser.
• Many OS like Google Chrome OS, Firefox OS is coming
up.
34. • A compiler is a computer program that transforms source
code written in one programming language (the source
language), into another programming language (the target
language, often having a binary form known as object
code).
• The history of the compilers takes us to the early 1940’s.
COMPILERS
35. • In 1945- Konrad Zuse began work on Plankalkul (Plan
Calculus), the first algorithmic programming language,
with an aim of creating the theoretical preconditions for
the formulation of problems of a general nature.
• In 1948- Claude Shannon´s "The Mathematical Theory of
Communication" showed engineers how to code data so
they could check for accuracy after transmission between
computers.
• Shannon identified the bit as the fundamental unit of data
and, coincidentally, the basic unit of computation.
COMPILERS- History
36. • The term compiler was coined by Hopper.
• The first compiler was written by Grace Hopper, in 1952,
for the A-0 System language.
• The A-0 System was a set of instructions that could
translate symbolic mathematical code into machine
language.
COMPILERS- Birth
37. • In 1953- John Backus completed speedcoding for IBM´s
701 computer. Although speedcoding demanded more
memory and compute time, it trimmed weeks off of the
programming schedule.
• One of the first real compilers was the FORTRAN
compiler of the late 1950s.
COMPILERS- History
38. • During the late 1970s and early 1980s, optimizing
compilers continued to improve to the point that all but
the most critical portions of general-purpose programs
were written in high-level languages.
• On the average, the compilers generate better code than
most assembly language programmers. This was often
because a compiler could make better use of hardware
resources such as registers.
COMPILERS- History
39. • In 1953- John Backus completed speedcoding for IBM´s
701 computer. Although speedcoding demanded more
memory and compute time, it trimmed weeks off of the
programming schedule.
• ALGOL 58 for Z22 computer.
• ALTAC (extended Fortran compiler) was also available
on the Philco 2000
COMPILERS- History
40. • Self-hosting Compilers:
• A bootstrapping problem: First, such compiler for a
language must be compiled either by a compiler written
in a different language.
• The first self-hosting compiler (excluding assemblers) was
written for Lisp by Hart and Levin at MIT in 1962.
• They wrote a Lisp compiler in Lisp, testing it inside an
existing Lisp interpreter.
• Open source compilers.
COMPILERS- History
41. Rob Walling- “The Future Of Compilers”
(www.softwarebyrob.com/2006/04/27/)
• Reaching the point of employing Artificial Intelligence
(AI) in an attempt to see the future.
• Compilers operate with no a priori knowledge of the
code beyond the language syntax definitions.
• Determining how a person, file or database is going to
interact with an application until it actually happens.
• This problem is hard, but not unsolvable.
COMPILERS- Future
42. • It started with huge multi-pass designs for COBOL and
FORTRAN.
• Then we moved into block-structured languages (algol,
pascal, and even C).
• Then we moved into OOP: C++, Java, .NET.
• Some IDEs now use parsers to validate
syntax/semantics as programs are entered.
• This started with legacy Quickbasic, but QB was using it to
do part of compilation as users entered each line (because
PCs were slow)
CONCLUSION
43. • The former were statically typed, often had manual
memory management and powerful optimizing compilers
(C, Pascal, Ada).
• The later were dynamically (often weakly) typed,
interpreted, and were used for scripting and learning
(BASIC, AWK, Unix shells).
• Today, the distinction is blurred: interpreters became fast
enough by using just-in-time compilation (JavaScript,
Lua) and compilers got convenient features making them
more usable
Jobs residing in mass storage wait for execution in a job queue. A queue is a storage organization in which objects are ordered in first in first-out fashion. That is, objects are removed from the queue in the order they arrived.In early operating systems, each job was accompanied by a series of instructions explaining the steps required to prepare the machine for this particular job. Those instructions were written using a system known as JCL (Job Control Language) and stored with the job in the job queue. Major drawback – no interaction once the job has been submitted for execution.
Interactive operating systems allow programs being executed to carry an dialogue with the user through terminals. Terminals – some “dummy” display based typewriters allowing the user to issue commands and receive responses. Today they evolved to complex machines (even stand alone machines).