摘要: 在Linux系统中,read和write传送的字节比应用程序要求的要少。这些不足值不表示有错误,出现这种问题的原因有: 读时遇到了EOF。假设我们准备读取一个文件,该文件从当前位置开始只有20个字节,而我们以50个字节的片进行读取。这样一来,下一个read返回的不足值为20,此后的read将通过返回不足值0来发出EOF信号。 从终端读文本行。如果打开文件是... 阅读全文
posted @ 2012-07-22 20:44 鼻子很帅的猪 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 归并排序的概念和原理我就不介绍了,网上的相关资料一箩筐。在这里,我只想记录一个思路,归并的排序分为三步走:1 分割,2 递归,3 合并。下面我将分别针对数组和链表两种情况的归并排序,写一下程序和思路。关于链表的归并排序,这个题目我在网易有道的面试中经历过。当时蒙住了,因为绝大多数的数据结构的书,以及算法的书介绍归并排序的时候往往都是以数组为例的。 数组归并排序代码: /*... 阅读全文
posted @ 2012-07-22 20:42 鼻子很帅的猪 阅读(486) 评论(0) 推荐(0) 编辑
摘要: Linux虚拟存储系统 Linux为每一个进程单独维护了一个单独的虚拟地址空间,形式如图所示。 其中内核虚拟存储器包含内核中的代码和数据结构。内核虚拟存储器中的某些区域被映射到所有进程共享的物理页面。例如每个进程共享内核的代码和全局数据结构。 内核虚拟存储器的其他区域包含每个进程都不相同的数据,比如页表,内核在进程上下文中执行代码时用到的栈。 Linux将... 阅读全文
posted @ 2012-07-18 23:44 鼻子很帅的猪 阅读(1818) 评论(0) 推荐(0) 编辑
摘要: MySQL性能优化 性能优化是通过某些有效的方法来提高MySQL的运行速度,减少占用的磁盘空间。性能优化包含很多方面,例如优化查询速度,优化更新速度和优化MySQL服务器等。本文介绍方法的主要有:优化查询优化数据库结构优化MySQL服务器 数据库管理人员可以使用SHOW STATUS语句来查询MySQL数据库的性能。语法:SHOW STATUE LIKE ‘value’;其中value参数是常用的几个统计参数。Connections:连接MySQL服务器的次数Uptime:MySQL服务器的上线时间;Slow_queries:慢查询的次数;Com_select:查询操做的次数;Com_in.. 阅读全文
posted @ 2012-07-17 21:43 鼻子很帅的猪 阅读(11558) 评论(0) 推荐(2) 编辑
摘要: 数据库存储引擎MySQL中提到了存储引擎这个概念。简而言之,存储引擎就是表的类型。数据库的存储引擎决定了表在计算机中的存储方式。SHOW ENGINES语句可以查看MySQL数据库支持的存储引擎。InnoDB存储引擎 InnoDB存储引擎给MySQL的表提供了事物,回滚,崩溃修复和多版本并发控制的事物安全。InnoDB是MySQL上第一个提供了外键约束的表引擎。而且InnoDB对事务处理的能力,也是其他存储引擎无法比拟的。 InnoDB存储引擎支持外键FOREIGN KEY。外键所在的表为子表,外键所依赖的表为父表。父表中被子表外键关联的字段必须为主键。当删除,更新父表的某条信息时,子表也必须 阅读全文
posted @ 2012-07-17 21:39 鼻子很帅的猪 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 信号 信号其实是一种高级的软件形式的异常。我们已经知道了硬件和软件是如何合作以提供基本的低层异常机制的,我们也知道了操作系统是如何利用异常来支持一种称为进程上下文切换的异常控制流形式。在本篇文章里,继续研究一种更高层次的软件形式的异常,称为unix信号,它允许进程中断其他进程。 信号就是一条小消息,它通知进程系统中发生了一种类型的事件。Linux系统上支持30多种信号,我简单介... 阅读全文
posted @ 2012-07-15 14:58 鼻子很帅的猪 阅读(662) 评论(0) 推荐(0) 编辑
摘要: 从程序员角度来说,我们可以认为进程总是处于以下3个状态之一: 阅读全文
posted @ 2012-07-13 09:05 鼻子很帅的猪 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 链接是将各种代码和数据部分收集起来并且组合成一个单一文件的过程,这个文件可以被加载到存储器并执行。 整个编译的过程是:预处理,编译,汇编,链接。链接后生成可执行的目标文件,汇编后生成的目标文件被链接器使用,结合成可执行的目标文件。 目标文件有三种形式可重定位的目标文件:包含二进制代码和数据,其形式可以再编译时与其他可重定位的目标文件合并起来,创建一个可执行目标文件。通常对一个程序模块进行汇编以后,生成的就是可重定位的目标文件。可执行目标文件:包含二进制代码和数据,可以直接拷贝到存储器并执行。共享目标文件:可以再加载或者运行时被动态的加载到存储器并链接。总结一下其实就是编译器和汇编器一起生成可. 阅读全文
posted @ 2012-07-13 09:05 鼻子很帅的猪 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 1 异常 异常是异常控制流的一种形式,它一部分是由硬件实现的,一部分是由操作系统实现的。异常就是控制流中的突变,用来响应处理器状态中的某些变化。在处理器中,状态被编码为不同的位和信号。状态变化称为事件event,事件可能与当前指令的执行直接相关。比如发生虚拟存储器的换页,算数溢出,或者一条指令试图除以零。另一方面,事件也可能和当前指令的执行没有关系。比如一个系统定时器产生信号或者一... 阅读全文
posted @ 2012-07-13 08:45 鼻子很帅的猪 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 标准I/O库提供buffer机制的原因就是为了减少调用底层系统调用I/O的次数。 bufferedI/O库函数(fread,fwrite等,用户空 间)<----call--->unbufferedI/O系统调用(read,write等,内核空 间)<------->读写磁盘 bufferedI/O库函数都是调用相关的unbufferedI/O系统调用来实现的,他们并不直接读写磁盘. 它的基本方法是,在用户进程空间维护一块缓冲区,第一次读(库函数)的时候用read(系统调用)多从内核读出一些数据,下次在要读(库函数)数据的时候,先从该缓冲区读,而不用进行再次read(系 阅读全文
posted @ 2012-07-03 19:14 鼻子很帅的猪 阅读(825) 评论(0) 推荐(0) 编辑