Topic 5: System Software

advertisement

Topic 5: System Software

5.1 Introduction

System software consists of programs that control and support the operations of a computer system. System software includes a variety of programs, such as operating systems, service and utilities programs, and programming language translators.

The Operating System

The most important system software for any computer is its operating system. An operating system is an integrated system of programs that manages the operations of the computer processing unit (CPU), controls the input/output and storage resources and activities of the computer system, and provides various support services as the computer executes the application programs of users (see figure 5.1). One way to look at the operating system is as the system’s chief manager. Operating system software decides which computer resources will be used, which programs will be run, and the order in which activities will take place.

An operating system performs three functions. It allocates and assigns system resources, it schedules the use of computer resources and computer jobs, and it monitors computer system activities.

 Allocation and Assignment. The operating system allocates resources to the application jobs in the execution queue. It provides locations in primary memory for data and programs, and controls the input and output devices, such as printers, terminals and telecommunication links.

 Scheduling. Thousands of work pieces can be going on in a computer simultaneously. The operating system decides when to schedule the jobs that have been submitted and how to coordinate the scheduling in various areas of the computer so that different parts of different jobs can be worked on at the same time. For instance, while a program is executing, the operating system is

scheduling the use of input and output devices. Not all jobs are performed in the order they are submitted; the operating system schedules jobs according to organizational priorities. Online order processing may have priority over a job to generate mailing lists and labels.

 Monitoring. The operating system monitors the activities of the computer system. It keeps track of each computer job and may also keep track of who is using the system, of what programs have been run, and of any unauthorized attempts to access the systems.

End Users

Application Software

System Software

Computer Hardware

Application Software

Operating Systems

Schedules computer events

Allocates computer resources

Monitor events

Language Translators

Interpreters

Compilers

Utility Programs

Routine operations (e.g. sort, list, print)

Manage data (e.g. create files, merge files).

Application Software: General Purpose, Application –Specific Programming languages,

Assembly languages, Fourth-generation languages and PC software tools

Figure 5.1 The System and Application Software Interface Between End Users and Computer

Hardware

The primary purpose of an operating system is to maximize the productivity of a computer system by operating it in the most efficient manner. An operating system minimizes the amount of human computer intervention required during processing. It helps your application programs perform common operations such as assessing a network, entering data, saving and retrieving files, and printing or displaying output.

Operating systems must be loaded and activated before any other tasks can be accomplished. Operating systems are the most indispensable components of the software interface between users and the hardware of their computer systems.

End Users

Application Software

System Software

Computer Hardware

Application Software

Operating Systems

Schedules computer events

Allocates computer resources

Monitor events

Language Translators

Interpreters

Compilers

Utility Programs

Routine operations (e.g. sort, list, print)

Manage data (e.g. create files, merge files).

Application Software: General Purpose, Application –Specific Programming languages,

Assembly languages, Fourth-generation languages and PC software tools

Figure 5.1 The System and Application Software Interface Between End Users and Computer

Hardware

An operating system performs five basic functions in the operation of a computer system: providing a user interface, resource management, task management, file management, and utilities and support services (see figure 5.2).

The User Interface. The user interface is the part of the operating system that allows a user to communicate with it so users can load programs, access files, and accomplish other tasks. Three main types of user interfaces are the command-driven, menu-driven, and graphical user interface. The trend in user interfaces operating systems and other software is moving away from the entry of brief end user commands, or even the selection of choices from menus of options. Instead, most software provides an easy-to-

use graphical user interface (GUI) that uses icons, bars, buttons, boxes, and other images. GUIs rely on pointing device like the electronic mouse or touch-pad to make selections that help you get things done.

User Interface

End user/ system and network communications

Resource

Management

Task

Management

File

Management

Utilities and other functions

Managing the use of hardware resources

Managing the accomplishment of tasks

Managing data and program files

Providing a variety of support services

Figure 5.2

Basic Functions of an Operating System

(Source: James O’Brien, Introduction to Information System, McGraw-Hill, 2003.)

Resource Management. An operating system function that controls the use of computer system resources such as primary storage, secondary storage, CPU processing time, and input/output devices by other system software and application software packages. In other words, an operating system uses a variety of resource management programs to manage the hardware and networking resources of a computer system, including its CPU, memory, secondary storage devices, telecommunications processors, and input/output peripherals. For example, memory management programs keep track of where data and programs are stored. They may also subdivide memory into a number of sections and swap parts of programs and data between memory and magnetic disks or other secondary storage devices. This can provide a computer system with a virtual

memory capability that is significantly larger than the real memory capacity of its primary storage circuits. So a computer with a virtual memory capability can process

large programs and greater amounts of data than the capacity of its memory chips would normally allow.

Task Management. Task management programs of an operating system manage the accomplishment of the computing tasks of end users. They give each task a slice of the

CPU’s time and interrupt the CPU operations to substitute other tasks. Task management may involve a multitasking capability where several computing task can occur at the same time. Multitasking may take the form of multiprogramming or

timesharing, where the computing tasks of several users can be processed at the same time. The efficiency of multitasking operations depends on the processing power of the

CPU and the virtual memory and multitasking capabilities of the operating system it uses.

Multitasking. Multitasking refers to multiprogramming on single-user operating systems. One user can run two or more programs or program tasks concurrently on a single computer. For example, a sales representative could write a letter to prospective clients with a word processing program while simultaneously using a database program to search for all sales contacts in a particular city. Most microcomputers, midrange and mainframe operating systems provide a multitasking capability. With multitasking, end users can do two or more operations (e.g. keyboarding and printing) or applications (e.g. word processing and financial analysis) concurrently, that is, at the same time. Multitasking on microcomputers has also been made possible by the development of more powerful microprocessors and their ability to directly address much larger memory capacities (up to 4 gigabytes). This allows an operating system to subdivide primary storage into several large partitions, each of which can be used by a different application program.

