自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

相信并热爱着

关注并行计算,分布式计算,操作系统,计算机体系结构. 微博:http://weibo.com/u/2120698533

  • 博客(65)
  • 资源 (13)
  • 收藏
  • 关注

转载 2007年版EI核心版收录的中国期刊

注:原URL为 http://www.gdmec.cn/web/kejichu/Article_Show.asp?ArticleID=243EI核心版(《Ei Compendex》)收录的中国期刊ISSN 期刊刊名0567-7718 Acta Mechanica Sinica/Lixue Xuebao1006-7191 Acta Metallurgica Sinica (Engli

2013-02-27 22:11:47 1538

原创 门禁系统 随想

忽然想起昨天进公寓时刷卡后,还没将卡放入钱包,门又自动锁上了。现在去驾校的一个半小时的班车上,忽然想用“意识流”的方法把整个门禁系统的背后原理过一遍。       首先是界面接口,这个活动图简单,把卡靠近感应器就行。感应器内部有一个不知疲倦为何物的晶振,加电后震荡,会产生周期变化的电流,是因为周期变化的阻抗和感抗,周期变化的原因应该是因为内部电流通过后晶体结构变化所致,结构变化的原因属于半导体

2013-02-27 11:10:09 705

转载 win7下重新分区或者使用一键还原后不能进入ubuntu系统

在win7和ubuntu共存的系统中,如果再win7系统下对磁盘重新分区或者使用一键还原工具对磁盘备份,都有可能导致系统不能正常引导,经常会提示:unknown filesystem。这篇文章详细说明了遇到这类问题的解决方法:    http://wenku.baidu.com/view/c71a1812cc7931b765ce1563.html

2013-02-27 11:10:08 656

原创 【pthread系列-11】对Pthread线程进行简单的类封装

1.封装遇到的问题       将Pthreads线程封装为抽象类,这样用户在使用线程时,只需要继承一下这个抽象类,并实现相应的接口就可以了。这样做的好处是用户可以将注意力集中在线程所要执行的逻辑上,而不需要关注创建线程、销毁线程等细节问题上。这里给出两种简单的封装方法,以供参考。       我们抽象类的名称为Thread,其中有一个成员函数run,该函数为的声明形式为:

2013-02-27 11:10:06 657

原创 【pthread系列-10】pthread的属性对象

1.概述属性对象是为对象初始化提供额外参数的容器。可以简单的将属性对象想象为一个结构体,不过这个结构体的变量的读写需要通过提供的函数而不是用成员访问符直接操作其成员变量。属性对象具体可以实现为结构体的栈变量,然后将访问函数包装为各种宏。还可以实现为堆变量,然后使用真正的函数进行访问,这样的实现还可以进行有效性检查等其他功能。POSIX中的属性对象有pthread_t对应的属性对象pthre

2013-02-27 11:10:04 611

原创 【pthread系列-9】pthread_mutex_t的静态初始化

