备份点东西

1. 设备管理的目标和功能是什么?

目标是:选择和分配输入/输出设备以便进行数据传输操作

控制输入/输出设备和CPU或内存之间交换数据,为用户提供良好的用户接口

提高设备间,CPU和设备之间,进程间的并行操作,获得最佳效果

功能:提供和进程管理系统的接口

设备分配:独占,共享,虚拟SPOOLING

并行操作:通道和中断,虚拟

缓冲区管理

 

2. 数据传送控制方式有哪几种?试比较它们各自的优缺点

程序直接控制方式:由用户来直接控制内存或CPU和外围设备之间的数据传送。

它的优点是:控制简单,也不需要多少硬件支持

它的缺点是:CPU和外围设备只能串行,设备串行,无法发现和处理由于设备或其
他硬件所产生的错误

中断控制方式:利用向CPU发送中断的方式控制外围设备和CPU之间的数据传送

优点:大大提高了CPU的利用率,支持多道 程序和设备并行

缺点:占用大量CPU时间,中断次数多,发生中断丢失的现象,数据丢失现象

DMA方式:在外围设备和内存之间开辟直接的数据交换通路进行数据传送,

优点:在数据传送开始需要CPU的启动指令,结束时发中断通知CPU进行中断处理之外,
不需要CPU的干涉

缺点:在外围设备越来越多的情况下,多个DMA控制器的同时使用,会引起内存地址的
冲突并使得控制过程进一步复杂

通道方式:使用通道来控制内存或CPU和外围设备之间的数据传送,通道是一个独立于
CPU的专管I/O的机构,控制内存与设备直接进行数据交换,有自己的通道指令。这些指令
受CPU启动,并在操作结束时向CPU发中断信号

优点:减轻CPU的工作负担,增加了并行工作程度

缺点:增加额外的硬件,造价昂贵

 

3. 什么是通道(通道技术)?通道的作用?试画出通道控制方式时的CPU、通道和设备的工作流程

通道是一个独立于CPU的专管I/O的机构,控制内存与设备直接进行数据交换,有自己的通道指令。
这些指令受CPU启动,并在操作结束时向CPU发中断信号

通道的作用:减少中断次数,CPU的工作效率,提高资源的并行程度,完成更多的任务,加快I/O速度

参见网页

 

 

4. 什么是中断?什么叫中断处理?什么叫中断响应?

中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断
当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行的
过程CPU转去执行相应的事件处理程序的过程

CPU收到中断请求后转到相应的事件处理程序

 

5. 什么叫关中断?什么叫开中断?什么叫中断屏蔽?

把CPU内部的处理机状态字PSW的中断允许位清除从而不允许CPU响应中断叫做关中断

设置CPU内部的处理机状态字PSW的中断允许位从而允许CPU响应中断叫做开中断

在中断请求产生之后,系统用软件方式有选择地封锁部分中断而允许其余部分的中断仍能响应

 

6. 什么是陷阱?什么是软中断?试述中断、陷阱和软中断之间的异同

陷阱是指处理机和内存内部产生的中断,它包括程序运算引起的各种错误,如地址非法,效验错,
页面失效,存取控制错,从用户态到核心态的切换等都是陷阱的例子 软中断是通信进程之间用来模拟硬中断的一种信号通信方式

中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断
当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行的过程

 

中断和陷阱的共同点:都是在系统执行期间发生的突发事件,要求CPU改变当前流程去处理,硬件中断,
他们与软中断相同的地方:其中断源发中断请求或软中断信号后,CPU或接收进程在适当的时机进行中断
处理或完成软中断信号所对应的功能。

不同点:1) 中断与陷入的优先级由系统设置,有区别 2)陷入通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关 的中断源引起

3)陷入处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的

4)中断只能在指令之间被响应,而陷入可以在一条指令执行中被响应

5)陷入处理程序在各自的堆栈上进行,中断处理程序则在系统堆栈环境中进行

软中断与他们的不同点,是处理机处理的时机决定于接受软中断信号的进程,如果占有处理机,与中断处
理相同,否则相应的处理必须等到接收进程得到处理机才能响应。

 

7. 描述中断控制方式时的CPU动作过程

(1)CPU检查响应中断的条件是否满足。如果中断响应条件不满足,则中断处理无法进行

(2)如果CPU响应中断,则CPU关中断

(3)保存被中断的进程现场

(4)分析中断原因,调用中断处理子程序

(5)执行中断处理子程序

(6)退出中断,恢复被中断进程的现场或调度新进程占据处理机

