c语言程序如何运行在操作系统上的.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言程序如何运行在操作系统上的

c语言程序如何运行在操作系统上的 1、 操作系统概述 1.1 什么是操作系统? 在早期的人类社会中人人都要干活,这时候没有专业分工,所有人都直接做 产生价值的工作。这在当时是合适的,因为当时社会生产力低下,人口稀少。这 就像ARM 的裸机程序一样 (裸机程序的特点是:代码量小,功能简单、所有代码 都和直接目的有关,没有服务性代码)。后来随着人口增加生产力提高,有一部 分人脱离了直接产生价值的体力劳动,专职于指挥工作 (诞生了阶级)。从本质 上来说是合理的,因为资源得到了更大限度的使用,优化了配置,提升了整体效 率。 对于程序也是一样的,当计算机技术发展,计算机性能和资源大量增加,这 时候写代码也要产生阶级也要进行分工,不然如果所有代码都去参加直接性的工 作,则整体系统效率不高,因为代码很难进行资源的优化配置,这时候就出现了 操作系统。操作系统就是分出来的管理阶级,操作系统的代码本身并不直接产生 价值,它的主要任务是管理所有资源,为产生直接价值的程序 (各种应用程序) 提供服务。所以操作系统就是管理者和服务者。对于ARM处理器,裸机程序就像 一个小公司,操作系统下的程序就像大型跨国公司;裸机程序如果是小国家,那 么操作系统下程序就是大国家;如果我们要做一款产品,软件系统该什么选?裸 机还是基于操作系统呢?本质上取决于我们产品本身的复杂度。一般的,只有极 简单的功能、使用极简单的CPU (譬如8bit单片机)的产品才会选择用裸机开 发;复杂性产品都会选择基于操作系统来开发。 应用程序1 应用程序2 应用程序n ... API API API 优化配置 高复杂度程序 操作系统 提高效率 产品的复杂度 低 低复杂度程序 裸机 代码量小 产品的复杂度 功能简单 图8.1 操作系统裸机 如图8.1所示,我们知道操作系统负责管理和资源调配,应用程序负责具体 的直接劳动,他们之间的接口就是API函数。当应用程序需要使用系统资源 (譬 如内存、CPU、硬件操作等)时就需要通过API向操作系统发出申请,然后操作 系统响应申请帮助应用程序执行功能。 1.2 C库函数 单纯的API只是提供了极简单没有任何封装的服务函数,这些函数应用程序 是可用的,但是不太好用。应用程序为了好用,就对这些API进行了二次封装, 把它变得好用一些,于是就出现了库函数。C库函数就是把C语言中常用到的函 数编完放到一个文件里,供开发者使用,当我们需要用到只需把它所在的文件名 放到#include里就可以,例如#includemath.h。有时完成一个功能,有相应 的库函数,也有API可以完成,用哪个都行。譬如读写文件,API的接口是open write read close;库函数的接口是fopen fwrite fread fclose。fopen本质 上是使用open实现的,只是进行了封装,封装肯定有目的 (添加缓冲机制)。在 编写C语言程序的时候,使用库函数,可以极大的提高程序的运行效率和程序质 量。 如程序8.1所示,为最简单的C语言通过操作系统访问硬件 int main(int argc,char *argv[]) { printf(“I am C!\n”); (1) return 0; } 程序8.1 代码中(1)通过调用printf实现屏幕打印,这里的printf就是库函数提供的接 口。 我们知道不同操作系统A

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档