初始化phtread_mutex_t类型的变量时有两种方法:一种为使用宏PTHREAD_MUTEX_INITIALIZER进行初始化,另外一种是使用函数pthread_mutex_init函数。第一种方法仅局限于静态初始化的时候使用:将“声明”、“定义”、“初始化”一气呵成,除此之外的情况都只能使用pthread_mutex_init函数。下面是一段很简单的测试代码: /*   * m

2013-02-27 11:09:55 1127

原创 【pthread系列-8】POSIX线程中的“一次初始化”

1.核心接口函数pthread_once_t once_control = PTHREAD_ONCE_INIT;int pthread_once(pthread_once_t * once_control,void (*init_routin)(void));2.问题和解决方案在正式开始进行计算之前,通常需要完成一些初始化工作,而且这些初始化在程序启动之后只允许进行一次。如果有主函

2013-02-27 11:09:54 625

原创 《UNIX网络编程》中第一个timer_server的例子

1.配置环境    在这里下载unpv13e.tar.gz,其中包含了《UNIX网络编程》第一卷的源代码。假设将其移到~/Unix/Network/目录下,以下为配置过程(假设当前目录为下载目录): mv ./unpv13e.tar.gz ~/Unix/Network      cd ~/Unix/Network     tar -zxvf unpv13e.tar.gz      c

2013-02-27 11:09:52 718

原创 百度实习生招聘的一道大数据处理题目(上)

题目为:两个200G大小的文件A和B,AB文件里内容均为无序的一行一个正整数字(不超过2^63),请设计方案,输出两个文件中均出现过的数字,使用一台内存不超过16G、磁盘充足的机器。方案中指明使用java编程时使用到的关键工具类,以及为什么?对于这种大数据量问题(至少对于一台机器来说算是大数据了),使用MapReduce是最简单的方式了。现在开源的最好的支持MapReduce的分布式计算框

2013-02-27 11:09:44 769

原创 【pthread系列-7】条件变量的接口函数和使用原则

条件变量的接口、常量、数据类型1.静态创建一个条件变量(栈)pthread_cond_t cond;2.动态创建一个条件变量(堆)pthread_cond_t * pCond = (pthread_cond_t *)malloc(sizeof(pthread_cond_t));3.初始化静态条件变量(默认方式)使用宏 PTHREAD_COND_INITIALIZER4.

2013-02-27 11:09:38 533

原创 【pthread系列-6】条件变量基本概念和原理

条件变量的作用是用于多线程之间关于共享数据状态变化的通信。当一个动作需要另外一个动作完成时才能进行,即:当一个线程的行为依赖于另外一个线程对共享数据状态的改变时,这时候就可以使用条件变量假设没有条件变量,对于一个生产者消费者问题,消费线程在得知队列中没有产品时,将阻塞自己。生产线程给队列中放入产品,但是没有办法激活消费线程,而消费线程处于阻塞状态也没有办法自激活。如果消费线程使用忙等的方式,通

2013-02-27 11:09:36 721

原创 【pthread系列-5】Pthreads线程的基本常识

1.Pthreads中线程的接口函数与线程相关的头文件为pthread.h,编译时要连接的库为pthread。pthread_t thread;线程的数据类型为pthread_t。int pthread_equal(pthread t1,pthread t2);判断两个线程标识符是不是代表的是同一个线程。线程标识符只有相等和不等的关系,没有大小关系。int pthread_

2013-02-27 11:09:32 757

原创 【pthread系列-4】使用多线程的利弊

1.Amdahl定律     一个很简单的量化公式,用来计算一个程序中串行部分所占多少对程序加速比的影响或者用来计算计算机硬件配置中某个设备的速度提高能够将整个系统的速度提高多少。     假设一个串行程序执行的总时间为1,不能被并行化的部分占的时间比例为p,即串行化的部分为p,可并行化的时间为:1-p。如果用n个核用来加速的话,加速比为:    如果一个程序中只有50%部

2013-02-27 11:09:29 680

原创 【pthread系列-3】一个定时器的普通实现,多进程实现和多线程实现的对比

要求实现一个简单的定时器,该程序要求的输入格式为:N prompt message其中N表示时间,prompt message表示提示信息。即过了N秒之后要在终端上显示出提示信息。一共用了三种方式实现:(1)最普通的方式,阻塞I/0+同步。(2)使用进程实现。(3)使用线程实现。 /*alarm.c*/  #include "../error.h"  #include  int m

2013-02-27 11:09:26 992

原创 多线程编程有关的基本概念

概述         线程是保证机器内部指令执行的连续性和持续性的各种属性的集合,所以线程包含了各种有关机器状态的信息,如当前执行的指令的位置,数据段的地址,数据寄存器信息等等。         进程= N个线程+文件描述符+地址空间+其他数据信息(N>=1)         这里的关键是线程的数量是多个,所以进程和线程的实体对应关系为一对多。这样带来的显著好处就是:由于多个线

2013-02-27 11:09:24 378

原创 【pthread系列-2】检查Pthreads函数的返回值

一定要检查函数的返回值      《C/C++软件测试规范》上有很重要的一条就是要检查所有返回值不为空的函数的返回值来判断库函数或者系统调用的执行是否成功。如果读一些经典开源代码,你会发现几乎每一个函数的调用都会被放置在一个if语句中来检查被调用函数的执行情况。经常会看到超市收银台的电脑上或者学校的自助充值终端甚至是火车站购票的大屏幕上会弹出Windows的对话框显示“0xXXXXXXXX

2013-02-27 11:09:24 608

原创 Linux配置支持C/C++项目的eclipse和支持java项目的eclipse