(7)开中断,CPU继续执行

 

8. 什么是缓冲?为什么要引入缓冲?

缓冲即是使用专用硬件缓冲器或在内存中划出一个区域用来暂时存放输入输出数据的器件

引入缓冲是为了匹配外设和CPU之间的处理速度,减少中断次数和CPU的中断处理时间,同时
解决DMA或通道方式时的数据传输瓶颈问题

 

9. 用于设备分配的数据结构有哪些?他们之间的关系是什么?

用于设备分配的数据结构有:设备控制表DCT,系统设备表SDT,控制器表COCT

通道控制表CHCT

 

SDF整个系统一张,每个设备有一张DCT,每个控制器有一张COCT,SDF中有一个DCT指针,
DCT中有一个 COCT,COCT中有一个CHCT指针

参看网页

 

10. 什么是I/O控制?它的主要任务是什么?

I/O控制是指对整个I/O操作的控制

主要任务:对用户进程I/O请求命令的处理

进行设备分配,缓冲区分配

启动通道指令程序或驱动程序进行真正的I/O操作

分析中断,响应中断,中断处理

 

11. SPOOLING系统的工作原理

在SPOOLING系统中,多台外围设备通过通道或DMA器件和主机与外存连接起来,作业的输入输出
过程由主机中的操作系统控制。操作系统中的输入程序包含两个独立的过程,一个过程负责从外部
设备把信息读入缓冲区,另一个过程是写过程,负责把缓冲区中的信息送入外存输入井中。

在系统输入模块收到输入作业输入请求后,输入管理模块中的读过程负责将信息从输入装置读入缓冲区。
当缓冲区满时,由写过程将信息从缓冲区写到外存输入井中。读过程和写过程反复循环,直到一个作业
输入完毕。当读过程读到一个硬件结束标志后,系统再次驱动写过程把最后一批信息写入外存并调用中
断处理程序结束该次输入。

 

12.I/O控制可用哪几种方式实现?各有什么优缺点?

作为请求I/O操作的进程实现,作为当前进程的一部分实现,由专门的系统进程-I/O进程

第一种方式能很快地占据处理机,但要求系统和I/O操作的进程应具有良好的实时性。

第二种方式不要求系统具有高的实时性,但I/O操作要由当前进程负责

第三种方式增加了一个额外的进程开销,但用户不必关心I/O控制过程

 

13.设备驱动程序是什么?为什么要有设备驱动程序?用户怎样使用驱动程序?

设备驱动程序是驱动外部物理设备和相应DMA控制器或I/O控制器等器件,使之可以直接和内存进行I/O
操作的子程序的集合。

它们负责设置相应设备有关寄存器的值,启动设备进行I/O操作,指定操作的类型和数据流向等。设备驱
动程序屏蔽了直接对硬件操作的细节,为编程者提供操纵设备的友好接口

用户通过调用设备驱动程序提供的接口来使用设备驱动程序

 

14.试述对缓冲队列EM,IN和OUT采用最近最少使用酸法对改善I/O操作性能有什么好处?

采用最近最少使用算法可以保留那些在最近一段时间内使用次数较多的缓冲区,而这些缓冲区继续使用的
可能性比较大,从而可以减少缓冲区分配和回收的次数,避免了频繁的分配、回收操作,可以改善I/O操作的性能。

 

PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP

 

我眼中的南京和杭州

注:虽然是去年写的文章了,但是因为小百合众所周知的原因,一直没有公开发帖,现在
有机会,想想还是发了吧,谁知道以后会怎么样呢?


  在中国,从古至今,曾经出现过无数的著名城市。悠久如西安,宏大如北京,羞涩如
苏州,艳丽如扬州,秀丽如桂林,宜人如大连,莽撞如上海,繁华如香港。然而,上海和
香港都太过于年轻;西安和北京,除了城市,还是城市;而桂林和大连,除了山水还是山
水;两者都不缺的扬州和苏州,缺少的是一种应有的大气。真正把历史和自然山水完美融
合在一起的,唯有南京和杭州。
  南京城和杭州城都依山傍湖,紧邻大江,自古以来都是江南繁华之地,同为全国六大
