Trends and technologies in system softwares

45
TRENDS AND TECHNOLOGIES IN SYSTEM SOFTWARE

Transcript of Trends and technologies in system softwares

Page 1: Trends and technologies in system softwares

TRENDS AND TECHNOLOGIES IN

SYSTEM SOFTWARE

Page 2: Trends and technologies in system softwares

AGENDA

• Introduction• What are the system software in practice?• Operating systems.• Utility software.• Loaders, Linkers and decoders.• Compilers.

Page 3: Trends and technologies in system softwares

Invitation to Computer Science, C++ Version, Fourth Edition

3

INTRODUCTION

Page 4: Trends and technologies in system softwares

System Software: The Virtual Machine

• System software

• Acts as an intermediary between users and hardware

• Creates a virtual environment for the user that hides the actual computer architecture

• Virtual machine (or virtual environment)

• Set of services and resources created by the system software and seen by the user

Invitation to Computer Science, C++ Version, Fourth Edition

4

Page 5: Trends and technologies in system softwares

Invitation to Computer Science, C++ Version, Fourth Edition

5

Figure 6.1

The Role of System Software

Page 6: Trends and technologies in system softwares

Invitation to Computer Science, C++ Version, Fourth Edition

6

Types of System Software

• System software is a collection of many different programs

• Operating system• Controls the overall operation of the computer

• Communicates with the user

• Determines what the user wants

• Activates system programs, applications packages, or user programs to carry out user requests

Page 7: Trends and technologies in system softwares

Invitation to Computer Science, C++ Version, Fourth Edition

7

Figure 6.2

Types of System Software

Page 8: Trends and technologies in system softwares

Invitation to Computer Science, C++ Version, Fourth Edition

8

Types of System Software (continued)

• User interface

• Graphical user interface (GUI) provides graphical control of the capabilities and services of the computer

• Language services

• Assemblers, compilers, and interpreters

• Allow you to write programs in a high-level, user-oriented language, and then execute them

Page 9: Trends and technologies in system softwares

Invitation to Computer Science, C++ Version, Fourth Edition

9

Types of System Software (continued)

• Memory managers• Allocate and retrieve memory space

• Information managers• Handle the organization, storage, and retrieval of

information on mass storage devices

• I/O systems• Allow the use of different types of input and output devices

Page 10: Trends and technologies in system softwares

Invitation to Computer Science, C++ Version, Fourth Edition

10

Types of System Software (continued)

• Scheduler

• Keeps a list of programs ready to run and selects the one that will execute next

• Utilities

• Collections of library routines that provide services either to user or other system routines

Page 11: Trends and technologies in system softwares

Functions Of System Software

• The three major functions of system software are

• 1. Allocating system resources• 2. Monitoring system activities• 3. File and disk management

Invitation to Computer Science, C++ Version, Fourth Edition

11

Page 12: Trends and technologies in system softwares

LINKER AND LOADER

• Linkers and loaders have been part of the software toolkit almost as long as there have been computers, since they are the critical tools that permit programs to be built from modules rather than as one big monolith.

• Linker  is a program that takes one or more objects generated by a compiler and combines them into a single executable program.

Usually large applications are written into small modules and are then compiled into object codes. A linker is a program that combines these object modules to form an executable.

Page 13: Trends and technologies in system softwares

CONT

• As early as 1947, programmers started to use primitive loaders that could take program routines stored on separate tapes and combine and relocate them into one program.

• By the early 1960s, these loaders had evolved into full-fledged linkage editors.

• During the 1970s and 1980s there was little progress in linking technology. This is due to the arrival of virtual memory.

• In the 1990s linkers have again become more complex, adding support for modern features including dynamically linked shared libraries.

Page 14: Trends and technologies in system softwares

LOADER

• Loader is utility program which takes object code as input prepares it for execution and loads the executable code into the memory. Thus loader is actually responsible for initiating the execution process.

Functions of Loader: The loader is responsible for the activities such as

allocation, linking, relocation and loading

1)It allocates the space for program in the memory, by calculating the size of the program. This activity is called allocation.

Page 15: Trends and technologies in system softwares

CONT

2) There are some address dependent locations in the program, such address constants must be adjusted according to allocated space, such activity done by loader is called relocation.

3) Finally it places all the machine instructions and data of corresponding programs and subroutines into the memory. Thus program now becomes ready for execution, this activity is called loading.

