图解操作系统——操作系统概念和发展


基本概念和功能

概念

操作系统(Operating System,OS)是一款控制和管理整个计算机软件和硬件资源,并合理地组织调度计算机的工作和资源的分配,以及提供给用户和其他软件方便的接口和环境的一款系统软件

如下图,操作系统位于软件和硬件之间:

  • 操作系统是一款管理软硬件资源的软件
  • 操作系统为上层的应用程序提供方便易用的服务
  • 操作系统是最接近于硬件的一层软件

在这里插入图片描述

比如说打开windows任务管理器,就能看到操作系统管理的软硬件资源。

在这里插入图片描述

操作系统提供的功能

操作系统作为软硬件资源的管理者,他提供了一些主要的功能:

  • 处理机管理
  • 存储器管理
  • 文件管理
  • 设备管理

比如说我们通过QQ和朋友进行视频通话:

在这里插入图片描述

  1. 找到QQ所在位置
  2. 双击QQ.exe打开QQ
  3. 正常运行后登录
  4. 开始和朋友进行视频通话

可以看到QQ的安装是有多级目录还有一些其它的依赖文件,不同的软件在不同的文件,这些文件其实就是操作系统来帮我们管理的。这是就是文件管理

双击QQ.exe文件的时候,就会把QQ这个静态程序数据读取到内存中进行运行,这也是操作系统来完成的,这就是操作系统提供的存储器管理,也叫做主存管理/内存管理。

在双击运行QQ时其实还为QQ创建出对应的进程交给CPU进行处理分配处理机资源,这也就涉及到处理机管理

开始和朋友朋友进行语音通话时操作系统就要将摄像头、声卡、麦克风分配给QQ这个进程使用,这也就是操作系统的设备管理

提供方便易用的服务

计算机的最底层也就是硬件只能识别01这种二进制的机器语言,对用户非常的不友好。而在硬件之上安装操作系统之后,操作系统对外提供了更友好的交互接口,为用户提供服务,此时操作系统就类似于用户和硬件之间的中间人。

用户无需关心底层原理,只需要向操作系统发出对应指令即可。

在这里插入图片描述

操作系统提供的接口

GUI:图形化用户接口

比如说用户想从桌面上删除一个文件,只需要将这个文件拖拽到回收站会右击点击删除即可,而不需要输入对应的删除命令,这个拖拽操作其实操作系统在背后做了很多工作的。

联机命令接口

比如说通过win+r输入cmd,打开cmd命令窗口输入ipconfig就能查看到电脑的网卡和网络信息。这种用户输入一条命令系统回应一下,这交互式的命令就叫做联机命令接口

在这里插入图片描述

脱机命令接口

脱机命令接口是一种批处理命令接口,批处理接口其实是用户发出一堆的命令,操作系统会根据这一堆命令返回一堆的响应,操作系统一条一条的执行这一堆的命令。

程序接口

程序接口是在程序中进行系统调用来使用程序的接口,普通用户不能直接使用程序接口,只能通过代码间接使用。这种接口一般是给应用软件或者程序员使用。

比如说在编写C语言程序的时候,通过printf来打印"hello world"。其实就是C语言中的printf函数调用了操作系统提供的接口,也就是说printf底层实现是调用了操作系统提供的和显示相关的系统调用

在这里插入图片描述

在这里插入图片描述

操作系统的特征

操作系统有四个特征,分别是并发性、共享性、虚拟性、异步性,其中并并发和共享是最基本的两个特征

并发性

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

并行:只的是两个或者两个以上的事件在同一时刻发送的,无论是从微观上,还是宏观上都是同时发送的

比如说,我们的电脑是两核CPU,此时我们在写代码、听音乐、用浏览查资料,此时就相当于有三个进程,也就是三个任务,此时VS和edge被同时调度到核心1和核心2上执行,无论是从宏观上还是微观上着两个进程都是同时执行的,这就是并行。

但我们此时还有一个音乐软件在运行,这个进程就可能会被操作系统放到核心1或者核心2上执行,也就是交替执行,但由于CPU的运行速度是非常快的这样的交替执行用户是感知不到的,所以这样的交替执行宏观是同时运行的,但微观上是串行执行的,这就是并发执行。

在这里插入图片描述

所以操作系统的并发性指的是计算机系统中“同时”运行着多个程序,这些程序宏观上看着是同时运行的,但微观上是交替运行的。

共享性

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

操作系统有两种资源共享方式,一种是互斥共享方式,另外一种是同时共享方式

  • 互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
  • 同时共享方式:系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问

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

比如说:同时使用QQ和微信进行视频通话,同一时刻摄像头这个硬件设备只能分配给其中一个进程使用,但另外一个进程向使用摄像头时就会提示被占用,这就是互斥共享方式。

