CSC105 Lecture 20 –
Software
Rich Little (A01) Eduard Wisernig (A02)
rlittle@uvic.ca eduardw@uvic.ca
http://connex.csc.uvic.ca http://connex.csc.uvic.ca
Phone: 250-472-5752 Phone: 250-472-5722
Lectures: Lectures:
MWR 2:30 – 3:20 pm ECS 125 TWF 8:30 – 9:20 am ECS 116
Office Hours: Office Hours:
F 10:00 a.m. – 12:00 p.m. T 9:30 a.m. – 11:30 a.m.
ECS 516. ECS 617.
Software Categories
3 Categories of Software
Compilers (Module 11)
Application Software (Module 4)
System Software (Module 9)
Processing with Programs
Software programs are:
Stored in memory
Instructions that tell the computer what
to do
Designed to solve problems
Leonardo da Vinci called music ”the shaping of the invisible,“
and his phrase is even more apt as a description of software.
—Alan Kay, developer of the concept of the personal computer
A Fast, Stupid Machine
Computers:
Perform arithmetic and comparisons
capabilities
Follow precise instructions to perform
an operation
Execute instructions quickly and
accurately
Algorithms
Programmers begin with an algorithm
An algorithm is:
A set of step-by-step instructions (written
in a natural language, e.g., English)
Algorithms are ambiguous, error-prone
generalities
Algorithms are translated into the
vocabulary of a programming
language
The Language of Computers
Natural Languages include the languages spoken by
humans (algorithms)
High-level languages fall between machine language
and natural human language (java, python, C++, etc.)
Compilers translates high-level language into machine
language
Low-level language represent a one-to-one
correspondence to machine language (assembly)
Machine Language uses numeric codes to represent
data (binary)
Example (DO NOT MEMORIZE)
Average 10 numbers given by a user
Natural (algorithm) High-Level (C) Low-Level (Assembly)
Input 10 numbers int i, x, sum, avg; LOAD B TEN
Add them up for(i=1; i<=10; i=i+1) { INPUT: IN XI
Divide by 10 printf(“Input a #: ”); ADD A X1
Output result scanf(“%d”, &x); STORE A SUM
sum = sum + x; INC I
} COMPARE B I
avg = sum/10; JUMPGE INPUT
printf(“Result = %d.”, avg); LOAD A SUM
DIV A B
STORE A AVG
OUT AVG
DONE
.DATA TEN 10
Executing Executing Executing
Executing
instruction at instruction at instruction at
instruction at
address address address
address
104 108 112
100
System Software:
The Hardware-Software Connection
System software is a class of software
that includes:
The Operating System (OS)
Utility programs,
Device Drivers, etc.
Operating Systems
An operating system (OS) is a set of
programs that coordinate all the activities
among computer or mobile device hardware
What the Operating System Does
The operating system controls:
Communication with peripherals
Coordination of concurrent processing
Memory management
Monitoring of resources and security
Management of programs and data
Coordinating network communications
Managing resources
When an application or
program is being
executed it is called a
process.
Processes are allocated
CPU time and memory
Some processes are
owned by the OS; some
are owned by the user
Where the Operating System Lives
Some computers store their
operating system in ROM
Others include only part of
it in ROM
The remaining system is
loaded into memory (booting)
Most of the time it works
behind the scenes
Booting
Power computer on Power
Computer then loads BIOS
BIOS then looks at HDD & BIOS
loads first “sector”
HDD
1st Sector contains core part
of OS
OS
OS then runs and
completes loading
The User Interface:
The Human-Machine Connection
The user interface is what the user sees
on the screen
Two major user interface types:
Command-line interface
Graphical user interface (GUI)
A Command-Line Interface:
MS-DOS
This is a disk operating system in
which the user interacts using
characters
letters
numbers
symbols
Graphical User Interface
GUIs are operating systems in which the user
interacts with the computer by using a pointing device
(e.g. a mouse or touch). It includes the following tools:
Icons
windows
pull-down menus
“The first principal of human interface design, whether for a
doorknob or a computer, is to keep in mind the human
being who wants to use it. The technology is
subservient to that goal.” Donald Norman, in The Art of
Human-Computer Interface Design
Other System Software
Operating systems often provide users
with a variety of tools related to
managing a computer, its devices, or
its programs called utility programs.
File Search Image Viewer Uninstaller Disk Cleanup
Manager
Disk File PC Backup and
Screen Saver
Defragmenter Compression Maintenance Restore
Other System Software
Types of Operating Systems
Multiple User Operating Systems:
UNIX and Linux
UNIX was developed at Bell Labs in the
early 1970’s before personal computers
were available
Linux is a UNIX-based OS, created by
Linus Torvalds that continues to be a
work-in-progress
Linux is free for anyone to use or improve
Open-source software
Hardware and Software
Platforms
Mac OS X
built on UNIX
Hardware built Hardware built Intel
around Intel / AMD around Intel