Upload
doreen-parrish
View
221
Download
1
Embed Size (px)
Citation preview
SIMS-201
Computer Software
2
Computer Software Assembly Code Operating System Programming Language Application
Overview
3
Introduction Computer software consists of the instructions
and application programs that permit computers to accomplish tasks
It is called software because, unlike hardware that has fixed configurations, connections, and operation, the software is flexible and easily modified
Software programs control computers at 4 different levels:
Assembly code Operating system Programming language Application
4
Hierarchy of Software
Operating System
Assembly Code
Programming Language(High Level Language)
Application
5
Assembly Code Assembly Code, also called assembly language is the
most basic language of the computer and consists of elementary instructions recognized by the CPU
It is a a human-readable notation for the lowest level language-the machine language that a specific computer architecture uses. Machine language, a mere pattern of bits, are instructions directly recognized by the CPU
Machine language is made readable (i.e. converted to assembly language) by replacing these pattern of bits with symbols called ‘mnemonics’ (ex. ADD, SUB, LOAD, JUMP)
Unlike high-level languages, there is a 1-to-1 mapping from simple assembly to machine language, so that computers can translate in both directions without losing information. Assembly language is converted to machine language by an assembler
6
Examples of assembly code instructions (mnemonics) include: ADD and MOV
Assembly code instructions perform the basic computer operations including moving data, changing contents of registers, adding the contents of two registers and jumping to different parts of a program
For example, the computer performs the arithmetic operation: 1+2+4 as follows:
MOV 1, R0 (Move the number 1 into Register 0) MOV 2, R1 (Move the number 2 into Register 1) ADD R0, R1 (Add R0 to R1 and put the result in Register 1) MOV 4, R0 (Move the number 4 into Register 0) ADD R0, R1 (Add R0 to R1 and put the result into Register 1)
Assembly code is different for each type of computer and a code written for the Intel Pentium (IBM) microprocessor chip will not operate on the PowerPC (Macintosh) microprocessor
7
The set of instructions a processor recognizes (can execute) is called an instruction set.
There are two types of instruction sets: Reduced Instruction Set Computer (RISC) – ex. AMD Complex Instruction Set Computer (CISC) – ex. Pentium
The reduced instruction set only contains very simple instructions such as ADD, SUB (subtract), LD (load from memory) and is argued to be faster to execute. On the other hand, the complex instruction set includes the RISC + implements a few more complex instructions.
8
Operating System The operating system is a set of commands that performs common
system tasks such as accepting data from the keyboard, displaying data on the monitor, sending data to the printer, examining the contents of a directory, etc.
It is stored on the hard disk and is loaded to memory when the computer is switched on
An operating system is conceptually broken into two components: A shell and a kernel. The shell is a command interpreter and as the name implies, is an outer wrapper to the kernel which in turn talks directly to the hardware
Hardware Kernel Shell Applications
In some operating systems the shell and the kernel are completely separate entities, allowing you to run varying combinations of shell and kernel (eg Unix), in others, the separation is only conceptual (eg Windows).
Source: wikipedia.org
9
Examples of operating systems MS-DOS (Microsoft disk operating system)
Introduced in 1981 Required basic familiarity with its operation and organization Intel computers such as 286-386-486 commonly used MS-DOS Users were required to know basic commands (abbreviations)
such as dir or del to perform tasks Uses a command line user interface-is non graphical
MacOS Introduced in 1984 Operating system for apple Macintosh computers First commercially successful OS which used GUI (graphical
user interface) Used icons to represent data structures
Microsoft Windows Often used with PC’s (home use) Introduced in 1985 in response to MacOS
10
Unix and similar systems Unix MacOS X Linux Solaris operating environment Microsoft Xenix AIX by IBM
11
Linux Linux is causing a revolution in the world of computers Initially created as a hobby by a young student called Linus
Torvalds at the University of Helsinki in Finland It may be used for a variety of purposes including networking
and software development It is often considered to be an excellent, low-cost alternative
to other more expensive operating systems The attractiveness of Linux is that its source code, which is a
series of commands written in a programming language is freely available to anyone – open source
The source code can be modified to fit the individual needs of the user
It is developed under the GNU General Public License, enabling the user to share and change free software in comparison to most other software whose source code is concealed, preventing users to share or modify it
Source: linux.org
12
Operating Systems can be classified as: GUI: Graphical User Interface operating systems are
operating systems that have the capability of using a mouse and are graphical
Multi user: allows multiple users to utilize the computer and run programs at the same time
Multi processing: allows multiple processors to be utilized
Multi tasking: allows multiple software processes (also called programs or applications) to be run at the same time
Multi threading: allows different parts (threads) of a software process to run concurrently
Operating system classification
13
Programming Language Higher level programming languages contain
instructions that are more powerful, more general and better suited for programming a task than the basic assembly language instructions
Each higher level language instruction might consist of hundreds of assembly language instructions (after it is converted to assembly)
Software programmers write the most efficient and fastest programs in assembly language, however that is more difficult, error prone, and time consuming than using a higher level language
The higher level computer programming languages were invented to make program development easier. Examples of such languages are: FORTRAN, BASIC, PASCAL, etc.
14
Programs written by programmers are translated into the machine language by a compiler
Examples of programming languages: BASIC COBOL Pascal C C++ Java C#.NET Visual Basic Perl HTML XML
15
Developing a Computer Program
Programmer Writes program in source code (higher level
language) Compiler
Converts source code to machine language code Linker
Combines machine language with libraries & converts them to an executable module
Interpreter Translates and executes one line at a time
Compiler Link/loadExecutable
module
Source
codeMachinelanguage Output
Input dataHigh-levellanguage
Low-levelLanguage
16
How the program runs
0 LDA 14
1 ADD 15
2 STA 14
3 HLT
…. ……
14 10
15 7
14 17
15 7
Assume a is stored in 14and b is stored in 15
a= a + b
Result
Program
Fetch-execute cycle
Main memory (RAM)
17
Processes and Threads
What is a process? Represents an instance of
a running program You create a process to run
a program Starting an application
creates a process
What is a thread? An execution context within
a process All threads in a process
share the same per-process address space
ExecutiveExecutivePer-processaddress space
SystemwideAddress Space
Thread
Thread
Thread
18
Application programs An application program is software written by a
professional programmer for a specific operating system to perform a particular task such as word processing, spread sheet, graphic design, music editing, etc.
Before ‘shrink-wrap’ software was available, i.e. computer users also needed to be computer programmers who knew the operating system and at least one higher level language
Such knowledge is no longer necessary and software suitable for a particular application can be directly purchased
Examples of application software: MS office Netscape Media player MSN messenger Adobe acrobat
19
Applications
Numerical: (number crunching, arrays) calculator, spreadsheet weather forecasting, computer aided design
Symbolic: (data structures, translation) compiler, interpreter, scheduling, circuit layout
Information: (records, tables, disks) database, accounts World Wide Web, booking system
Systems: (devices, networks, control) window/file/print managers device drivers, network software