In effect, a single computer can act as if it were several computers, or virtual machines, since each application program is running independently at the same

time. The number of programs that can be run concurrently depends on the amount of memory that is available and the amount of processing each job demands. This is because a microprocessor (or CPU) can become overloaded with too many jobs and provide unacceptable slow response times. However, if memory and processing capabilities are adequate, multitasking allows end users to easily switch from one application to another, share data files among applications, and process some applications in a background mode. Typically, background tasks include large printing jobs, extensive mathematical computations, or unattended telecommunication sessions.

Multiprogramming. The most important operating system capability for sharing computer resources is multiprogramming. Multiprogramming permits multiple programs to share a computer system’s resources at any one time through concurrent use of a CPU. By concurrent use, we mean that only one program is actually using the CPU at any given moment but that the input/output needs of other programs can be serviced at the same time. Two or more programs are active at the same time, but they do not use the same computer resources simultaneously. With multiprogramming, a group of programs takes turns using the processor (see figure 5.3).

Operating

System

Program 1

Program 2

Program 3 Program

Unused Memory

Figure 5.3

Multiprogramming Environment

(source: Loudon and Loudon, Essentials of Management Information Systems,

Prentice Hall, 2001)

Timesharing. Time sharing is an operating system capability that allows many users to share computer processing resources simultaneously. It differs from multiprogramming in that the CPU spends a fixed amount of time on one program before moving on to another program. In a timesharing environment, thousands of users are each allocated a tiny slice of computer time. In this time slot, each user is free to perform any required operations. At the end of this time slot period, another user is given a tiny slice of CPU time. This arrangement permits many users to be connected to a CPU simultaneously, with each receiving only a tiny amount of CPU time. But because the CPU is operating at the nanosecond level, a CPU can accomplish a great deal of work in several thousandths of a second.

File Management. An operating system contains file management programs that control the creation, deletion, and access of files and data and programs. File management involves keeping track of the physical location of files on magnetic disks and other secondary storage devices. So operating systems maintain directories of information about the location and characteristics of files stored on a computer system’s secondary storage devices.

5.2 Popular Operating System

Table 5.1 compares four top operating systems. For many years, MS-DOS (Microsoft

Disk Operating System) was the most widely used microcomputer operating software. It is a single-user, single-tasking operating system, but was given a graphical user interface and limited multitasking capabilities by combining it with Microsoft Windows. Microsoft began replacing its DOS/Windows combination in 1995 with Windows 95 operating system, featuring a graphical user interface, true multitasking, networking, and many other capabilities. Microsoft introduced an enhanced Windows 98 version during 1998 and a Windows Me (Millennium Edition) consumer PC system in 2000, with a Windows

XP version released in 2001.

Microsoft introduced its Windows NT (New Technology) operating systems in 1995.

Windows NT is a powerful, multitasking, multiuser operating sys tem that is installed on many network servers to manage client/server networks and on PCs with high performance computing requirements. New server and Workstations versions were introduced in 1997. Microsoft merged its Windows 98 and Windows NT products into the Windows 2000 operating system during the year 2000.

Table 5.1 A Comparison of Popular Operating Systems.

Windows 2000

Microsoft

What’s new.

Improvements in reliability and the ability to manage computer networks less expensively. Handles some of the more demanding computing jobs, such as managing major websites.

Strengths. It is inexpensive. Used with serves based on Intel microprocessors, it’s about one-third as expensive as UNIXbased combos from the likes of Sun.

Solaris UNIX

Sun Microsystems

What’s new. Solaris handles servers with as many as 64 microprocessors – compared with 32 for

Windows 2000. Also, eight computers can be clustered together to work as one, compared with four for Windows

2000.

Strengths. Solaris has emerged as the server operating systems of choice for large websites. It’s superreliable and handles the most demanding tasks.

Netware 5.1

Novel

What’s new. Novell’s directory software now runs on Windows 2000,

Solaris, and Linux servers as well as

Netware, making it easier for companies to manage complex networks.

Strengths. The directory software for keeping track of computers, programs, and people on a network has proved vital to companies such as Ford and Wal-Mart, and this update keeps it ahead.

Weakness. It still can’t run on most powerful servers, and many computer systems administrators don’t trust it for complex computing tasks.

Weakness. It is more expensive than

Windows 2000 systems, though Sun is now offering Solaris free on low-end Sun servers.

Weakness. Netware is primarily a networking system- not able to run general applications such as databases or accounting

Linux 6.1

Red Hat Software

What’s new. It’s easier to install than it used to be. Also, customers can now cluster up to eight servers- which means better reliability.

Strengths. Red Hat taps into thousands of volunteer programmers who help out with improvements to the open-source Linux operating system. Plus,

Red Hat’s server package is nearly free:

$149.

Weakness. Linux is good for serving up Web pages, but isn’t as effective as Windows

2000 at handling more complex jobs.

Windows 2000 has four versions, including:

 Professional: a full-featured operating system for PC desktops and laptops.

 Server: a multipurpose operating system for network servers and Web servers in smaller networks.

 Advanced server: a network operating system to manage large networks and websites powered by server farms of many servers.

 Datacenter server: a high-performance network operating system for large-scale business applications, such as online transaction processing and data

warehousing.

UNIX. Originally developed by AT&T, UNIX now is also offered by other vendors, including Solaris by Sun Microsystems and AIX by IBM. UNIX is multitasking, multiuser, network-managing operating systems whose portability allows it to run on mainframes, midrange computers, and microcomputers. UNIX is a popular choice for Web and other network servers.

Linux. This is a low-cost, powerful, and reliable UNIX-like operating system that is rapidly gaining market share as a high-performance operating system for network servers and Web servers in both small and large networks. Linux was developed as free or low-cost shareware or open-source software over the Internet in the 1990s by Linux

