Introduction to Software and Classification

Software is a group of interrelated programs, which drives the hardware to manipulate the systems resources. Program is a group of functions or procedures which is constituted by set of statements where as statement is a linear group of Instructions of various combination of binary digits in the form of Bits i.e. 1,0’s.

          The software had classified in various categories on the bases of their interface role and on their application utilities.

SOFTWARE

             
Eg:      Eg:                         Eg:                             Oracle         Eg:                      Eg:
  DOS     UNIX,                  Windows                                   Basic                     Simula
  OS/2    Multics                 95,98,NT,                              Cobol                 Small-
                                      2000,2003.                             Fortran66           Talk
                                      Linux,                                    C                      VC++
                                      Solaris.                                                         JAVA


CUI     : Character User Interface             DOS    : Disk Operating System
GUI     : Graphical User Interface             NT      :  New Technology
SUST   : Single User Single Tasking           Basic   : Beginners All-purpose Symbolic
MUMT  : Multi User Multi Tasking                            Instruction Code 
Cobol  : Common Business Oriented         DBMS  : Data Base Management System
            Language.
RDBMS: Relational Data Base                   SUMT : Single User Multi Tasking
             Management System
           
Foxpro is a DBMS Package
Oracle is a RDBMS Package
Unix O/S also supports GUI and which can consider as X-Windows.

 

 

System Software


The Software that acts as an interface between user and system hardware by converting the high level instructions in to machine-readable instructions and vice versa. System software is also known as Operating System. The Operating System manages the resources like internal and external devices to manipulate under single platform. The Basic Properties of the operating system under regulating the resources are as follows.

Memory Management
File Management
I/O Management
Device Management
Process Management

Memory Management

The Process of allocating the memory and de-allocating the memory under RAM (Random Access Memory) by the program interface in governed by the Operating System. In general the operating system allocates the space for the running application and removes the space if the program was terminated after successful completion. But in few cases the programs like TSR’s  (Terminate Stay Resident) keep on occupying the free space with the memory even though the application was terminated.

The Operating System accepts the signal from the running application in order to allocate the system resources to the current application, if the symbiosis occurs between running application and Operating System then the Operating system acknowledges the memory from its resource to the program and later it was de- allocated by the Operating System.

File Management
                  
The Operating System is an interface regulates the files in order to access or retrieval from the storage devices. In general the file which is to be stored under the storage devices are split in to fragments with known size and these fragments are scattered randomly with in the disk and the address of the fragments are listed under FAT (File Allocation Table), On further accessing of the file from the disk, the Operating System fetches the address from the FAT and on the basis’s of address it recollects the fragments to form a single entity. Since the Operating System should manage the resources up to maximum extent.

In general the system utilizes various storage devices such as primary or secondary, to store the data and these devices are further more classified in various categories based on their hardware technologies such as optical disks, magnetic disk, ferrite disk and etc. So, the Operating System on single hand has to manipulate the storage regulations in the form of File Management.

I/O Management

The Input and Output management is governed by the Operating System by providing the necessary regulations. The input devices such as Keyboard, Joystick and MICR generates the scan codes which indirectly depends up on the ASCII standards, where as the mouse, scanner and BCR generates the analog signals and these analog signals are further converted in to machine readable codes but not in to 1,0’s and these codes are accessed by the Operating System to manipulate the Input Devices.
The Output devices such as VDU, when access by the current running application either in back ground or fore ground is providing the resources and this communication is also interfaced by the Operating System. The output device like printer or plotter internally have their own regulating factors such as local microprocessor which technically known as micro controller, These micro chips receive the signals from the Operating system and stores the signals under the buffer and process the data in the form of the output. In few cases even the operating system may have to receive the acknowledgement from the microchips of both input and output devices to regulate the alternate sources.

Device Management

The Devices such as storage media, communication and other peripherals are also governed by the Operating System.  If the data want to be transmitted to various external devices then the Operating System plays a dominant role to server the resources. While under communication the device ports such as COM and LPT’s are also modulated by Operating System with the support of various external chips like UART and USART.

Let use assume the O/S designed on the basis of today technology should support the alien devices of future technology and this compatibility should be managed and regulated by the Operating System to extend the scope of the nature.

Process Management

The task assigned by any running application to the system was first captured by the System Software or Operating System and later it was synchronized in to various sub units and these sub units can be consider as TOKENS, These token are bypassed to the processing unit in general Micro Processor and can executes the Instructions based on the order indexed. The process once again depends up on the operating system to regulate the traffic of data to over come the deadlocks. The Deadlock is an event that has been encountered on over flow of data with heavy burden on the Processor. So, to over come the deadlock the Operating System should generate the Semaphores to bypass the traffic of Data from various resources.

