当前位置: 首页 > news >正文

《操作系统 - 清华大学》1 -2:操作系统概述 —— 什么是操作系统

文章目录

  • 1. 操作系统定义
  • 2. 操作系统的位置
  • 3. 操作系统软件的分类
  • 4. 操作系统软件的组成
  • 5. 操作系统内核特征

现在来继续讲什么是操作系统,操作系统什么样的?它是一个程序,它和其他程序是什么样的关系?然后它有些什么样的组成?它有什么样的一些特征?那我们首先来看什么是操系统。

1. 操作系统定义

操作系统实际上没有一个明确的定义,它哪些功能算是操作系统里的,哪些功能是应用软件或者说是硬件。实际上随着这个操作系统的发展,操系统内涵实际上是在不断变化的,那我们现在能给操系统一个解释。
在这里插入图片描述

有一种解释说操系统是一个控制程序

  1. 它是一个系统软件,它给用户提供一个运行的环境,用户使用计算机系统的时候,提供所需要的这些服务。

  2. 如果说用户的使用不当,那这时候它需要进行项目的一些错误处理。

  3. 如果说用户在使用的过程当中,是不是能给它一些协助。比如说你在输入某一条命令的时候,输了半截,忘掉了后边是什么内容,这时候它是不是能给出一些提示。

    这是我们的第一个理解。第二个理解是说操作系统它是一个资源管理器

在这里插入图片描述

  1. 实际上就是说我们计算机硬件和应用程序之间用操作系统来作为它的一个中间层;
  2. 它为计算机应用程序来管理所有的计算机软硬件资源;
  3. 以协调于各个应用程序在使用这些资源的时候能够友好地使用下去。

那么具体说起来就是,如果说所有的资源都是由我专用的,那这时候我的使用肯定是没问题的。
~  
但是如果说多个应用程序交替来使用,那这时候这个资源如何使用就会有一些问题了,比如说像这个内存,你在用我也在用,那这时候到底两个应用它们之间各分配多少呢?
~  
有可能给你分配多了,那给它分配少了,而你的需要又跟这个分配的结果不一致。那这时候对于操作系统来说,就需要做一个高效的判断,来使得在这里能够按照应用程序的需求给它分配合理的资源,这是我们操系统提供的高效使用所要达到的目标。

  1. 然后第二个是说,我们可能都需要很多的资源,那这时候操作系统要负责解决这种需求上的差异,实现它的公平。

2. 操作系统的位置

操作系统的表现形式可能会有多种多样,比如说我们的 Windows,我们的 Linux,它的表现是完全不一样的,但是从操系统的内部结构上来讲,它基本上可以分成这样几个部分:

在这里插入图片描述

操作系统在中间,下边是硬件,上边是应用,应用又可以把它分成系统应用和应用程序。

这样两个部分对于我们来讲,我们学操作系统的人就是要来做操作系统,那么你是在硬件的基础上来做操作系统,这属于系统设计者

如果说你是写应用程序的人,或者说写系统应用的人,那这时候我是利用操作系统提供的功能来给出应用程序和系统应用。

如果说你是一个应用程序的使用者,那么这时候你直接使用应用程序,但即使是这样的话,你理解操作系统也有利于你更好的使用计算机系统。

在这里插入图片描述
操作系统实际就是在硬件进行一层隔离,对上边的应用提供我们通常所见到的逻辑这些资源。比如说进程、文件、地址空间,这都是在操作系统之后,给用户程序看到的情况。

3. 操作系统软件的分类

在这里插入图片描述

操作系统是一个软件,在我们软件划分当中,可以把软件分成是应用软件和系统软件,系统软件又可把它分成系统应用和操作系统,而在操作系统里核心的内容是我们的内核,而这里命令行由于它和操系统内核关系非常密切,我们把它划到这里头。实际有的时候也会把它认为是系统软件里的一个组成部分。

4. 操作系统软件的组成

那我们在操作系统里到底有什么样的组成呢?

在这里插入图片描述
那首先说有内核,实现我们刚才所说到的资源的管理功能。

操作用之上用户要使用命令行接口,我们这里提供了两种命令接口,一个是命令行接口,这时候用户需要去敲键盘输命令,另一种是图形用户接口 GUI,那这时候实际我们是把命令转换成我们图形用户接口的一些基本读数。

比如说在这里的窗口、图标、菜单和指针,有了这些之后,去看文件系统的文件的图标,那我就对应某个文件,这样的话方便用户来使用,这时达到的效果是所见即所得。

在这里插入图片描述

操作系统和外界关系,实际上我们用这个图可以很直观地表示出来,操作系统是我们整个计算机系统里的核心软件,然后在外边构造我们的提供对外接口和一些应用,用户就可以来使用系统所提供的服务,那这是用户所在的位置。

