页的lock

文件为什么要加锁?

页的操作为什么要加锁?

http://linux.chinaunix.net/techdoc/system/2007/06/11/959844.shtml

上面一个页面有简单介绍什么时候要加锁。

其实内核代码中也有写:

如果

444 /*
445 * lock_page may only be called if we have the page‘s inode pinned.
446 */
447 static inline void lock_page(struct page *page)
448 {
449 might_sleep();
450 if (!trylock_page(page))
451 __lock_page(page);
452 }
453

时间: 2025-01-15 19:15:09

页的lock的相关文章

《Effective C++》:条款28-条款29

条款28避免返回handles指向对象内部成分 条款29为异常安全而努力是值得的 条款28:避免返回handles指向对象内部成分 这里的handles指的是引用.指针.迭代器等可以修改对象的传递方法. 假设现在编写一个表示矩形的class,每个矩形有其左上角和右下角表示.先定义平面内的点 class Point{ public: Point(int x, int y); -- void setX(int newVal); void setY(int newVal); -- }; 再定义矩形对象

(转)解释一下SQLSERVER事务日志记录

本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/07/16/3194220.html 解释一下SQLSERVER事务日志记录 大家知道在完整恢复模式下,SQLSERVER会记录每个事务所做的操作,这些记录会存储在事务日志里,有些软件会利用事务日志来读取 操作记录恢复数据,例如:log explorer 那么事务日志记录怎麽查看,里面都记录了些什么? 打开可以利用下面SQL语句来查看所在数据库的事务日志记录 1 USE [GPOSDB] -

sqlserver log

DBCC LOGINFODBCC log('QSSys', TYPE=2)goselect * from sys.fn_dblog(null,null)select [Dirty Pages],[Minimum LSN],[Checkpoint End],[CHKPT Begin DB Version],[Checkpoint Begin],operation,CONTEXT,[Log Record Length],AllocUnitName from fn_dblog(null,null)SE

SQLServer存储引擎——内存

SQLServer存储引擎之内存篇: (1)SQL SERVER 内存结构       SQL SERVER 内存结构简图 SQL SERVER 内存空间主要可分为两部分: (1.1)可执行代码(Executable Code) 主要包括SQL SERVER 实例中的一些EXE和DLL文件 (0)SQL SERVER 引擎(SQL SERVER ENGINE),SQL SERVER 数据库的主程序: (1)服务端网络库(SERVER NET-LIBRARY),用于与客户端网络库通讯,将TDS包交

3 .6 .4 优化SQL Server内存酉己置

3 .6 .4 优化SQL Server内存酉己置1 .最小和最大服务器内存这两个配置用于控制SQL Server可用内存的大小.对于最小内存,在 SQL Server服务 启动时,不会马上达到这个设置值,而是仅使用最小的需求内存,然后按需增长,一旦增 长到最小内存设置值时,SQL Server将不会再释放内存.最大内存用于设置内存使用的上 限,可以使用SSMS或者sp_COnfigU re来配置.需要提醒的是,这里的"最大内存"实际 上指的是Buffer Pool,在 64位系统中,

XtraGrid滚轮翻页

滚轮翻页与传动的翻页更为方便,经过本人一番探讨与琢磨终于在XtraGrid的GridView中实现了鼠标滚轮翻页. 我新建了一个组件继承原本的GridControl,在组件中添加了一个ImageList,专门存放一些资源图片.用于实现动态图的效果. 添加一个自定义委托的参数与枚举,委托参数用于传递分页的信息.     public class PagingEventArgs : EventArgs     {        public int PageSize { get; set; }   

SQL Server中如何定位Row Lock锁定哪一行数据

在SQL Server中有时候会使用提示(Hint)强制SQL使用行锁(Row Lock),前两天有个同事咨询了一个问题,如何定位Row Lock具体锁定了哪一行.其实这个问题只适合研究一下,实际意义并不大,因为找到.定位被锁定的行的代价开销较大,而意义却不怎么大,而且使用场景也很少.那么下面我们来探讨.研究一下这个问题吧: 在会话窗口(会话ID=65)下执行下面SQL语句,模拟SQL Server使用行锁锁定某一行记录: USE AdventureWorks2012; GO   SELECT 

Android学习笔记(二四): 多页显示-SlidingDrawer的使用

这个图可以在Android的doc中,误操作,将原来图片删去,所以上面只是范例,没有透明效果 SlideDrawer是多个(两个页面)的一种显示方式.如上左图所示,普通的,我们显示Hello的Label,当我们按下面的SlidingDrawer的ImageView,即右图所示图标时,可以将SlideDrawer的内容显示上去,如中图.SlidingDrawer可以在Open和Close两个状态之间切换.Open时覆盖,不是所有的Layout都能支持这种叠加覆盖,作为SlidingDrawer的c

Mysql表锁、行锁、页锁

参考 http://www.jb51.net/article/50047.htm <MySQL行级锁.表级锁.页级锁详细介绍> 页级:引擎 BDB.表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁 (更详细的行锁.表锁,可以参考:http://www.cnblogs.com/charlesblc/p/5935326.html) 表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作.如果你是写锁,则其它进程则读也不允许