Torvald of Finland and millions of programmers around the world. Linux is still being enhanced in this way, but is sold with extra features and support services by software vendors such as Red Hat, Caldera, and VA Linux. PC versions are also available, which support office software suites, Web browsers, and other application software.

Mac OS X. The Mac OS X is the latest operating system from Apple for the iMac and other Macintosh microcomputers. The Mac OS X has a new graphical user interface as well as advanced multitasking and multimedia capabilities, along with a new suite of

Internet services called iTool.

Application software

The application software is programs that specify the information processing activities required for the completion of specific task of computer users. Application software is designed to solve specific problem or do a specific task, such as WORD and

WORDPERFECT for word processing; EXCEL and LOTUS123 for spreadsheet; ACCESS and

DATABASE for data management; and POWERPOINT for presentation.

5.3 Programming Languages

Programming language is a language used to develop the instructions in computer programs. Many different programming languages have been developed, each with its own unique vocabulary, grammar and uses.

 Machine language.

This is the first generation language and is the most basic level of programming languages. In the early stages of computer development, all program instructions had to be written using binary codes unique to each computer. Computers only understand the binary machine language that make up the machine's instruction

set. Trying to write a program in machine language is very tedious and error prone. This type of programming involves the difficult task of writing instructions in the form of strings of binary digits (ones and zeros) or other number systems.

Programmers must have a detailed knowledge of the internal operations for the specific type of CPU they are using. They must write long series of detailed instructions to accomplish even simple processing tasks. Programming is machine language requires specifying the storage locations for every instruction and item of data used.

Assembly language

A step above machine language is assembly language that allows the programmer to use mnemonics for instructions, and identifiers for addresses. An

assembler turns an assembly language program into machine language for the

CPU to process. An assembler is usually the first piece of software written for a computer with a new instruction set. The assembler language is also known as the second-generation language and is developed to reduce the difficulties in writing machine language programs. The use of assembler languages requires language translator programs called assemblers that allow a computer to convert the instructions of such language into machine instructions. Assembler languages are frequently called symbolic languages because symbols are used to represent operations codes and storage locations. Convenient alphabetic abbreviations called mnemonics (memory aids) and other symbols represents operation codes, storage locations, and data elements.

 High-level language

A programming language that utilizes macro instructions and statements that closely resemble human language or mathematical notation to describe the problem to be solved or the procedure to be used. Also called the complier language.

Most software is developed in a high-level language, such as C, C++, or Java.

These languages allow a programmer a much higher-level view of a programming problem, and give access to pre-coded common functionality stored in libraries. Higher level languages can also be classified as procedural or

object-oriented.

Four Levels of Programming Languages

Machine Language

Use binary coded instructions

High-Level Language

Use brief statements or arithmetic

1010 11001

1011 11010

1100 11011 notations

BASIC: X = Y + Z

COBOL: COMPUTE X = Y + Z

Assembler Language

Use symbolic coded instructions

LOD Y

ADD Z

STR X

Fourth-Generation Language

Use natural and nonprocedural statements

SUM THE FOLLOWING NUMBERS

Figure 5.4 Examples of four levels of programming languages. These programming language instructions might be used to compute the sum of two numbers as expressed by the formula X = Y + Z

Procedural languages like C, Fortran, and COBOL focus on the operations that need to be performed to manipulate data. Object-oriented languages like C++,

Python, and Java allow the programmer to use objects that contain both data and the methods by which the data is manipulated. These objects are

instantiated (created) as needed from classes provided in libraries, or from classes written by the programmer.

Program Translation

A program must be translated into machine language before it can be executed by a computer. Assembler program is a translator program used to convert assembly language programs to machine language. Assembly language is a second-generation language that uses abbreviations for instructions, as opposed to only numbers. It is also called as symbolic language. An assembler translates

the symbolic instruction codes written in an assembler language into machine language instructions, while a compiler translates high-level language statements. A compiler is a translator program that converts the symbolic statements of a high-level language into computer-executable machine language.

Source

Program

Language

Translation

Process

Machine language

Object

Program

 Compiled Languages

For compiled languages like C and C++, the programmer's source code is translated into machine language by a compiler, stored as an executable file, then loaded into memory and run. For an interpreted language like Basic, the source code is translated into machine language and executed one line at time.

An interpreter is a special type of compiler that translates and executes each program statement one at a time, instead of first producing a complete machine language program. An interpreter is a computer program that translates and executes each source language statement before translating and executing the next one. Machine language is a programming language where instructions are expressed in the binary code of the computer.

Java and Python use a hybrid approach: the source code is translated into byte

code by a compiler, stored in an "intermediate" file, and then interpreted at run time by a separate program (the Java Virtual Machine, or Python runtime).

Object-Oriented Languages

Object-oriented programming can trace its roots to the 1960s. As hardware and software became increasingly complex, researchers studied ways in which software quality could be maintained. Object-oriented programming was deployed in part as an attempt to address this problem by strongly emphasizing discrete units of programming logic and re-usability in software. An object–oriented programming (OOP) language is use to develop programs that create and use objects to perform information processing tasks. In an object–oriented programming approach, objects are self-contained units that contain both data and related facts and functions – the instructions to act on the data. Object module is a machine language version of a program produced by a compiler or assembler.

Object-oriented programming is based on the concepts of class and inheritance.

Program code is not written separately for every object but for classes, or general categories, of similar objects. Objects belonging to a certain class have the same features of that class. Classes of objects in turn can inherit the structure and behaviors of a more general class and then add variables and behaviors unique to each object.

New classes of objects are created by choosing an existing class and satisfying how the new class differs from the existing class, instead of starting from starch each time.

