操作系统的定义与基本概念_计算机系统的概念

操作系统的定义与基本概念_计算机系统的概念1、操作系统的概念及定义1.1操作系统的层次结构从上至下,用户——应用程序——操作系统——裸机(纯硬件)。操作系统OS(OperatingSystem)是指控制和管理整个计算机系统的硬件和软

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1、操作系统的概念及定义

1.1 操作系统的层次结构

从上至下,用户——应用程序——操作系统——裸机(纯硬件)。

image-20210918212105787

操作系统OS(Operating System)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配(从当前层次结构中间往两边看),提供用户和其他软件方便的接口和环境(当前层次结构从下往上看),同时它是计算机系统中最基本的系统软件(层次结构从上往下看)。


1.2 操作系统的功能和目标

  1. 操作系统作为系统资源的管理者(包括软件、硬件、文件等),需要提供什么功能
  2. 操作系统作为用户和计算机硬件之间的接口,要为其上层的用户、应用程序提供简单易用的服务
  3. 操作系统作为最接近硬件的层次,需要在纯硬件的基础上实现什么功能

image-20210918212624221

1.2.1、系统资源的管理者

image-20210918212815453

1.2.2、作为用户与计算机硬件之间的接口

image-20210918213535612

常考命令接口和程序接口,GUI了解即可

命令接口:

image-20210918214003518

  1. 联机命令接口(交互式命令接口):

    类比cmd窗口,输入一句指令,计算机处理一句指令

  2. 脱机命令接口(批处理命令接口):

    类比C盘内*.bat文件

程序接口(系统调用):

image-20210918214311279

易混概念:系统调用 = 系统调用命令 = 广义指令

1.2.3、作为最接近硬件的层次

image-20210918214825746


1.3 操作系统的四个特征

四大特征:并发、共享、虚拟、异步

image-20210918215022220

1.3.1 并发

并发和并行的区分

  • 并发
    • 之两个或多个事件在同一时间间隔内发生。这些事件在宏观上是同时发生的但微观上是交替发生的
  • 并行
    • 指两个或者多个事件在同一时刻同时发生

理解:

image-20210918215604809

操作系统的并发性指的是计算机系统中同时存在着多个运行的程序

事实上,操作系统就是”伴随多道程序技术“而出现的,因此,操作系统和程序并发是一起诞生的

虽然当今计算机一般是多核CPU,但并发性依然必不可少

1.3.2 共享

共享即资源共享,是指系统中资源可供内存众多个并发执行的进程共同使用。

分为互斥共享同步共享

image-20210919104801748

所谓“同时”,往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问(即分时共享)

例子:

image-20210919105016663

并发和共享地关系

两者互为存在条件

  • 如果失去了并发性,共享性就失去了意义
  • 如果失去共享性,并发性也无法实现

image-20210919105243477

1.3.3 虚拟

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体实际存在,而逻辑对应物使用户感受到的。

  • 公分复用技术

    image-20210919105604369

  • 时分复用技术(时间片)

    image-20210919105634017

并发性是虚拟性地前提

image-20210919105734232

1.3.4 异步

异步是指多到程序环境下,允许多个程序并发执行,但资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性


1.4 操作系统的发展和分类

image-20210919110502324

  • 手工操作阶段

    • 用户独占全机,人机速度矛盾导致资源利用率极低
  • 批处理阶段:脱机输入/输出技术 (用磁带完成) 监督程序负责控制作业的输入、输出

    • 单道批处理系统:

      image-20210919121300157

    • 多道批处理系统:

      image-20210919121513490

  • 分时操作阶段

    • image-20210919121742975
  • 实时操作系统

    • 硬实时系统:必须在绝对严格地规定时间内完成处理
    • 软实时系统:能接受偶尔违反是时间规定

    image-20210919122034486


1.5 操作系统的运行机制和体系结构

image-20210919122159356

1.5.1 运行机制

image-20210919123340020

  1. 两种指令:

    • 指令的概念:指令就是CPU能识别的最基本的命令

      一条高级语言(如C)翻译过来可能会对应多条指令

    • 特权指令

    • 非特权指令

    image-20210919122736330

  2. 两种处理器状态

    CPU判断当前是否可以执行特权指令

    • 用户态(目态)

    • 核心态(管态)

      image-20210919123043823

  3. 两种程序

    • 内核程序

    • 应用程序

      image-20210919123233316