eclipse是一款优秀的源代码编辑工具,和source insight一样支持符号表解析。除此之外,还支持词法分析,语法分析,外部符号,外部头文件引入,SVN,CVS项目管理等等功能,是Linux下软件开发的利器之一。    配置支持java的eclipse和支持C/C++的eclipse的过程类似,下面为具体的配置步骤:    step1:在这儿下载最新版本的jdk。这是因为eclip

2013-02-27 11:09:21 503

原创 【pthread系列-1】同步异步线程进程的一些思考

同步与异步    同步与异步在生活中随处可见。同步和异步是描述不同事件发生的依赖关系,同步是指这两个事件的发生有一定的时间顺序,异步是指这两个事件的发生是相互独立的。    比如去食堂吃饭,你需要先去那餐具(事件A),然后去某个窗口前打饭(事件B),接着找到一个座位(事件C),最后开始享受食物(事件D)。事件A,B,C,D有一定的依赖关系,所以它们之间需要同步。处理器中的取指、译码、执行、

2013-02-27 11:09:21 873

原创 Linux 下从命令行打开pdf文件和html文件的命令

如果你经常工作在终端下,某个时刻需要查看一些文档的时候(比如pdf或者html文档),是不是经常需要切换到文件系统中打开这些文件。事实上,你只需要敲一个命令就可以打开这个文件了,完全没有必要必要离开终端。    比如,打开html文件时,就可一使用firefox命令。firefox是一个shell脚本写的命令,根据参数设置环境,为启动firefox-bin做好准备工作。    比如打开go

2013-02-27 11:09:18 1640

原创 让进程的运行不受终端影响的几个方法

有时候会往集群山发送一个运行时间很长的作业,但是有可能因为用户注销的原因或者网络断开的原因导致运行的作业终止。这是因为,这些事件发生的时候,系统会收到HUP(hangup)信号,然后将用户的所有进程都终止掉。     为了保证作业可靠的运行,有三种简单的方法:一种使用setsid命令,另外一种是使用nohup,还有就是使用(&)     nohup使提交的进程忽略系统发送的HUP信号,用法

2013-02-27 11:09:16 529

原创 Linux 下从命令行打开pdf文件和html文件的命令

如果你经常工作在终端下,某个时刻需要查看一些文档的时候(比如pdf或者html文档),是不是经常需要切换到文件系统中打开这些文件。事实上,你只需要敲一个命令就可以打开这个文件了,完全没有必要必要离开终端。    比如,打开html文件时,就可一使用firefox命令。firefox是一个shell脚本写的命令,根据参数设置环境,为启动firefox-bin做好准备工作。    比如打开go

2013-02-27 11:09:09 1864

原创 ubuntu11.04下安装QQ2012

1.在这里下载QQ2012安装包。2.打开终端,进入下载目录。3.使用命令 sudo dpkg -i *.deb ,输入密码后开始安装。Ok.本文出自 “相信并热爱着” 博客,请务必保留此出处http://hipercomer.blog.51cto.com/4415661/895006

2013-02-27 11:09:06 257

原创 ubuntu11.04下配置中文输入法

1.按Windows徽键2.搜索'System Settings'3.单击后弹出'Control Center'对话框,在左侧的filter栏中输入 'Language Support'4.单击'Language Support'按钮5.在'Keyboard input method system'选择'ibus'6.重新再 ‘Control Center’对话框中输入'Key

2013-02-27 11:09:03 240

原创 查看硬件信息几种方法

查看内存,CPU信息之类的可以使用top或者free,但这都是查看运行时硬件运行状态的命令。要查看硬件本身的信息,就需要使用其他命令了。    查看处理器配置信息可以使用 cat /proc/cpuinfo    查看内存配置信息,可以使用 cat /proc/meminfo    对于其他硬件信息,可以使用dmidecode命令。   dmidecode最常用的选项为-t,-t的

2013-02-27 11:09:02 702

原创 分布式单词发音抓取机器人

摘要    网络编程实验课程要求必须写一个套接字的应用程序,考虑到之前写过的单词发音抓取程序的效率比较低下,就顺便结合套接字做一个分布式的抓取软件。其中涉及到动态任务领取,负载均衡,多线程,加锁解锁,简单的HTML代码解析,文件读写等功能。程序还是使用Python完成,对于学习Python、套接字编程、分布式编程甚至集群编程都有一定的意义。    另外,此软件具有一定的攻击性,如果启动的从

2013-02-27 11:08:57 880

原创 集群节点列表编辑程序