Fundamental concepts of object-oriented programming are as follows:

Class

Defines the abstract characteristics of a thing (object), including the thing's characteristics (its attributes, fields or properties) and the thing's behaviors (the things it can do, or methods, operations or features). Classes are organized hierarchically into superclasses and subclasses. One might say that a class is a blueprint or factory that describes the nature of something. For example, the class Car would consist of traits shared by all cars, such as made and color (characteristics), and the ability to bark and sit (behaviors). Classes provide modularity and structure in an object-oriented computer

program. A class should typically be recognizable to a non-programmer familiar with the problem domain, meaning that the characteristics of the class should make sense in context. Also, the code for a class should be relatively self-contained (generally using encapsulation). Collectively, the properties and methods defined by a class are called members.

 Objects

An object is a pattern (exemplar) of a class. The class of Car defines all possible cars by listing the characteristics and behaviors they can have; the object Mercedes-Benz is one particular car, with particular versions of the characteristics. A Car has wheels;

Mercedes-Benz has four wheels.

 Instance

One can have an instance of a class or a particular object. The instance is the actual object created at runtime. In programmer jargon, the Mercedes-Benz object is an

instance of the Car class. The set of values of the attributes of a particular object is called its state. The object consists of state and the behavior that's defined in the object's class.

Method

Method is an object's abilities. In language, methods are verbs. Mercedes-Benz, being a

Car, has the ability to honk. So honk() is one of Mercedes-Benz methods. It (Mercedes-

Benz) may have other methods as well, for example turning(). Within the program, using a method usually affects only one particular object; all Cars can honk, but you need only one particular car to do the honking.

Message passing

Message passing is the process by which an object sends data to another object or asks the other object to invoke a method. In some programming languages it is also known

as interfacing. E.g. the object called Vehicle may tell the Mercedes-Benz object to sit by passing a 'sit' message which invokes Mercedes-Benz' honking method. The syntax varies between languages, for example: [Mercedes-Benz honk] in Objective-C. In Java code-level message passing corresponds to "method calling". Some dynamic languages use double-dispatch or multi-dispatch to find and pass messages.

 Inheritance

‘Subclasses’ are more specialized versions of a class, which inherit attributes and behaviors from their parent classes, and can introduce their own. For example, the class

Cars might have sub-classes called Elegant, Avantgarde, and Compressor. Each subclass can alter its inherited trait.

 Encapsulation

Encapsulation conceals the functional details of a class from objects that send messages to it. For example, the Cars class has a honk() method. The code for the honk() method defines exactly how honking happens (e.g., by pressing the honk() and then release(), at a particular pitch and volume). Encapsulation is achieved by specifying which classes may use the members of an object. The result is that each object exposes to any class a certain interface — those members accessible to that class. The reason for encapsulation is to prevent clients of an interface from depending on those parts of the implementation that are likely to change in future, thereby allowing those changes to be made more easily, that is, without changes to clients.

Abstraction

Abstraction is simplifying complex reality by modeling classes appropriate to the problem, and working at the most appropriate level of inheritance for a given aspect of the problem.

For example, Mercedes-Benz the Car may be treated as a Car much of the time, a

Elegant when necessary to access Elegant-specific attributes or behaviors, and as an

Vehicle (perhaps the parent class of Car). To build the Car class, one does not need to know how the different components work internally, but only how to interface with them, i.e., send messages to them, receive messages from them, and perhaps make the different objects composing the class interact with each other.

 Polymorphism

Polymorphism allows the programmer to treat derived class members just like their parent class' members. More precisely, Polymorphism in object-oriented programming is the ability of objects belonging to different data types to respond to method calls of methods of the same name, each one according to an appropriate type-specific behavior. One method, or an operator such as +, -, or *, can be abstractly applied in many different situations. If a Car is commanded to make noise(), this may elicit a honk(). Overloading Polymorphism is the use of one method signature, or one operator such as ‘+’, to perform several different functions depending on the implementation.

The ‘+’ operator, for example, may be used to perform integer addition, float addition, list concatenation, or string concatenation. Any two subclasses of Number, such as

Integer and Double, are expected to add together properly in an OOP language. The language must therefore overload the concatenation operator, ‘+’, to work this way.

This helps improve code readability. How this is implemented varies from language to language, but most OOP languages support at least some level of overloading polymorphism. Many OOP languages also support Parametric Polymorphism, where code is written without mention of any specific type and thus can be used transparently with any number of new types. Pointers are an example of a simple polymorphic routine that can be used with many different types of objects.

Decoupling

Decoupling allows for the separation of object interactions from classes and inheritance into distinct layers of abstraction. A common use of decoupling is to polymorphically

decouple the encapsulation, which is the practice of using reusable code to prevent discrete code modules from interacting with each other.

5.4 Utility Programs

Utility programs, or utilities, are important system management system. Utility programs are normally marketed as separate program but it can also be included as part of the operating system. Programs like Norton Utilities perform miscellaneous housekeeping and file conversion functions. Examples include data backup, data recovery, virus protection, data compression, and file defragmentation. Most operating systems also provide many utilities that perform a variety of helpful chores for computer users.

Utility programs are used for routine, repetitive tasks, such as copying, clearing primary store, computing a square root, or sorting. Utility program is also helpful to set up new files, deleting old files, or formatting. Utility programs are prewritten programs that are stored so they can be shared by all users of a computer system and can be used rapidly in many different information system applications when requested.

Summary

Operating system is a system software that coordinates the various parts of the computer system and mediates between application software and computer hardware.

The primary purpose of an operating system is to maximize the productivity of a computer system by operating it in the most efficient manner.

Discussion Questions

1.

How do you explain the rapid acceptance of Microsoft Windows?

2.

What are the newest types if software is being developed? What type of users does these software support?

3.

