HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.

Slides:



Advertisements
Similar presentations
Chapter 2 Operating System Overview Operating Systems: Internals and Design Principles, 6/E William Stallings.
Advertisements

Lecture 1: Overview of Computers & Programming
SYSTEM PROGRAMMING & SYSTEM ADMINISTRATION
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Systems Software.
CS 345 Computer System Overview
Lecture 1: History of Operating System
Operating System (O.S.) Objectives & Functions
Dr Mohamed Menacer College of Computer Science and Engineering Taibah University CS-334: Computer.
Memory Design Example. Selecting Memory Chip Selecting SRAM Memory Chip.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
Program Flow Charting How to tackle the beginning stage a program design.
Program Flow Charting How to tackle the beginning stage a program design.
Chapter 8 Operating System Support
Chapter 1 and 2 Computer System and Operating System Overview
Computer Organization and Architecture
Operating System Objectives & Functions An operating system is a program that controls the execution of application programs and acts as an interface between.
CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 1, Lab.
A. Frank - P. Weisberg Operating Systems Evolution of Operating Systems.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
CS364 CH08 Operating System Support TECH Computer Science Operating System Overview Scheduling Memory Management Pentium II and PowerPC Memory Management.
Layers and Views of a Computer System Operating System Services Program creation Program execution Access to I/O devices Controlled access to files System.
Computer Organization and Architecture Operating System Support Chapter 8.
Operating System Overview
Operating System A program that controls the execution of application programs An interface between applications and hardware 1.
Software Concepts. Software & Hardware? Computer Instructions or data, anything that can be stored electronically is Software. Hardware is one that is.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
Operating Systems.  Operating System Support Operating System Support  OS As User/Computer Interface OS As User/Computer Interface  OS As Resource.
 What is OS? What is OS?  What OS does? What OS does?  Structure of Operating System: Structure of Operating System:  Evolution of OS Evolution of.
Operating Systems.
Fall 2000M.B. Ibáñez Lecture 01 Introduction What is an Operating System? The Evolution of Operating Systems Course Outline.
Chapter 5 Operating System Support. Outline Operating system - Objective and function - types of OS Scheduling - Long term scheduling - Medium term scheduling.
Invitation to Computer Science 5 th Edition Chapter 6 An Introduction to System Software and Virtual Machine s.
Chapter 9 Operating System Support. Outline Operating system - Objective and function - types of OS Scheduling - Long term scheduling - Medium term scheduling.
We will focus on operating system concepts What does it do? How is it implemented? Apply to Windows, Linux, Unix, Solaris, Mac OS X. Will discuss differences.
Chapter 11: Operating System Support Dr Mohamed Menacer Taibah University
 Programming - the process of creating computer programs.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Operating Systems.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Copyright Prentice Hall, Inc. 1 Operating System Overview.
THE SOFTWARE Computers need clear-cut instructions to tell them what to do, how to do, and when to do. A set of instructions to carry out these functions.
System is a set of interacting or interdependent components forming an integrated whole.
Computer Architecture Chapter (8): Operating System Support
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
DDC 2223 SYSTEM SOFTWARE DDC2223 SYSTEM SOFTWARE.
Ashima Wadhwa Assistant Professor(giBS)
Operating System Overview
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Operating System Interface between a user and the computer hardware
CSCI-235 Micro-Computer Applications
Evolution of Operating Systems
System Programming and administration
William Stallings Computer Organization and Architecture
Introduction to Operating System (OS)
Operating Systems.
Chapter 1 Introduction(1.1)
Language Processors Application Domain – ideas concerning the behavior of a software. Execution Domain – Ideas implemented in Computer System. Semantic.
CMP 131 Introduction to Computer Programming
Introduction to Computer Programming
Principles of Programming Languages
Presentation transcript:

HERY H AZWIR Computer Software

Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development  Software development program Software Engineering Operating System  O/S types  O/S functions  Various O/S products

Software System Software  Operating System (Windows, Linux, UNIX, etc)  Utilities Application Software  Business  Engineering  Education  Accounting  Statistics  Graphics, etc

Layers and Views of a Computer System

Software Characteristics Structured  Arranged according to certain rules of logic in such a manner that it describes the function(s) to be performed, the input(s) to the function(s) and the output(s) generated by the function(s) Created and Maintained  Transformation of human ideas into something that can operate the hardware within the computer  Once created the should be maintained during its life cycle  Two types:  Nonexecutable  Executable Machine Processible  It is intended to be processed by a machine  It must be matched to the particular computer chosen to run it

Programming Programming Language Type  Low Level  High Level Tools / Utilities  Editor  Translator  Object builder  Linker & Loader  Debugger Translator Type  Interpreter (one by one translation into machine code)  Assembler (assembly language translate into machine code)  Compiler (translate whole program into machine object code)

Programming Language Low Level  Assembly language: programmer can use mnemonic instruction codes, labels, and symbolic names for data, to refer directly to their machine code equivalents  More efficient in memory space and run faster  Very restricted set of syntactic rules

Programming Language High level language  To overcome difficulties in low level language  To make programming easier and available to larger technical and scientific community  One instruction in the source program usually generate a number of low level instructions to directly manipulate computer hardware Middle level language  Closer to low level language  Programming are easier than assembly language  Usually used by system programmers