古都(注:长期以来,我国一直有六大古都之说,直到1988年,在河南省安阳市召开了中国
古都学会常务理事会会议,才把安阳市列为中国古都之一,这样中国有了七大古都之说),
如今又分别是中国出产院士数最多的两省的省会。更为巧合的是,把一张杭州地图和一张
南京地图放在一起,将其中的一张旋转180度,可以看到两张地图的惊人相似:钱塘江和长
江,西湖和玄武湖,西湖风景区的群山和钟山风景区的山,江、湖、山的分布几乎如出一
辙。
  如此耀眼的历史和如此优越的自然条件,足以令其它众多的城市羡慕不已。
  再进一步来说,南京和杭州又不尽相同。
  同样是湖和山,南京以山胜,而杭州以湖明。南京因为紫金山而成其“虎踞龙盘”之
势,杭州因为西湖而闻名于千里之外。事实上,很多人根本不知道在南京城里还有一个和
西湖湖面面积相当的玄武湖;而在杭州,西湖风景区的群山却要以西湖来为自己命名。没
有了钟山,南京不再是南京;没有了西湖,杭州也不再成其杭州。
  由于分别秉承了山的秀气和湖水的灵气,南京的历史和杭州的历史也有着极大的差异
。名山适合埋忠骨,而秀水可以用来养诗性。南京的历史,主要是政治史;而杭州的历史
,主要是文化史。不管是秦淮河中飘荡的歌声,还是明故宫总统府的森严围墙,还是中华
门外雄健的避邪,无不彰显着那个朝代的痕迹。而在杭州,无论是曾经镇压白娘子的雷锋
塔,还是由两位大文豪主持修建的长堤,还是永远香火缭绕的灵隐寺,都主要和文化有关

  这也造就了两个城市之间截然不同的气质和命运。由于山的豪情和忧郁,南京虽然地
处江南,但是政治地位的显赫让南京成了最具北方城市风格的江南城市(相对应的是,扬
州是最具江南风格的江北城市);而由于水的柔情和妩媚,地处江南的杭州则于苏州一道
成了江南的代名词。
  据说南京是中国做过首都次数最多的城市(我没有认真研究过历史),虽然这些朝代
都很短命。显赫的王权带给了南京无比的荣耀(就算在今天,虽只为副省级城市,南京在
国内也是政治地位很高的城市,超过了直辖的天津和重庆,更远在杭州之上),也给南京
人民带来了深深的灾难。南京恐怕也是被屠城次数最多的城市吧!远的不说,近代以来留
给我们的就有太平天国时期以及抗日战争时期的两次大规模的血腥记忆。南京的陵墓也太
多太密,从明孝陵到中山陵再到雨花台,几乎遍布了整个城市。走在南京城的大街小巷上
,常常让我感觉到一种说不出的压抑和阴冷,而南京的夜晚更是黑暗的可怕(这当然不是
指南京没有路灯)。
  而杭州虽然也处处都有遗迹、典故,却绝对不会给我们如此沉重的心理压力。白娘子
的动人传说,苏小小的低声吟唱,虽然不无凄凉,但是并不悲壮,更无血腥。至于苏东坡
的“欲把西湖比西子,淡妆浓抹总相宜”,林和靖的“疏影横斜水清浅,暗香浮动月黄昏
”以及柳永的“有三秋桂子,十里荷花”更是把杭州推向了文人心中的至美之地。在杭州建
都的南宋虽然柔弱,可是也击毙了让欧人恐慌万分称之为上帝之鞭的蒙哥大汗,而且南宋
时期的临安留给我们更多的是不无艳丽甚至浪漫的想象。与南京的“商女不知亡国恨,隔
江犹唱后庭花”不同,杭州古巷里面飘出来的是“小楼一夜听春雨,深巷明朝卖杏花”的
唯美诗句。
  深重的灾难让南京成了在中国堪称最具悲情的城市,这是南京的荣光,却也日渐成了
南京的现实的负担。根植于南京的魏晋名士的风骨和《红楼梦》的多情至今仍让无数人向
往,但是太多的血腥记忆让南京和南京人几乎不堪重负。这种悲情的历史基因早已深深的
浸入当地人骨子里的,而且,南京的这种氛围不断地同化着一代又一代的外来人口,而不
是被他们改变。
  如果说南京的历史是铁与血,那么杭州的历史更多的是情和泪。如果说南京市座男性
化的城市,那么杭州则是十分女性化的城市。南京摔不开厚重的历史包袱,更象一个缓慢
、厚重的老人。而杭州虽然也有悠久的历史,可是这历史本身并没有给杭州太大的压力,
更加没有成为前进的负担,所以杭州更象是一个轻快、艳丽的青年。
  在新一轮的经济竞争中,南京无疑相对衰弱了,既比不上南方的深广,也不如省内的