Page 16: Trends and technologies in system softwares

Utility software is system software designed to help analyze, configure, optimize or maintain a computer. A single piece of utility software is usually called a utility or tool.

Utility software usually focuses on how the computer infrastructure (including the computer hardware, operating system, application software and data storage) operates.

UTILITY SOFTWARE

Page 17: Trends and technologies in system softwares

Anti-virus utilities scan for computer viruses.Backup utilities can make a copy of all information stored on a

disk, and restore either the entire disk (e.g. in an event of disk failure) or selected files (e.g. in an event of accidental deletion).

Data compression utilities output a shorter stream or a smaller file when provided with a stream or file.

Disk checkers can scan operating hard drive.Disk cleaners can find files that are unnecessary to computer

operation, or take up considerable amounts of space. Disk cleaner helps the user to decide what to delete when their hard disk is full.

Disk compression utilities can transparently compress/uncompress the contents of a disk, increasing the capacity of the disk.

UTILITY SOFTWARE CATEGORIES

Page 19: Trends and technologies in system softwares

•Microsoft software utility first introduced with Windows 98 and included with all other versions of Windows released after it that enables users to configure how their computer starts and what programs or services automatically load each time the computer starts. • Users running these versions of Windows can open msconfig by

following the below steps.• Click Start and Run.

• Type msconfig and press enter, once done you should see the System Configuration Utility window as shown in the below example picture.

MICROSOFT UTILITY SOFTWARE

Page 20: Trends and technologies in system softwares
Page 21: Trends and technologies in system softwares

CCleaner (formerly Crap Cleaner), developed by Piriform, is a utility program used to clean potentially unwanted files and invalid Windows Registry entries from a computer.

A public version 1.01 for the Mac OS X has been released along with a Network Edition.

CCleaner can be employed to uninstall programs. CCleaner allows the alteration of start-up programs, similar to

the Microsoft Windows MSConfig utility. Users can disable start-up programs. As of version 2.19.901, CCleaner also allows users to delete

system restore points.

Page 22: Trends and technologies in system softwares
Page 23: Trends and technologies in system softwares
Page 24: Trends and technologies in system softwares

Developer(s) :Piriform Initial release :23 September 2003; 8 years ago Stable release :3.20.1750 / 25 June 2012; 10 days ago Operating system : Windows 2000 and later

Mac OS X 10.5 and later Platform :IA-32 and x64 Available in :47 languagesType :Utility software License :Freemium Website :www.piriform.com/ccleaner

CCLEANER

Page 25: Trends and technologies in system softwares

OPERATING SYSTEM

• Operating System is a software, which makes a computer to actually work.

• It is the software the enables all the programs we use.

• The OS organizes and controls the hardware.

• OS acts as an interface between the application programs and the machine hardware.

• Examples: Windows, Linux, Unix and Mac OS, etc.,

Page 26: Trends and technologies in system softwares

Evolution of Shared Computing

• Batch processing• Interactive processing• Requires real-time processing

• Time-sharing/Multitasking• Implemented by Multiprogramming

• Multiprocessor machines

Page 27: Trends and technologies in system softwares

Batch processing

Page 28: Trends and technologies in system softwares

Interactive processing

Page 29: Trends and technologies in system softwares

Time Sharing / Multitasking

• Users seeking services from same machine at the same time – time sharing• Implemented using a technique called multiprogramming (time is

divided into multiple intervals, execution of one job is limited to a single time interval)

• Multiple terminals connected to same machine• Driven by the fact that in the past computers were very expensive

• When multiprogramming is applied to single-user environments is usually called multitasking

Page 30: Trends and technologies in system softwares

Multiprocessor Operating Systems

• Provide time sharing/multi-tasking capabilities by assigning different tasks to different processors as well as sharing the time of one single processor

• Problems to solve: • Load balancing – dynamically allocating tasks to the various

processor so that all of them are used efficiently• Scaling – breaking tasks into sub-tasks compatible with the number of

processors available

• Trend to develop a network wide operating system rather than networks of individual operating systems

Page 31: Trends and technologies in system softwares

Embedded Operating Systems

• Used in hand held devices (PDAs), mobile phones, cars, etc…

• Limited data storage and power conservation are the big challenges.

