摘要: 在支持多任务操作系统中,进程切换是不可避免的,以使进程能在单个CPU上并发执行。进程的调度涉及到的东西较多,例如调度的时机、调度的策略等等,在这里我们只讨论RTEMS任务调度中进程切换的细节,通过分析以明白操作系统如何做到使一个CPU的使用权如何从一个任务上切换到另一个任务。 阅读全文
posted @ 2013-05-07 10:40 hazir 阅读(1403) 评论(0) 推荐(1) 编辑
摘要: 先看下面几个问题,如果你能准确地回答,那么此篇文章将不适合你:计算机中怎样表示浮点数的,与整型的表示方法有什么不同?32位精度的float类型和64位精度的double类型能表示浮点数最大范围是多少?该C语言语句 printf("%d\n", 2.5); 输出结果是什么,为什么?我先说在此之前我如果回答,答案如下:计算机中有符号整型采用补码进行表示,浮点型怎么表示没想过。float类型可以表示-232-1~232,double类型可以表示-264-1~264。输出格式要求输出整型,而数是浮点型,类型转化之后输出结果为2。有一点可以明确,我的回答都是错误的。那好吧,下面是我查 阅读全文
posted @ 2012-12-07 11:17 hazir 阅读(9147) 评论(3) 推荐(1) 编辑
摘要: 本文从最简单的打印“hello world!”的C程序开始,写出其汇编程序(在汇编中使用C库函数),讲解怎样建立自己的函数调用帧,接着使用jmp指令替代call完成函数的调转与返回。在linux内核中这种技巧被大量使用,最后举出内核中使用到的两个实例。首先,下面的C程序完成的功能,相信大家学大多数语言,都是用来讲解的第一个示例://helloworld1.c#include <stdio.h>int main(){ printf("hello world!\n"); return 0;}我们使用gcc进行编译生成可执行文件,结果如下所示:[guohl@guohl 阅读全文
posted @ 2012-11-26 21:35 hazir 阅读(1919) 评论(4) 推荐(1) 编辑
摘要: 以下为每周六实验室内核讨论课我所主讲的主要内容,在百度文库和CSDN下载频道中上传有我所讲的PPT原稿。现对以前做个补充,以后每次讲完之后就更新。9月29日星期六上午:主讲进程描述符结构体task_struct数据结构,由于task_struct这个结构体是系统感知进程存在的唯一标志,linux内核涉及进程和程序的所有算法都是围绕这个数据结构建立的,里面存在上百个字段,表示了进程的状态、标识符、进程之间的链接关系、进程调度相关的信息、时间和定时器信息、 文件系统信息、虚拟内存信息、与进程间通信相关信息等等等等。可以说进程描述符是我阅读Linux内核源代码的起点,很多概念都没有,因此无论是看书还 阅读全文
posted @ 2012-11-06 11:58 hazir 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 想起一年前多安装的Oracle一直没使用,现在准备使用时,遇到各种问题,遇到了再网上找解决办法一个个解决了,小记一下以防今后忘记:一、 Oracle下忘记普通用户的密码以超级管理员sys登录,再修改。在Windows命令行下:1. 进入Oracle命令行:sqlplus2. 登入数据库:用户名:sys密码:sys as sysdba3. 修改密码:ALTER USER username IDENTIFIED BY newpass; (username为需要修改用户的帐号,newpass为修改过后的新密码)更多密码修改问题见:http://hi.baidu.com/quandang/ite... 阅读全文
posted @ 2012-06-14 17:41 hazir 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 今天是第一天上班,感觉还不错。上个星期二“追随”某人去了合肥某公司面试,第一次尝试到这种面试,不问出身、不问兴趣爱好、不问大学生活经历,直接给了几道编程题和一台PC,就让你写程序。于是怀着激动的心情,开始了我两个月以来最全新的一天。面试的那天公司还在五里墩那边,不过这两天公司搬家了,搬到合肥西站附近的一栋小别墅中。环境算还是很不错了,重要的是离学校近了,坐公交不用再转车了。第一天上班,就感觉到了一丝压力,在公司不同在实验室,在实验室整天想干嘛就干嘛,也没人管,以至于毕设搞到要答辩了还没做出点名堂来;而公司呢,第一天上班就开了个会,给每个人都安排了任务,我的任务就是熟悉编程环境,相对其他人应该比 阅读全文
posted @ 2012-05-28 23:21 hazir 阅读(736) 评论(3) 推荐(0) 编辑
摘要: 为了找份暑期实习生的工作,今天去某公司面试。很喜欢这样的公司,首先不问出身、不问爱好,直接给你一台电脑,几道编程题目,让你写程序。其中有道题目是将一个整数分解为连续正整数之和,如15可以分解为:15 = 1 + 2 + 3 + 4 + 515 = 4 + 5 + 615 = 7 + 8这道题,我用最死板的方法给编出来了。输入数n,设置起始位置i,再遍历连续正整数的长度k,由公式计算出 sum = i + (i+1) + ... + (i+k) = (k+1) * (2*i + k) / 2,判断与n的关系,若相等则打印出从i到i+k这(k+1)个数;若sum>n,则break;伪码如下: 阅读全文
posted @ 2012-05-22 22:33 hazir 阅读(7123) 评论(0) 推荐(1) 编辑
摘要: Jeff Atwood 5月15日在其博客CODING HORROR上发表的一篇文章Please Don't Learn to Code,引起广大程序员的响应,纷纷发表文章提出自己的观点,如设计师Sacha Greif 发表的Please Learn to Code;Zen的please don’t learn to code but give it a try;以及Zed Shawnf的Please Don't Become Anything, Especially Not A Programmer...这些文章非常有意思,都提出了自己对学习编程的看法。由于自己英文比较烂,不 阅读全文
posted @ 2012-05-17 16:05 hazir 阅读(1438) 评论(1) 推荐(1) 编辑
摘要: 最近总会听到这些声音:有人说纯软件毕业设计难做,数据库不知道怎么设计,还要写代码;有些人就笑了,说当初选择硬件毕业设计就是个悲剧;我听到了,也笑了....尼玛,谁有软硬通吃的毕业设计坑爹呀!每次有人问我毕设题目是什么,我都还得去毕设管理系统去看看,然后说“室内自主导航机器人的关键技术研究”,这题目听着多霸气啊...额...我对毕设任务理解用下面的框图很清晰地能表现出来:不过,到目前为止,我还处于搭建中间ARM软硬件环境阶段。再看看任务规划:2012-02-13~2012-02-29 完成需求分析,调研文献资料,完成外文翻译2012-03-01~2012-03-31 熟悉开发工具及超声波定位原理 阅读全文
posted @ 2012-05-07 20:02 hazir 阅读(1487) 评论(3) 推荐(2) 编辑
摘要: 喜欢大学的图书馆,不管是新区还是南区,从大一的时候就对图书馆有特殊的情结: 刚进大学那会学程序设计,很多东西听不懂,当时非常着急,偶然一个机会,在图书馆阅览室发现好多C语言书,于是就每天带着一个本子,找来一堆的书,对照着看,记了一堆语法规则以及程序。这本看不懂就换一本看,连续了一个多星期,突然发现自己通窍了。那时感觉图书馆东西挺多的..... 大一下学期,特别空虚,除了看书真的找不到事情做,无论是白天还是晚上,没课的时候,就去图书馆逛逛,什么书都借来看看,看几页觉得没意思或者看不懂就还回去了。那时候去图书馆,完全是打发时间。也正是那时候,发现一个女孩,让我感觉到J 的气息,后来得知已经有BF. 阅读全文
posted @ 2012-05-04 22:16 hazir 阅读(443) 评论(1) 推荐(1) 编辑
摘要: 写一下我使用串口向开发板传送文件中遇到的问题及解决办法:使用的软硬件环境:虚拟机:VMware® Workstation 8.0.1Linux操作系统:Fedora 9开发板:mini6410下面使用通过串口终端minicom传送文件到开发板上:1. USB 串口无法识别的问题:我的笔记本没有RS232接口,只好用USB转串口,再通过开发板配套的一根交叉串口线连接到开发板上。但虚拟机启动时,出现宿主机无法连接USB设备的问题,如下图:其实下面一行已经告诉你问题出现的原因了——VMware USB Arbitration Service 服务没有启动,启动即可,步骤如下:“My com 阅读全文
posted @ 2012-05-02 10:29 hazir 阅读(6370) 评论(0) 推荐(3) 编辑
摘要: 《人月神话》中提到编程这个职业时,列出编程给人带来乐趣的理由,同时也谈到这个职业也给人很多苦恼,下面是这篇文章的观点,觉得写的不错:快乐:编程的乐趣是一种创建事物的纯粹快乐。快乐来自于开发对其他人有用的东西。编程的过程体现了魔术般的力量。学习新事物的乐趣,源于工作的非重复特性。还来自于工作在如此易于驾驭的介质上。总之,编程非常有趣,在于它不仅满足了我们内心深处进行创造的渴望,而且还愉悦了每个人内在的情感。痛苦:必须追求完美。由其他人来设定目标,供给资源,提供信息。寻找琐碎的BUG却是重复性的工作。当投入了大量辛苦的劳动,产品在即将完成或者终于完成的时候,却已显得陈旧过时。我的体会:每当我仅仅用 阅读全文
posted @ 2012-04-26 20:54 hazir 阅读(1836) 评论(5) 推荐(2) 编辑
摘要: 今天是“世界读书日”,前几天微博上转发非常多的一条微博:“一日不读书,无人看得出;一周不读书,开始会爆粗;一月不读书,智商输给猪”,确实阅读是很重要的,对此我深有体会。大学四年我读了大量的书,其中大多是计算机技术方面的书,可以说从这些书中我打牢了我专业的基础,是我大学最大收获之一。 今晚回头翻看了一下图书馆的借书历史记录,我自己也被吓到了,到目前为止竟然借了339本之多,主要是在大二和大三借阅的。这也从侧面反映我那时处于迷茫期,每当去图书馆看了什么书说的一门技术我觉得挺新的,管他三七二十一就给借过来了,大多数也只是翻了翻就给还回去了。当然也有几本书是认认真真地看了一遍又一遍,而这些书对我... 阅读全文
posted @ 2012-04-23 22:36 hazir 阅读(9448) 评论(55) 推荐(11) 编辑
摘要: [19]最后曾提到了在函数通过传值方式(by value)返回一个对象时,不可避免地要生成一个临时对象,这会严重影响到程序的效率,如下例计算两个分式的乘积:class CRational{public: CRational(int numerator, int denominator) { this->numerator = numerator; this->denominator = denominator; } int numer() const //get numerator { return nume... 阅读全文
posted @ 2012-04-19 11:50 hazir 阅读(1848) 评论(0) 推荐(1) 编辑
摘要: 什么是临时对象? C++真正的临时对象是不可见的匿名对象,不会出现在你的源码中,但是程序在运行时确实生成了这样的对象.通常出现在以下两种情况:(1)为了使函数调用成功而进行隐式类型转换的时候。 传递某对象给一个函数,而其类型与函数的形参类型不同时,如果可以通过隐式转化的话可以使函数调用成功,那么此时会通过构造函数生成一个临时对象,当函数返回时临时对象即自动销毁。如下例://计算字符ch在字符串str中出现的次数int countChar (const string& str, char ch);char buffer[];char c;//调用上面的函数countChar (buffe 阅读全文
posted @ 2012-04-18 23:09 hazir 阅读(3298) 评论(2) 推荐(1) 编辑

一个代码可以创造一个世界,也可以毁灭一个世界!