CN1828545A - 嵌入式操作系统输入输出设备软件化方法 - Google Patents

嵌入式操作系统输入输出设备软件化方法 Download PDF

Info

Publication number
CN1828545A
CN1828545A CN 200610050257 CN200610050257A CN1828545A CN 1828545 A CN1828545 A CN 1828545A CN 200610050257 CN200610050257 CN 200610050257 CN 200610050257 A CN200610050257 A CN 200610050257A CN 1828545 A CN1828545 A CN 1828545A
Authority
CN
China
Prior art keywords
input
output
software
output device
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200610050257
Other languages
English (en)
Other versions
CN100377093C (zh
Inventor
陈天洲
胡威
蒋宁
严力科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CNB2006100502573A priority Critical patent/CN100377093C/zh
Publication of CN1828545A publication Critical patent/CN1828545A/zh
Application granted granted Critical
Publication of CN100377093C publication Critical patent/CN100377093C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种嵌入式操作系统输入输出设备软件化方法。在访问输入输出设备时,往往用采用软件化的方法,抽象出硬件特征,方便操作系统的管理与使用。本发明使用分层机制,根据硬件的相关性,将硬件的软件组织合理分层,使输入输出设备与用户无关,有效解决了访问设备时的错误处理,同步、异步传输以及访问独占性外围设备和共享性外围设备。能够及时处理用户对输入输出设备的请求,保证了硬件资源的合理分配和高度可靠性。本发明对嵌入式系统环境,尤其是面向嵌入式系统的嵌入式操作系统,有重大意义。

Description

嵌入式操作系统输入输出设备软件化方法
技术领域
本发明涉及基于因特网的分布式图案协同设计技术,特别是涉及一种图案协同设计中对象锁和区域锁同时存在的复杂加锁方法。
背景技术
现代计算机系统中配置了大量外围设备。一般说,计算机的外围设备分为两大类:一类是存储型设备,如磁带机、磁盘机等。以存储大量信息和快速检索为目标,它在系统中作为主存储器的扩充,所以,又称辅助存储器;另一类是输入输出型设备,如显示器、卡片机、打印机等。它们把外界信息输入计算机,把运算结果从计算机输出。
设备管理是操作系统中最庞杂和琐碎的部分,普遍使用输入输出设备中断、缓冲器管理、通道、设备驱动调度等多种技术,这些措施较好地克服了由于外部设备和主机速度上不配所引起的问题,使主机和外设并行工作,提高了使用效率。但是,在另一方面却给用户的使用带来极大的困难,它必须掌握输入输出设备系统的原理,对接口和控制器及设备的物理特性要有深入了解,这就使计算机推广应用受到很大限制。为了方便地使用各种外围设备。
以上两类外围设备的物理特性各不相同,因此,操作系统对它们的管理也有很大差别。为了使这些设备在用户面前具有统一的格式和一致的面貌,对于存储型设备,信息以文件为单位存取;对于输入输出设备,信息以文件为单位输入输出。这样,用户可以通过“按名存取”文件实现对外围设备的访问,而不必考虑直接控制外围设备时应做的许多繁琐工作。操作系统除了要提供文件系统外,还必须要有实现对外围设备上文件信息的物理存取和设备控制的功能。操作系统中完成这一功能的程序就是设备管理。
发明内容
本发明的目的在于提供一种嵌入式操作系统输入输出设备软件化方法。
本发明解决其技术问题采用的技术方案如下:
将输入输出的软件组织组织成一种层次结构,低层软件屏蔽硬件的具体细节,高层软件向用户提供一个简洁、规范的界面,整个系统分为以下四个部分。
1)用户空间的输入输出设备软件
向用户提供一个一个简洁、规范的操作接口,用于完成用户程序中的输入输出设备操作;
2)与硬件无关的输入输出设备软件
与硬件设备无关软件的基本功能能是执行适用于所有设备的常用I/O功能,并向用户层软件提供一个一致的接口;
3)设备驱动程序
设备驱动程序中包括了所有与设备相关的代码,每个设备驱动程序只处理一种设备,或者一类紧密相关的设备,设备驱动程序的功能是从与设备无关的软件中接收抽象的请求,并执行它;
4)输入输出设备中断处理程序
将中断处理放在操作系统的最底层进行处理,一边其余部分尽可能少地与之发生联系;
当一个进程请求输入输出设备操作时,该进程将被挂起,直到输入输出设备操作结束并发生中断。当中断发生时,中断处理程序执行相应的处理,并解除相应进程的阻塞状态;
输入输出中断的类型和功能如下:
通知用户程序输入输出操作沿链推进的程度,此类中断有程序进程中断;
通知用户程序输入输出操作正常结束,当输入输出控制器或设备发现通道结束、控制结束、设备结束等信号时,就向通道发出一个报告输入输出操作正常结束的中断;
通知用户程序发现的输入输出操作异常,包括设备出错、接口出错、输入输出设备程序出错、设备特殊、设备忙等,以及提前中止操作的原因;
5)访问输入输出设备过程
①用户通过用户空间的输入输出设备软件访问输入输出设备;
②设备无关软件在数据块缓冲区中查找此设备块;
③调用设备驱动程序向硬件发出相应的请求;
④输入输出设备发出中断;
⑤执行中断处理程序。
本发明具有的有益效果是:使用分层机制隐藏底层无关信息,降低访问输入输出设备的复杂度。根据硬件的相关性,将硬件的软件组织合理分层,使输入输出设备与用户无关,有效解决了访问设备时的错误处理,同步、异步传输以及访问独占性外围设备和共享性外围设备。能够及时处理用户对输入输出设备的请求,保证了硬件资源的合理分配和高度可靠性。
附图说明
附图是访问输入输出设备访问层次图。
具体实施方式
在实施一种嵌入式操作系统输入输出设备软件化方法时采用C语言编写。
具体方式如下:
将输入输出的软件组织组织成一种层次结构,低层软件屏蔽硬件的具体细节,高层软件向用户提供一个简洁、规范的界面,整个系统分为以下四个部分:
1)用户空间的输入输出设备软件
向用户提供一个一个简洁、规范的操作接口,用于完成用户程序中的输入输出设备操作。
建立例程库,此类库例程的主要工作是提供参数给相应的系统调用并调用。它们作为用户程序的一部分运行。
建立虚拟设备,有效处理在多道程序系统中的独占设备共享问题。
2)与硬件无关的输入输出设备软件
与硬件设备无关软件的基本功能能是执行适用于所有设备的常用输入输出设备功能,并向用户层软件提供一个一致的接口。
尽管某些输入输出设备软件是设备相关的,但大部分独立于设备。设备无关软件和设备驱动程序之间的精确界限在各个系统都不尽相同。对于一些以设备无关方式完成的功能,在实际中由于考虑到执行效率等因素,也可以考虑由驱动程序完成。
由设备无关软件完成的功能:
对设备驱动程序的统一接口
设备命名
设备保护
提供独立于设备的块大小
缓冲区管理
块设备的存储分配
独占性外围设备的分配和释放
错误报告
设备无关软件的基本功能能是执行适用于所有设备的常用输入输出设备功能,并向用户层软件提供一个一致的接口。
3)设备驱动程序
设备驱动程序中包括了所有与设备相关的代码。每个设备驱动程序只处理一种设备,或者一类紧密相关的设备。设备驱动程序的功能是从与设备无关的软件中接收抽象的请求,并执行它。
执行一条输入输出请求的第一步,是将它转换为更具体的形式。决定应向控制器发送什么命令,这些控制命令发出后有两种可能。在许多情况下,驱动程序需等待控制器完成一些操作,所以驱动程序阻塞,直到中断信号到达才解除阻塞。另一种情况是操作没有任何延迟,所以驱动程序无需阻塞。
对前一种情况,被阻塞的驱动程序须由中断唤醒,而后一种情况下它根本无需睡眠。无论哪种情况,都要进行错误检查。如果一切正常,则驱动程序将数据传送给上层的设备无关软件。最后,它将向它的调用者返回一些关于错误报告的状态信息。如果请求队列中有别的请求则它选中一个进行处理,若没有则它阻塞,等待下一个请求。
4)输入输出设备中断处理程序
将中断处理放在操作系统的最底层进行处理,一边其余部分尽可能少地与之发生联系。
当一个进程请求输入输出设备操作时,该进程将被挂起,直到输入输出设备操作结束并发生中断。当中断发生时,中断处理程序执行相应的处理,并解除相应进程的阻塞状态。
输入输出中断的类型和功能如下:
通知用户程序输入输出操作沿链推进的程度。此类中断有程序进程中断。
通知用户程序输入输出操作正常结束。当输入输出控制器或设备发现通道结束、控制结束、设备结束等信号时,就向通道发出一个报告输入输出操作正常结束的中断。
通知用户程序发现的输入输出操作异常,包括设备出错、接口出错、输入输出设备程序出错、设备特殊、设备忙等,以及提前中止操作的原因。
当输入输出中断被响应后,中断装置交换程序状态字引出输入输出中断处理程序。输入输出中断处理程序状态字中得到产生中断的通道号和设备号,并分析通道状态字,弄清产生中断的输入输出中断事件的原则如下:
①如果是操作正常结束,那么,系统要查看是否有等待该设备或通道者,若有则释放。
②如果由于操作中发生故障或某种特殊事件而产生的中断,那么,操作系统要进一步查明原因,采取相应措施。
操作中发生的故障及其处理的方法有以下几种:
设备本身的故障。
通道程序错。由通道识别的各种通道程序错误。
启动命令的错误。
如果设备在操作中发生了某些特殊事件,那么,在设备操作结束发生中断时,也要将这个情况向系统报告。操作系统从设备状态字节中的设备特殊位为1,可以判知设备在操作中发生了某个特殊事件。
③如果是人为要求而产生的中断,那么,系统将响应并启动外围设备。
④如果是外围设备上来的“设备结束”等异步信号,表示有外围设备接入可供使用或断开暂停使用。操作系统应修改系统表格中相应设备的状态。
5)访问输入输出设备过程
当用户程序试图访问输入输出设备时,通过用户空间的输入输出设备软件提出请求,操作系统来执行此操作,设备无关软件首先在数据块缓冲区中查找此块,若未找到,则它调用设备驱动程序向硬件发出相应的请求。用户进程随即阻塞直到数据块被读出。
输入输出执行完毕后,硬件发出一个中断,它将激活中断处理程序。中断处理程序则从设备获取返回状态值并唤醒睡眠的进程来结束此次输入输出设备请求,并使用户进程继续执行。
①用户通过用户空间的输入输出设备软件访问输入输出设备;
②设备无关软件在数据块缓冲区中查找此设备块;
③调用设备驱动程序向硬件发出相应的请求;
④输入输出设备发出中断;
⑤执行中断处理程序。

