Research On Operating Systems
Research On Operating Systems
Topics:
Cache
Thrashing
Cache Thrashing
Segmentation
Page Segmentation
Cache is a hardware or software component that stores data so future requests for that data
can be served faster; the data stored in a cache might be the result of an earlier computation, or the
A cache hit occurs when the requested data can be found in a cache, while a cache miss
occurs when it cannot. Cache hits are served by reading data from the cache, which is faster than
re-computing a result or reading from a slower data store; thus, the more requests can be served
paging, rapidly exchanging data in memory for data on disk, to the exclusion of most application-
level processing. This causes the performance of the computer to degrade or collapse. The situation
The term is also used for various similar phenomena, particularly movement between other
levels of the memory hierarchy, where a process progresses slowly because significant time is
Where main memory is accessed in a pattern that leads to multiple main memory locations
competing for the same cache lines, resulting in excessive cache misses. This is most problematic
Memory Segmentation
value that identifies a segment and an offset (memory location) within that segment. Segments or
sections are also used in object files of compiled programs when they are linked together into a
tables so segmentation is generally more visible to the programmer than paging alone. Different
segments may be created for different program modules, or for different classes of memory usage
such as code and data segments. Certain segments may be shared between programs.
Segmentation without paging
Associated with each segment is information that indicates where the segment is located in
memory— the segment base. When a program references a memory location the offset is added to
requires that entire segments be swapped back and forth between main memory and secondary
storage. When a segment is swapped in, the operating system has to allocate enough contiguous
free memory to hold the entire segment. Often memory fragmentation results in there not being
Instead of an actual memory location the segment information includes the address of a
page table for the segment. When a program references a memory location the offset is translated
to a memory address using the page table. A segment can be extended simply by allocating another
only moves individual pages back and forth between main memory and secondary storage, similar
to a paged non-segmented system. Pages of the segment can be located anywhere in main memory
and need not be contiguous. This usually results in a reduced amount of input/output between