在集群上跑程序的人都知道要编辑一个节点列表文件来说明在哪些机器上启动进程,以及在某个机器上启动的进程的数量,最典型的情况是mpi。但是如果机器的数量过大,比如有500个节点的机群,这样要维护这个文件也是一件比较头疼的事情。    维护节点列表文件,主要是进行三个操作:创建列表,删除某些节点,修改某些节点。接下来就可以用C或者Python实现一个具备这三种功能的小程序了。今天上午实现了一个,代码

2013-02-27 11:08:50 452

原创 Python之Tkinter:动作

Python之Tkinter:动作进行界面编程,首先少不了以下几个重要部分:l 窗体l 控件l 动作窗体是容器,各式各样的控件放置在容器中,每种控件在触发之后都会执行一定的指令,即完成它的动作。         怎样将控件绑定到一个命令上?一般来说在创建控件的时候,使用参数command来指定要执行的动作,这个动作可以使以下几类情况:l 普通

2013-02-27 11:08:49 603

原创 Ubuntu下安装Python的Tkinter和Pmw库

在Linux下,如果需要编写界面应用,并且此界面应用对性能的要求不是很高,一般可以使用Python解决。Python中可以使用自带的Tkinter库或者是第三方的Wxpython库,当然Tkinter的移植性更好。    安装Tkinter非常简单,只需要输入下面命令即可:sudo apt-get install python-tk      即可安装成功Tkinter。    下

2013-02-27 11:08:44 2068

原创 Python之Tkinter:动作

Python之Tkinter:动作进行界面编程,首先少不了以下几个重要部分:l 窗体l 控件l 动作窗体是容器,各式各样的控件放置在容器中,每种控件在触发之后都会执行一定的指令,即完成它的动作。         怎样将控件绑定到一个命令上?一般来说在创建控件的时候,使用参数command来指定要执行的动作,这个动作可以使以下几类情况:l 普通

2013-02-27 11:08:42 792 2

原创 简单的map性能评测

