Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《操作系统》:理解一些基础概念

《操作系统》:理解一些基础概念

作者头像
用户7685359
发布于 2020-08-24 08:25:15
发布于 2020-08-24 08:25:15
38500
代码可运行
举报
文章被收录于专栏:FluentStudyFluentStudy
运行总次数:0
代码可运行

计算机基础《操作系统》基础篇,理解操作系统中常见的一些概念 本篇主要学习来源为《B站王道考研-操作系统》

01 基础概念

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

要想了解操作系统的一些基础概念,我们首先要了解操作系统的历史,因为每个概念的来源其实都是因为在操作系统的发展阶段中存在一些问题,包括所谓的“操作系统”这个大概念也是为了解决这些问题产生的。

1.1 手工操作阶段

即我们常说的“打孔开发阶段”,这个阶段是没有操作系统的。用户将程序代码和数据用通过打孔记录在纸带上(代表着二进制,有孔代表1,没孔代表0),计算机读入后,结果也会以同样的方式输出。整个过程如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
用户 ---> 打孔机 ---> 计算机 ---> 打孔机 ---> 用户

存在问题:1) 这个过程中计算机的处理速度是很快的,但打孔输入输出是很慢的,而且人工方式把数据记录到纸带和从纸带上读取数据就更加的繁琐了(可以想象下,当程序出现bug时,要改起来是很崩溃的); 2) 一个计算机在处理过程中只能为一个用户服务,因此即便是计算机的处理速度很快,但由于输入输出很慢,导致计算机大部分时间都处理等待阶段,这也是我们常说的计算机的资源利用率很低。

资源利用率 = 以资源的使用时间/程序运行总时间

1.2 单道批处理阶段

很显然是为了解决第一个阶段中提到的“一个计算机在处理过程中只能为一个用户服务”的问题,引入了脱机输入/输出技术(用磁带完成)监督程序负责控制作业的输入和输出。整个过程如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
多个用户 ---> 打孔机 ---> 外围机[负责作业的输入] ---> 磁带 ---> 计算机 ---> 磁带 ---> 外围机[负责作业的输出] ---> 用户

可以看到在这个阶段,实现了多用户同时运行程序,磁带的输入输出速度明显高于纸带,因为计算机将会有更多的时间处理忙碌阶段。同时引入监督程序来控制输入和输出,实现了多用户同时输入。

存在问题:虽然在这个阶段,多用户可以同时输入,但计算机内存中仅有一道程序在运行,只有当一个程序运行结束之后,才能调入下一道程序,CPU的利用率仍然很低。

这里的“监督程序”已经有了操作系统的雏形

1.3 多道批处理阶段

即在上一个阶段上解决“每次只能读入一个程序”,即“单道”的问题。每次往内存中读入多道程序,操作系统正式诞生。由操作系统来管理这些引入的多道程序的运行。各个程序并发执行。

存在问题:用户在提交自己的作业之后,只能等待计算机处理完成,中间不能控制自己的作业执行

并发与并行的概念 并行即某个时间点同时,并发即某个时间段同时。比如所有人一起齐步走,就是并行,一分钟内一个人接一个进行正步走就是并发。

1.4 分时操作系统

计算机以时间片为单位轮流为每个用户/作业服务,即一会服务A,一会服务B。

存在问题:不能优化处理一些紧急任务,因为时间片是固定的,所以它对每个用户是完全公平的。

1.5 实时操作系统

能够优先的响应一些紧急任务,某些紧急任务不需要时间片排队。在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。它的主要特点是及时性和可靠性

硬实时:必须在绝对严格的规定时间内完成处理。如:导弹控制系统、自动驾驶系统 软实时:能接受偶尔违反时间规定

1.6 其他操作系统

网络操作系统、分布式操作系统、个人计算机操作系统。

总结

从操作系统发展的不同阶段,我们可以总结出操作系统具有的特点:

  • 并发性:它用于管理多个程序并发的执行
  • 共享性:多个程序同时输入到内存中,是需要共享一些资源的

