Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
System Resources
1. FAKULTI PENGURUSAN MAKLUMAT
SYSTEM RESOURCES
IMD 251 SUPPORT SERVICES AND MAINTENANCE II
ISMA ISHAK
2009
2. What are system resources, and why do I run out of them?
In many cases, an quot;out of memoryquot; message is misleading, since your whole system really
did not run out of memory. Instead, certain areas of memory (Microsoft calls quot;heapsquot;) used
by Windows have run low on space.
Windows maintains an area of memory for operating system resources. The maximum size
of this area is 128K, in two 64K areas. Windows 95/98 uses this area of memory to store
fonts, bitmaps, drop-down menu lists and other on-screen information used by each
application.
When any program begins running, it uses up some space in the quot;system resourcesquot; area in
memory. But, as you exit, some programs do not give back system resources they were
temporarily using. Eventually the system will crash as it runs out of memory. The crash
happens sometimes if you start and close many programs, even the same ones, without a
periodic reboot. This is what Microsoft calls a resource leak or memory leak.
A memory chip, like the one above, contains an area for system resources.
When you tell your system to exit a program, the program is supposed to give back the
resources (memory) it was using. But, because programs are written by humans, mistakes
can happen and the program may not give back all to the operating system. This failing to
quot;give backquot; is the quot;memory leak,quot; eventually leading to a message that your computer is
low on resources. Memory leaks can also be caused by programs that automatically load
every time you boot your Windows system. In Windows 95/98 you can see the list of active
programs via the usual Ctrl-Alt-Del sequence. The Windows Startup folder contains
programs that launch every time your system boots. In Windows 98, set the folder contents
with MSCONFIG. In Windows 95, click the right mouse button on the Task Bar, click
1 | P a g e
3. Properties, click Start Menu Programs, click Advanced and look for the Startup folder in the
left pane.
The system resources problem is something you might have to live with until the
misbehaving application is found. If you are sure a certain application is causing the
problem, be sure to contact the software vendor.
You can keep track of your system resources via the handy tool at Start >> Programs >>
Accessories >> System Tools >> Resource Meter. The resource meter adds the quot;fuel
gaugequot; to your Windows task bar, to help you keep track of your system's resources. As the
bar graph gauge turns from green to yellow, then the dreaded red, you know you have a
problem! But you need to remember that the resource meter also consumes what you are
trying to conserve: system resources.
System Resources
The three major system resources that can be assigned to different devices are I/O
addresses, IRQ addresses, and DMA addresses. A fourth system resource, called a memory
address, can sometimes be assigned to devices as well. In the following sections, we will
discuss each of these system resources. I/O addresses
It is extremely important to remember that the CPU is the traffic cop of the entire system. If
something is going to happen on the system, then generally the CPU (processor) will enable
the action. All devices in the computer need to communicate with the processor from time
to time, and the processor needs a method of separating and prioritizing all these
communications.
Because the processor needs to send information to a number of different devices and
because those devices need to know which messages coming from the CPU are for them,
each device is assigned an I/O address, or input/output address. The I/O address is a
special port address that represents a pathway between the CPU and the device. So, for
example, if the processor needs to send information to LPT1, it can send the information to
pathway 378-37F, which is the pathway address that is leading to LPT1. I like to think of
these pathways as tunnels; each device has its own tunnel that extends from the device to
the processor.
If the processor needs to send information to the sound card, it knows that if it sends the
information down I/O port address 220, then the sound card will receive the information.
2 | P a g e
4. Conversely, when the processor receives information from I/O port address 220, it knows
that the information comes from the sound card, because that address is assigned to only
one device.
There are 65, 536 I/O port addresses available on the system. (There are actually fewer
addresses than that, because when you assign an IO address to a device, you are really
assigning a range of addresses.) The trick is to make sure that you have not assigned the
same I/O port address to two different devices. If you do, you will get a resource conflict. A
resource conflict is when two devices are using the same resource, such as an I/O address,
IRQ, or DMA channel.
To prevent resource conflicts, each device should have a unique I/O address, but the
problem is, how do you know which I/O addresses existing devices already use? One way is
to use the Windows 95/98 Device Manager to view I/O addresses being used on the system.
The following Step By Step shows you how to view I/O addresses in use by your system.
3 | P a g e
5. STEP BY STEP: Viewing I/O Addresses in Use
1. Select Start - Settings - Control Panel.
2. Double-click the system icon.
3. Choose the Device Manager page tab.
4. Click Computer at the top of the device list and then click the Properties button to display
the Computer Properties dialog box.
5. Select the Input/output (I/O) radio button on the View Resources tab of the Computer
Properties dialog box. From there, you can scroll down to see all the address ranges that
are in use by your computer and what device is using it.
Standard I/O Address Assignments
COM1 03F8 to 03FF
COM2 02F8 to 02FF
COM3 03E8 to 03EE
COM4 02E8 to 02EE
LPT1 0378 to 037F
LPT2 0278 to 027F
Math coprocessor 00F8 to 00FF
Primary hard disk controller 01F0 to 01F7
Secondary hard disk controller 0170 to 0177
Sound cards 0220 to 022F
Floppy Disk 03F0 to 03F7
4 | P a g e
6. Interrupt request
Each device has its own tunnel for sending and receiving information to the processor,
which is the function of the I/O port. But how does each device get permission to send
information to the processor, which as you know, is busy doing something important nearly
all the time? Too much overhead would be created if the processor had to continuously poll
each device to see if it had something that it needed the processor to do; instead, each
device is responsible for notifying the processor if it has information for it. Devices need a
way to interrupt the processor from its current processing to ask it if it will service their
requests. The method that is used to interrupt the processor is called an Interrupt request,
or IRQ line.
If you were standing beside someone who was involved in a conversation and you really
wanted to talk to that person, what would you do? You might, for example, tap the person
on the shoulder. Tapping the person on the shoulder is similar to what the IRQ line is used
for; the IRQ line sends a signal from the device to the processor that grabs the processor’s
attention.
Many people compare an IRQ to a bell sitting at the front desk of a restaurant or storefront.
If you want service and no one is paying attention to you, you ring the bell for service—
IRQs work the same way. When a device taps the processor on the shoulder, the processor
needs to know what device needs attention. That is why each device is assigned a unique
IRQ line number. When a device sends a signal down the IRQ line to interrupt the
processor, the processor checks which line the signal originated from and then attends to
that device.
It is important to note that when information is sent to the processor, it is sent through the
I/O address (the tunnel). So the IRQ is just to grab the processor’s attention while the I/O
address is used for the actual delivery of information. Originally, there were only 8 IRQs
available on XT (before 286) systems, but there are 16 IRQs available on AT (after 286)
systems. In order to get 16 IRQs, another IRQ controller was added to the system, but
5 | P a g e
7. having two sets of IRQs managed by two different controllers presented some technical
problems. To help the two IRQ controllers act as one unit, the IRQs have cascaded (or
linked) together, and the second controller goes through the first controller to send
requests.
STEP BY STEP: Viewing IRQs in Use
1. Select Start - Settings - Control Panel.
2. Double-click the system icon.
3. Choose the Device Manager page tab.
4. Click Computer at the top of the device list and then click the Properties button to display
the Computer Properties dialog box.
5. Select the Interrupt request (IRQ) radio button on the View Resources tab of the
Computer Properties dialog box. From there, you can scroll down to see all the IRQ settings
that are in use by your computer and what device is using each.
Standard IRQ Assignments
0 System Timer
1 Keyboard
2 Link to second IRQ controller
3 COM2, COM4
4 COM1, COM3
5 LPT2
6 Floppy disk drive
7 LPT1
8 Real time clock
9 Available, but should not be used if IRQ 2 is being used
10 Available
6 | P a g e
8. 11 Available
12 Available if not used by PS/2 mouse
13 Math Coprocessor
14 Hard disk controller
15 Available
Here are a few important points about IRQ assignments:
IRQs 10, 11, 12, and 15 are generally available. If you are installing a new device into
a computer and need to assign an IRQ, you would first try an available IRQ value.
IRQ 3 and IRQ 5 are used by COM2 and LPT2, respectively. If you are not actually
using COM2 or LPT2, you can consider IRQ 3 and IRQ 5 as available.
When a device has information for the CPU, it first sends a signal down the IRQ line to grab
the CPU’s attention. After the device has the CPU’s attention, it sends the information to the
processor via its I/O address.
Direct memory access
There are a number of different devices today that require constant access to system
memory. Normally, devices must go through the CPU to write information to system
memory, but using such a scheme can cause a lot of unnecessary overhead, so why not
allow a device to access memory directly?
To increase performance and to offload some of the work from the CPU, you can assign
some devices a DMA (Direct Memory Access) channel. The DMA channel is a special
pathway that allows the device to read and write information directly to system memory
without passing the data to the processor.
There are only 8 DMA channels available on your system, which should not be a huge
problem because not all devices use DMA channels. Some examples of the different devices
7 | P a g e
9. that you may run into that use DMA channels are sound cards, network cards, and,
occasionally, CD-ROM drives.
Common DMA Channel Assignments
0 Available
1 Sound or Available
2 Floppy Drive 3 Available
4 Cascade
5 Sound or Available
6 Available
7 Available
Like IRQs, there are two DMA controllers that are linked by a cascading DMA channel, DMA
channel 4. DMA channels 0-3 are for 8-bit boards and cards; DMA channels 5-7 are used for
16/32-bit cards.
To view the DMA channels that are in use on your system, you can use the Windows Device
Manager utility. The following Step By Step will walk you through viewing your DMA
channels in use.
STEP BY STEP: Viewing DMA Channels in Use
1. Select Start - Settings - Control Panel.
2. Double-click the system icon.
3. Choose the Device Manager page tab.
4. Click Computer at the top of the device list and then click the Properties button to display
the Computer Properties dialog box.
5. Select the Direct memory access (DMA) radio button on the View Resources tab of the
Computer Properties dialog box.
8 | P a g e
10. Memory addresses
A less common resource that may be assigned to devices is a memory address. A memory
address is an area of upper memory where the device is allowed to store information. If
multiple devices have been assigned access to the same memory address, a device conflict
will occur and one or both devices may not function. To view the memory addresses that
are in use by the system, follow these steps:
STEP BY STEP: Viewing Memory Addresses in Use
1. Select Start - Settings - Control Panel.
2. Double-click the system icon.
3. Choose the Device Manager page tab.
4. Click Computer at the top of the device list and then click the Properties button to display
the Computer Properties dialog box.
5. Select the Memory radio button on the View Resources tab of the Computer Properties
dialog box.
9 | P a g e
11. LOGICAL DEVICES
Some devices have both a physical address and also a logical name. The two most
commonly-encountered device types that work this way are serial ports (called COM1 to
COM4) and parallel ports (LPT1 to LPT3). Actually, hard disks are labeled this way too, A:,
C: etc., even though most people don't think of them the same way. The purpose of this
logical labeling is to make it easier to refer to devices without having to know their specific
addresses. It's much simpler for software to be able to refer to a COM port by name than by
an address.
Logical Name Assignment
Logical device names are assigned by the system BIOS during the power-on self test, when
the system is booted up. The BIOS searches for devices by I/O address in a predefined
order, and assigns them a logical name dynamically, in numerical order. The following are
the normal default assignments for COM ports, in order:
I/O
Port Default IRQ
Address
COM1 3F8-3FFh 4
COM2 2F8-2FFh 3
COM3 3E8-3EFh 4
COM4 2E8-2EFh 3
For parallel ports it is slightly more complicated. Originally IBM defined different defaults for
monochrome-based PCs and for color PCs. Of course, all new systems have been color for
many years, but even some new systems still put LPT1 at 3BCh. Here is how the two
different labeling schemes typically work:
quot;Monochromequot; quot;Colorquot; Default
Port
Systems Systems IRQ
LPT1 3BC-3BFh 378-37Fh 7
10 | P a g e
12. LPT2 378-37Fh 278-27Fh 5
LPT3 278-27Fh -- 5
Most new systems have LPT1 at 378-37Fh. Note that the sequences are really the same, in
a way; on a quot;monochromequot; system if you don't put a device at 3BC-3BFh but instead put it
at 378-37Fh, the BIOS will make that LPT1 since it didn't find an LPT1 at 3BCh
11 | P a g e
13. SYSTEM CONFIGURATION
System configuration is the process of setting up your hardware devices and assigning
resources to them so that they work together without problems. A properly-configured
system will allow you to avoid nasty resource conflict problems, and make it easier for you
to upgrade your system with new equipment in the future. An improperly-configured system
will lead to strange errors and problems, and make upgrading a nightmare.
Knowing Your System's Configuration
One key to a well-tuned, trouble-free system is making sure it is properly configured. In
order to accomplish this you must start by understanding its configuration. It can be difficult
to figure out what all the devices are in your system and what resources they are using.
To assist in this, several software tools have been created. These are typically called
diagnostic utilities or programs. Some of them are built in to your operating system and
others are available either for free download or commercial purchase.
Assigning Resources to Devices
Many devices have fixed resource assignments that cannot be changed. Most system
devices are like this. In addition, it is generally best not to change (or try to change) the
resource settings for standard devices like IDE hard disk controllers unless you both really
know what you are doing and there is a compelling reason to change them. The following
devices usually have hard-coded resource settings that cannot be changed: system devices,
keyboard, PS/2 mouse, floppy disk controller, primary IDE controller, video card. Others can
generally be changed, although it makes more sense for some devices than for others.
There are several different ways that are generally used to set or change resource settings
for devices:
• Hardware Settings: Resource assignments on some cards, especially older ones, is
done by hardware on the device itself. This involves changing the settings of jumpers
and switches, usually on the circuit board of the device, to tell it what resources to
use. This is similar to the way most motherboards are configured. Hardware
configuration has the great disadvantage of being a pain if you ever want to change
the resources: you have to open the box and usually pull out the card to get to the
jumpers. It has one great advantage however: certainty. You always know that if
you put the jumper on say IRQ7, the card will try to use IRQ7 (if it isn't busted of
12 | P a g e
14. course. :^) ) You can always open the box and look at the card and get visual
confirmation of how it is set up. You cannot do this with software-based
configuration.
• Software Configuration Programs: Many newer cards are configured using special
software config programs that come with them. You run the program and select the
resources you want to use, and the program writes the information into a special
rewriteable EEPROM placed on the device for that purpose. This is similar to the way
a flash BIOS is used to upgrade the system BIOS using software, on a smaller scale.
Devices that use configuration programs like these are much more convenient than
those that use hardware settings, because you can change the resources without
opening the box. However, they have the disadvantage of being dependent on the
configuration program; if you lose the disk you'll need to get another copy of the
program to change the settings. You also can't tell what the settings are with the
power off, and you run the slight risk of scrambling the card's settings if you say,
lose power while it writes new settings to the card.
• Plug and Play: Newer devices that subscribe to the Plug and Play standards can be
automatically configured under certain conditions when used in a machine that
supports Plug and Play, with an operating system that supports it. Plug and Play is
an attempt to eliminate the large amount of work in assigning resources to devices
and resolving conflicts. When it works properly, resources are dynamically and
automatically assigned and reassigned and you don't have to worry about making
everything work together.
• In addition, the use of a PnP operating system like Windows 95 will normally allow
you to change device resource settings using the built-in Device Manager, giving you
override control if you don't like what PnP chose for your device, and eliminating the
need for special configuration utilities. However, often problems result from the
system making poor resource choices or having difficulties dealing with devices in
the systems that are not themselves PnP-compatible.
13 | P a g e
15. RESOURCES CONFLICTS AND CONFLICTS RESOLUTION
As discussed in several other areas of this section, one of the major issues with system
resources is configuring your system's devices so that they don't interfere with each other.
When more than one device attempts to use the same resource, the result is a resource
conflict.
The Nature of Resource Conflicts
Resource conflicts can manifest themselves in several different ways. Some conflicts can be
very easy to recognize; others can be extremely difficult to find and correct, because they
manifest themselves indirectly, or through symptoms that may not seem to have anything
to do with the device causing the problem. Here are some of the ways that resource
conflicts manifest themselves. Some of these may be consistent and repeatable, while
others may be intermittent:
• System hangs or lockups, particularly while using a peripheral device.
• (Memory) parity errors on parity-enabled systems.
• Noise or other problems from sound cards.
• Junk being printed on your printer.
• The mouse pointer hanging and refusing to move, or moving in a stuttering fashion.
• Error messages from Windows 95, messages about the PC not operating at
maximum performance, or the system dropping to quot;Safe Modequot; or quot;MS-DOS
Compatibility Modequot;.
• Errors and crashes of applications for no apparent reason.
As you can see, some of these obviously point to a resource problem, but many do not. For
example, system crashes can be caused by many non-resource-related factors. If your
mouse works until you try to use your modem, well, you can probably figure out what the
problem is, or at least where to start looking. In general, if you just added a new peripheral
to your PC and a resource conflict is indicated, the new device is almost certainly involved
somehow.
14 | P a g e
16. To Share, Or Not To Share
There are some circumstances where you can share resources between multiple devices,
but it is never a really good idea. Why? Because sharing generally relies on either the user
or the software quot;not doingquot; something that would create a conflict, and it is sometimes hard
to maintain the discipline to do this consistently. It also creates a confusing situation to
anyone else using the PC, and makes upgrading the machine more difficult as well.
Furthermore, sharing resources can sometimes cause strange problems because the system
is doing things with the devices when you may not realize it. For example, many
multitasking operating systems like Windows 95 can access hardware even when you aren't
directly requesting its use.
There are some cases where sharing does make sense. If you have two very infrequently
used serial-port devices in a PC and you are out of interrupts, you may have no choice but
to set them both up on the same IRQ and just make sure you never use both at the same
time. You can use an older style of printer (one that doesn't have a smart driver program)
on an IRQ that another device uses, if you don't use the printer and the other device
simultaneously. I still don't recommend this--just not worth the hassle. I particularly don't
recommend sharing DMA channels, as conflicts on these can be very confusing and difficult
to diagnose.
Resource Conflict Resolution
If you suspect a resource conflict in your PC, you of course need to resolve this conflict. This
can be easy to do if you know where to start looking, or very hard if you do not. There are
some general steps that can be followed to fix this sort of problem. In very brief terms the
steps are:
• Determine what all the devices in the system are using for resources.
• Identify the conflicting devices.
• Change the resource settings on one or more of the devices so they are no longer
conflicting.
15 | P a g e
17. I think I have a resource conflict in my system; what can I do about this?
• Explanation: It is suspected that the system may have a resource conflict. This
means that two different devices are both trying to use a system resource like an
interrupt request line, DMA channel or I/O address. The two devices will conflict and
cause either one or both to malfunction.
• Diagnosis: Resource conflicts are one of the most common problems with PCs,
especially with those who upgrade or add equipment to their PCs. Since the ancient
architecture of the PC has resulted in a great variety of internal devices and
expansion cards having to share a limited amount of resources, devices will often
quot;step on each others' toesquot;. The problem is almost always misconfiguration; in rare
cases you will not be able to use two devices in the same system if they cannot find
a way to cooperate by configuring themselves to use available resources.
Recommendation:
• Do not try to quot;sharequot; resources. Some people will say that this is possible to do, and
technically it is, but it is a headache that is not worth dealing with in my opinion.
Windows 95 is particularly unforgiving about trying to share resources.
• If you suspect a conflict with a specific device, and you are running Windows 95, go
into the Device Manager. Click on the device with the problem (which may show with
a yellow exclamation-mark-in-a-circle next to it) and select quot;Propertiesquot;. Click on the
quot;Resourcesquot; tab and the system will often tell you what the conflict is.
• Sometimes, folks think they have a resource conflict because the Windows 95 Device
Manager shows a PCI device on the same IRQ as another device called quot;IRQ Holder
for PCI Steeringquot;. This is in fact not a resource conflict; IRQ steering is a feature of
Windows 95 that is designed to help avoid resource conflicts. If you think you have a
resource conflict you may indeed have one, but this isn't it.
Use a diagnostic tool such as Norton Diagnostics. There is a test in this package that
•
looks for the IRQ usage of various devices and will sometimes highlight conflicts
(though it is not perfect by any means).
• Catalog the resource usage of all of the devices in your PC. This is the best way to
determine what resources are being used by what. You may find the device resource
summary sheet I have included here to be helpful with this. If you find any devices
that are trying to use the same resources, try to change the configuration of one of
them.
16 | P a g e
18. • Check resource-related BIOS settings to ensure that they are correct.
• Watch out for PCI devices using IRQs. The PCI bus uses its own interrupt scheme but
PCI devices also quot;mapquot; to regular IRQs when needed. Many PCI video cards, for
example, use an IRQ, typically 9, 10, 11 or 12. Make sure that this does not cause
any conflicts with other devices.
• If you are using IRQ9 for any device, make sure you are not using IRQ2 on any other
device. They are the same interrupt line.
• If you are trying to use the COM1 port and the COM3 port at the same time, or the
COM2 port and the COM4 at the same time, you will run into a conflict if you leave
these ports at their default IRQ settings. Each of these two pairs uses the same IRQ
number. To use COM1 with COM3, or COM2 with COM4, you must change the IRQ
number that one of the pair is using so that it does not conflict with the other.
• If you add a modem to your system, and you have a built in COM2 port (which most
do) you will see a conflict unless you change the modem's settings, because most of
them default to use COM2. If you just change the modem from COM2 to COM4, then
the problem above will result unless you also change the IRQ of the modem to
another number.
• If you are using a sound card and a second parallel port, you will probably have a
conflict, because both devices try to use IRQ5 by default. One or the other must be
changed. (Also watch out for the first parallel port accidentally being set to IRQ5).
• If you are using a secondary IDE controller, then IRQ number 15 is normally used by
that controller and cannot be used by other devices.
• DMA conflicts are commonly caused when enabling ECP parallel ports. They use a
DMA channel while other modes of operation of the parallel port do not.
• If you are using a network card, beware of I/O address conflicts. Many network cards
use a full 32 bytes of I/O address space, and can conflict with other devices. They
also sometimes try to use IRQs that are commonly used by other system devices
such as video cards or hard disk controllers.
17 | P a g e
19. PLUG AND PLAY
The large variety of different cards that can be added to PCs to expand their capabilities is
both a blessing and a curse. As you can see from the other sections that have discussed
system resources, configuring the system and dealing with resource conflicts is part of the
curse of having so many different non-standard devices on the market. Dealing with these
issues can be a tremendously confusing, difficult and time-consuming task. In fact, many
users have stated that this is the single most frustrating part of owning and maintaining a
PC, or of upgrading the PC's hardware.
In an attempt to resolve this ongoing problem, the Plug and Play (also called PnP)
specification was developed by Microsoft with cooperation from Intel and many other
hardware manufacturers. The goal of Plug and Play is to create a computer whose hardware
and software work together to automatically configure devices and assign resources, to
allow for hardware changes and additions without the need for large-scale resource
assignment tweaking. As the name suggests, the goal is to be able to just plug in a new
device and immediately be able to use it, without complicated setup maneuvers.
A form of Plug and Play was actually first made available on the EISA and MCA buses many
years ago. For several reasons, however, neither of these buses caught on and became
popular. PnP hit the mainstream in 1995 with the release of Windows 95 and PC hardware
designed to work with it.
18 | P a g e
20. Requirements for Plug and Play
Automatically detecting and configuring hardware and software is not a simple task. To
perform this work, cooperation is required from several hardware and software areas. The
four quot;partnersquot; that must be Plug and Play compliant in order for it to work properly are:
• System Hardware: The hardware on your system, through the system chipset and
system bus controllers, must be capable of handling PnP devices. For modern PCI-
based systems this is built in, as PCI was designed with PnP in mind. Most PCI-based
systems also support PnP on their ISA bus, with special circuitry to link the two
together and share resource information. Older PCs with ISA-only or VL-bus system
buses generally do not support Plug and Play.
• Peripheral Hardware: The devices that you are adding into the system must
themselves be PnP compatible. PnP is now supported for a wide variety of devices,
from modems and network cards inside the box to printers and even monitors
outside it. These devices must be PnP-aware so that they are capable of identifying
themselves when requested, and able to accept resource assignments from the
system when they are made.
• The System BIOS: The system BIOS plays a key role in making Plug and Play work.
Routines built into the BIOS perform the actual work of collecting information about
the different devices and determining what should use which resources. The BIOS
also communicates this information to the operating system, which uses it to
configure its drivers and other software to make the devices work correctly. In many
cases older PCs that have an outdated BIOS but otherwise have support for PnP in
hardware (PCI-based Pentiums produced between 1993 and 1995 are the prime
candidates) can be made PnP-compliant through a BIOS upgrade.
• The Operating System: Finally, the operating system must be designed to work
with the BIOS (and thus indirectly, with the hardware as well). The operating system
sets up any low-level software (such as device drivers) that are necessary for the
device to be used by applications. It also communicates with the user, notifying him
or her of changes to the configuration, and allows changes to be made to resource
settings if necessary. Currently, the only mainstream operating system with full PnP
support is Windows 95.
As you can see, you need a lot for Plug and Play to work, and this is why the vast majority
of older systems (pre-1996) do not properly support this standard.
19 | P a g e
21. Plug and Play Operation
Most of the actual work involved in making Plug and Play function is performed by the
system BIOS during the boot process. At the appropriate step of the boot process, the BIOS
will follow a special procedure to determine and configure the Plug and Play devices in your
system. Here is a rough layout of the steps that the BIOS follows at boot time when
managing a PCI-based Plug and Play system:
1. Create a resource table of the available IRQs, DMA channels and I/O addresses,
excluding any that are reserved for system devices.
2. Search for and identify PnP and non-PnP devices on the PCI and ISA buses.
3. Load the last known system configuration from the ESCD area stored in non-volatile
memory.
4. Compare the current configuration to the last known configuration. If they are
unchanged, continue with the boot; this part of the boot process ends and the rest of
the bootup continues from here.
5. If the configuration is new, begin system reconfiguration. Start with the resource
table by eliminating any resources being used by non-PnP devices.
6. Check the BIOS settings to see if any additional system resources have been
reserved for use by non-PnP devices and eliminate any of these from the resource
table.
7. Assign resources to PnP cards from the resources remaining in the resource table,
and inform the devices of their new assignments.
8. Update the ESCD area by saving to it the new system configuration. Most BIOSes will
print a message when this happens like quot;Updating ESCD ... Successfulquot;.
9. Continue with the boot.
20 | P a g e