Page 196 - DCAP104_EXPOSURE_TO_COMPUTER_DISCPLINES
P. 196
Unit 9: Software Development
Software engines output source code or markup code that simultaneously become the input to Notes
another computer process. The analogy is that of one process driving another process, with the
computer code being burned as fuel.
Application servers are software engines that deliver applications to client
computers. For example, a Wiki is an application server that lets users build
dynamic content assembled from articles. Wikis generate HTML, CSS, Java,
and JavaScript which are then interpreted by a web browser.
9.1.11.4 Simultaneous Execution
Many operating systems support multitasking which enables many computer programs to appear
to run simultaneously on one computer. Operating systems may run multiple programs through
process scheduling a software mechanism to switch the CPU among processes often so users can
interact with each program while it runs. Within hardware, modern day multiprocessor computers
or computers with multicore processors may run multiple programs.
One computer program can calculate simultaneously more than one operation using threads or
separate processes. Multithreading processors are optimized to execute multiple threads efficiently.
9.1.12 Functional Categories
Computer programs may be categorized along functional lines. The main functional categories
are system software and application software. System software includes the operating system
which couples computer hardware with application software. The purpose of the operating
system is to provide an environment in which application software executes in a convenient and
efficient manner. In addition to the operating system, system software includes utility programs
that help manage and tune the computer. If a computer program is not system software then it
is application software. Application software includes middleware, which couples the system
software with the user interface. Application software also includes utility programs that help
users solve application problems, like the need for sorting.
Sometimes development environments for software development are seen as a functional category
on its own, especially in the context of human-computer interaction and programming language
design. Development environments gather system software (such as compilers and system’s batch
processing scripting languages) and application software (such as IDEs) for the specific purpose
of helping programmers create new programs.
9.2 Hardware/Software Interactions
In the field of computer science, an interface refers to a point of interaction between components,
and is applicable at the level of both hardware and software. This allows a component, whether
a piece of hardware such as a graphics card or a piece of software such as an internet browser,
to function independently while using interfaces to communicate with other components via an
input/output system and an associated protocol.
In addition to hardware and software interfaces, a computing interface may refer to the means
of communication between the computer and the user by means of peripheral devices such a
monitor or a keyboard, an interface with the internet via Internet Protocol, and any other point
of communication involving a computer.
Most modern computer systems are built as a series of layers, or levels. The lowest level is usually
considered the physical “hardware” layer and the topmost layer is usually a user application or
source code.
LOVELY PROFESSIONAL UNIVERSITY 189