- [Narrator] Memory is an important shared resource
on a computer system.
Computer systems run many different applications
at the same time,
and each of these applications needs access
to memory to store its own code
and its working data.
Strong security controls
must be in place to protect the contents of memory
so that unauthorized applications
can't access portions of memory
assigned to other applications
and gain access to sensitive information
or make unauthorized changes
to the code supporting an application.
As you prepare for the CISSP exam
you should be familiar with the different types of memory.
There are two majority categories of memory,
read-only memory, or ROM,
and random access memory, or RAM.
ROM has contents that are written permanently
or semi-permanently to the physical memory chip.
This might include the low-level BIOS
that provides primitive instructions
to a computer system
or the firmware that controls embedded devices.
There are several different types of ROM,
including technology that allows ROM
to be erased and overwritten to perform upgrades.
RAM is the shared memory used
by all of the applications on a computer system.
Those applications can read or write
the memory that is assigned to them,
and the contents of RAM are typically lost
when the computer is turned off.
RAM is shared among many different applications
and it's the operating system's responsibility
to enforce access restrictions.
The operating system must perform
an important function called memory management.
Essentially, memory management means
that the operating system must keep track
of which processes own which portions of memory.
The operating system tracks and manages assignments,
fulfilling requests from applications for more memory,
and releasing memory that is no longer needed
by an application, freeing it up for other uses.
In addition to managing memory assignments,
the operating system is also responsible
for memory protection.
This means that it must enforce access rules,
making sure that processes don't access portions
of memory that don't belong to them.
Unauthorized requests may be innocent in nature,
resulting from bugs in applications,
or they may be more malicious attempts
to undermine memory security.
When a memory access violation occurs,
the application receives an error
known as a segmentation fault.
This error type simply means that a request
violated the access control rules
trying to access a memory segment
that was not assigned to that application.
One other memory issue you should be aware of
is an error condition known as a memory leak.
Memory leaks occur when applications
request memory from the operating system
and don't fully release that memory
when it is no longer needed.
These requests may pile up over time,
slowly or quickly taking over
all of the available memory on a system,
denying other applications access to needed memory
and grinding system functions to a halt.
A reboot may correct a memory leak temporarily
but the real fix requires modifying
the application code to avoid the memory leak
in the first place.