发布新日志

  • 内核的忙碌生活

    2008-03-17 10:14:08

    我,作为计算机的内核,也就是人们眼中所谓的操作系统,是不折不扣的幕后英雄!给大家说说都干了些什么,你们就知道我不是在吹牛了。

    随着散热风扇的嗡嗡声响起,我的忙碌生活就开始了。BIOS大哥习惯做甩手掌柜,把里里外外扫一遍发现没什么意外后,就通知CPU,省下的事情,照旧——找内核。然后,睡大觉去了。

    CPU是我们这儿的顶梁柱,脑子特好使,几乎从来不犯错误。不过这位同志的缺点就是太缺乏主观能动性,总是不断的问我:“下一步干什么?下一步干什么?”,他不觉得烦,我就要不厌其烦的告诉他。

    于是我开始捣鼓硬盘:“小样,醒醒,把Shell给我”。硬盘这伙计懒,虽然记性没话说,但就是磨叽,找个东西要半天。对于我这个忙碌习惯了的人来说,实在受不了,所以我都是告诉他该找什么,然后该忙什么忙什么,反正找到了他会通知我(硬件中断)。或者有时候干脆让他和内存自己嘀咕去(DMA)。不过大家在一起时间长了,彼此也就了解了,有些合作的技巧:比如说我经常让他找东西的时候多找点,相关的、用得到的,一股脑给我(预读取),我都放到内存里(磁盘缓存),省得他麻烦,也省的自己老着急。

    内存正好和硬盘正相反,反应快是没话说,但一歇班就全忘干净了。于是还要硬盘一点点的告诉他,累。

    几位同事都准备好了,就开始干活。其实我是个演员,不对不对,是管理人员,而且只是个中层管理人员。所以上面还有几个老板(内核程序),还要伺候一大堆客户(用户程序)。

    老板好说,所有领导的话都是对的(内核总是假定内核的程序没有错误)、都是重要的、紧急的(内核认为内核的要求都是合理的,应该尽快满足的)。所以都应该是尽量满足。客户的情况就复杂了,经常会有客户想干不能干的事情,而且客户还可能会犯错误。这些都要进行协调,能解决的就尽量解决,实在无可救药的,也只能舍小家,为大家了。(杀进程)

    不管是老板还是客户,分配的任务也是五花八门:有的要求反应快,比如Shell和文本编辑程序,但是通常任务不重,也就是显示个字,存个盘啥的,我们管这叫交互式进程;也有任务重的,比如编译程序,但是快点慢点都成,这叫批处理进程;还要得要求隔一段时间就想做点儿什么的,比如计划任务啥的,算是实时进程。总之,根据不同的任务特点,也有不同的应对办法。但是这也要花心思,通过任务过去干过什么来确定他的特点,我们内部管这叫“基于过去行为的启发式算法”。

    而我要做的事情就是尽可能地满足所有人的要求!为了完成这个impossible mission,我努力学习、不断总结经验教训,掌握了以下办法:

    1. 把任务切片。由于CPU同志从来不关心在做什么、也从来不知道下一步要做什么。所以我就让他这个时间段干这个任务,下个时间段干下个任务。这样CPU同志就会分身术了!
    2. 把内存分页。一个字节一个字节分配内存是会累死人的,而我的办法是把把内存分成4K、4K的一小块,然后按块分配。在此基础上,我还会用4K到4M不同大小的段来分配内存,以便解决内存的碎片问题,这就是著名的“伙伴算法”。
    3. 学会偷懒。有很多事情不一定立刻要做,比如说有的任务要求在内存里分配个地方,我的办法是让他觉得“貌似”已经分配完了就可以了,至于真正开辟内存空间,还是等他用到这块空间的时候再说吧,一个小小的缺页异常处理就可以搞定。
    4. 我还会能通过复杂的算法在固定的时间内决定下一个要处理的任务,这对付成百上千的任务时,效果相当好。
    5. ......

    类似这样的工作技巧太多太多了,哎呀,又一个中断响了,我要去忙了,同志们再见!o(∩_∩)o...

  • 用电脑之生活小常识

    2007-06-18 08:59:17

     现代社会中,电脑已经成为人们生活和工作不可缺少的工具,但电脑也越来越成为一把“双刃剑”:它在给人们生活和工作带来方便、快捷的同时,也在悄悄地危及人们的健康,引起人的视力衰退、关节损伤、辐射伤害、头部和肩膀疼痛。据调查,常用电脑的人中感到眼睛疲劳的占83%,肩酸腰痛的占63.9%,头痛和食欲不振的则占56.1%和54.4%,还会出现自律神经失调、忧郁症、动脉硬化性精神病等,够吓人吧!

       专家指出,“电脑病”的产生主要是和人们在电脑面前的坐姿、使用方法,以及使用时间长短有关。因此,对长期使用电脑的人来说,做好防护工作非常重要,切记切记!!!

      一、坐姿正确。在操作电脑时尽可能保持自然的端坐位,将后背坐直,并保持颈部的挺直。两肩自然下垂,上臂贴近身体,手肘弯曲成90度,操作键盘或滑鼠,尽量使手腕保持水平。

      二、电脑的摆放高度要合适。将电脑屏幕中心位置安装在与操作者胸部同一水平线上,最好使用可以调节高低的椅子。应有足够的空间伸放双脚,膝盖自然弯曲成90度,并维持双脚着地,不要交叉双脚,以免影响血液循环。

      三、与屏幕保持恰当的距离。眼睛与电脑屏幕的距离应在40—50厘米,使双眼平视或轻度向下注视荧光屏,这样可使颈部肌肉轻松,并使眼球暴露于空气中的面积减小到最低。

      四、劳逸结合。
       避免长时间连续操作电脑,使用电脑的时间最好是30分钟就休息一下,可到室外散步,或抬头望天,或向远处眺望,或进行10至20次伸颈和扩胸练习,要不然,你就会成为真正的大虾,驼背大虾。

      五、保持皮肤清洁。
       电脑荧光屏表面存在着大量静电,其积聚的灰尘可转射到脸部和手的皮肤裸露处,时间久了,易发生斑疹、色素沉着,严重者甚至会引起皮肤病变等。为减少辐射,应使办公室保持通风干爽,这样能使那些有害物质尽快排出,在电脑桌下放一盆水或是放一盆花草也可减少辐射,勤洗脸也能防止辐射波对皮肤的刺激,这点容易做到吧。

      六、合理膳食。
       平时多吃些胡萝卜、白菜、豆芽、豆腐、红枣、橘子以及牛奶、鸡蛋、动物肝脏、瘦肉等食物,少食肥甘厚味及辛辣刺激性食品,以补充人体内维生素A和蛋白质。平时可多饮些茶,茶叶中含有茶多酚等活性物质,有利于吸收与抵抗放射性物质。

      最后别忘了,也是很重要的:使用电脑后,一定要洗手。键盘上面附着着很多细菌和病毒,也会给人带来伤害。
  • 测试工程师工作流程概论

    2007-05-14 16:40:14

    测试工程师工作流程概论

    测试工程师的工作流程,与公司的整体工作流程,项目的测试要求等因素相关。本文主要讨论测试工程师的一般工作流程。

    做好测试准备

    1)明确测试任务的范围

    测试文档通常包括测试目的、测试环境、测试方法、测试用例、测试工具等。测试工程师首先要通读文档,对整个测试要求形成整体认识,明确测试目的,以及测试要求和测试重点,明确软件测试方法和使用的测试工具

    2)明确测试时间

    明确测试周期和测试时间进度。如果是多人合作完成一个软件,则要首先明确属于自己的测试内容、根据测试内容和测试周期,估算自己每日应该完成的工作量。此外由于软件测试是群体协作的测试活动,需要明确哪些测试内容要与其他测试工程师协作才能完成。

    3)设置测试环境

    根据测试文档要求,设置测试需要的软件和硬件环境,包括操作系统,要测试的软件和其他必要的测试工具软件等。所有这些完成后,分别运行,查看是否能正确运行,保证符合测试文档要求的测试环境。

    4)学习被测试软件

    对于不太熟悉的软件,可以通过阅读软件自身的教程和帮助文件,学习本软件的一般操作方法,也可以参照相关的书籍资料等。另外,向熟悉测试软件的其他同事请教软件使用方法,也是学习软件的一条捷径。对软件使用越熟练,测试过程越顺利,测试效果越理想。

    5)确认完全理解测试任务

    软件测试最重要的要求就是确实明确了测试任务和要求,这包括正确理解了测试文档,确认可以按照测试进度要求,完成测试。对于测试工具要正确安装,熟练使用。如果有任何不明白之处,向软件测试负责人询问。切忌凭自己的理解和主观推测,自行其事。当然,真正测试中,往往会遇到各种新的小疑难问题,也需要及时向测试负责人请教,以保证测试顺利进行。

    执行软件测试任务

    1)按照测试文档要求,逐项认真测试

    根据测试文档测试要求,按照测试步骤,逐项进行。通过运行软件,观察测试结果,与软件需求说明书的内容进行比较,找出软件错误。对于需要调用测试用例的测试,保证正确地调用了测试用例,注意观察和分析测试结果。某些不容易重复的错误,需要反复测试,总结重复该错误所需要的测试步骤,直到确认可以重复出现为止。

    2)记录发现的错误,填写软件问题报告

    为了纠正软件中的错误,测试工程师要正确记录发现的错误,将错误再现的步骤写入测试报告中,测试报告是程序测试的重要组成部分,正确书写测试报告是对测试工程师的基本要求。采用软件缺陷数据库管理测试中发现的软件缺陷,每一条错误作为数据库的一条记录,方便记录、修改、查询。

    3)填写测试进度表和必要的测试内容记录表

    每天将测试内容写入测试进度表文档,可以使测试负责人了解测试进度,控制测试周期内测试的连续性,增强测试过程控制性,保证测试的正常进行。测试记录要准确完整,实事求是,必要时插入测试注释,解释测试中的特殊问题。测试进度表是评价测试质量和工作内容的重要凭证,对于测试后发现的测试错误和失误,可以通过检查测试记录,寻找产生错误的原因。

    4) 测试中发现疑难及时请教

    测试是一个动态的过程,可能由于自己的错误操作或者测试文档内容的错误,使得测试过程中出现自己不能解释的现象或结果,出现与测试要求不符合的情形,这时可能需要与其他测试者协商或求助,如果问题仍然不能解决,应该及时请教,听取意见和建议,必要时反复讨论直到问题全面解决。

    全面检查测试结果

    1)对照测试文档要求,检查测试内容是否完整

    测试完成后,要对照测试文档检查测试是否全部完成,保证没有丢失测试内容。如果某些内容,由于测试环境的要求不满足,或者由于测试时间短没有进行,则要写入测试进度表文档。

    2)检验书写的软件问题报告的记录,使之确切、规范

    正确书写测试记录是保证迅速定位软件错误,加快改正错误的必要前提。专业规范的软件记录报告是体现公司测试水平和专业实力的外在体现。认真检查书写的每条记录是否符合规范,格式、步骤、内容一一检查,必要时补充或删减。

    上述三个阶段,相互联系紧密,其中准备是基础,测试是重点,检查是保证,应该根据测试的软件特点合理安排

Open Toolbar