The software trend is moving away from custom-designed on-of-a-kind program to the use of off-the shelf software packages acquired by users from vendors.

Please comment.

Reference:

James O’Brien, Introduction to Information Systems, McGraw-Hill, 2003.

H.L. Capron, Computers Tools for an Information Age, Addision Wesley, 1997.

Loudon and Loudon, Essentials of Management Information Systems, Prentice Hall,

2001.

Brian K. Williams and Stacey C. Sawyer, Using Information Technology: A Practical

Introduction to Computers & Communications. McGraw-Hill, 7ed. 2007. www.csm.ornl.gov/~dunigan/vpn.html http://www3.ntu.edu.sg/nbs/sis/courses/ab113-semester1-97-98/ab113-lecture_notes-

4--s1-97-98.pdf

http://www.difranco.net/cop2551/Notes/ch01.htm

True / False Questions

No.

1.

2.

3.

4.

5.

6.

Questions Answer

CPU controls the input/output and storage resources and activities of the computer system, and provides various support services as the computer executes the application programs of users

An operating system performs three functions: allocation and assignment, scheduling and monitoring

True

True

The primary purpose of an operating system is to maximize the amount of human computer intervention required during processing.

Task management may involve a multitasking capability where several computing task can occur at the same time.

False

True

By concurrent use, two or more programs are active at the same time, and they use the same computer resources simultaneously.

Assembly language that allows the programmer to use mnemonics for instructions, and identifiers for addresses.

False

True

7.

8.

9.

10.

Machine language is an example of high-level language. False

The programmer's source code is translated into machine language by a interpreter and stored as an executable file,

An object–oriented programming (OOP) language is use to develop programs that create and use objects to perform information processing tasks.

Utility programs are important system management system because they perform miscellaneous housekeeping and file conversion functions.

False

True

True

Presentation Slides

Slide 1

Introduction to System Software

Topic 5

Show bits and bytes from multiple directions.

Followed by assembly language, high level language and object oriented program.

Do this inter-changeably and finally absorb into the computer.

Show how a user uses the computer to do his daily task.

Slide 2

Learning Outcome

At the end of the lesson, students will be able to:

Understand the basic functions of an operating system.

 Understand the purpose of an operating system.

 Discuss how the operating system operates.

 Aware of the availability of other various type of popular operating system.

 Discuss the evolution of programming languages.

 Explain the use of utility programs.

Slide 3

List of Topics

1.

Introduction to operating system

2.

Popular Operating System

3.

Programming Languages

4.

Utility Programs

Slide 4

List of terminology

Operating system

User interface an integrated system of programs that manages the operations of the computer processing unit (CPU), controls the input/output and storage resources and activities of the computer system, and provides various support services as the computer executes the application programs of users

The part of the operating system that allows a user to communicate with it so users can load programs, access files, and accomplish other tasks.

Resource

Management

Task management programs

Multitasking

An operating system function that controls the use of computer system resources such as primary storage, secondary storage,

CPU processing time, and input/output devices by other system software and application software packages. In

Manage the accomplishment of the computing tasks of end users.

Multiprogramming done on single-user operating systems.

Multiprogramming Permits multiple programs to share a computer system’s resources at any one time through concurrent use of a CPU.

Timesharing Allows many users to share computer processing resources

File management programs

UNIX simultaneously.

Control the creation, deletion, and access of files and data and programs.

LINUX

An operating system originally developed for minicomputers but now runs on powerful microcomputers.

Type of UNIX operating system initially developed by Linus

Torvalds; it is one of the most popular and powerful alternatives to the Windows operating system

Language used to develop the instructions in computer programs.

Programming language

Mac OS X Macintosh operating system.

Application software Program that specifies the information processing activities required for the completion of specific task of computer users.

Machine language The first generation language; language in which data is represented in 1 and o. Most languages have to be translated into machine language for the computer to process the data.

Assembly language Programming language using names instead of numbers; these language use abbreviations or mnemonics, such as ADD, that are automatically converted to the appropriate sequence of 1 and 0s

High level language Programming languages that are closer to the language human use.

Assembler

Compiler

Object-oriented programming

A translator program used to convert assembly language programs to machine language.

Software that converts the programmer's source code into machine language (object code), stored as an executable file, then loaded into memory and run.

Methodology in which a program is organized into selfcontained, reusable modules called objects. Each object

Class

Method

Instance

Inheritance

Message passing

Encapsulation

Abstraction

Polymorphism

Decoupling

Utility programs contains both the data and processing operations necessary to perform a task.

In an object-oriented database, classes are similar objects grouped together.

In an object-oriented programming, description of how the data is to be manipulated

In an object-oriented programming, the actual object created at runtime.

In an object-oriented programming,

In an object-oriented programming, the process by which an object sends data to another object or asks the other object to invoke a method.

In an object-oriented programming, conceals the functional details of a class from objects that send messages to it.

In an object-oriented programming, simplifying complex reality by modeling classes appropriate to the problem, and working at the most appropriate level of inheritance for a given aspect of the problem.

In an object-oriented programming, allows the programmer to treat derived class members just like their parent class' members.

In an object-oriented programming, allows for the separation of object interactions from classes and inheritance into distinct layers of abstraction.

Performs specific tasks related to managing computer resources or files. Norton Utility for virus control and system maintenance is a good example of a utility. Also known as service program.

Slide 5

Operating System

An operating system is an integrated system of programs that

 manages the operations of the computer processing unit

(CPU) controls the input/output and storage resources and activities of the computer system provides various support services as the computer executes the application programs of users

Show graphically how operating system operates in terms of managing, controlling and supporting the services for the computer.

Slide 6

Slide 4

Operating System Functions

 Allocates and assigns system resources.

 Schedules the use of computer resources and computer job.

 Monitors computer system activities.