苏锡,这是南京的尴尬。而在官方的视野中向来不能进入全国十大城市阵营的杭州在经济
发展中却蒸蒸日上,杭州民间的富裕程度已远在南京之上。在杭州近郊,是成片的农民建
造的别墅,而在南京近郊,和广大的中西部农村没有太大的区别。更为重要的是,两地人
民在经济、创业的观念上面的差距也越来越大。

  如果说上海是个十里洋场中的艳丽女子,苏州是个流水人家中的小家碧玉,那么杭州
则是吃西湖藕粉长大的大家闺秀。杭州的美不仅在于西湖和那些充满诗意的地名上面,更
在于“上有天堂,下有苏杭”等等关于杭州的美丽诗句带给人们的无尽的想象。但是往往
太过于美好的东西不能太过于亲近,杭州就是这样。来自西湖的款款的醉人的微风,在让
人心襟荡漾的的同时,也往往消磨了人的斗志。如今的杭州房价太高,夏天太热,改造之
后的西湖南线虽然漂亮,但是太过于奢靡,这一切让我感到了对这座城市的陌生。

  而反观南京,虽然有种种不如意,事实上还是有很多可爱的地方的。南京虽然做了很
多年的首都,但是南京还是十分的平实和包容的,南京人整体上也比较朴实和厚道,客观
的说,南京并不排外。相比于北京人的自命不凡,上海人的精明算计以及天津人的油嘴滑
舌,南京人实在更为亲切可爱。相比于苏州的侬侬软语,南京人说话也不算好听,当街对
骂也是常见的事情。然而听的久了,却感觉南京的口音听起来特别的亲切,骂归骂,南京
人骨子里还是较为纯朴的。南京向来为著名的“四大火炉”之一,每到夏天,天气依然很
热。但是事实上,南京的夏天的炎热早已被杭州所超越。想来遍布南京城的高大的法国梧
桐多少也带给人们些许的荫凉。大学空闲的时候,最爱看的就是南京的三毛钱一份的小报
,而实惠的鸭血粉丝也总能让我吃的津津有味。
  在南京的大学四年的生活虽然没有带给我太大的惊喜,可是也有不少的收获。那么多
的同学的友情,是我的至为宝贵的精神财富,而南大的老师的声声教诲,注定会让我受益
无穷。有机会还是想回南京和学校去看看。

  不管怎么说,南京和杭州都是我所喜爱的城市。
  在新的千年,祝福南京,也祝福杭州。

 

PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP

嵌入式人才的发展方向!你定好自己的方向了吗?
嵌入式人才的发展方向!
嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。

嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类。

一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support
Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。

另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有“花头“可做的),所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。

从事嵌入式软件开发的好处是:
(1)
目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。
(2)
与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。搞企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。相比而言,搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事。所开发的产品通常是通用的,不会因客户的不同而修改。一个产品型号开发完了,往往有较长一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专业技术范围就是那些(ARM、RTOS、MPEG、802.11等),时间长了这些东西会越搞越有经验,卖卖老本,几句指导也够让那些初入道者琢磨半年的。若搞应用软件,可能下一个客户要换成一个完全不同的软件开发平台,那就苦了。
(3)
哪天若想创业,搞自已的产品,那么嵌入式是一个不错的主意,这可不像应用软件那样容易被盗版。土木学院有一个叫启明星的公司开发出一个好象叫“工程e”的掌上PDA(南校区门口有广告),施工技术人员用该PDA可当场进行土木概预算和其它土木计算,据说销路特好。我认识的某大学老师,他开发的饭馆用的点菜PDA(WinCE平台,可无线连网和上网),据他说销路不错,饭馆点点PDA让客户点菜,多显派头档次。我记得00级2+2班当年有一组同学在学Windows程序设计课程时用VC++设计了一个功能很强的点菜系统做为课程项目,当时真想建议他们将这个软件做成PDA,估计会有些销路(上海火车站南广场的Macdonald便使用很漂亮的PDA给用户点食品,像摸像样的)。这些PDA的硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。