这两个特点是操作系统最基础的特点,也是我们从上述发展过程中很容易理解到的两个特点。其他特点:

  • 异步性:因为有并发,操作系统是一会执行A程序,一会执行B程序,所以一个程序的执行并不是一下从头到尾的执行完,而是会走走停停,以不可预知的速度向前推进
  • 虚拟性:同样也是因为有并发,我们可以同时执行多个程序,但每个程序所需要的资源大小不一样,比如我们的内存可能只有4G,但同时运行的程序所需要的内存大小超过了4G,但它们确实是可以并发执行的。即看上去好像内存大小不止4G,但实际只有4G,这就是虚拟性

此外,我们还可以得出一个结论:操作系统的产生是为了实现多道程序并发执行,以提高资源利用率。而这其中涉及到的其他概念:内核、系统调用、中断等,都是为了这一个目标而产生。

二、中断

在多道程序批处理阶段,我们提到了并发的概念。那在操作系统中是如何实现并发操作的呢?答案就是通过中断来实现的,中断操作就是告诉操作系统,我现在需要由你来介入管理。而理解这句话,我们需要先来理解什么是用户态与核心态的概念。

计算机底层运行程序,实际上都是一条一条的指令,而指令分为:特权指令和非特权指令。这也比较好理解,因为有很多指令(比如清空内存)是不能直接让用户使用的,也正是因为这个原因,所以CPU对应分为两个状态:核心态和用户态。核心态可以执行特权指令和非特权指令,而用户态只能执行非特权指令。

核心态和用户态是通过程序状态字寄存器(PSW)中的某标志位来标识当前处理器处于什么状态,如0为用户态,1为核心

说白了就是在操作系统内部做了权限管理,有些用户可以直接使用,有些则不能。而中断其实就是将用户态转为核心态的唯一方式。当我们程序在运行时,如果产生中断,则意味着必须交由操作系统介入来进行管理,比如对一些临界资源的访问等,正是因为有了操作系统的介入,从而达到了对程序做并发控制的可能。

中断又可分为内中断和外中断,区分内外主要是根据中断来源,如果中断来源是CPU内部,则是内中断,比如程序异常,如果来源是CPU外部,比如IO设备发出的中断,则是外中断

三、内核

我们都知道计算机运行程序,其实最终都是操作硬件,但如果直接与硬件打交道,学习成本可能比较高,而且普通用户不好理解。因此产生了内核。它是对硬件操作的一层抽象,可以理解为我们平时写代码进行的函数封装,我们不再需要关心底层硬件是怎么做的,而只需要符合内核定义的规范即可。因此内核其实就是一组管理和操作硬件的程序。

内核便是运行在核心态的程序,它是计算机上配置的底层软件,是操作系统最基本、最核心的部分。内核可以分为:微内核和大内核。简单理解就是大内核包含的功能更多,比如包括进程管理等等,功能多,性能高,但代码庞大,管理麻烦;微内核功能精简,结构就会更加清晰,缺点就是用户态与核心态切换会更频繁。

在理解微内核和大内核,可以对应小公司与大公司,但对应关系要相反。 微内核对应的其实是大公司的组织架构,大公司发展好,组织架构比较清晰,部门多,每个部门各思其责,虽然结构很清晰,每个部门内部功能很明确,但是如果要走一个流程,就很繁琐 而大内核对应小公司,特别是发展初期的小公司,管理层可能就一层,因此走流程特别快,效率特别高,但缺点就是管理混乱 微内核功能包括:时钟管理、中断处理、原语(设备驱动,CPU切换等)大内核功能除了微内核,还包含:进程管理、存储器管理、设备管理等。

四、系统调用

理解内核之后,我们再来看下最后一个概念:系统调用。内核对硬件操作做了抽象,那为什么还需要有系统调用呢?很简单,系统调用相当于是操作系统对上层再做的抽象,它是操作系统向上层应用程序提供的程序接口,这样应用程序在需要获得某些服务时,必须通过系统调用来获取,然后操作系统再对其进行处理。有点像我们平时系统对外提供的一些API,系统底层负责处理这些API,一方面规范了用户的请求,另一方面由系统统一管理和处理这些请求,避免了一些安全问题。

