摘要:从 ARM VIVT 看 cache请访问google 文档. http://docs.google.com/Doc?id=dcbsxfpf_282csrs2pfndo_wp_page 的VIVT 考虑在下面的函数中(write protect detected), 为什么需要 flush_cache_page,和 update_mmu_cache? 原因在于在vivt 的情况下, 如果a 进程写入cache line 1, b进程试图读取自己的 cache line 2, 并且b进程是cow(一种情况), 那么在copy这个页面的时候就需要flush 用户a存在于cache line1 内的
阅读全文
10 2012 档案
摘要:可重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。简介 可重入函数也可以这样理解,重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着它除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是purecode(纯代码)可重入,可以允许有该函数的多个副本在运行,由于它们使用的是分离的栈.
阅读全文
摘要:转自:http://hi.baidu.com/yangyingchao/blog/item/af66b9d4e522940ca18bb705.html1 相关数据结构struct thread_info { struct task_struct *task; /* main task structure */ struct exec_domain *exec_domain; /* execution domain */ __u32 flags; /* low level flags */ __u32 s...
阅读全文