• Examples: VxWorks, Windows CE (Pocket PC), Palm OS, Symbinan, ThredX, RomDOS, etc…

Page 32: Trends and technologies in system softwares

Open source operating system

• Many people are not satisfied with proprietary operating system.

• As Linux is a open source operating system, they develop their own kernal and other applications for their system.

Page 33: Trends and technologies in system softwares

NEXT GENERATION

• In future the microsoft is deciding to develop cloud OS.• They decided to develop Operating System integrated

with browser.• Many OS like Google Chrome OS, Firefox OS is coming

up.

Page 34: Trends and technologies in system softwares

COMPILERS

• A compiler is a computer program that transforms source code written in one programming language (the source language), into another programming language (the target language, often having a binary form known as object code).

• The history of the compilers takes us to the early 1940’s.

Page 35: Trends and technologies in system softwares

COMPILERS- History

• In 1945- Konrad Zuse began work on Plankalkul (Plan Calculus), the first algorithmic programming language, with an aim of creating the theoretical preconditions for the formulation of problems of a general nature. 

• In 1948- Claude Shannon´s "The Mathematical Theory of Communication" showed engineers how to code data so they could check for accuracy after transmission between computers. • Shannon identified the bit as the fundamental unit of data

and, coincidentally, the basic unit of computation.

Page 36: Trends and technologies in system softwares

COMPILERS- Birth

• The term compiler was coined by Hopper.• The first compiler was written by Grace Hopper, in 1952,

for the A-0 System language.• The A-0 System was a set of instructions that could

translate symbolic mathematical code into machine language.  

Page 37: Trends and technologies in system softwares

COMPILERS- History

• In 1953- John Backus completed speedcoding for IBM´s 701 computer. Although speedcoding demanded more memory and compute time, it trimmed weeks off of the programming schedule.

• One of the first real compilers was the FORTRAN compiler of the late 1950s.

Page 38: Trends and technologies in system softwares

COMPILERS- History

• During the late 1970s and early 1980s, optimizing compilers continued to improve to the point that all but the most critical portions of general-purpose programs were written in high-level languages.

• On the average, the compilers generate better code than most assembly language programmers. This was often because a compiler could make better use of hardware resources such as registers.

Page 39: Trends and technologies in system softwares

COMPILERS- History

• In 1953- John Backus completed speedcoding for IBM´s 701 computer. Although speedcoding demanded more memory and compute time, it trimmed weeks off of the programming schedule.

•  ALGOL 58 for Z22 computer.• ALTAC (extended Fortran compiler) was also available

on the Philco 2000

Page 40: Trends and technologies in system softwares

COMPILERS- History

• Self-hosting Compilers:• A bootstrapping problem: First, such compiler for a

language must be compiled either by a compiler written in a different language.• The first self-hosting compiler (excluding assemblers) was

written for Lisp by Hart and Levin at MIT in 1962.• They wrote a Lisp compiler in Lisp, testing it inside an

existing Lisp interpreter.

• Open source compilers.

Page 41: Trends and technologies in system softwares

COMPILERS- Future

Rob Walling- “The Future Of Compilers”

(www.softwarebyrob.com/2006/04/27/)• Reaching the point of employing Artificial Intelligence

(AI) in an attempt to see the future.• Compilers operate with no a priori knowledge of the

code beyond the language syntax definitions.• Determining how a person, file or database is going to

interact with an application until it actually happens.• This problem is hard, but not unsolvable.

Page 42: Trends and technologies in system softwares

CONCLUSION

• It started with huge multi-pass designs for COBOL and FORTRAN.

• Then we moved into block-structured languages (algol, pascal, and even C).

• Then we moved into OOP: C++, Java, .NET.• Some IDEs now use parsers to validate

syntax/semantics as programs are entered.• This started with legacy Quickbasic, but QB was using it to

do part of compilation as users entered each line (because PCs were slow)

Page 43: Trends and technologies in system softwares

• The former were statically typed, often had manual memory management and powerful optimizing compilers (C, Pascal, Ada).

• The later were dynamically (often weakly) typed, interpreted, and were used for scripting and learning (BASIC, AWK, Unix shells).

• Today, the distinction is blurred: interpreters became fast enough by using just-in-time compilation (JavaScript, Lua) and compilers got convenient features making them more usable

Page 45: Trends and technologies in system softwares

Thank you…