首页 > 编程语言 >《程序是怎样跑起来的》——第9章 操作系统和应用的关系

《程序是怎样跑起来的》——第9章 操作系统和应用的关系

时间:2024-02-23 17:36:02浏览次数:27  
标签:调用 操作系统 编程语言 示例 程序 硬件 怎样

一、操作系统功能的历史
1、在计算机中尚不存在操作系统的年代,完全没有任何程序,因此程序员就需要编写出处理相关的所有程序。用机器语言编写程序,然后再使用开关将程序输人,这一过程非常麻烦。于是,有人开发出了仅具有加载和运行功能的监控程序,这就是操作系统的原型。(操作系统(OperatingSystem)也称为基础软件。操作系统是计算机运行时不可或缺的控制程序,以及在控制程序下运转的为其他软件运行提供操作环境的软件的统称。另外,在操作系统上运行的应用也称为“应用程序”)
示例:监控程序可以说是操作系统的原型

2、操作系统的演变
(1)初期的操作系统=监控程序+基本的输入输出程序

(2)操作系统是多个程序的集合体


二、操作系统
1、操作系统的作用:是程序员不在制做硬件,而是通过利用操作系统的功能来直接控制硬件的程序。为程序员带来了巨大的便利。
示例:表示当前时间的应用及结果


(1)通过time_ttm;,为time_t类型的变量申请分配内存空间。
(2)通过time(&tm);,将当前的日期和时间数据保存到变量的内存空间中。
(3)通过 printf("%sn",ctime(&tm));,把变量内存空间的内容输出到显示器上。
2、应用程序控制硬件:在操作系统这个运行环境下,应用并不是直接控制硬件,而是通过操作系统来间接控制硬件的。变量定义中涉及的内存的申请分配,以及time()和 printf()这些函数的运行结果,都不是面向硬件而是面向操作系统的。操作系统收到应用发出的指令后,首先会对该指令进行解释,然后会对时钟IC(实时时钟)和显示器用的I/O进行控制。
示例:应用程序经过OS间接地控制硬件

计算机中都安装有保存日期和时间的实时时钟(Real-timeclock)
三、系统调用和高级编程语言的移植性
1、系统调用:操作系统的硬件控制功能,通常是通过一些小的函数集合体的形式来提供的。这些函数及调用函数的行为统称为系统调用(systemcall),也就是应用对操作系统(system)的功能进行调用(call)的意思。
2、高级编程语言的移植性:C语言等高级编程语言并不依存于特定的操作系统。高级编程语言的机制就是,使用独自的函数名,然后再在编译时将其转换成相应操作系统的系统调用(也有可能是多个系统调用的组合)。移植性指的是同样的程序在不同操作系统下运行时需要花费的时间等,费时越少说明移植性越好。
示例:高级编程语言的函数调用在编译后变成了系统调用

四、操作系统和高级编程语言使硬件抽象化
1、通过使用操作系统提供的系统调用,程序员就没必要编写直接控制硬件的程序了。而且,通过使用高级编程语言,有时甚至也无需考虑系统调用的存在。这是因为操作系统和高级编程语言能够使硬件抽象化。
2、物理上的磁盘媒体被抽象化成了文件

3、Windows操作系统的特征:
(1)32位操作系统(也有64位版本)
(2)通过API函数集来提供系统调用
(3)提供采用了图形用户界面的用户界面
(4)通过WYSIWYG(WYSIWYG是What You See Is What You Get 的略写。意思是,显示器上显
示的文本及图形等(WhatYou See),是(1s)可以原样输出到打印机上打印(What You Get)的,)实现打印输出
(5)提供多任务功能
示例:通过时钟分割实现多任务的机制

(6)提供网络功能及数据库功能

示例:应用可以利用操作系统和中间件的功能

(7)通过即插即用实现设备驱动的自动设定

标签:调用,操作系统,编程语言,示例,程序,硬件,怎样
From: https://www.cnblogs.com/Li204217/p/18030023