再比如说使用QQ发送一个world文件,使用微信发送一张图片,宏观上看,两边都是在同时读取文件并发送,说明此时两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替的读取硬盘的,这就是同时共享的方式。

并发性VS共享性

针对共享性的发送文件的例子:

  1. 两个进程正在并发执行(并发性)
  2. 需要共享的访问硬盘资源(共享性)

如果失去并发性,那么系统中只有一个程序在运行,则共享性则失去了意义。

如果失去共享性,那么QQ和微信不能同时访问硬盘资源,就无法同时发送文件,就无法实现并发。

所以并发性和共享性互为存在条件

虚拟性

虚拟性指的是一个物理上的实体变为若干个逻辑上的对应物,物体实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。

虚拟技术包含两个方面:

  1. 时分复用技术:利用处理机的空闲时间运行其他程序
  2. 空分复用技术:利用存储器的空闲空间分区存放和运行其他的多道程序

举个例子:

一个电脑是2核CPU,用户打开了下面多个软件

在这里插入图片描述

一个程序需要被分配CPU才能正常执行,那么为什么2核CPU的电脑中能同时运行这么多个程序呢?

就是虚拟处理器技术,实际上只有一个2核心的CPU,在用户看来就像是有5个CPU在同时为自己服务。虚拟技术中的时分复用技术微观上处理机在各个微小的时间段内交替着为各个进程服务。

再举个例子:

一个程序在启动时需要放入内存并给它分配CPU才能执行,假设我的电脑只有4G内存。

某款游戏需要4G内存,IDEA需要2G内存,QQ需要512M内存,微信需要512M内存

在这里插入图片描述

这些程序运行所有需要的内存远远大于4G内存,那么为什么它们还可以在我的电脑上运行呢?

这就是要到了虚拟存储器技术,实际上只有4G内存,在用户看啦远远大于4G内存,这就是虚拟存储器中的空分复用技术

很显然如果失去了并发性,则一个时间段内系统中只需要运行一道程序,那么就失去了虚拟性的意义了,因此,没有并发性,就谈不上虚拟性

异步性

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

操作系统的发展和分类

手工操作阶段

手工操作阶段,程序员使用计算机的工作流程:

  1. 程序员先将对应的程序和数据在纸带上穿孔
  2. 将打好孔的纸带放入纸袋机上
  3. 然后计算机从纸带机上读取程序员要运行的程序
  4. 等程序运行结束后计算机再从纸带机上输出运行的结果
  5. 最后程序员再从纸带机上取走运行结果

在这里插入图片描述

在纸袋上打孔和放入纸袋已经从纸带机上取走结果这几个过程是非常慢的,此时的计算机处于空闲空,而且处于一人一机,程序员只能只能排队使用。

**手工操作阶段主要缺点:**用户独占全机,CPU等待用户,导致资源利用率极低。

单道批处理系统

引入脱机输入/输出技术(外围机+磁带完成),并由监督程序负责作业的输入、输入。人们把常驻内存的程序负责计算机机的输入输出、运行控制、出错处理的程序称为监督程序计算机能够自动地成批地处理一个或多个用户的作用,这程序在计算机上运行

  • 引入脱机输入/输出技术,并由监督程序负责控制输入、输出
  • 多个程序员可以程序放到对应的纸带机上,通过外围机把纸带提起从纸带机送到磁带里
  • 而磁带的读写速度要比纸带机快许多

在这里插入图片描述

引入脱机技术,可以让程序作业的输入输出的时间快很多,可以让CPU的资源利用率提高。

单机处理:一个CPU,意味着单机处理机系统在某一时刻只能处理一个作业

单道:系统一次只让一个作业程序进入系统内存

作业:一次上机活动中需要计算机系统所做的一系列工作集合

批处理:将多个作业组合成一批进行处理,成批的处理,成批的退出。

在这里插入图片描述

程序员将多个作业组成一批作业放到纸带机上通过外围机放入磁带中,监控陈旭先将第一批作业调入内存中,第一批内存执行完毕后,再把下一批作业调入内存,等待所有作业执行完毕后,再把作业的运行结果提交给用户。

特点:

减少了人为的干涉,计算机的资源利用率有一定提升

缺点:

内存中只能有一个程序运行,只有你等该程序运行结果后,才能调入下一个程序,CPU有大量时间是在等待I/O完成,资源利用率还是比较低。

多道批处理系统

多道:内存中可以同时存放多个作业,多个作业交替使用CPU和系统中的各种资源。单道只能存放一个作业。

如下图,作业1在执行的时候,先进行输入,输入完毕后进入计算,此时输入设备就处于空闲状态,那么作业2就可以进行输入,等作业1计算完毕后进入输出,那么作业2就可以进行计算,这个就大大提高了CPU的利用率。

