Adaptation/GUID-ACB79CEF-CA4D-5C96-AFCD-6AD7C7C26C53.dita
changeset 15 307f4279f433
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Adaptation/GUID-ACB79CEF-CA4D-5C96-AFCD-6AD7C7C26C53.dita	Fri Oct 15 14:32:18 2010 +0100
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
+<!-- This component and the accompanying materials are made available under the terms of the License 
+"Eclipse Public License v1.0" which accompanies this distribution, 
+and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
+<!-- Initial Contributors:
+    Nokia Corporation - initial contribution.
+Contributors: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-ACB79CEF-CA4D-5C96-AFCD-6AD7C7C26C53" xml:lang="en"><title>Thrashing
+Guide</title><shortdesc>Describes thrashing in terms of demand paging and how to prevent
+it. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-378E14C9-A83A-56BD-BE7D-7DF565E58A46"><title>Introduction</title> <p>Thrashing
+is an undesirable state where most of the processes in the system are in the
+process of paging-in memory and none of the threads are doing useful work.
+This results in unacceptable system performance. </p> </section>
+<section id="GUID-E39982CD-62E4-4EA0-92A6-4BE9E7F9B00E"><title>Background information</title><p>These topics are useful background
+information on thrashing:</p><ul>
+<li><p>Paging </p></li>
+<li><p>Virtual memory </p></li>
+</ul></section>
+<section id="GUID-A2C57999-E701-40FF-872D-396AFD6FA082"><title>Thrashing features</title><p>The signs of thrashing in demand
+paging are: </p><ul>
+<li><p>The system performance rapidly becomes unacceptable, since no threads
+are doing useful work. The device will become unresponsive or appear to 'hang'. </p></li>
+<li><p>When observing paging activity logs it's seen that the same set of
+pages are paged in and out many times over the course of a use case. </p></li>
+<li><p>When observing paging activity logs there are long periods where many
+threads are waiting for pages to be paged in. </p></li>
+<li><p>There are large periods of null thread activity. </p></li>
+</ul></section>
+<section id="GUID-D8D94E88-7B6C-4408-B78D-162201224DB6"><title>Thrashing prevention</title><p>The following is a means of
+preventing thrashing from occurring:  </p><ul>
+<li><p>Increase the size of the paging cache. This reduces page faults and
+hence the need to page-in memory.  </p></li>
+<li><p>Mark the code or data involved as unpaged, for example if a 20MB buffer
+is actively used through a use-case and discarded afterwards there is little
+use in making it paged as it will need to always be in the page cache.  </p></li>
+<li><p>Reduce the working set size so that it fits into the paging cache,
+for example instead of having four activities running concurrently, serialize
+them.  </p></li>
+</ul></section>
+</conbody><related-links>
+<link href="GUID-44540C74-CD73-5D8E-A9E0-F90F46B4E7B1.dita"><linktext>Preventing
+And Recovering From Thrashing Guide</linktext></link>
+</related-links></concept>
\ No newline at end of file