相关文章

  • 《程序是怎样跑起来的》通过汇编语言认识程序的真面目
    汇编语言作为一种低级语言,与机器语言非常接近,它直接对应于计算机的指令集。通过阅读这一章,我了解到汇编语言中的指令是如何直接操作计算机的各个部件,如CPU、内存、输入输出设备等。这让我更加深刻地认识到,高级语言编写的程序最终都需要被转换为汇编语言或机器语言才能在计算机上运......
  • 操作系统和应用
    操作系统的原型-监控程序,仅具有加载和运行功能。随着时代的发展,很多程序都有共通的部分,因此,基本的输入输出部分的程序被追加到了监控程序。最后更多的功能追加到监控程序,形成与现在相差不大的操作系统。要意识到操作系统的存在应用的可执行文件指的是计算机的CPU可以直接解释并......
  • 《程序是怎么跑起来的》第4章读书笔记
    计算机是处理数据的机器,而处理对象的数据储存在内存和磁盘中。内存本质上是一种名为内存芯片的装置,内存芯片分为ram,rom等不同类型,但从外部来看,它们的基本原理是相同的内存芯片外部有引脚负责连接电源以及输入地址信号等等。内存芯片内部有很多能储存巴比特数据的容器,只要指定容器......
  • 程序是怎么跑起来的第七章
    操作系统和硬件决定了程序的运行环境,同一类型的硬件可以选择安装多宗操作,从程序运行环境这一角度来考量硬件时,CPU的种类是特别重要的参数系统,CPU只能解释其自身固有的机器语言。不同的CPU能解释得机器语言的种类也不同。机器语言的程序称为本地代码。文本文件在任何环境下都能显示......
  • 《程序是怎样跑起来的》程序在怎样的环境下运行
    读完这一章,我深刻感受到程序的运行环境是如此复杂,每一个组件、每一个步骤都关乎到程序的正常运行。CPU作为计算机的核心,负责执行程序的指令;内存则提供了程序运行所需的空间;而输入输出设备则为我们与程序之间的交互提供了可能。这些组件共同构成了一个完整的程序运行环境,确保了程序......
  • 《程序是怎样跑起来的》从源文件到可执行文件
    在这一章中,作者矢泽久雄首先为我们介绍了源文件的概念,即程序员使用某种编程语言(如C、C++、Java等)编写的原始代码文件。这些文件通常以文本形式存在,包含了程序的各种逻辑、数据结构以及函数调用等信息。然后,作者详细描述了编译器如何将这些源文件转换为可执行文件的过程。编译过程......
  • 《程序是怎样跑起来的》操作系统与应用程序的关系
    首先,作者强调了操作系统作为应用程序与硬件之间的桥梁的角色。在早期的计算机系统中,程序员需要直接使用机器语言编写程序来控制硬件。然而,随着计算机系统的复杂性不断增加,这种直接控制硬件的方式变得既繁琐又容易出错。因此,操作系统应运而生,它提供了一组统一的接口和抽象层,使得应......
  • 《程序是怎么跑起来的》第3章读书笔记
    经过前两章对计算机内容最基本的理解之后,就迎来了对计算机的计算,而计算机也不是万能的,它也会出现错误,那么就涉及到计算机在计算小数时会出现错误的原因,首先课题通过一个问题将0.1累加100次的结果不是10这一话题成功将读者引入进去。然后告诉了我们为什么在计算机中会这样子出错的......
  • 《程序是怎样跑起来的》第六章
    当我翻阅到“亲自尝试压缩数据”这一章节时,我被作者深入浅出的叙述和丰富的实践案例所吸引。这部分内容不仅是对数据压缩概念的讲解,更是一次思考与实践相结合的完整体验。阅读完毕后,我对于数据压缩技术的理解有了全新的认识,也对这项技术背后蕴含的智慧感到赞叹。本章重点介绍了压......
  • 程序员怎么做沟通?聊一聊程序员沟通相关的问题
    一、程序员不善言词在大家的印象中,程序员好像是一群不善言词的理工男。为什么大家会有这种刻板的印象呢?因为程序员的工作,只需要一台电脑,一根网线,就可以开始工作了。好像不需要与人打交道。一段进入到工作状态,编码的时候还不希望被别人打扰,其实是编码思路不愿意被打断。这时候,他......