Claims (1)

1.一种嵌入式操作系统输入输出设备软件化方法,其特征在于:
将输入输出的软件组织组织成一种层次结构,低层软件屏蔽硬件的具体细节,高层软件向用户提供一个简洁、规范的界面,整个系统分为以下四个部分:
1)用户空间的输入输出设备软件
向用户提供一个一个简洁、规范的操作接口,用于完成用户程序中的输入输出设备操作;
2)与硬件无关的输入输出设备软件
与硬件设备无关软件的基本功能能是执行适用于所有设备的常用I/O功能,并向用户层软件提供一个一致的接口;
3)设备驱动程序
设备驱动程序中包括了所有与设备相关的代码,每个设备驱动程序只处理一种设备,或者一类紧密相关的设备,设备驱动程序的功能是从与设备无关的软件中接收抽象的请求,并执行它;
4)输入输出设备中断处理程序
将中断处理放在操作系统的最底层进行处理,一边其余部分尽可能少地与之发生联系;
当一个进程请求输入输出设备操作时,该进程将被挂起,直到输入输出设备操作结束并发生中断,当中断发生时,中断处理程序执行相应的处理,并解除相应进程的阻塞状态;
输入输出中断的类型和功能如下:
通知用户程序输入输出操作沿链推进的程度,此类中断有程序进程中断;
通知用户程序输入输出操作正常结束,当输入输出控制器或设备发现通道结束、控制结束、设备结束等信号时,就向通道发出一个报告输入输出操作正常结束的中断;
通知用户程序发现的输入输出操作异常,包括设备出错、接口出错、输入输出设备程序出错、设备特殊、设备忙等,以及提前中止操作的原因;
5)访问输入输出设备过程
①用户通过用户空间的输入输出设备软件访问输入输出设备;
②设备无关软件在数据块缓冲区中查找此设备块;
③调用设备驱动程序向硬件发出相应的请求;
④输入输出设备发出中断;
⑤执行中断处理程序。
CNB2006100502573A 2006-04-07 2006-04-07 嵌入式操作系统输入输出设备软件化方法 Expired - Fee Related CN100377093C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100502573A CN100377093C (zh) 2006-04-07 2006-04-07 嵌入式操作系统输入输出设备软件化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100502573A CN100377093C (zh) 2006-04-07 2006-04-07 嵌入式操作系统输入输出设备软件化方法

