随笔分类 -  windows

摘要:加强版理发师问题2.理发师问题:一个理发店有一个入口和一个出口。理发店内有一个可站5 位顾客的站席区、4 个单人沙发、3 个理发师及其专用理发工具、一个收银台。新来的顾客坐在沙发上等待;没有空沙发时,可在站席区等待;站席区满时,只能在入口外等待。理发师可从事理发、收银和休息三种活动。理发店的活动满足下列条件:1)休息的理发师是坐地自己专用的理发椅上,不会占用顾客的沙发;2)处理休息状态的理发师可为在沙发上等待时间最长的顾客理发;3)理发时间长短由理发师决定;4)在站席区等待时间最长的顾客可坐到空闲的理发上;5)任何时刻最多只能有一个理发师在收银。试用信号量机制或管程机制实现理发师进程和顾客进程 阅读全文
posted @ 2011-12-30 14:37 爱生活,爱编程 阅读(531) 评论(0) 推荐(0)
摘要:理发师问题: 理发店理有一位理发师、一把理发椅和n把供等候理发的顾客坐的椅子 如果没有顾客,理发师便在理发椅上睡觉 一个顾客到来时,它必须叫醒理发师 如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,就坐下来等待,否则就离开。 解法: 引入3个信号量和一个控制变量: 1)控制变量waiting用来记录等候理发的顾客数,初值均为0; 2)信号量customers用来记录等候理发的顾客数,并用作阻塞理发师进程,初值为0; 3)信号量barbers用来记录正在等候顾客的理发师数,并用作阻塞顾客进程,初值为0; 4)信号量mutex用于互斥,初值为1. var waiting : integer; 阅读全文
posted @ 2011-12-30 14:36 爱生活,爱编程 阅读(1266) 评论(0) 推荐(0)
摘要:内存管理 如果你在写Windows CE 程序中遇到的最重要的问题,那一定是内存问题。一个WinCE 系统可能只有4MB 的RAM,这相对于个人电脑来说是十分少的,因为个人电脑的标准配置已经到了128MB 甚至更多。事实上,运行WinCE 的机器的内存十分缺乏,以至于有时候有必要在写程序的时候为节约内存而牺牲程序的整体性能。 幸运的是,尽管WinCE系统的内存很小,但可用来管理内存的函数却十分完善。WinCE实现了Microsoft Windows XP和Microsoft Windows Me中可用到的几乎全部的Win32内存管理API。WinCE支持虚拟内存(virtual memory) 阅读全文
posted @ 2011-12-27 13:09 爱生活,爱编程 阅读(1175) 评论(0) 推荐(0)
摘要:VirtualProtect改变指定虚拟内存分页的保护属性,函数原型如下:BOOL VirtualProtect( LPVOID lpAddress, SIZE_T dwSize, DWORD flNewProtect, PDWORD lpflOldProtect);参数:lpAddress: 输入参数,虚拟内存基地址。dwSize: 输入参数,内存大小。flNewProtect: 输入参数,需要设置的新的属性,具体为PAGE_READONLY、PAGE_EXECUTE、PAGE_EXECUTE_READ、PAGE_GUARD、PAGE_NOACCESS和PAGE_NOCACHE。lpflOl 阅读全文
posted @ 2011-12-26 22:35 爱生活,爱编程 阅读(1214) 评论(0) 推荐(0)
摘要:RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能RAID 1又称为Mirror或Mirroring,它的宗旨是最大限度的保证用户数据的可用性和可修复性。 RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样, 阅读全文
posted @ 2011-12-20 20:33 爱生活,爱编程 阅读(321) 评论(0) 推荐(0)
摘要:RAID 0RAID 0即Data Stripping(数据分条技术)。整个逻辑盘的数据是被分条(stripped)分布在多个物理磁盘上,可以并行读/写,提供最快的速度,但没有冗余能力。要求至少两个磁盘。我们通过RAID 0可以获得更大的单个逻辑盘的容量,且通过对多个磁盘的同时读取获得更高的存取速度。RAID 0首先考虑的是磁盘的速度和容量,忽略了安全,只要其中一个磁盘出了问题,那么整个阵列的数据都会不保了。问:RAID0至少几块盘?答:RAID0最少要两块硬盘才能实现。RAID 1RAID 1,又称镜像方式,也就是数据的冗余。在整个镜像过程中,只有一半的磁盘容量是有效的(另一半磁盘容量用来存 阅读全文
posted @ 2011-12-20 20:31 爱生活,爱编程 阅读(734) 评论(0) 推荐(0)