0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Windows应用程序,操作系统,计算机硬件之间的相互关系

DuaO_fpga234 来源:未知 作者:李倩 2018-06-29 08:49 次阅读

做底层硬件嵌入式的不愿去懂上层PC软件,而做上层PC软件的又不愿去懂底层硬件,做FPGA不懂FPGA逻辑属硬软核处理器属软。现在,HLS的出现,让FPGA本属于硬件HDL的开发慢慢变成HLS的软件开发,有种当年汇编开发走向C开发的感觉。目前,各大FPGA厂商正在努力搭建HDL到HLS的桥梁,让以后的我们以后能够用HLS高效开发。现在,让我们看看Windows应用程序,操作系统,计算机硬件之间的相互关系,看看它们之间的桥梁如何搭建的。

其中,上图中,输入输出设备就是计算硬件:键盘、鼠标、耳机等。

【1】 .操作系统中有很多操作底层的函数接口,也就是我们常说的驱动,这些驱动是直接操作计算机硬件的动作,比如让声卡发出声音。但是,你有没有发现,操作系统可以操作硬件,但是是何时操作了?操作系统不知道,就好比你不买了一个玩具车,装上电池它就可以跑起来,但是你不控制遥控它并不知道要去那;

【2】.操作系统对设备进行输入、输出和闭环控制。按键鼠标状态输入,显示器输出显示,而硬盘的读写操作就要不断的读取剩余的空间等信息才做有效的写操作的闭环控制。在这里说个题外话:学习学习是不断学和习的闭环,而很多人学的不好就是环没有闭好,理论与实践的结合更恰当的说是理论和实践的闭环,理论与实践如果不闭环就是纸上谈兵和一介武夫而已;

【3】.前面说过操作系统能很好的去操作底层硬件,但是不知道什么时候去操作和操作到了什么程度,这些都是由应用程序来是实现的,也就是我们常说的应用程序调用API来操作底层硬件,不同的是没有操作系统的单片机由单一的1个Main应用程序去调用API,读取所需要的一个底层设备状态;而有操作系统的PC机由多个应用程序去调用API,读取所需要的多个底层设备的状态。这里就会遇到一个问题,多个应用程序调用API操作相同的底层硬件,这不就乱套了?

【4】.在这里Windows通过消息队列来处理多个应用程序下的问题:将多个应用程序的操作写入到消息队列中,并按照先写先操作(类似FPGA中的FIFO)的原则去调用API和读取底层设备的状态信息,将时间片切碎分时复用,这种消息队列的处理机制比较复杂,不过没关系,这些都由操作系统来管理并完成,应用程序开发者不用管,开发者开发起来简单方便。

【5】.操作系统中这种消息队列的机制为多个底层驱动和多个应用程序通信搭建了很好的桥梁,非常方便应用程序和底层驱动的独立开发维护。如果我们搭建的嵌入式系统中没有用到操作系统,底层和应用层开发独立性差,我们完全可以借鉴消息队列这种思维方式来搭建我们的系统架构来独立底层和应用层的开发。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21324

    浏览量

    593215
  • WINDOWS
    +关注

    关注

    3

    文章

    3440

    浏览量

    87144
  • 操作系统
    +关注

    关注

    37

    文章

    6287

    浏览量

    121886

原文标题:Windows程序内部运行原理

文章出处:【微信号:fpga234,微信公众号:fpga234】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    计算机软件与操作系统

    操作系统(Operation System)则是最基本的系统软件,它控制计算机的所有资源关提供应用程序开发的基础。
    发表于 09-13 10:09

    嵌入式系统与通用计算机操作系统的区别

    系统是指以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式
    发表于 04-22 08:05

    什么是计算机系统计算机硬件计算机软件?

    计算机软件:计算机运行所需的程序及相关资料。硬件和软件在计算机系统相互依存,缺一不可,因此同
    发表于 07-22 09:06

    什么是计算机系统硬件和软件哪个更重要?

    第一章计算机系统概论1 .什么是计算机系统计算机硬件计算机软件?硬件和软件哪个更重要?解: P3计算
    发表于 07-26 07:18

    计算机硬件,第2篇 计算机硬件系统.pdf 精选资料分享

    与输出设备五个部分。从组成部件上看,计算机硬件系统可分为中央处理单元、主存储器与输入/输出三大子系统,三大子系统之间通过总线相连,利用总线进
    发表于 09-13 06:37

    计算机硬件系统的组成及其性能维护分析

    计算机硬件系统的组成及其性能维护分析1、前言随着信息技术的飞速发展, 计算机技术被广泛地应用于人们的生活与工作中, 计算机系统的安全稳定运行直接关系
    发表于 09-13 07:31

    计算机硬件系统故障及维修过程

    计算机硬件系统故障及维修.ppt如图14.11所示,选定划分好的新分区,右击选择“进阶”→“隐藏分割磁区”项,将会隐藏这个新的分区。 检查所有设置,最后单击【执行】按钮进行分区操作,分区完毕重启
    发表于 09-17 07:44

    计算机硬件维护的方法

    1先检查电源及其他静态故障在进行其他部件的检测有调查可知,当前我国计算机硬件故障在维护过程中,因为电源故障而导致的故障问题非常常见,所以要对电源部件出现的故障问题引起足够的重视。在对计算机硬件进行
    发表于 09-17 07:15

    了解计算机硬件体系结构

    模块一知识点1.了解计算机硬件体系结构2.掌握常见的计算机硬件设备3.了解计算机软件体系结构4.掌握主板结构的组成5.了解CPU、内存、硬盘的发展历程6.掌握CPU、内存、硬盘的结构、性能指标及相关
    发表于 09-17 09:03

    为什么要用操作系统

    何谓操作系统1.什么是操作系统操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行
    发表于 12-14 07:56

    什么是计算机操作系统

    什么是计算机操作系统操作系统是一种为应用程序提供服务的系统软件,是一个完整的计算机系统的有机组
    发表于 12-14 06:50

    计算机操作系统原理与设计

    计算机操作系统原理与设计算机操作系统原理与设计 计算机操作系统原理与设计
    发表于 06-03 14:30 42次下载

    计算机操作系统的几种分类方式

    操作系统是管理计算机硬件与软件的计算机程序,是计算机系统的核心,是计算机系统中最基础和最重要的
    的头像 发表于 03-21 14:58 1.9w次阅读

    简述计算机硬件系统的工作原理及特点

    计算机系统是由硬件系统和软件系统两大部分组成,分为硬件和软件系统。  
    的头像 发表于 08-31 16:36 8924次阅读

    怎么看待汽车操作系统

    操作系统提供计算机硬件应用程序之间的接口。这通过遵循编程到操作系统中的规则和程序来限制
    的头像 发表于 06-20 11:57 1433次阅读
    怎么看待汽车<b class='flag-5'>操作系统</b>