Publications (2)

Publication Number Publication Date
CN1828545A true CN1828545A (zh) 2006-09-06
CN100377093C CN100377093C (zh) 2008-03-26

Family

ID=36946956

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100502573A Expired - Fee Related CN100377093C (zh) 2006-04-07 2006-04-07 嵌入式操作系统输入输出设备软件化方法

Country Status (1)

Country Link
CN (1) CN100377093C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107247608A (zh) * 2017-05-31 2017-10-13 河南思维轨道交通技术研究院有限公司 一种具有应用软件硬件地址无关性的操作系统实现方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4695945A (en) * 1985-02-28 1987-09-22 International Business Machines Corporation Processor I/O and interrupt filters allowing a co-processor to run software unknown to the main processor
US4903200A (en) * 1988-12-12 1990-02-20 Mueller And Smith, Lpa Point of sale apparatus
US5819112A (en) * 1995-09-08 1998-10-06 Microsoft Corporation Apparatus for controlling an I/O port by queuing requests and in response to a predefined condition, enabling the I/O port to receive the interrupt requests
JPH1021094A (ja) * 1996-07-08 1998-01-23 Mitsubishi Electric Corp リアルタイム制御方式
JPH10260847A (ja) * 1997-03-21 1998-09-29 Mitsubishi Electric Corp 入出力ドライバの管理方式
US6574680B1 (en) * 1999-12-29 2003-06-03 Intel Corporation Device and method to enable interrupt handling and control for mass storage devices interfacing to different controllers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107247608A (zh) * 2017-05-31 2017-10-13 河南思维轨道交通技术研究院有限公司 一种具有应用软件硬件地址无关性的操作系统实现方法