Types of Operating Systems


The Operating Systems are classified in to various categories based on their capability of supporting the networking and multiple sessions with regulated securities. 




                                                Operating Systems


                                     Eg:                    Eg:                           Eg:     
                                DOS                   DOS with                    Windows 95,98,NT


OS/2                   Novell Net                     Unix, Linux, Solaris    BeOS                                                  Multics.

SUST

Under Single User Single Tasking, The Operating System allocates the resources to only one application. Since it dose not undergoes the timesharing.

MUST

In Multi User Single Tasking, The Operating Systems allocates the resources to multiple users. The DOS operating System along with Novell Netware supports the MUST capability such that even DOS operating system also supports the networking with client and server architecture. In which the Server is to make dedicated. The networking architecture is mandatory for the multi user interface, so the networking is supported with the bus topology. Topology is nothing but, Physical structure of network.

MUMT
               
The Multi User Multi Tasking is supported by the operating system with the nature of time-sharing and time slicing. The processing of splitting of the CPU time i.e. second in to micro and nano seconds is known as time slicing. The phenomenon of allocating the system resources to the various application from various client in the network with in the current second by utilizing the time slicing in known as Multi Tasking. The multi tasking supports such way that the single user can run the multiple task at a time in front end and back end.

Let us consider that playing the background music in the backend where as editing the text under front end is the better supportive for the Multi Tasking. As like of that operating system receives the signals from the various client with in the network and manipulates the resource with equal and predefined priority on the bases of the job schedule.
  

           

Translators:

The software utility that converts the high level instructions to machine-readable instructions that which further manipulated by the operating system is known as translators. These translators are classified in to 3 types and which are as follows.

Assembler
Interpreter
Compiler

Assembler –

The assembler converts the assembly language codes, in general pneumonic codes in to machine-readable codes. The pneumonic codes are the statements of assembly language, which are, abbreviated forms of direct binary instructions. The assemble are directly used under system programming or under microprocessor programming on direct interface.
Eg:
          TASM, MASM.

Interpreter –

The Interpreter converts the high level code in to machine-readable codes in general the ASCII codes. Interpreter checks the source code by line by line in the form of individual statements. If the current statement is correct in all aspects such as syntactical and semantically then it continues to the next statement. The debugging becomes very easy under Interpreter regulation.
Eg:
          Fortran

Compiler –
         
Compiler interchanges the high level code in to machine-readable codes more precise object code in the form of ASCII codes. Compiler checks the source code as a single entity and reports the warnings and errors at a time. The debugging become very tough since all the errors are to maintain at a time. But the compilation time is reduced since the compiler is much more faster then the Interpreter.
Eg:
          C, C++



INTRODUCTION TO C


C is a general purpose, structured programming language. Its instructions consist of terms that resemble algebraic expressions, augmented by certain English keywords such as if, else, for, do and while. In this respect C resembles other high-level structured programming languages such as Pascal and Fortran-77. C also contains certain additional features, however, that allow it to be user at a lower level, thus bridging the gap between machine language and the more conventional high-level languages. This flexibility allows C to be used for system programming i.e. for writing operating systems, as well as for application programming.

C is characterized by the ability to write very concise source programs, due in part to the large number of operators included extensive library functions, which enhance the basic instructions. Further more, the language encourages user to write additional library functions of their own. Thus the user can easily extend the features and capabilities of the language

C compilers are commonly available for computers of all sizes, and C interpreters are becoming small and highly efficient when compared with programs compiled from other high-level languages. The interpreters are less efficient, though they are easier to use when developing a new program. Many programmers begin with an interpreter, and then switch to compiler once the program had been debugged.

Another important characteristic of C is that its programs are highly portable, even more then with other high-level languages. The reason for this is that C relegates most computer-dependent features to its library functions. Thus, every version of C is accompanied by its own set of library functions, relatively standardized, however, and each individual library function is generally accessed in the same manner from one version of C to another. Therefore, most C programs can be processed on many different computers with little or no alteration.

                       

History of C Language


In mid 1960’s and 1970’s the telephonic system is of Simplex, which means that uni-directional that is if the transmitter is to send the data, the receiver must wait for the complete data transfer and after it should acknowledge to the transmitter with reply. This is ultimate draw back of the communication system at AT&T Bell Labs. It is a prestigious company, which supporting the communication and networking not only for telephonic system but also for the space travel communication when the first generation satellites were launched. So in order to support the telephonic system as duplex that is bi-directional, it should be governed by one of the software to over come the heavy data traffic.

