随笔分类 - Linux
摘要:http://coolshell.cn/articles/355.html前些天Neo推荐了一个网站有《超过100本的linux免费书籍》,这里,我也向大家推荐20本最好的Linux免费书籍,当然,也是英文版的。1. Ubuntu Pocket Guide and Reference一本介绍关于Ubuntu 8.04和8.10的使用书。Websitewww.ubuntupocketguide.comAuthorKeir ThomasFormatPDFPages1522. Two Bits一本关于自由软件的历史和文化的书。不当当是软件,同样也有音乐,电影,科学和教育。Websitetwobits
阅读全文
摘要:http://coolshell.cn/articles/7829.html下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的。这些工具都非常不错,希望每个人都知道。本篇文章还在Hacker News上被讨论,你可以过去看看。我以作者的原文中加入了官网链接和一些说明。dstat & sariostat, vmstat, ifstat 三合一的工具,用来查看系统性能(我在《性能调优攻略》中提到过那三个xxstat工具)。官方网站:http://dag.wie
阅读全文
摘要:转自http://blog.sina.com.cn/s/blog_71ad0d3f01019uzl.htmlLinux 性能测试与分析Revision HistoryVersionDateAuthorDescription1.02011/5/26dengwu@taobao.com初稿1.12011/6/23dengwu@taobao.com添加CPU分析1.22012/2/20dengwu@taobao.com添加MEM,IO分析1.32012/2/23dengwu@taobao.com更新工作原理1.42012/2/25dengwu@taobao.com添加中断分析1.52012/2/28d
阅读全文
摘要:http://www.ibm.com/developerworks/cn/aix/library/au-multithreaded_structures1/http://www.ibm.com/developerworks/cn/aix/library/au-multithreaded_structures2/
阅读全文
摘要:转自http://weli.iteye.com/blog/1692038在weibo上看到梁大的这个贴子:实际上这是一个内存方面的问题。要想研究这个问题,首先我们要将题目本身搞明白。由于我对Linux内核比较熟而对Windows的内存模型几乎毫不了解,因此在这篇文章中针对Linux环境对这个问题进行探讨。 在Linux的世界中,从大的方面来讲,有两块内存,一块叫做内存空间,Kernel Space,另一块叫做用户空间,即User Space。它们是相互独立的,Kernel对它们的管理方式也完全不同。 首先我们要知道,现代操作系统一个重要的任务之一就是管理内存。所谓内存,就是内存条上一个一个的真
阅读全文
摘要:IO模型目前unix存在五种IO模型(这也和上一篇文章:Unix IO 模型中提到的一致),分别是:阻塞型 IO(blocking I/O)非阻塞性IO(nonblocking I/O)IO多路复用(I/O multiplexing)信号驱动IO(signal driven I/O)异步IO(asynchronous I/O)IO的两个阶段等待数据准备好将数据从内核缓冲区复制到用户进程缓冲区同步,异步的区别那么究竟什么是同步和异步的区别呢?请重点读一下原文6.2节中的信号驱动IO和异步IO中的比较。最后总结出来是:同步IO,需要用户进程主动将存放在内核缓冲区中的数据拷贝到用户进程中。异步IO,
阅读全文
摘要:同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不相同。所以,为了更好的回答这个问题,我先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO。本文最重要的参考文献是Richard Stevens的“UNIX® Ne
阅读全文
摘要:转自:http://topic.csdn.net/u/20100325/16/0b86c0ed-5b8d-4eec-a757-c782ae9a3a35.html现象1 压力测试过程中,发现被测对象性能不够理想,具体表现为:进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约702 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒增量大于10000。初步分析majflt代表major fault,中文名叫大错误,minflt代表minor fault,中文名叫小错误。这两个数值表示一个进程自启动以来所发生的缺页
阅读全文
摘要:由于不同的进程运行在各自不同的内存空间中.一方对于变量的修改另一方是无法感知的.因此.进程之间的信息传递不可能通过变量或其它数据结构直接进行,只能通过进程间通信来完成。根据进程通信时信息量大小的不同,可以将进程通信划分为两大类型:控制信息的通信和大批数据信息的通信.前者称为低级通信,后者称为高级通信。低级通信主要用于进程之间的同步、互斥、终止、挂起等等控制信息的传递。高级通信主要用于进程间数据块的交换和共享 常见的高级通信有管道(PIPE)、消息队列(MESSAGE)、共享内存(SHARED MEM0RY)等。这里主要比较一下高级通信的这三种方式的特点。管道通信(PIPE) 两个进程利用管道进
阅读全文
摘要:线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括: 1.线程ID 每个线程都有自己的线程ID,这个ID在本进程中是唯一的。进程用此来标 识线程。 2.寄存器组的值 由于线程间是并发运行的,每个线程有自己不同的运行线索,当从一个线 程切换到另一个线程上时,必须将原有的线程的寄存器集合的状态保存,以便 将来该线程在被重新切换到时能得以恢复。 3.线程的堆栈 堆栈是保证线...
阅读全文
摘要:http://www.ccidnet.com/images/tech/linux/zhuanti/neicun/index.htm
阅读全文
摘要:1、 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。 使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新.
阅读全文
摘要:/** 使用信号实现父子进程之间的同步** TELL_WAIT(): set things up for TELL_xxx & WAIT_xxx* TELL_PARENT(): tell parent we are done* WAIT_PARENT(): wait for parent* TELL_CHILD(): tell child we are done* WAIT_CHILD(): wait for child** SIGUSR1: the signal parent sends to child* SIGUSR2: the signal child sends to par
阅读全文
浙公网安备 33010602011771号