Programming Language Example Middle level  C, C++, Ada. Modula High level  Scientific: FORTRAN, ALGOL, PASCAL  Data Processing: COBOL, DBASE,  Artificial Intelligence: LISP, PROLOG  General Purpose: PL/1, BASIC

Simple Software Development Program Problem -> Analyst -> Algorithm -> Create Program -> Editor -> Source Codes -> Assemble / Compile -> Object Module -> Linker (library routine) -> Loader -> Program Execution -> Correction -> Debugger -> Editor Finish Program

Tools / Utilities Editor  Write the text (source code) of the program by allowing the creation and modification of a source program file Translator  Assembler : software that translates an assembly language program into the machine code which can be executed by a processor. (one step process)  Compiler: software that translate a particular high /middle level language application program into its low-level machine language equivalent. (one step process)  Interpreter: software which directly translates instructions from a high level language to machine code, as the high level source code being executed. (step by step)  Run slower

Compiler Stages Lexical analysis  Removes redundant information, condenses statements, display error messages Syntactic analysis  Test correctness of the syntax of each line within the source program. Scans for errors in construction of the statements Code generation  If no errors detected then generate appropriate machine code for each statement or group of statements Optimization process  Increase the efficiensy of the object code

Tools / Utilities Linker  Responsible for connecting together all the different programming modules that have been written, including any library routines. Loader  Responsible for transferring the object code from an external medium to the microprocessor memory Debugger  To debug a program means to locate any software mistakes

Software Engineering Methodology Business Process Analysis System Requirements Specification Software Requirements Specification Software Design Coding (Implementation) Software Quality Assurance & Testing  Internal Testing (Integration, System, Stress, Load, etc)  User Acceptance Testing (UAT) System Deployment Documentation

Business Process Analysis Analyzing business process Explain the business process using method that can be understood by system analyst or system architect Use any kind tools such as  Flow chart  Data Flow Diagram (DFD)  Use – Case Diagram (UML)  Activity Diagram (UML)

System Requirements Specification Translate the explained business process into real system requirements  Computer resource requirements  Function and performance requirements  Safety, security, privacy protection requirements  Installation requirements  Design constraints  System environmental requirements  Operation and maintenance requirements  Other requirements (etc)

Software Requirements Specification Translate the system requirements into more detail software requirements  Functionality requirements  Performance requirements  Interface requirements  Environmental requirements  Security requirements  Data definition dan database requirements  Installation requirements  Operation and execution requirements  Maintenance requirements  Design and implementation constaraints  Documentation requirements  etc

Software Design Data Flow Diagram (Structured) Activity Diagram (Object oriented) Data Base design Entity-Relationship Diagram Normalization

Coding Chose programming language based on design constraint Writing, Editing Compiling, linking Executing Debuging Testing (unit testing, integration test) Documenting

Software Quality Assurance and Testing Integration test, System test, Stress test, Load test, etc Create:  Test plan  Test procedure  Test scenario Minimum:  Functionality test  Invalid data entry test (IDET) User acceptance test (UAT) Documentation

System Deployment Installation UAT

Operating System Example:  DOS  Windows  LINUX  MacOS  UNIX

Objectives and Functions Convenience  Making the computer easier to use Efficiency  Allowing better use of computer resources

Layers and Views of a Computer System

Operating System Services Program creation Program execution Access to I/O devices Controlled access to files System access Error detection and response Accounting

O/S as a Resource Manager

Types of Operating System Interactive Batch Single program (Uni-programming) Multi-programming (Multi-tasking)

Early Systems Late 1940s to mid 1950s No Operating System Programs interact directly with hardware Two main problems:  Scheduling  Setup time

Simple Batch Systems Resident Monitor program Users submit jobs to operator Operator batches jobs Monitor controls sequence of events to process batch When one job is finished, control returns to Monitor which reads next job Monitor handles scheduling

Memory Layout for Resident Monitor

Job Control Language Instructions to Monitor Usually denoted by $ e.g.  $JOB  $FTN ...Some Fortran instructions  $LOAD  $RUN ...Some data  $END

Desirable Hardware Features Memory protection  To protect the Monitor Timer  To prevent a job monopolizing the system Privileged instructions  Only executed by Monitor  e.g. I/O Interrupts  Allows for relinquishing and regaining control

Multi-programmed Batch Systems I/O devices very slow When one program is waiting for I/O, another can use the CPU

Single Program

Multi-Programming with Two Programs

Multi-Programming with Three Programs

Utilization

Time Sharing Systems Allow users to interact directly with the computer  i.e. Interactive Multi-programming allows a number of users to interact with the computer

Scheduling Key to multi-programming Long term Medium term Short term I/O

Long Term Scheduling Determines which programs are submitted for processing i.e. controls the degree of multi-programming Once submitted, a job becomes a process for the short term scheduler (or it becomes a swapped out job for the medium term scheduler)

Medium Term Scheduling Part of the swapping function (later…) Usually based on the need to manage multi- programming If no virtual memory, memory management is also an issue

Short Term Scheduler Dispatcher Fine grained decisions of which job to execute next i.e. which job actually gets to use the processor in the next time slot