19
SIMS-201 Computer Software

SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application Overview

Embed Size (px)

Citation preview

Page 1: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

SIMS-201

Computer Software

Page 2: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

2

Computer Software Assembly Code Operating System Programming Language Application

Overview

Page 3: SIMS-201 Computer Software. 2 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

Page 4: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

4

Hierarchy of Software

Operating System

Assembly Code

Programming Language(High Level Language)

Application

Page 5: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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

Page 6: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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

Page 7: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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.

Page 8: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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

Page 9: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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

Page 10: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

10

Unix and similar systems Unix MacOS X Linux Solaris operating environment Microsoft Xenix AIX by IBM

Page 11: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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

Page 12: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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

Page 13: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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.

Page 14: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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

Page 15: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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

Page 16: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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)

Page 17: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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

Page 18: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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

Page 19: SIMS-201 Computer Software. 2 Assembly Code Operating System Programming Language Application  Overview

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