在这里插入图片描述

原理:作业成批的输入系统暂存在外存中,组成后备队列,系统按照一定的调度原则从后备队列中选择一个或者多个作业放入内存进行处理。当一批作业运行完毕后,系统便接收下一批作业。

特点:

多道批处理程序宏观上是并行的,微观上是串行的,CPU和其它系统资源可以处于更“忙碌”的状态,系统吞吐量增大。

缺点:

用户响应时间长,没有人机交互,用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行,且无法调试程序/无法在程序运行过程中输入一些参数。

分时操作系统

为了解决多道批处理系统的没有人机交互功能,于是就出现了分时操作系统。

分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可以通过终端宇计算机进行交互。

入下图,从1号用户开始,轮流被CPU调度执行50ms

在这里插入图片描述

特点:

用户的请求可以被及时响应,解决了人机交互的问题,允许多个用户同时使用一台计算机并且用户对计算机操作相互独立,感受不到别人的存在。

  1. 多路性/同时性:多个用户同时工作,共享系统资源,提高了资源利用率
  2. 及时性:用户能在很短的时间内得到系统响应
  3. 独立性:各个用户之间独立操作,互不干扰
  4. 交互性:系统能及时对用户的操作进行响应,加快调试过程,缩短了周转时间。

缺点:

不能优先处理紧急任务,操作系统对各个用户/作业的调度是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。

实时操作系统

实时操作系统:及时性,实时系统必须具有在一个事先定义后的时间限制内,对外部或者内部的事件进行响应和处理的能力,并且控制所有实时任务协调一致地运行。且严格在指定时间内处理完事件

实时操作系统分为:

  • 硬实时系统:必须在严格的规定时间内处理完成(导弹发射系统)
  • 软实时系统:能接接受偶尔违法时间规定(火车票订票系统)

实时操作系统的特点:及时性和可靠性

网络操作系统

网络操作系统是在通常操作系统功能的基础上提供网络通信和网络服务功能的操作系统,有利于在网络上进行资源共享,提供网络用户所需要各种服务的软件和相关规程的集合。

分布式操作系统

定义:将多台计算机组成一种特殊的计算机网络。系统中的多台计算机可合作执行同一个任务,使资源共享更彻底。分布式操作系统运行在不具有共享内存的多台计算机上,但在用户眼里确只有一台计算机。

主要特点是:分布性和并行性

操作系统引导(Boot)

电脑开机的时候如何让操作系统在你的电脑上运行起来?

假设你买了一块硬盘,里面肯定啥也没有。你需要把一个系统安装一个操作系统。而操作系统肯定是安装到C盘里的,除了这些你能看得见的C盘、D盘、E盘外,在你的磁盘的开头位置会留出一片区域,这一片区域存储的是主引导记录(MBR)

在这里插入图片描述
这个主引导记录里主要包含了:

  • 磁盘引导程序

  • 分区表

    分区表其实就是一个数据结构,记录了每个磁盘的大小,以及每一个分区的地址其实范围。

而C盘里面安装了操作系统,并且会使用这个C盘来启动操作系统,在这种情况下我们就可以把C盘称为我们这个新磁盘的活动分区

如果我们把C盘进一步细分,那么C盘就有一段空间用来存储引导记录(PBR),还有一段空间存放的是根目录,也就双击打开C盘后的一些文件或者目录。

C盘里安装的操作系统是怎么一步一步启动的?

  • 电脑以通电开机,CPU就会去主存的ROM引导程序(BIOS)即自举程序,将引导程序里面的执行一条一条执行
  • 而BIOS一般存放在主板上的ROM芯片中
  • 执行这个引导程序主要有那么几步
    • CPU把磁盘中的**主引导记录(MBR)**读入内存
    • 将主引导记录读取到内存后,就可去执行磁盘引导程序,而磁盘引导程序会判断C盘存储的位置,就可以读取C盘的数据。
    • 也就是读取引导记录(PBR)到内存中,那么CPU就可以去执行这个引导记录里的程序,而执行这个程序主要的左右就是会负责找到启动管理器,启动管理器程序通常存放在根目录下面的某个位置
    • 然后CPU再执行这个启动管理程序,就会完成操作系统初始化的一系列的工作。

操作系统引导:

在这里插入图片描述

  1. CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
  2. 将磁盘的第一块—>主引导记录 读入内存,执行磁盘引导程序,扫描分区表
  3. 从活动分区(又称主分区,即安装了操作系统的分区) 读入分区引导记录,执行其中的程序
  4. 从根目录下找到完整的操作系统初始化程序(即 启动管理器)并执行,完成“开机”的一系列动作

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱敲代码的三毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值