从事嵌入式软件开发的缺点是:
(1)
入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。
(2)
这方面的企业数量要远少于企业计算类企业。特别是从事嵌入式的小企业数量较多(小企业要搞自己的产品创业),知名大公司较少(搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半导体、Microtek、研华、华为、中兴通信、上广电等制造类企业)。这些企业的习惯思维方式是到电子、通信等偏硬专业找人。由于我院以前毕业生以企业计算为主,所以我院与这些企业联系相对较少。我院正积极努力,目前已与其中部分公司建立了联系,争取今后能有我院同学到这些企业中实习或就业。
(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。

我院同学若学习嵌入式,显然应偏重于嵌入式软件,特别是嵌入式操作系统方面,应是我们的强项。对于搞嵌入式软件的人,最重要的技术显然是(实际上很多公司的招聘广告上就是这样写的):
(1) 掌握主流嵌入式微处理器的结构与原理
(2) 必须掌握一个嵌入式操作系统
(3) 必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。

嵌入式软件方面最重要的课程包括:
(1)
嵌入式微处理器结构与应用:这是一门嵌入式硬件基础课程,我院用这门课取代了传统的“微机原理与接口”课程(目前国内已有少部分高校IT专业这样做了,因为讲x86微机原理与接口很难找到实际用处,只为教学而已)。我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书
(xxx
Specification),您必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。有些同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因,等我们的嵌入式实验室10月份建好后,您做了一些实验后就会觉得看得见摸得着。还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前主要还要靠汇编写程序(我看到过很多公司是这样做的)。当您在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的(我就遇到过),这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时您就必须看懂汇编程序,否则软硬件人员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。

(2) 嵌入式操作系统类课程
除了WinCE的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统Real Time
Operating
System.从事嵌入式的人至少须掌握一个嵌入式操作系统(当然掌握两个更好),这在嵌入式的所有技术中是最为关键的了。目前最重要的RTOS主要包括:

第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。Vxworks因出现稍早,实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等,所以在北美,Vxworks占据了嵌入式系统的多半疆山。特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks莫属。Vxworks的很多概念和技术都和Linux很类似,主要是C语言开发。像Bell-alcatel、Lucent、华为等通信企业在开发产品时,Vxworks用得很多。但Vxworks因价格很高,所以一些小公司或小产品中往往用不起。目前很多公司都在往嵌入式Linux转(听说华为目前正在这样转)。但无论如何,Vxworks在一段长时间内仍是不可动摇的。与Vxworks类似的稍有名的实时操作系统还有pSOS、QNX、Nucleus等RTOS。

第二类、嵌入式Linux操作系统:Linux的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。Linux本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。目前应用在嵌入式领域的Linux系统主要有两类:一类是专为嵌入式设计的已被裁减过的Linux系统,最常用的是uClinux(不带MMU功能),目前占较大应用份额,可在ARM7上跑;另一类是跑在ARM
9上的,一般是将Linux
2.4.18内核移植在其上,可使用更多的Linux功能(当然uClinux更可跑在ARM
9上)。很多人预测,嵌入式Linux预计将占嵌入式操作系统的50%以上份额,非常重要。缺点是熟悉Linux的人太少,开发难度稍大。另外,目前我们能发现很多教材和很多大学都以ucOS/II为教学用实时操作系统,这主要是由于ucOS/II较简单,且开源,非常适合入门者学习实时操作系统原理,但由于ucOS/II功能有限,实用用得较少,所以我院不将其作为教学重点,要学习就应学直接实用的,比如
uClinux就很实用。况且熟悉了Linux开发,不仅在嵌入式领域有用,对开发Linux应用软件,对加深操作系统的认识也有帮助,可谓一举多得。据我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式开发,Fujitum则是在自己的处理器上大搞Linux开发。目前在嵌入式Linux领域,以下几个方面的人特别难找,一是能将Linux移植到某个新型号的开发版上;二是能写Linux驱动程序的人;三是熟悉Linux内核裁减和优化的人。我院在该嵌入式Linux方面的课程系列是:本科生操作系统必修课,然后是Linux程序设计选修课,最后是嵌入式Linux系统选修课。我院在Linux方面目前已有较强力量,魏老师和张老师熟悉Linux开发,金老师和唐老师熟悉Linux系统管理。

第三类、 Windows
CE嵌入式操作系统:Microsoft也看准了嵌入式的巨大市场,MS永远是最厉害的,WinCE出来只有几年时间,但目前已占据了很大市场份额,特别是在PDA、手机、显示仪表等界面要求较高或者要求快速开发的场合,WinCE目前已很流行(据说有一家卖工控机的公司板子卖得太好,以至来不及为客户裁减WinCE)。WinCE目前主要为4.2版(.NET),开发平台主要为WinCE Platform Builder,有时也用EVC环境开发一些较上层的应用,由于WinCE开发都是大家熟悉的VC++环境,所以我院学过Windows程序设计课程的同学都不会有多大难度,这也是WinCE容易被人们接受的原因,开发环境方便快速,微软的强大技术支持,WinCE开发难度远低于嵌入式Linux。对于急于完成,不想拿嵌入式Linux冒险的开发场合,WinCE是最合适了(找嵌入式Linux的人可没那么好找的),毕竟公司不能像学生学习那样试试看,保证开发成功更重要。根据不同的侧重点 ,WinCE还有两个特殊版本,一个是MS PocketPC操作系统专用于PDA上(掌上电脑),另一个是MS SmartPhone操作系统用于智能手机上(带PDA功能的手机),两者也都属于WinCE平台。在PDA和手机市场上,除WinCE外,著名的PDA嵌入式操作系统还有Palm OS(因出现很早,很有名)、Symbian等,但在WinCE的强劲冲击下,Palm和Symbian来日还能有多长?我院可能是全国高校中唯一一家开设专门的“Windows CE嵌入式操作系统“课程的学校,这主要是基于以下原因:我院本身前面便有Windows程序设计课程,同学学过VC++后再学WinCE,非常方便自然,通过学习WinCE同样也可了解嵌入式软件的一般开发过程,对Linux有惧怕心理的同学也很合适。很显然,嵌入式Linux永远不可能替代WinCE,而且将来谁占份额大还很难讲,毕竟很多人更愿意接受MS的平台,就像各国政府都在大力推LINUX已好长时间,但您能看到几个在PC机上真正使用LINUX的用户?据我观察,目前在嵌入式平台上,LINUX是叫得最响,但还是WinCE实际用得更多.嵌入式LINUX可能更多地是一些有长远产品计划的公司,为降低成本而进行长远考虑;
二是微软亚洲研究院对我院WinCE课程的支持计划,我们也很希望将来我院能有同学通过微软的面试去实习。WinCE和多媒体(如MPEG技术)是微软亚洲工程院目前做得较多的项目领域之一,他们很需要精通WinCE的人。

总结关于嵌入式操作系统类课程,若您觉得自己功底较深且能钻研下去,则可去学嵌入式Linux;若您觉得自己VC++功底较好且想短平快地学嵌入式开发,则我院的WinCE课程是最好的选择。

(3) 嵌入式开发的其它相关软件课程

搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎。主要的相关领域包括:
A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG编解码算法和技术,如DVD、MP3、PDA、高精电视、机顶盒等都涉及MPEG高速解码问题。为此,我院已预订了一位能开设数字图像处理课程的博士。
B、通信协议及编程技术:这包括传统的TCP/IP协议和热门的无线通信协议。首先,大多数嵌入式设备都要连入局域网或Internet,所以首先应掌握TCP/IP协议及其编程,这是需首要掌握的基本技术;其次,无线通信是目前的大趋势,所以掌握无线通信协议及编程也是是很重要的。无结通信协议包括无线局域网通信协议802.11系列,Bluetooth,以及移动通信(如GPRS、GSM、CDMA等)。
C、网络与信息安全技术:如加密技术,数字证书CA等。我院有这方面的选修课。
D、DSP技术:DSP是Digital Signal
Process数字信号处理的意思,DSP处理器通过硬件实现数字信号处理算法,如高速数据采集、压缩、解压缩、通信等。数字信号处理是电子、通信等硬件专业的课程,对于搞软件的人若能了解一下最好。目前DSP人才较缺。如果有信号与系统、数字信号处理等课程基础,对于学习MPEG编解码原理会有很大帮助。

(4)嵌入式开发的相关硬件基础

对于软件工程专业的学生,从事嵌入式软件开发,像数字电路、计算机组成原理、嵌入式微处理器结构等硬件课程是较重要的。另外,汇编语言、C/C++、数据结构和算法、特别是操作系统等软件基础课也是十分重要的。我们的主要目地是能看懂硬件工作原理,但重点应是在嵌入式软件,特别操作系统级软件,那将是我们的优势。
我们的研究生里有些是学电子、通信类专业过来的,有较好的模拟电路和单片机基础,学嵌入式非常合适。嵌入式本身就是从单片机发展过来的,只是单片机不带OS,而现在很多嵌入式应用越来越复杂,以至不得不引入嵌入式操作系统。另外,为追求更高速的信号处理速度,现在在一些速度要求较高的场合,有不少公司是将一些DSP算法,如MPEG压缩解压缩算法等用硬件来实现,这就涉及到HDL数字电路设计技术及其FPGA/IP核实现技术,这方面的人目前市场上也很缺。

题外话
另外,能写驱动程序的人目前是非常紧缺的(驱动程序也可归于嵌入式范畴),包括桌面Windows中的DDK开发环境和WDM驱动程序。公司每时每刻都要推出新产品,每一个新产品出来了,要能被操作系统所使用,是必须写驱动程序的。写驱动程序就必须掌握操作系统(如Windows或Linux)的内部工作原理,还涉及到少量硬件知识,难度较大,所以这方面的人很难找。想成为高手的同学,也可从驱动程序方面获得突破。我可说一下自己的经历,三年前我曾短暂地在一家公司写过WinCE驱动程序(正是因为知道这方面的人紧缺,所以才要做这方面的事),尽管那以前从未做过驱动程序,应聘那个职位时正是看准了公司是很难招聘到这方面的人,既然都找不到人,驱动还得有人做,这正是可能有机会切入这一领域的大好机会。面试时大讲自己写过多少万行汇编程序,对计算机工作原理如何清楚,简历中又写着我曾阅读完两本关于Windows Driver Model的两本英文原版书,写过几个小型的驱动程序练习程序(其实根本没写过,我们的同学将来千万不要像我这样,早练就些过硬功夫,就不至于沦落到我这等地步,就不用像我那样去“欺骗”公司了,我这是一个典型的反面教材),居然一切都PASS(当然最重要的是笔试和面试问题还说得过去),这只能说明这一领域找人的困难程度。公司本就未指望找到搞过驱动的人,找个有相关基础的人就算不错了。做了以后,发现也并不是怎样难的。其实搞驱动程序的工作是很舒服的,搞完一个版本就会空一段时间,只有等公司新的芯片推出或新的OS出现后,才需要再去开发新一版驱动,那时有将近一个月时间空闲着在等WinCE .NET Beta版推出,准备将驱动程序升级到CE .NET上,现在在软件学院工作整日忙,无限怀念那段悠闲时光。

很巧合,最近本人无意中再次体会到了嵌入式的迷人之处。上周我那用了3年的手机终于不能WORK了。此次更新,除要求有手机常见功能外,最好有MP3功能(现在很多英语听力都有MP3文件),最好有英汉词典,最好还能读WORD文档。最后选了个满足以上条件的最便宜的手机DOPOD 515(斩了我2.2K,但想想这也算自己对嵌入式事业的支持,这样便也想开了),算得上最低档的智能手机了。回来一查,手机的about显示,本手机Processor是ARM,其OS是MS Smartphone(即WinCE .NET 4.2),这么巧合,简直可做为学习嵌入式课程的产品案例了(等我们的WinCE课程开得有声有色后,希望能从微软研究院搞些Smartphone来开发开发)。有OS的手机果然了得,金山词霸、WORD、EXCEL、REGEDIT等居然都有smartphone版的,PC上的MP3、DOC等居然在download时都可被自动转换成smartphone格式,真是爽。完全可用Windows CE自己开发一些需要的程序download到自己的手机上。现在市面销售PDA智能手机火爆,MS总是财源滚滚。但我已发现国产的ARM+LINUX手机出现在市面上,价格只1.2K。

在GOOGLE网上能搜索太多的关于嵌入式系统的讨论了,我刚发现一个http://www.embyte.com非常不错,有很多有经验者谈自己的体会,投入到其中的论坛中,你会切身感到嵌入式学习的热潮。

要么走ARM+WinCE,要么走ARM+LINUX,要么走ARM+VXWORKS。每个搞嵌入式的人都可选一条路,条条大路通罗马
 
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP

MPEG技术、无线通信协议,802.11
搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半导体、Microtek、研华、华为、中兴通信、上广电等制造类企业

目前在嵌入式Linux领域,以下几个方面的人特别难找,
一是能将Linux移植到某个新型号的开发版上;
二是能写Linux驱动程序的人;
三是熟悉Linux内核裁减和优化的人。

 


嵌入式开发的其它相关软件课程
搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎。主要的相关领域包括:
A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG编解码算法和技术,如DVD、MP3、PDA、高精电视、机顶盒等都涉及MPEG高速解码问题。为此,我院已预订了一位能开设数字图像处理课程的博士。
B、通信协议及编程技术:这包括传统的TCP/IP协议和热门的无线通信协议。首先,大多数嵌入式设备都要连入局域网或Internet,所以首先应掌握TCP/IP协议及其编程,这是需首要掌握的基本技术;其次,无线通信是目前的大趋势,所以掌握无线通信协议及编程也是是很重要的。无结通信协议包括无线局域网通信协议802.11系列,Bluetooth,以及移动通信(如GPRS、GSM、CDMA等)。
C、网络与信息安全技术:如加密技术,数字证书CA等。我院有这方面的选修课。
D、DSP技术:DSP是Digital Signal
Process数字信号处理的意思,DSP处理器通过硬件实现数字信号处理算法,如高速数据采集、压缩、解压缩、通信等。数字信号处理是电子、通信等硬件专业的课程,对于搞软件的人若能了解一下最好。目前DSP人才较缺。如果有信号与系统、数字信号处理等课程基础,对于学习MPEG编解码原理会有很大帮助。

对于软件工程专业的学生,从事嵌入式软件开发,像数字电路、计算机组成原理、嵌入式微处理器结构等硬件课程是较重要的。另外,汇编语言、C/C++、数据结构和算法、特别是操作系统等软件基础课也是十分重要的。我们的主要目地是能看懂硬件工作原理,但重点应是在嵌入式软件,特别操作系统级软件,那将是我们的优势。

 

PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP

主板常见故障处理全攻略
作者:itlove  来源:本站原创  发布时间:2005-8-30 7:39:39  发布人:admin
<script language="javascript" type="text/javascript"> var newasp_fontsize=9; var newasp_lineheight=12; function do_color(vobject,vvar) { document.getElementById(vobject).style.color=vvar; } </script>

<script src="/adfile/wenzhang.js" type="text/javascript"></script>

  在电脑的所有配件中,主板是决定计算机整体系统性能的一个关键性部件,好的主板可以让电脑更稳定地发挥系统性能,反之,系统则会变得不稳定。实际上主板本身的故障率并不是很高,但由于所有硬件构架和软件系统环境都是搭在这块板子上,而且我们很多的情况下也是凭借主板发出的信息来判断其他设备存在的故障。所以掌握了它,你就会发现——解决电脑故障的方法就在您的身边!

  一、开机自检与开机故障的处理

  喜爱电脑的朋友们都会知道,计算机启动过程是个很复杂的过程。在我们按下起动键时,供电电压还是不稳定的,主板控制芯片组会向CPU发出一个RESET信号,让CPU初始化。当电源稳定供电后,芯片组便撤去RESET信号,CPU马上就从地址FFFF0H处开始执行指令,这个地址在系统BIOS的地址范围内,无论是Award BIOS还是AMI BIOS,放在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处。系统BIOS的启动代码首先要做的事情就是进行POST(加电自检)。POST的主要任务是检测系统中的一些关键设备是否存在和能否正常工作,如内存和显卡等。如果这个时候系统的喇叭发出的不是一声清脆的“嘀”声,那就有可能是内存条或是显示卡等出故障了。具体的错误一般可以从警报声的长短和次数来判断。比如目前最常见的Award BIOS开机鸣叫声的具体意义如下,供大家参考:

  1短: 系统正常启动

  2短: 常规错误,请进入CMOS SETUP重新设置不正确的选项

  1长1短:RAM或主板出错。

  1长2短:显示器或显示卡错误。

  1长3短: 键盘控制器错误。

  1长9短: 主板Flash RAM或EPROM错误,BIOS损坏。

  重复长响:内存条未插紧或损坏。

  不停地响:电源,显示器未和显示卡连接好。

  重复短响:电源有问题

  如果BIOS自检没有问题的话,多数电脑开机画面将有两到三屏,其中第一屏为显卡的相关信息,如生产厂商、图形芯片类型、显存容量等内容,如果此处显示的信息与显卡标称的指标有异,那么显卡很可能存在问题。第二屏显示的信息比较多,有内存自检数值、BIOS信息(系统BIOS的类型、序列号和版本号等内容)、主板信息代码等,如果内存存在质量问题,会在这里有提示。第三屏画面上半部分的框中会显示电脑的主要配置,而下面将显示PCI插槽中设备IRQ等信息。如果一切正常,在显示完第三屏画面后将启动操作系统。这时最常出现的不能启动故障就是找不到硬盘。除线路接触不好外,一般找不到硬盘的原因,主要是硬盘物理损坏,但有时也会有因硬盘主引导区信息被病毒破坏而导致的原因。

   另外,由于现在CPU发热量非常大,所以许多主板都提供了严格的温度监控和保护装置。一般CPU温度过高,或主板上的温度监控系统出现故障,主板就会自动进入保护状态。拒绝加电启动,或报警提示。往往由于主板温度监控线的脱落,而导致主板自动进入保护状态,拒绝加电。所以当你的主板无法正常启动或报警时,先检查下主板的温度监控装置是否正常才对。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值