Allocation and Assignment

The operating system allocates resources to the application jobs in the execution queue. It provides locations in primary memory for data and programs, and controls the input and output devices, such as printers, terminals and telecommunication links.

Slide 6

Slide 7

Scheduling

 Thousands of work pieces can be going on in a computer simultaneously.

 The operating system decides when to schedule the jobs that have been submitted and how to coordinate the scheduling in various areas of the computer so that different parts of different jobs can be worked on at the same time.

For instance, while a program is executing, the operating system is scheduling the use of input and output devices. Not all jobs are performed in the order they are submitted; the operating system schedules jobs according to organizational priorities.

Online order processing may have priority over a job to generate mailing lists and labels.

Monitoring

 The operating system monitors the activities of the computer system

 keeps track of:

 each computer job

 who is using the system

 what programs have been run

 any unauthorized attempts to access the systems.

Slide 7

Slide 8

Operating System Primary Purpose

Maximize the productivity of a computer system

 Minimizes the amount of human computer intervention required during processing

 Helps application programs perform common operations such as assessing a network, entering data, saving and retrieving files, and printing or displaying output.

End Users

Application Software

System Software

Computer Hardware

Application Software

Operating Systems

Schedules computer events

Allocates computer resources

Monitor events

Language Translators

Interpreters

Compilers

Utility Programs

Routine operations (e.g. sort, list, print)

Manage data (e.g. create files, merge files).

Application Software: General Purpose, Application –Specific Programming languages,

Assembly languages, Fourth-generation languages and PC software tools

Figure 5.1 The System and Application Software Interface Between End Users and Computer

Hardware

Slide 9

User Interface

End user/ system and network communications

Resource

Management

Task

Management

File

Management

Utilities and other functions

Managing the use of hardware resources

Managing the accomplishment of tasks

Managing data and program files

Providing a variety of support services

Figure 5.2

Basic Functions of an Operating System

(Source: James O’Brien, Introduction to Information System, McGraw-Hill, 2003.)

Slide 10

The User Interface

Part of the operating system that allows a user to communicate with it so users can load programs, access files, and accomplish other tasks.

Three main types of user interfaces are the command-driven, menu-driven, and graphical user interface.

The trend in user interfaces operating systems and other software is to provide an easy-to-use graphical user interface

(GUI) that uses icons, bars, buttons, boxes, and other images.

GUIs rely on pointing device like the electronic mouse or touchpad to make selections that help you get things done.

Slide 11

Resource Management

Function that controls the use of computer system resources such as primary storage, secondary storage, CPU processing time, and input/output devices

 manage the hardware and networking resources of a computer system

Slide 12

Task Management

Manage the accomplishment of the computing tasks of end users by managing the CPU’s time

 Task management may involve a multitasking capability where several computing task can occur at the same time.

 Multitasking may take the form of multiprogramming or timesharing.

 The efficiency of multitasking operations depends on the processing power of the CPU and the virtual memory and multitasking capabilities of the operating system it uses.

Slide 13

Multitasking

Refers to multiprogramming on single-user operating systems.

One user can run two or more programs or program tasks concurrently on a single computer

This allows an operating system to subdivide primary storage into several large partitions, each of which can be used by a different application program.

In effect, a single computer can act as if it were several computers, or virtual machines, since each application program is running independently at the same time.

 If memory and processing capabilities are adequate, multitasking allows end users to easily switch from one application to another, share data files among applications, and process some applications in a background mode.

Slide 14

Multiprogramming

The most important operating system capability for sharing computer resources is multiprogramming.

Multiprogramming permits multiple programs to share a computer system’s resources at any one time through concurrent use of a

CPU.

By concurrent use, we mean that only one program is actually using the CPU at any given moment but that the input/output needs of

Slide 15

Operating

System

Program 1

Program 2

Program 3 Program

Unused Memory

Figure 5.3

Multiprogramming Environment

(source: Loudon and Loudon, Essentials of Management Information Systems,

Prentice Hall, 2001)

Slide 16

Timesharing

Time sharing is an operating system capability that allows many users to share computer processing resources simultaneously.

 the CPU spends a fixed amount of time on one program before moving on to another program.

In a timesharing environment, thousands of users are each allocated a tiny slice of computer time. In this time slot, each user is free to perform any required operations. At the end of this time slot period, another user is given a tiny slice of CPU time.

Slide 17

File Management

An operating system contains file management programs that control the creation, deletion, and access of files and data and programs.

 File management involves keeping track of the physical location of files on magnetic disks and other secondary storage devices.

Operating systems maintain directories of information about the location and characteristics of files stored on a computer system’s secondary storage devices.

Slide 18

Table 5.1 A Comparison of Popular Operating Systems.

Windows 2000

Microsoft

What’s new.

Improvements in reliability and the ability to manage computer networks less expensively. Handles some of the more demanding computing jobs, such as managing major websites.

Strengths. It is inexpensive. Used with serves based on Intel microprocessors, it’s about one-third as expensive as UNIXbased combos from the likes of Sun.

Solaris UNIX

Sun Microsystems

What’s new. Solaris handles servers with as many as 64 microprocessors – compared with 32 for

Windows 2000. Also, eight computers can be clustered together to work as one, compared with four for Windows

2000.

Strengths. Solaris has emerged as the server operating systems of choice for large websites. It’s superreliable and handles the most demanding tasks.

Netware 5.1

Novel

What’s new. Novell’s directory software now runs on Windows 2000,

Solaris, and Linux servers as well as

Netware, making it easier for companies to manage complex networks.

Strengths. The directory software for keeping track of computers, programs, and people on a network has proved vital to companies such as Ford and Wal-Mart, and this update keeps it ahead.

Weakness. It still can’t run on most powerful servers, and many computer systems administrators don’t trust it for complex computing tasks.