Also Published As

Publication number Publication date
CN100377093C (zh) 2008-03-26

Similar Documents

Publication Publication Date Title
CN1208722C (zh) 监视和处理数据处理系统中相关线程事件的方法和设备
CN100342342C (zh) 支持多进程的Java虚拟机实现方法
TWI386814B (zh) 具動態工作管理能力之多處理器界面及其程式載卸方法
US9448857B2 (en) Memory access method for parallel computing
CN1266590C (zh) 面向构件基于系统内核的进程池/线程池管理方法
CN102027453B (zh) 用于在虚拟环境中优化中断处理的系统和方法
CN1582428A (zh) 用于在非均衡存储器存取计算机系统中调度任务的方法和设备
CN1667597A (zh) 资源管理装置
CN1794177A (zh) 用于为虚拟机揭示处理器拓扑结构的系统和方法
CN1702622A (zh) 用于校正管理程序工作的分布的系统
CN1655129A (zh) Windows平台下动态管理存储资源的通用方法
TW201112118A (en) Mapping processing logic having data-parallel threads across processors
CN1904873A (zh) 嵌入式实时操作系统中多核处理器的核间通信方法及装置
CN1774699A (zh) 共享资源的并发访问
CN1828541A (zh) Java操作系统中定时任务的实现方法
CN100346307C (zh) Java操作系统中实时任务调度的实现方法
CN1869959A (zh) 一种多用户共享计算机内设和外设的系统
Fujiki et al. Near-memory data transformation for efficient sparse matrix multi-vector multiplication
TWI615775B (zh) 因應服務質量的固態硬碟存取方法以及使用該方法的裝置
CN106789337A (zh) 一种kvm的网络性能优化方法
CN101840391B (zh) 一种电子支付系统双处理器子系统间通信及其调用方法
CN1955890A (zh) 一种提高hid设备通讯速度的方法
CN1828545A (zh) 嵌入式操作系统输入输出设备软件化方法
US8689222B2 (en) Controlling priority of multi-threaded hardware resources by system calls
CN1825288A (zh) 嵌入式sram操作系统进程多队列调度的实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080326

Termination date: 20120407