易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux使用的缓存


6.7.1 Linux使用的缓存
不管在硬件设计还是软件设计中,高速缓存是获得高性能的常用手段。Linux 使用了多种和内存管理相关的高速缓存。
1. 缓冲区高速缓存:
缓冲区高速缓存中包含了由块设备使用的数据缓冲区。这些缓冲区中包含了从设备中读取的数据块或写入设备的数据块。缓冲区高速缓存由设备标识号和块标号索引,因此可以快速找出数据块。如果数据能够在缓冲区高速缓存中找到,则系统就没有必要在物理块设备上进行实际的读操作。
内核为每个缓冲区维护很多信息以有助于缓和写操作,这些信息包括一个“脏(dirty)”位,表示内存中的缓冲区已被修改,必须写到磁盘;还包括一个时间标志,表示缓冲区被刷新到磁盘之前已经在内存中停留了多长时间。因为缓冲区的有关信息被保存在缓冲区首部,所以,这些数据结构连同用户数据本身的缓冲区都需要维护。
缓冲区高速缓存的大小可以变化。当需要新缓冲区而现在又没有可用的缓冲区时,就按需分配页面。当空闲内存变得不足时,例如上一节看到的情况,就释放缓冲区并反复使用相应的页面。
2. 页面高速缓存
页面高速缓存是页面I/O操作访问数据所使用的磁盘高速缓存。我们在文件系统会看到,read( )、write( )和mmap( )系统调用对常规文件的访问都是通过页面高速缓存来完成的。因为页面I/O操作要传输整页数据,因此高速缓存中所保留的信息单元是一个整页面。一个页面包含的数据未必是物理上相邻的磁盘块,因此就不能使用设备号和块号来标识页面。相反,页面高速缓存中一个页面的标识是通过文件的索引节点和文件中的偏移量达到的。
与页面高速缓存有关的操作主要有三种:当访问的文件部分不在高速缓存中时增加一页面,当高速缓存变得太大时删除一页面,以及查找一个给定文件偏移量所在的页面。
 
3.交换高速缓存
只有修改后的(脏)页面才保存在交换文件中。修改后的页面写入交换文件后,如果该页面再次被交换但未被修改时,就没有必要写入交换文件,相反,只需丢弃该页面。交换高速缓存实际包含了一个页面表项链表,系统的每个物理页面对应一个页面表项。对交换出的页面,该页面表项包含保存该页面的交换文件信息,以及该页面在交换文件中的位置信息。如果某个交换页面表项非零,则表明保存在交换文件中的对应物理页面没有被修改。如果这一页面在后续的操作中被修改,则处于交换缓存中的页面表项被清零。 Linux 需要从物理内存中交换出某个页面时,它首先分析交换缓存中的信息,如


相关文档:

linux api笔记(6):线程(四) 线程私有数据

本文将描述线程的一个比较重要的一方面:线程私有数据,如下代码:
#include <pthread.h>
#include <unistd.h>
#include <stdio.h>
pthread_key_t kKey = 0;
void * ThreadProc(void* arg)
{
char* a = (char*)(arg);
sleep(2);
pthread_setspecific(kKey, a);
......

windows上的linux直接删除后出现grub的启动画面

在windows上尝试centos后我直接给格式化掉centos,启动系统出现grub的启动画面,有2个解决方案
1:在dos环境下用fdisk /mbr 级可以修复mbr即可
2:如果没dos盘则用下面命令:
  1)rootnoverify (hd0,0)  //回车,记得rootnoverify后面有个空格
  2)chainloader (hd0,0)+1 // 记得还是有空格
  3 ......

linux socket小例

/*
socket select模型,服务端
绝大多数注释自己写的,参考man
*/
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/un.h>
#include &l ......

linux 系统密码忘记后的 5 种方法【转】

如果你既没做系统启动软盘,同时多系统的引导LILO 和GRUB 又被删除,那么只能使用Linux 系统安装盘来恢复root的密码,步骤如下。 一. lilo引导在出现 lilo: 提示时键入 linux single Boot: linux single 回车可直接进入linux单用户模式 vi /etc/passwd 删除root项中的密码 (这里也可以直接使用passwd命令重新设置root的密码 ......

Linux游说者的光荣使命






<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
    我们说句大白话,所谓“游说者”(
lobbist

lobber
)就是古代的“說客”,只是人们平日不好意思这么说而已。当今,甘愿做一名
Linux
游说者是很光荣的事情。此话当真? ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号