ksm
2019-06-09 00:03:09 weixin_43596048 阅读数 145

对1取模,所有的数都是0

#include<cstdio>
#include<cstring>
using namespace std;
long long ksm(long long  a,long long b,int mod)
{
 long long ans=1;
 if(mod==1) return 0;
 while(b)
 {
  if(b&1) ans=(ans*a)%mod;
  a=(a*a)%mod;
  b>>=1;
 }
 return ans%mod;
}
int main()
{
 int z,m,h;
 long long a,b;
 long long sum;
 scanf("%d",&z);
 for(int i=1;i<=z;i++)
 {
  scanf("%d%d",&m,&h);
  sum=0;
  for(int j=1;j<=h;j++)
  {
   scanf("%lld%lld",&a,&b);
   sum=(sum+ksm(a,b,m))%m;
  }
  printf("%lld\n",sum%m);
 }
 return 0;
} 
2016-07-10 15:10:52 whutxxz0208 阅读数 4005

1. Ksm设置

koreader additions选择start koreader nickel switch,即可在koreaderkobo原系统之间切换(koreader中点击房子即回到kobo,在kobo中点击switchtokoreader图片即打开koreader)

一、安装ksm

1. tshering--mobileread,ksm07

(http://www.mobileread.com/forums/showthread.php?t=255978)

① First time installation (consists of 2 steps)

Download the archive KBStartMenu_07inclUp4.zip to your pc and extract the content.

Step 1

    connect the Kobo to the PC

    copy the folder kbmenupngs to the root of the device (e.g. K:\)

    eject safely and disconnect

    check that the TWO images (exit_nickel.png, switchtokoreader.png) are listed in the library and their thumbnails are displayed there, and as tiles on the home screen. Only then proceed to step two.

Step 2

    connect the Kobo device to the PC

    copy KoboRoot.tgz to the folder .kobo of the device

    eject safely and disconnect

    wait until the update is finished (do not interrupt it, even if it takes some time)

2. tshering--mobileread,ksm08

(http://www.mobileread.com/forums/showthread.php?t=266821)

First time installation (consists of 2 steps)

Preparation: Make sure that your reader is fully charged and generally in a good operating state (for instance, there must not be any problems with a corrupted database etc.) Switch off Wifi. You will need ca. 22 Kb of free disk space (apart from 7 Mb of KoboRoot.tgz, which will be deleted after installation) on the user partition. Check that enough free disk space is available on the reader. Download the archive KBStartMenu_08.zip to your pc and extract the content.

Step 1

connect the Kobo to the PC

copy the folder kbmenupngs to the root of the device (e.g. K:\)

eject safely and disconnect

check that all images (exit_nickel.png, switchtokoreader.png, etc.) are listed in the library and their thumbnails are displayed there, and at least once as tiles on the home screen. Only then proceed to step two.

Step 2

connect the Kobo device to the PC

copy KoboRoot.tgz to the folder .kobo of the device

eject safely and disconnect

wait until the update is finished (do not interrupt it, even if it takes some time)

2017-06-08 22:20:50 zsw_2015 阅读数 1305

一、KSM(Kernel SamePage Merging)
1、KSM简介
KSM允许内核在多个进程(包括虚拟机)之间共享完全相同的内存页,KSM让内核扫描检查正在运行中的程序并且比较他们的内存,若发现相同的内存页,就将相同的内存页合并成单一的内存页,标识为“写时复制”。
如果有进程试图去修改被标识为“写时复制”的合并的内存页时,就为该进程复制出一个新的内存页供其使用。

2、KSM提高内存的速度和使用效率
(1)相同的内存页被合并,减少了虚拟机的内存使用量,内存中的内容更容易被保存到CPU的缓存中。
(2)通过减少每个虚拟机实际占用的内存数量,让多个虚拟机占用的总内存之和大于物理内存,实现“内存过载”。

3、KSM劣势
(1)消耗一定的资源用于内存扫描,加重CPU的消耗。
(2)虚拟机由于修改被KSM合并的内存页,从而这些被修改的内存重新被复制出来占用内存空间,造成内存不足,从而使用swap分区。因此内存不足时,频繁使用swap交互,虚拟机性能下降。

二、KSM服务
KSM主要有两个服务:ksm和ksmtuned。

1、配置和监控ksm
ksm的配置文件:/sys/kernel/mm/ksm/*
1
full_scans:已经对所有可合并的内存区域扫描过的次数。
pages_shared:正在使用中的共享内存页数量
pages_sharing:有多少内存页正在使用被合并的共享页,不包括合并内存页本身。这是实际节省的内存页数量。
pages_to_scan:在ksmd进程休眠之前会去扫描的内存页的数量。
pages_unshared:无重复内容而不可以被合并的内存页数量。
pages_volatile:因为内容很容易变化而不被合并的内存页数量。
run:控制ksmd是否运行。0:停止运行但是保存合并的内存页;1:马上运行ksmd;2:停止运行,并且分立已经合并的所有内存页。
sleep_millisecs:ksmd进程的休眠时间。
其中pages_to_scan、sleep_millisecs、run三个文件是可读写的,其他文件是只读的。

2、配置和使用ksmtuned
配置文件:/etc/ksmtuned.conf
ksmtuned会一直保持循环执行,以调节ksm服务运行。

2012-04-12 01:11:21 szcwok 阅读数 5451

提示:破解前一定要把各种安全,杀毒软件关闭

 

1、下载 

Microsoft Office 2010 Professional PlusVL 2010(下载的 ISO光盘镜像文件带有内置Key的那种)

Mini KMS Activator V1.2 Office2010 VL ENG.exe

 

2、安装好Microsoft Office 2010 Professional PlusVL 2010之后(由于 Key 已经被使用多次所以不会激活

 

3、运行Mini KMS Activator V1.2 Office2010 VL ENG.exe

 

4先单击 Install / Uninstall KMService

 

出现CMD界面按照提示操作

 

5、然后单击 Activation Office 2010 VL

 

出现CMD界面按照提示操作

(如何因为各种原因没有成功没关系继续下一步)

 

6、点击 Key Manager Office 2010 VL

 

出现CMD界面选择 A 确定 按照提示操作

 

7、如果 5步不成功 

这里再次转到第5

 

8OK!祝贺你成功了

 

 

2019-01-10 14:40:28 rikeyone 阅读数 175

KSM (Kernel Samepage Merging)

内核合并页,目的是为了把内容完全相同的页面合并,从而释放内存供其他应用使用。Linux对虚拟机的支持,增加了相同页面的数量,所以KSM存在的合理性也就越来越大了,KSM页面在struct page中的page->mapping中标识,并且KSM页面一定也是一个匿名页。

#define PAGE_MAPPING_ANON    1
#define PAGE_MAPPING_KSM    2
#define PAGE_MAPPING_FLAGS    (PAGE_MAPPING_ANON | PAGE_MAPPING_KSM)

内核提供了如下几个辅助函数来判断page类型:

static inline int PageAnon(struct page *page)
{
    return ((unsigned long)page->mapping & PAGE_MAPPING_ANON) != 0;
}

static inline int PageKsm(struct page *page)
{
    return ((unsigned long)page->mapping & PAGE_MAPPING_FLAGS) ==
                (PAGE_MAPPING_ANON | PAGE_MAPPING_KSM);
}

由上面的辅助函数来说,KSM page必须是一个ANON类型,也就是必须是一个匿名页面。我们知道,通过反向映射,内核可以知道每个物理页page所对应的所有内存页表项,KSM页面必须也要是一个匿名页面。

实现方法

内核中实现了ksmd线程用来处理ksm页面,该线程会定期执行页面扫描,识别并且合并相同的页面,合并后的页面是被多个进程共享的,并且利用内核的写时复制(COW)机制,当某个进程要修改该页面时,再拷贝一份出来进行修改。KSM可以扫描系统中的匿名页面,并且判断哪些页面内容是相同的,然后把他们合并,并释放一份内存,但这将浪费很多CPU 和内存资源,因此内核实现了一个系统调用madvise,这样KSM的实现就需要应用层去设置了,应用程序利用此系统调用可以配置该进程的可合并区域,这样内核会记录此区域,后面在扫描时就只取这些“可合并”区域的页面进行操作了。

KSM使用两个树来管理合并页面,分别是stable tree和unstable tree。当处理一个“待合并”页面时,会先从stable tree中扫描,如果发现存在有相同的页面,那么标记该页的ref count,那么就把待合并页面释放做他用;如果stable tree中扫描发现不存在与之相同的页面,则转向unstable tree去搜索。在unstable tree搜索开始前,先判断下当前页面是否有修改,如果有修改则放弃继续搜索,如果没有修改,则真正开机搜索。当搜索unstable tree中发现有相同页,那么把该页移动到stable页,并且释放其中一个副本页,如果unstable tree中不存在相同页,则把该页放入unstable tree中。

kernel中ksm特性

阅读数 261

没有更多推荐了,返回首页