Dennis Ritchie originally developed C language in 1970’s at AT&T Bell Labs from a basic programming language so called, BCPL – Basic Combined Programming Language.  The BCPL was written by Brian Kernighan, which is a system programming language. Hence C language can be considered as a modified release of BCPL with extended features. Dennis Ritchie and Ken Thompson together had re written the Unices under C compiler and released the new Operating System as UNIX and once again Ken Thompson and Dennis Ritchie had developed a new compiler to support the C language under their own operating system UNIX. This flavor of C is known as ANSI C.

                                                                                    

Characteristics of C language


C language can be consider as mid level programming language since it supports both high level as well as low level language script. It can also be considered as functions oriented programming or structured oriented programming language, since it supports the source code scripting under blocks of statements with specific identity. It can also be known as system programming language since it supports various utilities like device driver programming on kernel interface programming. C language supports various applications and which are as follows.

C language supports Data Structures and File Structures
It supports the Graphics
It supports the Device Driver Programming

C language manipulates the Interrupt programming through IVT
It supports the TSR’s programming
It governs the Network Programming.

The characteristic features of C language are


Integrity:

This refers to the accuracy of the calculations. It should be clear that all other program enhancements would be meaningless if the calculations were not carried out correctly. Thus, the integrity of the calculations is an absolute necessity in any computer program. C language is supported with built-in header file math.h to support the mathematical calculations.


Clarity:

This refers to the overall readability of the program, with particular emphasis on its underlying logic. If a program is clearly written, it should be possible for another programmer to follow logic without undue effort. It should also be possible for the original author to follow his or her own program after being away from the program for an extended period of time.  One of the objectives in the design of C is the development of Clear, readable programs through an orderly and disciplined approach to programming.


Simplicity:

Keeping things as simple as possible, consistent with the overall program objectives usually enhances the clarity and accuracy of a program. In fact, it may be desirable to sacrifice a certain amount of computational efficiency in order to maintain a relatively simply, straight forward program structure.


Efficiency:

This is concerned with execution speed and efficient memory utilization. These are generally important goals, though they should not be obtained at the expense of clarity or simplicity. Many complex programs require a tradeoff between these characteristics. In such situations, experience and common sense are key factors.

Modularity:

Many programs can be broken down into a series of identifiable subtasks. It is a good programming practice to implement each of these subtasks as a separate program module. In C such modules are written as functions. The use of a modular programming design enhances the accuracy and clarity of a program, and it facilitates future program alterations.

Generality:

Usually we want a program to be as general as possible, within reasonable limits. For example, we may design a program to read in values of certain key parameters rather then placing fixed values in the program. As a rule, a considerable amount of generality can be obtained with very little additional programming effort.

 

Flavors of C Language


Various Flavors of C Languages
         
C compiler can be available in different flavors since the portability was extended under various operating systems due to the significance of system level programming.  Based on the operating system the C compiler is energized much more stronger since all the system resources are under the control of Operating system. If the parent operating system is stronger and massive then the C compiler also supports the massive tasks and activities.

Eg:

                   1. Turbo        C/C++          DOS
                   2. ANSI         C/C++          Unix
                   3. Microsoft  C/C++          Windows
                   4. Borland      C/C++          Windows
                   5. Berkley      C/C++          Unix – BSD.
                   6. Pro           C/C++          Oracle – Unix/ Windows
                   7. Dynamic    C/C++          Linux
                   8. Embedded  C/C++          Linux, RTOS
                   9. mDynamic   C/C++          Micro Linux, RTOS.
                   10. Micro        C/C++          Micro Linux, RTOS.


The nature of the C/ C++ compiler depends upon the operating system since if the operating system serves the maximum then the compiler can support the complete programming with all required regulations.        

 

Fundamentals of C Compiler


The C compiler is case sensitive, so the source code should be represented under lower case. But in few compilers like Turbo C/C++ the code may even written under upper case on alteration of few compiler settings, even though under these compiler must and should be in lower case.

As per the C compiler architecture every statement should be terminated with semicolon (;) which denotes that it is the end of the statement under executions. The compiler evaluates the code from left to right under compilation phase where as right to left under statement or functions executing.

Every C program will start only from the user-defined function that is main () and ends only with in the main () function. The variables should be declared only under declaration block followed by the statements. The C compiler is supported with 32 built-in keywords and which are as follows.



Post a Comment

0 Comments