map是编程中常用的数据结构之一,map在检索的时候的时间复杂度一般为logN,下面这个简单的测试程序能确实证实这一点。当二维数组的大小为6400时,二者的速度相差为15倍左右。     以下为测试代码:/************************************************************** *    *   Author: Chaos Lee *

2013-02-27 11:08:37 775

原创 C/C++的注意事项

最近调试C语言程序,出了一些错误,费了很大的力气才找到这些BUG。现在把这些错误记录下来,同时做一些编程上的原则上的约束,希望能达到两个目的:(1)看到类似的情况,能马上定位知道是什么错误。(2)不在犯这种错误。         将64位整型转换为32位整型,貌似是没什么问题。但是在做多结点间数据通信的时候,这个不注意的细节将导致很严重的错误。例如在发送端使用的是64位的整型,接收端使用32位

2013-02-27 11:08:34 412

原创 dd命令

author:<span style="font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-fa

2013-02-27 11:08:31 511

原创 Linux中的随机数文件 /dev/random /dev/urandom

author:<span style="font-size:14.0pt;font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-fa

2013-02-27 11:08:28 1564

原创 Name Mangling in C++

Name Mangling(C++)Author: Chaos LeeDate: 2012/05/06摘要:详细介绍了C++中的Name Mangling的原理和gcc中对应的实现,通过程序代码和nm c++filt等工具来验证这些原理。对于详细了解程序的链接过程有一定的帮助。Name Mangling概述大型程序是通过多个模块构建而成,模块之间的关系由makefile来描述。

2013-02-27 11:08:24 434

原创 vhdl 编写counter ,模拟钟表

好久没玩过FPGA了,回想起当时和张胤一起写的SOPC系统还真是怀念啊,自己编写的CPU,自己编写的外设驱动(软件+硬件),自己定义的汇编语言,自己编写的汇编器,基于这些自己的东西写自己的应用程序,那些好玩的游戏~ 怀念,有时间一定写篇文章纪念一下。     选这个课,是想回忆下基本的VHDL知识,什么东西不用都会忘掉的。这是一个很简单的程序,有时分秒的功能,没有任何管脚指定,仅仅用model

2013-02-27 11:08:20 1359

原创 编写一个简单通用的makefile

author:李超date:2012/05/06      纵然makefile的规则还是相当多的,编写一个大规模的软件,良好的makefile架构是方便维护程序编译的关键。学习makefile的时间周期还是比较长的,为了写出规范的代码,需要在很短的时间内编写一个makefile,这里给给出一个makefile示例。在组织程序的时候可以按照这个示例给出的结构进行,同时还能提高程序的可读性和

2013-02-27 11:08:17 834

原创 管理系统中的进程--top命令

author<span style="font-size:16.0pt;font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-fam

2013-02-27 11:08:14 552

原创 查看系统资源命令

author:李超date:2012/05/06unameuname主要用来查看系统的信息,有点类似于windows下的systeminfo。这是一个非常简单却很实用的命令。主要功能如下:l 输出所有系统信息uname -al 输出内核名称uname -sl 输出机器在网络上的名称uname -nl 输出内核的发行

2013-02-27 11:08:07 442

原创 eclipse环境快速配置

step1: 下载eclipse,我下载的是indigo。进官网,点download.step2:  下载jre,因为eclipse是基于java开发的,所以需要java运行时环境。step3:  假设jre和indigo都存放在~/software下。启动eclipse的命令为:           ~/software/indigo/eclipse -vm ~/software/j

2013-02-27 11:08:01 454

原创 eclipse下迅速配置svn插件

step1:点击helpstep2:点击install new softwarestep3:点击 add 按钮step4:填写名字 svn_plugin,填写地址:http://subclipse.tigris.org/update_1.2.xstep5:然后一路OK或者nextstep6:restart eclipse. 依次点击:windows->open pers

2013-02-27 11:07:59 460

Program Library HOWTO(UNIX 库编程教程)

很经典的UNIX库编程教程。你会学会 1. 静态库的概念和用法 2. 动态库的概念和用法 3. 动态加载库的概念用法

2014-05-26

北航版高性能领域内国际会议

北航版高性能领域内国际会议

2013-02-27

CCF版高性能领域国际会议

CCF版高性能领域国际会议

2013-02-27

基于OpenGL的贝塞尔曲线

基于OpenGL写的贝塞尔曲线程序,程序启动后,用户在OpenGL框架产生的窗口中用鼠标任意点击三个点之后,就会生成3点构成的贝赛尔曲线。

2011-12-15

matlab中动态绘制3D心形曲线

此代码可用于绘制3D的心形,可以演示给自己的女朋友看哦~

2011-12-15

方阵的LU分解法 基于Dolittle

此程序实现了一个LU分解法,将矩阵进行LU分解。L矩阵为下三角矩阵,U矩阵为上三角矩阵。

2011-12-15

基于LU分解法求解矩阵的逆

由于之前需要一个矩阵逆的代码,在网上搜了下,结果发现没有符合自己要求的求逆运算,就自己实现了一个。已经过测试,可以和matlab中的计算结果对比。值得参考

2011-12-15

求解非线性方程组的一个例子

此程序使用牛顿迭代法求解一个非线性方程组,该方程组的形式如下: 0.5cost+u+v+w-x=2.67 t+0.5sinu+v+w-y=1.07 0.5t+u+cosv+w-x=3.74 t+0.5u+v+sinw-y=0.79 求解的精度为10E-12.可以参考。

2011-12-15

顺序、列主元、全主元高斯消元法

高斯消元法,可用于求解线性方程组.此程序实现了顺序高斯消元法,列主元高斯消元法以及全主元高斯消元法。可以参考

2011-12-15

C#中实现带有行号的Richtextbox以及其他功能

本程序主要有以下功能: 1.在Richtextbox的旁边没有误差的显示动态行号。 2.可以使Richtextbox的滚动条跳到指定的行号处。 3.可以单击Richtextbox中的某行,然后通过鼠标事件获取鼠标所在的Richtextbox中的行的数据。

2011-04-20

C#实现的进制转换程序

本程序的功能是实现二进制与十进制,八进制与十进制,十六进制与十进制,十进制与二进制,十进制与八进制,十进制与十六进制之间的转换。 使用C#,用Visual Studio 2008及其以上版本打开。

2011-04-20

C# 实现的IEEE754浮点数和32位比特字符串的相互转换

本程序使用C#实现,使用的模板为“控制台应用程序”。 本程序的功能是将IEEE754的32位浮点数转换为与其相对应的比特流字符串。 本程序的目的是为了完成一个编译器中需要将一个浮点数翻译为32位二进制的存储形式的子功能。

2011-04-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除