摘要: 你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。元凶:SIGHUP 信号让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。在Linux/Unix中,有这样几个概念:进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID。会话期(session): 阅读全文
posted @ 2011-10-29 22:49 Charliee 阅读(5306) 评论(1) 推荐(0) 编辑
摘要: 转自:http://lionwq.spaces.eepw.com.cn/articles/article/item/18555标题:浅析malloc()的几种实现方式2008-03-07 12:46:42上海交通大学计算机科学与工程系 孙高鑫malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。 动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统. 阅读全文
posted @ 2011-10-29 17:31 Charliee 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 1.最佳淘汰算法(OPT)2.先进先出的算法(FIFO)3.最近最久未使用算法(LRU)#include<stdio.h>#include<stdlib.h>#include<string.h>intmemory[4];//内存,存放页面位置intseq[205];//指令的执行顺序intseq_page[205];//用于OPT算法,存放各条指令所在的页面位置intP[4];//用于FIFO算法,存储装入主存中的页面的页号intk=0;//用于FIFO算法,指示当前调入新页时应淘汰页在页号表中的位置intQ[4];//用于LRU算法,页面淘汰队列intta 阅读全文
posted @ 2011-10-29 16:55 Charliee 阅读(810) 评论(0) 推荐(0) 编辑
摘要: 1 先入先出法(FIFO) 最简单的页面置换算法是先入先出(FIFO)法。这种算法的实质是,总是选择在主存中停留时间最长(即最老)的一页置换,即先进入内存的页,先退出内存。理由是:最早调入内存的页,其不再被使用的可能性比刚调入内存的可能性大。建立一个FIFO队列,收容所有在内存中的页。被置换页面总是在队列头上进行。当一个页面被放入内存时,就把它插在队尾上。 这种算法只是在按线性顺序访问地址空间时才是理想的,否则效率不高。因为那些常被访问的页,往往在主存中也停留得最久,结果它们因变“老”而不得不被置换出去。 FIFO的另一个缺点是,它有一种异常现象,即在增加存储块的情况下,反而使缺页中断率... 阅读全文
posted @ 2011-10-29 16:54 Charliee 阅读(1239) 评论(0) 推荐(0) 编辑
摘要: 1. 函数原型(c++ reference) void * memcpy ( void * destination, const void * source, size_t num );不能解决某些覆盖问题。 char * strcpy ( char * destination, const char * source ); 不能解决某些覆盖问题,根据'\0'表示字符串复制终止。void * memmove ( void * destination, const void * source, size_t num ); 能够解决所有覆盖问题。 void * memset ( v 阅读全文
posted @ 2011-10-29 16:43 Charliee 阅读(298) 评论(0) 推荐(0) 编辑