1.5.2 操作系统内核

内核是计算机上配置的底层软件,是操作系统最基本最核心的部分。实现操作系统内核功能的那些程序就是内核程序。

image-20210919123617852

image-20210919123718133

1.5.3 操作系统体系结构

image-20210919123807896

  • 大内核

    image-20210919123835916

  • 微内核

    image-20210919123857789


1.6 中断和异常

1.6.1 中断机制的诞生

早期计算机个程序只能串行执行,系统资源利用率低,为了解决该问题,人们发明了操作系统,引入了中断机制,实现了多道程序并发执行。

发生中断就意味着需要操作系统介入,开展管理工作

中断是CPU从用户态进入核心态的唯一途径

image-20210919124745390

1.6.2 中断的分类

image-20210919125018149

1.6.3 外中断的处理过程

image-20210919125337149


1.7 系统调用

image-20210920161337835

1.7.1 什么是系统调用、作用?

系统调用会使处理器从用户态进入核心态

操作系统,面向用户是命令接口,面向应用程序是程序接口(由一组系统调用组成)

概念:“系统调用”是操作系统提供给应用程序(程序员)使用的接口,可以理解为可供应用程序调用的一种特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。

系统调用的目的:

image-20210920162043679

系统调用按功能分类

image-20210920162204678

注意:系统调用相关处理涉及到对系统资源的管理、对进程的控制,这些功能需要执行一些特权指令才能完成,因此系统调用的相关处理需要在核心态下进行。

1.7.2 系统调用和库函数的区别

image-20210920162812639

1.7.3 系统调用背后的过程

过程;

传递系统调用参数 -> 执行陷入指令(用户态)-> 执行系统调用相应服务程序(核心态)-> 返回用户程序

image-20210920163559856

注意点:

  1. 陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,从而CPU进入核心态
  2. 发出系统调用请求是在用户态,而对系统调用的相应处理是在核心态下进行
  3. 陷入指令是唯一一个只能在用户态执行,而不能在核心态执行的指令
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167803.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月4日 下午6:16
下一篇 2022年8月4日 下午6:36


相关推荐

  • 官宣:荣耀10GT,EMUI9.0不限量升级指日可待

    官宣:荣耀10GT,EMUI9.0不限量升级指日可待

    2021年6月15日
    136
  • javascript如何去除对象的某个属性「建议收藏」

    js中其实是有delete这个关键字的varobj={key1:’value1′,key2:’value2′};deleteobj.key1;这样就能删除obj中的key1了。不过delete不能删除直接使用var定义的变量。比如:varvar1=’value1′;deletevar1;

    2022年4月16日
    136
  • crontab 详解

    crontab 详解cron 是一个可以用来根据时间 日期 月份 星期的组合来调度对重复任务的执行的守护进程 cron 假定系统持续运行 如果当某任务被调度时系统不在运行 该任务就不会被执行 要使用 cron 服务 你必须安装了 nbsp vixie cron nbsp RPM 软件包 而且必须在运行 crond nbsp 服务 要判定该软件包是否已安装 使用 nbsp rpm qvixie cron nbsp 命令 要判定该服务是否在运行 使

    2026年3月17日
    1
  • n8n Code节点如何导入自定义Python模块?

    n8n Code节点如何导入自定义Python模块?

    2026年3月13日
    1
  • 1. qt 入门-整体框架[通俗易懂]

    1. qt 入门-整体框架[通俗易懂]总结: 本文先通过一个例子介绍了Qt项目的大致组成,即其一个简单的项目框架,如何定义窗口类,绑定信号和槽,然后初始化窗口界面,显示窗口界面,以及将程序的控制权交给Qt库。然后主要对Qt中的信号与槽机

    2022年8月4日
    14
  • 浅谈MFCC

    MFCC(Mel-frequencycepstralcoefficients):梅尔频率倒谱系数。梅尔频率是基于人耳听觉特性提出来的,它与Hz频率成非线性对应关系。梅尔频率倒谱系数(MFCC)则是利用它们之间的这种关系,计算得到的Hz频谱特征。主要用于语音数据特征提取和降低运算维度。例如:对于一帧有512维(采样点)数据,经过MFCC后可以提取出最重要的40维(一般而言)数据同时也达到了将维

    2022年4月4日
    262

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号