Information Technology Reference
In-Depth Information
page replacement algorithmS
64KB, 512KB, 4MB, 32MB, 256MB. UltraS-
PARC T1 cpu supports also 4 page sizes but
the sizes are slightly different than the original
one. The new sizes are: 8KB, 64KB, 4MB and
256MB.
UltraSPARC MMU which is called sfmmu
(spit-fire mmu) supports two mmu units: I-MMU
for instructions and D-MMU for data, whereas
UltraSPARC I and II have only one I-MMU
TLB and one D-MMU TLB that supports the 4
page sizes.
UltraSPARC III TLB support for MPSS is a
little bit restricted; even though the number of
I-MMU and D-MMU TLB entries has been in-
creased, there is a constraint that the bigger TLB
may only use one page size. The next generation
- UltraSPARC IV+ TLB support is better because
D-TLB and I-TLB have been increased and also
it allows more than one page size in the D-TLB.
UltraSPARC T1 TLB also supports all page sizes
simultaneously.
Solaris 2.6 through Solaris 8 have enabled
Super-Paging via a mechanism called Intimate
Shared Memory (ISM) that allowed a sharing
of a System V IPC “intimate” shared memory in
page sizes of 4MB if possible. Solaris 8 update
3 introduced Dynamic ISM allowing a dynamic
resizing of ISM areas.
The new Solaris 9 also supports MPSS without
the use of ISM (Weinand, 2006), but this support
requires the application or an administrator to
request the certain page size that he thinks useful
for this application. MPSS was also expanded
to be used in vnodes (VMPSS), means libraries
and text code can be also stored in Super-Pages.
The latest work in Solaris selects page sizes for
stack, heap and memory mapped segments, text
and data based on a simple set of policies. This
is known as MPSS out of the box (MPSS-OOB)
(Lowe, 2005).
Over the years many replacement algorithms have
been published e.g. (O'Neil et al., 1993), (Johnson
and Shasha, 1994), (Lee et al., 2001), (Kim et al.,
2000), (Jiang and Zhang, 2002), (Smaragdakis et
al., 2003), (Zhou et al., 2004); however over the
last decades, CLOCK (Corbato, 1968) has been
dominated page replacement algorithms.
the “clock” page
replacement algorithm
The CLOCK algorithm looks at the memory pages
as a circular linked list and moves around the pages
like a clock hand. Each page is associated with a
reference bit. This bit is set to 1 when the page is
referenced. When a page fault occurs, the page
which is pointed to by the hand is checked. If its
reference bit is unset it will be swap out; otherwise
its reference bit is unset, and the hand moves to
the subsequent page. Research and experiences
have shown that CLOCK is a close approximation
of LRU, thus suffers from the same problems of
LRU. Nevertheless, CLOCK is still dominating
the vast majority of OS including UNIX, Linux
and Windows (Friedman, 1999).
Some variant of CLOCK have been suggested
over the years. GCLOCK (Nicola et al., 1992) was
published at 1992 as an expansion to CLOCK.
This algorithm contains a counter to each page
(instead of a reference bit), which is increased
in each reference. The clock's hand checks the
pages and decrements their counter value, until
it finds a page with a zero value. This page is
swapped out. Unlike CLOCK, GCLOCK is taking
into account the frequency, thus achieves better
performance.
CLOCK-Pro (Jiang et al., 2005) counts for
each page the number of other distinct pages ac-
cesses since its last access. This number is called
“reuse distance” and a page with a larger “reuse
distance” will be considered as a colder page and
Search WWH ::




Custom Search