
读书笔记
文章平均质量分 64
vsooda
这个作者很懒,什么都没留下…
展开
-
Inside The C++ Object Model
1.关于对象 2. 构造函数语意学 3.data语意学 4.funtion语意学 5. 构造,解构,拷贝语意学 6. 执行期语意学 7. 站在对象模型的尖端。放假前断断续续看了一些。翻得比较快,翻到100多页。今天花了一天时间从头开始看。译者说,第1,3,4章最能带给读者迅速而且最大的帮助,这些都是经常引起程序员困惑的主题。其他章节比较晦涩。(难怪第一次看懂啊一百多页看不下去了,原来第二章原创 2013-02-19 21:36:17 · 743 阅读 · 0 评论 -
九、用内核对象进行同步
信号,互斥量,事件,可等待计时器1. 关键段只能对同一进程的线程进行同步,且无法设置最长等待时间,所以容易死锁。 使用内核对象的唯一缺点是它们的性能。调用本章的函数,线程都需要从用户模式切换到内核模式。 内核对象状态:触发signaled,未触发 nosignaled 为了理解,可以把内核对象当作旗帜,触发,旗帜升起,未触发,旗帜降下。当线程等待的对象处于未原创 2013-05-30 13:52:59 · 880 阅读 · 0 评论 -
十三、windows内存体系结构
1. 内核模式分区。 这一分区是操作系统代码的驻地。与线程调度,内存管理,文件系统支持,网络支持以及设备驱动程序相关的代码都载入该分区。驻留在这一分区的任何东西都为所有进程所用。受保护。如果一个应用程序试图读取或写入位于这一分区中的内存地址,会引发访问违规。2. 当系统创建一个内存并赋予它地址空间时,可用地址空间中的大部分都是闲置的或者尚未分配的。为了使用这部分地址空间,我们必须调用virtu原创 2013-05-30 16:02:45 · 1591 阅读 · 0 评论 -
十四、探索虚拟内存
GetSystemInfoGlobalMemoryStatus 虚拟内存状态非统一内存访问(numa),机器中的cpu既能访问自己节点的内存,也能反问其它结点的内存。工作集; 我们把一个进程的地址空间中被保存在内存里的那些页面称为工作集。 getprocessMemeroinfovirtualQuery太粗略,未完待续。。。原创 2013-05-30 16:06:07 · 807 阅读 · 0 评论 -
linux shell 学习
首先恭喜你,看了这个文章,推荐两本书,linux shell 脚本攻略, shell脚本学习指南 ^_^ 。免积分下载地址为:http://download.youkuaiyun.com/detail/vsooda/5583263shell脚本学习指南大概很多人都看过,但是看完之后对于shell能干什么,可能并不十分清楚,而linux shell 脚本攻略则以一个个任务的形式,用脚本解决。 而且有详细原创 2013-06-15 09:32:44 · 5791 阅读 · 0 评论 -
十、同步设备I/O与异步设备I/O(I/O完成端口)
I/O完成端口是一种有无数用途的绝佳的线程间通信机制1. 打开和关闭设备 设备:能够与之进行通信的任何东西 createFile可以打开很多设备 缓存,标志2. 使用文件设备设置文件指针位置以及如何改变文件大小每个文件内核对象都有自己的文件指针如何追加内容到文件结尾,如何写入。3. 执行同步设备I/OreadFile writeFile原创 2013-05-30 15:25:50 · 1154 阅读 · 0 评论 -
统计学习方法
这两天翻了一下这本书,做个笔记,方便下次x原创 2014-05-06 14:57:43 · 1130 阅读 · 0 评论 -
赤裸裸的统计学
周末看了赤裸裸的统计学,原创 2014-08-11 09:38:07 · 2014 阅读 · 0 评论 -
OpenGL SuperBibe:第六章 非存储着色器
默认对应的是OpenGL SuperBibe 第五版中文版。为什么不是最新版?因为最新版没有中文版。为什么不是英文版,因为我也是新手,很多概念不清楚的情况下去看英文版有点吃力。----------------------------------------------------------------这里非存储的意思是相对于内置着色器而言的。表示在客户端编写着色器代码,再发送到服务端编译原创 2015-01-26 00:02:40 · 1480 阅读 · 0 评论 -
六、 线程
1. 线程 = 线程内核对象 + 线程栈 线程栈用于维护线程执行时所需的所有函数参数和局部变量2. 线程共享同一地址空间,线程共享内核对象句柄,因为句柄表是针对每一个进程的而不是针对线程的。3. 进程所使用的系统资源更多。其原因在于地址空间。(为一个进程创建一个虚拟的地址空间需要大量的系统资源,系统中会发生大量的记录活动,而这需要大量的内存)4. 所有窗口应该由同一个线程创原创 2013-05-30 10:49:15 · 836 阅读 · 0 评论 -
五、 作业
1. 想结束一个进程及其子进程在windows下很难,因为windows没有维护进程间的父子关系2. windows 提供一个作业内核对象,它允许我们将进程组合在一起并创建一个“沙箱”, 来限制进程能做什么3. 只有在作业中的所有进程都已终止运行之后,才会自动销毁4. 作业的cpu时间使用完,会杀死作业的所有进程待细化。。原创 2013-05-30 10:32:47 · 829 阅读 · 0 评论 -
十五、在应用程序中使用虚拟内存
windows提供一下三种机制来对内存进行操控:虚拟内存:最适合用来管理大型对象数组或大型结构数组内存映射文件: 最适合用来管理大型数据流,以及在同一机器上多个进程共享数据(17章)堆:最适合用来管理大量的小型对象windows提供了一些用来操控虚拟内存的函数,我们可以通过这些函数直接预定地址空间区域,给区域调拨(来自页交换文件的 )物理存储器。以及根据自己的需要来设置页面的保护属原创 2013-05-30 16:41:59 · 1051 阅读 · 0 评论 -
编程之美 笔记
之前看过这本书,花了两天大致又看了一遍。做个笔记。扩展题大多没做。很多题目还得自己实现一下。 --------- 2013.2.21游戏之乐 ------------- 游戏的设计是很大的学问,数据结构选择等。1.1 让cpu占用率曲线听你的指挥主要就是几个api1.2 中国象棋将帅问题只用一个字节存储变量! bitset要掌握,写一遍在对照编程珠玑掌握规律原创 2013-02-21 21:37:29 · 1649 阅读 · 0 评论 -
c++编程思想 之 模板
c++编程思想用的是最新的两卷合订版本。所以提到的页码与该书对应。第一卷的16章和第二卷的第五章讲模板。前者比较基础。后者几乎包括了模板的所有东西。本书与c++ primer的不同之处,就是讲解得比较有连续性,都有完整源代码。而c++ primer就像是一个个知识点的罗列(至少关于泛型的这章是这样的,看了有点突然的感觉)。昨天已经看了编程思想相当一部分的内容回去看primer才终于知道讲的原创 2013-02-26 21:48:08 · 677 阅读 · 0 评论 -
c++ 要点 学习阶段性总结
刚开始要学习的c++的时候看了一下primer。写了一些代码。有的东西似是而非的。最近一个月又看了一些相关书籍。1. Inside c++ Object Model 已经写了一篇笔记。在后面看书的过程中,发现书中该书中讨论的很多东西还是很有用的。站在编译器的角度来理解c++的一些规则。对于trival ctor等,bitwise copy 都有涉及。这在每本书书讲到深入的时候都是要涉及原创 2013-03-11 22:00:56 · 1690 阅读 · 0 评论 -
oracle笔记
以下内容是看蔡明老师ppt的一点记录。主要分为三部分,sql, pl/sql, dba。 dba略看。一,二表示第1,2部分。(一),(二)表示里面的第几个ppt一. SQL(一) SQL基础-数据查询(1)1. 对一列设一个新的显示名可以加双引号,也可以不加2. 字符串是大小写敏感的3. 字符串和日期被封装在单引号内4. like 匹配 varchar2,原创 2013-05-20 15:33:28 · 839 阅读 · 0 评论 -
八、 用户模式下的线程同步
1. 在一下两种基本情况下,线程之间需要相互通信: (1). 需要让多个线程同时访问一个共享资源,同时不能破环资源的完整性 (2) . 一个线程需要通知其他线程某些任务已完成。2. 原子访问。 Interlocked 系列函数 Iterlocked在x86的实现方式: Interlocked会在总线上维持一个硬件信号,这个信号会阻止其他cpu访问同一内存地址原创 2013-05-30 11:28:13 · 977 阅读 · 0 评论 -
四、进程
1. 进程 = 一个内核对象 + 一个地址空间2. 进程的实际执行者是线程 cpu调度的也是线程。 进程是最有惰性的,进程从来不执行任何东西,它只是一个线程的容器。3. hInstanceExe的实际值是一个内存基地址, 系统将可执行文件的映像加载到进程地址空间的这个位置。vs的基地址通常是0x00400000。 GetModuleHandle返回可执行文件或者dll文件映像加载到原创 2013-05-30 10:29:31 · 809 阅读 · 0 评论 -
windows via c/c++ 三. 内核对象
1. 内核对象都只是一个内存块,它由操作系统内核分配,并只能由操作系统内核访问,这个内存块是一个数据结构,其成员维护着与对象相关的信息。2. 调用一个创建内核对象的函数后,函数会返回一个句柄,它标识所创建的对象。这些句柄是进程相关的,无法直接在另一个进程通过句柄值调用。3. 内核对象在创建时,通常要指定其安全性,可以据此判定内核对象4. 进程终止时,系统能保证一切都被正确清除。5.原创 2013-05-30 10:12:43 · 1455 阅读 · 0 评论 -
七、线程调度优先级和关联性
1. 线程切换 --> 上下文切换2. 抢占式调度,很多线程无法调度。因为他们都在等待某种事情发生 p1663. 挂起和恢复 suspendThread 挂起 ResumeThread 恢复 对挂起进行计数,例如一个线程被挂起三次,则需要回复三次才能被调度。 在实际开发中,使用suspendThread要小心,若挂起一个正在堆中分配内存的线程,会导致其它线程不能原创 2013-05-30 11:05:28 · 1066 阅读 · 0 评论 -
OpenGL Tutorial
原文见这里第一课:代码配置第二课:简单画图GLuint VertexArrayID; glGenVertexArrays(1, &VertexArrayID);glBindVertexArray(VertexArrayID);创建一个顶点数组对象,并将它设为当前对象。当窗口创建成功后(即OpenGL上下文创建后),马上做这一步工作;必须在任何其他OpenGL调用前完成。原创 2015-02-05 11:09:38 · 2091 阅读 · 0 评论