ucore 小操作系统,它在提供些什么?
在这里插入图片描述
从下往上,中间两个黄色的部分是操系统的内容,下面是硬件。

硬件中写了几种在ucore 实验里头会涉及到的硬件,串口、磁盘和存储,那这有一个硬件抽象层,把底下这些给做一个屏蔽,提供一个标准的接口。

然后在这里实现我们操作系统的功能,操作系统功能是各种各样的驱动,串口驱动、磁盘驱动、物理内存的管理;操作系统内核提供的这些服务,比如说我们的信号,我们在执行一个程序过程中,就可以强行它停下按 ctrl + c;然后可以提供文件系统,这时候就可以把大量的数据以人比较好理解形式组织起来。然后在这提供虚拟存储,提供虚拟存储之后,用户就可以使用到大于物理内存的存储空间;然后在这提供处理机调度,那这时候就可以在一台机器上让多个应用程序交替运行;

提供这些服务都封装在系统调用接口之上,通过系统调用接口上层应用,如系统库、编译器、解释器和命令行应用,这都是提供的系统应用。

然后我们写的应用程序是在这上边利用系统调用和库提供的功能来实现我们的应用的功能。

5. 操作系统内核特征

操系统软件,它和我们其他课程里说到的应用程序它也是软件,这两者之间有什么样的差别呢?
也就说操系统内核它有什么样特征?
在这里插入图片描述

这里列出来的是操系统所具有的四个特征,并发、共享、虚拟和异步。
在这里插入图片描述

  1. 并发是指:说操作系统当中有多个正在运行的应用程序,它需要操作系统的管理和调度。

具体指什么意思?就是我们如果多个应用程序交替运行,我需要知道当前每一个应用都执行到什么位置,当前正在执行的是哪个应用?
~  
如果说应用之间有切换的时候,那切换到下一个应用的时候,它上次执行到什么位置?那这次从什么地方开始?当时的状态是什么样子?都要操作系统来维护。

在这里插入图片描述

  1. 第二特征是共享,是指说:多个应用并发运行的时候,宏观上要体现出它们同时在访问资源的情况,而微观上要实现它们互斥访问。

比如说内存,两个应用同时访问内存,那这时候每个应用需要知道它访问的是哪个,另一个应用访问是哪个,它俩之间不能是访问错了,需要保护的这些内存资源不能让另外应用去访问。
~  
而在微观上,这时候需要对它做很好的这种隔离。那我们知道在数据总线上,任何一个时刻只有一个应用去访问这个存储单元,这就是我们所说的微观上的互斥。

在这里插入图片描述

  1. 然后再一个是虚拟,也就说要通过交替运行使每一个用户感觉到整个计算机都是由它一个用户在专门为它提供服务。那如何做到这一点?

实际上就是由操系统在每个应用执行的时候这种交替,由于交替的频率非常高,让用户在用的时候感觉不太出来,那这台机器还有其他用户在用,当然这里的这个负载大的应用程度,用户是可以感觉到的。

在这里插入图片描述

  1. 再有一个是异步,是指说由于我们程序是走走停停的,那这种走走停停它的行为是不是可预测?那在这里头实际上我们需要由操作系统来提供,只要用户的输入是一致的,那么这时候它的输出结果就应该是不变的。

    当然如果说你的那个应用就是需要知道跟时间相关的这种走走停停的信息,那我们也是可以在操作系统的支持之下,能够发现这种时间上的差异。

这就是我们的这说操作系统的特征。


http://www.mrgr.cn/news/35526.html

相关文章:

  • 【C++取经之路】红黑树封装set
  • 关于养育孩子的一点想法
  • MATLAB算法实战应用案例精讲-【数模应用】路径规划
  • C++核心编程和桌面应用开发 第六天(this指针 友元)
  • Vue3中使用Pinia(封装并统一导出)
  • C++_CH19_继承
  • Make breakpoint pending on future shared library load
  • 【初阶数据结构】排序——插入排序
  • 阴影的基本原理
  • Linux驱动开发初识
  • mysql学习教程,从入门到精通,SQL RIGHT JOIN语句(24)
  • Robot Operating System——多边形数据
  • [大语言模型-论文精读] Diffusion Model技术-通过时间和空间组合扩散模型生成复杂的3D人物动作
  • Thread , ThreadLocal , ThreadLocalMap , Entry 之间的关系?
  • 宝塔部署vue项目出现的各种问题
  • 【算法】模拟:(leetcode)6.Z 字形变换(medium)
  • 光子架与电子架 -- 主从子架
  • 小程序面板开发教程|开发照明 Matter 面板步骤(一)
  • WebGL阴影与后期处理
  • Taro多端统一开发解决方案