王道操作系统OS绪论

Posted 生命是有光的

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了王道操作系统OS绪论相关的知识,希望对你有一定的参考价值。

✍、脑图时刻

1、操作系统

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

1.1、操作系统是系统资源的管理者

1.2、操作系统要向上层提供方便易用的服务





  • 有的教材会把命令接口和程序接口统称为用户接口,不包含GUI
  • 联机命令接口和脱机命令接口的区别在于用户说一句做一句还是说一堆做一堆。
    • 联机命令接口:交互式命令接口,用户说一句系统做一句
    • 脱机命令接口:批处理命令接口,用户说一堆系统做一堆

1.3、操作系统是最接近硬件的一层软件

没有任何软件支持的计算机称为裸机。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。

2、操作系统的特征

2.1、并发

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

并行[常考易混概念]:指两个或多个事件在同一时刻同时发生。

操作系统的并发性:指的是计算机系统中"同时"运行着多个程序,这些程序宏观上看是同时运行着的,而围观上看是交替运行的。操作系统就是伴随着"多道程序技术"而出现的,因此,操作系统和程序并发是一起诞生的。

单核CPU同一时刻只能执行一个程序,多个程序只能并发地执行。

多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行。

比如 Intel 的第八代 i3 处理器就是4核CPU,意味着可以并行地执行4个程序。即使对于4核CPU来说,只要有4个以上的程序需要"同时"运行,那么并发性依然是必不可少的,因此"并发性"是操作系统一个最基本的特性。

2.2、共享

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

两种资源共享方式:

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

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


生活实例

互斥共享方式:使用QQ和微信视频。同一时间段内摄像头只能分配给其中一个进程。

同时共享方式:使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件,说明两个进程都在访问

硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘的。

2.2.1、并发和共享的关系

  • 并发性指计算机系统中同时存在着多个运行着的程序。
  • 共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。

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

2.3、虚拟

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


虚拟技术分为:

  • 空分复用技术(如虚拟存储器技术)
  • 时分复用技术(如虚拟处理器)

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

2.4、异步

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

  • 由于并发运行的程序会争抢着使用系统资源,而系统中的资源有限,因此进程的执行不是一贯到底的,而是走走停停
    的,以不可预知的速度向前推进
  • 如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。只有系统拥有并发性,才有
    可能导致异步性。

2.5、小结

3、操作系统的发展与分类

3.1、手工操作阶段

3.2、批处理阶段

3.2.1、单道批处理系统

主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。

主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调用下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率仍然很低

3.2.2、多道批处理系统

主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源更能保持忙碌状态,系统吞吐量增大。

主要缺点::用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的

作业执行。eg:无法调试程序/无法在程序运行过程中输入一些参数)

3.3、分时操作系统

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

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

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

3.4、实时操作系统

主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。

在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性

4、操作系统的运行机制

4.1、预备知识

4.1.1、内核程序和应用程序

  • 我们普通程序员写的程序就是"应用程序"
  • 微软、苹果有一帮人负责实现操作系统,他们写的是"内核程序",由很多内核程序组成了"操作系统内核",或简称"内核(Kernel)",内核是操作系统中最重要最核心的部分,也是最接近硬件的部分。甚至可以说,一个操作系统只要有内核就够了(eg:Dicker => 仅需Linux内核),操作系统的功能未必都在内核中,如图形化用户界面GUI

4.1.2、特权指令和非特权指令

4.1.3、内核态和用户态

CPU能判断出指令类型,但是它怎么区分此时正在运行的是内核程序还是应用程序呢?

内核态和用户态的切换:

  • 内核态 -> 用户态:执行一条特权指令–修改PSW的标志位为"用户态",这个动作意味着操作系统将主动让出CPU使用权
  • 用户态 -> 内核态:由"中断"引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权。

4.2、小结

5、中断和异常

5.1、中断的作用

CPU上会运行两种程序,一种是操作系统内核程序(整个系统的管理者),一种是应用程序

  • 在合适的情况下,操作系统内核会把CPU的使用权主动让给应用程序
  • "中断"会使CPU由用户态转变为内核态,使操作系统重新夺回对CPU的控制权

如果没有“中断”机制,那么一旦应用程序上CPU运行,CPU就会一直运行这个应用程序。既如此,何来并发呢?

5.2、中断的类型

5.2.1、内中断

内中断:与当前执行的指令有关,中断信号来源于CPU内部。(若当前执行的指令是非法的,则会引发一个中断信号)

例子:

  1. 试图在用户态下执行特权指令
  2. 执行除法指令时发现除数为0
  3. 有时候应用程序想请求操作系统内核的服务,此时会执行一条特殊的指令——陷入指令[非特权指令],该指令会引发一个内部中断信号。(执行陷入指令,意味着应用程序主动地将CPU控制权还给操作系统内核。"系统调用"就是通过陷入指令来完成的)

5.2.2、外中断

外中断:与当前执行的指令无关,中断信号来源于CPU外部。(每一条指令结束后,CPU都会例行检查是否有外中断信号)

例子:

  1. 时钟中断–由时钟部件发来的中断信号(时钟部件每隔一个时间片(如50ms)会给CPU
    发送一个时钟中断信号)
  2. I/O中断–由输入/输出设备发来的中断信号(当输入输出任务完成时,向CPU发送中断信号)

5.3、中断的分类

5.4、中断机制的基本原理

  • 不同的中断信号,需要用不同的中断处理程序来处理

  • 当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。

  • 显然,中断处理程序一定是内核程序,需要运行在"内核态"。

5.5、小结

6、系统调用

6.1、什么是系统调用

知识点回顾:操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。

主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。

  • "系统调用"是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务

6.2、系统调用与库函数的区别

普通应用程序可直接进行系统调用,也可使用库函数。有的库函数涉及系统调用,有的不涉及
编程语言向上提供库函数。有时会将系统调用封装成库函数,以隐藏系统调用的一些细节,使程序员编程更加方便。
操作系统向上提供系统调用,使得上层程序能请求内核的服务。
裸机
  • 不涉及系统调用的库函数:如"取绝对值"的函数。
  • 涉及系统调用的库函数:如"创建一个新文件"的函数。

6.3、为什么系统调用是必须的

6.4、什么功能要用到系统调用

应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

6.5、系统调用的过程

注意:

  • 陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,使CPU进入核心态

  • 发出系统调用请求是在用户态,而对系统调用的相应处理核心态下进行

  • 别名:陷入指令 = trap指令 = 访管指令

6.6、小结

7、操作系统的体系结构

7.1、操作系统的内核

内核是操作系统最基本、最核心的部分。

实现操作系统内核功能的那些程序就是内核程序

7.2、大内核和微内核

注意:

  • 操作系统内核需要运行在内核态
  • 操作系统的非内核功能运行在用户态

7.3、小结

8、第一章知识回顾

以上是关于王道操作系统OS绪论的主要内容,如果未能解决你的问题,请参考以下文章

数据结构-王道2017-绪论

王道计算机网络绪论与体系结构(零)

2022王道OS 1.2 操作系统的发展与分类

(王道408考研数据结构)第一章绪论-第二节1:算法的基本概念算法的特性及设计要求

2022王道OS 1.3 操作系统运行环境

王道OS 1.1_1 操作系统的概念功能和目标