- 博客(8)
- 收藏
- 关注
转载 Unix 进程
程序不可直接访问内核,所有的通信都是通过系统调用完成的。系统调用为内核和用户空间搭建了桥梁。它规定了程序与计算机硬件之间所允许发生的一切交互。 进程皆有标识: 在系统中运行的所有进程都有一个唯一的进程标识符,成为pid。pid并不传达关于进程本身的任何信息,它仅仅是一...
2014-06-17 21:47:00 129
转载 Linux进程虚拟地址空间
虚拟存储器是一个抽象概念,它为每个进程提供一个假象,即每个进程都在独占地使用内存。每个进程看到的是一致的存储器,称为虚拟地址空间。在Linux中,地址空间最上面的区域是为操作系统中的代码和数据保留的,这对所有进程来说都是一样的。地址空间的底部区域存放用户进程定义的代码和数据。图中的地...
2014-06-17 21:46:00 107
转载 I/O复用:select和poll函数
有些系统提供了更为先进的让进程在一串事件上等待的机制。轮询设备就是这样的机制之一。 I/O复用典型使用在下列网络应用场合。 (1)当客户处理多个描述符(通常是交互式输入和网络套接字)时,必须使用I/O复用。 (2)一个客户同时处理多个套接字是可能的,不过比较少见。...
2014-06-17 21:46:00 82
转载 内存池(Memory Pool)
在C和C++里,经常使用malloc,free,new,delete分配或释放内存。这样做的缺点是: 由于所申请的内存块大小不一定,当频繁使用这些函数或操作符时会造成内存碎片并进而降低性能。 内存池的做法是: 在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备...
2014-06-17 21:43:00 179
转载 Linux 设备文件
两者主要区别是:当字符设备发出读/写请求的时候,实际的硬件I/O操作紧接着发生;块设备则不同,它利用一块系统内存作为缓冲区,当用户进程对设备请求能满足用户的要求,就返回请求的数据,如果不能,就调用请求函数来进行I/O操作。块设备主要是针对磁盘等较慢的设备设计的,以免耗费过多的CPU时间来等待...
2014-06-17 21:42:00 119
转载 Reactor模式和Proactor模式
Proactor模式要求将所有I/O操作都交给主线程和内核来处理,工作线程仅仅负责业务逻辑。 同步I/O模拟Proactor模式的原理是:主线程执行数据读写操作,读写完成后,主线程向工作线程通知这一“完成时间”。那么从工作线程的角度来看,它们就直接获得了数据读写的结果,接...
2014-06-17 21:31:00 74
转载 操作系统的分页和分段学习笔记
通过描述符表和描述符,分段管理机制实现虚拟地址空间到线性地址空间的映射,实现把二维的虚拟地址转换为一维的线性地址。这一步总是存在的。 分页管理机制把线性地址空间和物理地址空间分别划分为大小相同的块,这样的块称之为页。通过在线性地址空间的页与物理地址空间的页之间建立...
2014-06-17 21:30:00 129
转载 归并排序的优化
一、对归并算法的优化: 假设有a和b两个有序序列: a1,a2,a3,……,an和 b1,b2,b3,……,bm 1、若an <= b1,直接返回。 代价:一次比较时间。 分析:an <= b1 在归并前期发生...
2012-12-18 17:04:00 139
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人