Weakness. It is more expensive than

Windows 2000 systems, though Sun is now offering Solaris free on low-end Sun servers.

Weakness. Netware is primarily a networking system- not able to run general applications such as databases or accounting

Linux 6.1

Red Hat Software

What’s new. It’s easier to install than it used to be. Also, customers can now cluster up to eight servers- which means better reliability.

Strengths. Red Hat taps into thousands of volunteer programmers who help out with improvements to the open-source Linux operating system. Plus,

Red Hat’s server package is nearly free:

$149.

Weakness. Linux is good for serving up Web pages, but isn’t as effective as Windows

2000 at handling more complex jobs.

Slide 19

Windows 2000

Professional: a full-featured operating system for PC desktops and laptops.

 Server: a multipurpose operating system for network servers and Web

 servers in smaller networks.

Advanced server: a network operating system to manage large networks and websites powered by server farms of many servers.

 Datacenter server: a high-performance network operating system for large-scale business applications, such as online transaction processing and data warehousing.

Slide 20

UNIX

Originally developed by AT&T, UNIX now is also offered by other vendors, including Solaris by Sun Microsystems and AIX by IBM.

 UNIX is multitasking, multiuser, network-managing operating systems whose portability allows it to run on mainframes, midrange computers, and microcomputers.

UNIX is a popular choice for Web and other network servers.

Slide 21

Linux

 a low-cost, powerful, and reliable UNIX-like operating system that is rapidly gaining market share as a high-performance operating system

 for network servers and Web servers in both small and large networks.

Linux was developed as free or low-cost shareware or open-source

software over the Internet in the 1990s by Linux Torvald of Finland and millions of programmers around the world.

 Linux is still being enhanced in this way, but is sold with extra features and support services by software vendors such as Red Hat, Caldera, and

VA Linux. PC versions are also available, which support office software suites, Web browsers, and other application software.

Slide 22

Mac OS X

The Mac OS X is the latest operating system from Apple for the iMac and other Macintosh microcomputers.

The Mac OS X has a new graphical user interface as well as advanced multitasking and multimedia capabilities, along with a new suite of

Internet services called iTool.

Slide 23

Programming Languages

Programming language is a language used to develop the instructions in computer programs.

Many different programming languages have been developed, each with its won unique vocabulary, grammar and uses.

Slide 24

Machine language

 The first generation language and is the most basic level of programming languages.

In the early stages of computer development, all program instructions had to be written using binary codes unique to each computer.

Computers only understand the binary machine language that make up the machine's instruction set.

Writing a program in machine language is very tedious and error prone.

Slide 25

Assembly language

The assembler language is also known as the second-generation language.

An assembler is usually the first piece of software written for a computer with a new instruction set and other symbols represents operation codes, storage locations, and data elements.

 Allows the programmer to use mnemonics (memory aids) for instructions, and identifiers for addresses.

 An assembler turns an assembly language program into machine language for the CPU to process.

 Assembler languages are frequently called symbolic languages because symbols are used to represent operations codes and storage locations.

Slide 26

High-level language

 A programming language that utilizes macro instructions and statements that closely resemble human language or mathematical notation to describe the problem to be solved or the procedure to be used.

 Also called the complier language.

 These languages allow a programmer a much higher-level view of a programming problem, and give access to pre-coded common functionality stored in libraries. Higher level languages can also be classified as procedural or object-oriented.

Slide 27

Four Levels of Programming Languages

Machine Language

Use binary coded instructions

1010 11001

1011 11010

Slide 28

1100 11011

Assembler Language

Use symbolic coded instructions

LOD Y

ADD Z

STR X

High-Level Language

Use brief statements or arithmetic notations

BASIC: X = Y + Z

COBOL: COMPUTE X = Y + Z

Fourth-Generation Language

Use natural and nonprocedural statements

SUM THE FOLLOWING NUMBERS

Program Translation

A program must be translated into machine language before it can be executed by a computer.

Assembler program is a translator program used to convert assembly language programs to machine language. An assembler translates the symbolic instruction codes written in an assembler language into machine language instructions.

A compiler translates high-level language statements. A compiler is a translator program that converts the symbolic statements of a highlevel language into computer-executable machine language.

An interpreter is a computer program that translates and executes each source language statement before translating and executing the next one.

Slide 29

Source

Program

Slide 30

Language

Translation

Process

Machine language

Object

Program

Object-oriented programming

 strongly emphasizing discrete units of programming logic and re-usability in software.

 An object–oriented programming (OOP) language is use to develop programs that create and use objects to perform information processing tasks.

In an object–oriented programming approach, objects are self-contained units that contain both data and related facts and functions – the instructions to act on the data. Object module is a machine language version of a program produced by a compiler or assembler.

Object-oriented programming is based on the concepts of class and inheritance. Program code is not written separately for every object but for classes, or general categories, of similar objects.

Slide 31

Class

Objects belonging to a certain class have the same features of that class.

Classes of objects in turn can inherit the structure and behaviors of a more general class and then add variables and behaviors unique to each object. New classes of objects are created by choosing an existing class and satisfying how the new class differs from the existing class, instead of starting from starch each time.

Slide 32

Fundamental Concepts of Object-oriented Programming

Class

Object

 Instance

 Method

Message passing

Inheritance

Encapsulation

 Abstraction

 Decoupling

Polymorphism

Slide 33

Class

Defines the abstract characteristics of a thing (object), including the thing's characteristics (its attributes, fields or properties) and the thing's behaviors (the things it can do, or methods, operations or features).

Classes are organized hierarchically into superclasses and subclasses.

Classes provide modularity and structure in an object-oriented computer program.

 A class should typically be recognizable to a non-programmer familiar with the problem domain, meaning that the characteristics of the class should make sense in context.

