WINDOWS ARCHIECTURE: FUNDAMENTALS Aims
To enable
students to: ·
describe
event-driven programming ·
understand
pre-emptive multitasking ·
describe
processes and threads ·
understand
scheduling Describe
event-driven programming
Traditionally
programs have been written with the expectation that operations will be carried
out in a controlled order. For example a program may enter a loop, executing
different functions based on what keys an operator has pressed. The programmer
has full control over this process, including deciding when the loop should be
entered and left. Windows
programming is event-driven and graphic object oriented - these terms should be
familiar from elsewhere in the C++ course covered to date. Programming in
Windows creating objects and modifying their properties based on different
events. The developer has no control over which events are generated by the
Windows operating system, instead they must develop applications that respond
to them. Windows
programs provide users with a standardised environment of menus, buttons, list
boxes, etc. Such facilities are provided by the operating system for use by
applications, ensuring a common look and feel. This cuts down on the amount of
work required by the application developer, the operating system provides the
majority of the user interface leaving more time to consider the real problem
being addressed by the program. Understand
pre-emptive multitasking
Operating
systems such as Windows 95, 98 and NT are capable of running many different
programs simultaneously through multitasking. This is a technique whereby each
application is given a very short period in which it can use the processor,
before another program is allotted time. In previous versions of Windows
applications had to be written in a considerate fashion, relinquishing use of
the processor periodically to allow others to continue their work. Later
versions of Windows introduced pre-emptive multitasking where the operating
system will give every application on the system a fair share of the processor,
those that are developed in a non-considerate fashion will no longer be able to
monopolise system resources. Besides
ensuring responsive systems for end users, pre-emptive multitasking is also
easier to develop applications for than the method employed by earlier versions
of Windows. Developers no longer need to consider other applications that may
be executing on the same machine, to all intents and purposes theirs is the
only program being executed - the operating system will ensure fairness across
the system. Describe processes
and threads
A process
is a program that is loaded into memory and prepared for execution. Each has
its own private address space separate from all others on the system. Data
within each process space is totally protected form others, it is not possible
for others to gain access. In this way processes are very similar to objects
and their protected data members. Each
process has at least one thread of execution, each one representing a path of
execution through the program. As
discussed previously the operating system is responsible for ensuring each
program is allotted a certain amount of processor time. This allocation is
based on a thread basis, each thread in operation on the system being given the
same amount of time with the processor. Understand
scheduling
If every
thread on the system was given equal amounts of processor time users would be
presented with a very sluggish interface. Consequently, each thread is
allocated a priority which dictates which one will have access to the processor
next. The priority is based on: ·
the
priority of the process ·
the
priority of the thread within the process ·
dynamic
priority boost applied by the system The first
two factors in determining the thread priority are controlled by the owning
process. The final factor is controlled by the operating system based on how
long the thread has been waiting to execute, whether the parent process has
input focus, etc. |
|
||
|
|||
|
Last updated: 11th July 2006. copyright © 2006 Greystoke Systems Ltd. Web address: http://www.gsys.biz/Documents/Services/Tuition/CityAndGuilds/FurtherWork/WindowsArchitectureFundamentals.htm |