需要注意的是:

  1. 用户不仅是只能通过程序接口(即系统调用)与操作系统打交道,还可以通过命令接口来做交互
  2. 系统调用与库函数的区别:像我们平时使用编程语言,如C语言操作的函数就是库函数,库函数对程序调用做了封装,普通应用程序可以通过库函数来进行系统调用,也可直接进行系统调用。总结来说即为:操作系统向上提供系统调用 -> 编程语言向上封装库函数,这些库函数可能涉及到调用调用,也可能不涉及,如取绝对值 -> 应用程序想使用哪个就使用哪个

五、总结

  1. 操作系统引入:为了解决多道程序并发程序,操作系统用于管理多道程序并发执行
  2. 操作系统通过中断机制实现多道程序并发执行
  3. 操作系统指令分为特权指令和非特权指令,对应CPU状态为核心态和用户态
  4. 内核是操作系统最基本也是最核心的部分,它是对硬件做的抽象,它是运行在核心态的内核程序
  5. 系统调用是操作系统向上提供了程序接口,应用程序通过进行系统调用来使用操作系统提供的一些服务
  6. 内核、系统调用都是操作系统的一部分
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FluentStudy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
计算机操作系统学习笔记 第一章、操作系统概论
计算机系统自下而上可大致分为4部分:硬件、操作系统、应用程序和用户。而操作系统管理各种计算机硬件,为应用程序提供基础,并充当计算机硬件与用户之间的中介。在计算机系统的运行过程中,操作系统提供了正确使用这些资源的方法。
全栈程序员站长
2022/09/14
6180
计算机操作系统学习笔记 第一章、操作系统概论
操作系统知识点复习总结
操作系统是指控制和管理整个计算机的软件和硬件资源,并合理地组织调度计算机的工作和资源的分配,提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
卡伊德
2022/07/27
6580
操作系统知识点复习总结
《计算机操作系统-第三章》之中断与系统调用
早期的计算机虽然对程序的处理是成批进行的,但是内存中始终只能处理一个程序,而CPU的处理速度是非常的快的,当CPU运行期间向IO设备发送输入或者输出请求时,高度运转的CPU需要等待龟速的IO完成状态。为了提高资源利用率,人们就发明了操作系统,引入了中断机制,实现了多道程序技术。
用户10517932
2023/10/07
4700
《计算机操作系统-第三章》之中断与系统调用
【操作系统】操作系统运行环境——处理器的运行模式
在上一篇内容中我们介绍了操作系统的发展史,操作系统从诞生到发展主要经历了手工操作阶段、批处理阶段、分时操作系统阶段、实时操作系统阶段、网络操作系统和分布式计算机系统阶段以及个人计算机操作系统这6个阶段。我们可以将其归纳为以下4个阶段:
蒙奇D索隆
2024/09/07
3510
【操作系统】操作系统运行环境——处理器的运行模式
【操作系统】操作系统运行环境——中断与异常
在上一篇内容中我们介绍了处理器的运行模式。在计算机系统中,CPU通常会执行两种不同性质的程序:
蒙奇D索隆
2024/12/20
2120
【操作系统】操作系统运行环境——中断与异常
操作系统学习笔记-2:体系结构和运行机制
早期的操作系统没有真正意义上的“结构”可言,只是大量的过程的集合,过程之间可以互相调用,导致操作系统内部复杂而混乱。
Chor
2020/03/18
8350
关于操作系统的一些事,这些你应该要知道~
操作系统的运行机制 计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序或系统外层的应用程序。对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此“管理程序”要执行一些特权指令,而“被管理程序”出于安全考虑不能执行这些指令。所谓特权指令,是指计算机中不允许用户直接使用的指令,如I/O指令、 置中断指令,存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等指令。操作系统在具体实现上划分了用户态(目态)和核心态(管态),以严格区分两类程序。 现代计算机几
谭庆波
2018/08/10
4350
关于操作系统的一些事,这些你应该要知道~
操作系统学习(一)-- 从发展史理解操作系统设计需求
尽管操作系统发展史不是研究操作系统的重点,但是在这一发展过程中,衍生出了许许多多与操作系统相关的重要概念,如果知道这些概念出现在怎样的背景下,以及产生的原因,在后期学习中就不会觉得一些概念出现的比较突兀。除此之外,了解操作系统的发展史,理解设计需求,有助于我们站在计算机的角度思考问题。
乔戈里
2019/10/09
5490
操作系统学习(一)-- 从发展史理解操作系统设计需求
操作系统--第一章 绪论(408计算机考研)
冯诺依曼的体系结构只是构成了计算机系统的系统硬件基础,称为裸机,而实际呈现在用户面前的是经过若干层软件改造后的计算机。
风骨散人Chiam
2020/10/27
6940
5-中断和异常
发生中断就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(如进程切换,分配I/O设备等)需要使用特权指令,所以需要CPU由用户态切换到核心态。中断可以使CPU从用户态切换到核心态,是操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行
Ywrby
2022/10/27
4960
5-中断和异常
操作系统的运行环境
对于 CPU 来说,有两种指令,一种是 特权指令 ,另一种是 非特权指令 ,前者的操作通常比较危险,如清空内存等。
wsuo
2020/10/28
6010
操作系统习题知识点
操作系统有硬件和软件组成,硬件是CPUC软件建立与活动的基础,而软件是对硬件功能的扩充。硬件包括CPU、内存、I/O设备和总线等,软件通常分为应用软件、支撑软件和系统软件。
kif
2023/02/27
1.9K0
操作系统习题知识点
王道操作系统学习(三) 操作系统运行机制和体系结构
操作系统运行机制和体系结构 指令:能被处理器识别、执行的最基本命令 分为特权指令、非特权指令 特权指令如内存清零指令、非特权指令有加减乘除指令 处理器状态 用户态 目态、核心态 管态 用PSW 程序状态寄存器表示 0为用户态 1为核心态
glm233
2021/03/02
4110
王道操作系统学习(三) 操作系统运行机制和体系结构
操作系统的概念、功能、目标
将cpu、内存、磁盘、显示器、鼠标等硬件合理的组合起来, 让各个硬件能够相互协调配合, 实现更多更复杂的功能
用户11097514
2024/05/30
1910
操作系统的概念、功能、目标
操作系统概念(导论)
大家好,又见面了,我是你们的朋友全栈君。 SDU考试特别提醒: 整无语了,遇到hmb老师出题就躺平了吧。八个论述两个计算(死锁检测、硬盘访问),论述题感觉像考研题,基本是结合xx谈谈xx这样。 分数直接爆炸,心累了,呜呜。
全栈程序员站长
2022/09/06
4970
操作系统概念(导论)
操作系统:第一章 操作系统引论
先将程序和数据通过外围机输入到磁盘中,当CPU需要时从磁盘中读取,结果输出到另外一台外围机上,减少了CPU的空闲时间,调高了I/O速度。
Here_SDUT
2022/08/08
6540
操作系统:第一章 操作系统引论
网络变成操作系统详解
  现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成。
changxin7
2019/08/14
9680
网络变成操作系统详解
4-操作系统的运行机制以及体系结构
一般而言,指令可以由高级语言(C,Java,C++)翻译而来,一条高级语言的代码翻译过来可能对应多条指令
Ywrby
2022/10/27
4640
4-操作系统的运行机制以及体系结构
操作系统核心原理-2.一些基本概念
  从概念上讲,计算机的结构是总线型的:布置一根总线将各种硬件设备挂在总线(Bus)上。
Edison Zhou
2018/08/20
3900
操作系统核心原理-2.一些基本概念
《计算机操作系统-第二章》之操作系统的运行机制与体系结构
我们平时所写的代码基本上都是用高级语言所书写的,但是计算机是无法直接识别的就需要编译器将我们所写的代码翻译成计算机能够直接识别的机器语言,而机器语言是用二进制代码表示的计算机直接识别和执行的一种机器指令的集合,综上指令即为二进制。
用户10517932
2023/10/07
2630
《计算机操作系统-第二章》之操作系统的运行机制与体系结构
相关推荐
计算机操作系统学习笔记 第一章、操作系统概论
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验