The code for a class should be relatively self-contained (generally using encapsulation).

Collectively, the properties and methods defined by a class are called members.

Slide 34

Object

 An object is a pattern (exemplar) of a class. The class of Car defines all possible car by listing the characteristics and behaviors they can have; the object Mercedes-Benz is one particular car, with particular versions of the characteristics. A Car has wheels; Mercedes-Benz has four wheels.

Slide 35

Instance

One can have an instance of a class or a particular object.

The instance is the actual object created at runtime. In programmer jargon, the Mercedes-Benz object is an instance of the Car class.

 The set of values of the attributes of a particular object is called its state. The object consists of state and the behavior that's defined in the object's class.

Slide 36

Method

 Method is an object's abilities. In language, methods are verbs. Mercedes-

Benz, being a Car, has the ability to honk. So honk() is one of Mercedes-

Benz methods. It (Mercedes-Benz) may have other methods as well, for example turning().

Slide 37

Message Passing

 Message passing is the process by which an object sends data to another object or asks the other object to invoke a method.

In some programming languages it is also known as interfacing.

The syntax varies between languages

Slide 38

Inheritance

Subclasses’ are more specialized versions of a class, which inherit attributes and behaviors from their parent classes, and can introduce their own.

 Each subclass can alter its inherited traits.

Slide 39

Encapsulation

 Encapsulation conceals the functional details of a class from objects that send messages to it.

Encapsulation is achieved by specifying which classes may use the members of an object.

The result is that each object exposes to any class a certain interface

— those members accessible to that class. The reason for encapsulation is to prevent clients of an interface from depending on those parts of the implementation that are likely to change in future, thereby allowing those changes to be made more easily, that is, without changes to clients.

Slide 40

Abstraction

 Abstraction is simplifying complex reality by modeling classes appropriate to the problem, and working at the most appropriate level of inheritance for a given aspect of the problem. o one does not need to know how the different components work internally, but only how to interface with them, i.e., send messages to them, receive messages from them, and perhaps make the different objects composing the class interact with each other.

Slide 41

Polymorphism

 allows the programmer to treat derived class members just like their parent class' members.

 Polymorphism in object-oriented programming is the ability of objects belonging to different data types to respond to method calls of methods of the same name, each one according to an appropriate type-specific behavior.

One method, or an operator such as +, -, or *, can be abstractly applied in many different situations.

Many OOP languages also support Parametric Polymorphism, where code is written without mention of any specific type and thus can be used transparently with any number of new types.

Pointers are an example of a simple polymorphic routine that

 can be used with many different types of objects.

Slide 42

Decoupling

Decoupling allows for the separation of object interactions from classes and inheritance into distinct layers of abstraction.

A common use of decoupling is to polymorphically decouple the encapsulation, which is the practice of using reusable code to prevent discrete code modules from interacting with each other.

Slide 43

Utility Programs

Prewritten programs that are stored so they can be shared by all users of a computer system and can be used rapidly in many different information system applications when requested.

 Programs like Norton Utilities perform miscellaneous housekeeping and file conversion functions.

Examples include data backup, data recovery, virus protection, data compression, and file defragmentation. Most operating systems also provide many utilities that perform a variety of helpful chores for computer users. Also helpful to set up new files, deleting old files, or formatting.

 Used for routine, repetitive tasks, such as copying, clearing primary store, computing a square root, or sorting.

Activity A

Crossword Puzzle

Answer

Resource

Management

Task Management

User Interface

Questions

An operating system function that controls the use of computer system resources such as primary storage, secondary storage, CPU processing time, and input/output devices by other system software and application software packages.

Manage the accomplishment of the computing tasks of end users by managing the CPU’s time

Part of the operating system that allows a user to communicate with it so users can load programs, access files, and accomplish other tasks.

Multitasking Multiprogramming on single-user operating systems.

Machine language The first generation language and the most basic level of programming languages.

Assembly language

Allows the programmer to use mnemonics (memory aids) for instructions, and identifiers for addresses.

Also called the complier language. High-level language

Assembler

Compiler

Class

Encapsulation

Abstraction

Translate the symbolic instruction codes written in an assembler language into machine language instructions.

Translate high-level language statements

Objects belonging to a certain class have the same features of that class.

Encapsulation conceals the functional details of a class from objects that send messages to it.

Abstraction is simplifying complex reality by modeling classes

Message Passing

Polymorphism

Decoupling appropriate to the problem, and working at the most appropriate level of inheritance for a given aspect of the problem.

Message passing is the process by which an object sends data to another object or asks the other object to invoke a method.

Ability of objects in object oriented programming belonging to different data types to respond to method calls of methods of the same name, each one according to an appropriate type-specific behavior.

Decoupling allows for the separation of object interactions from classes and inheritance into distinct layers of abstraction.

Group Activity

Do an analysis of program using machine language and assembly language. Discuss the difference in the programming style.

Example answer:

Address

Machine

Code

0000

0003

0005

0008

000B

Assembly Language Comments

B80000

8E D8

BB 0001

B9 0028 mov ax,@DATA mov ds,ax mov bx,1 mov cx,lmessag

; MUST always set DS to

; point to DATA segment

; 1 = console output device

; set message length

BA 0000 R mov dx,OFFSET message ; point to message

000E B4 40 mov ah,40H ; DOS write function

0010

0012

0015

CD 21

B8 4C00

CD 21 int 21H mov ax,4c00H int 21H

; DOS exit function

Exercise

Click and drag to label correctly the various components and related application using the list given below:

System Software Utility Programs

Computer Hardware

Language Translators

Application Software

End Users

Operating Systems a b c d f g e

Answer: a =End Users b= Application Software c = System Software d= Computer

Hardware

Application Software f = Operating Systems g = Language Translators e = Utility Programs

Download