特此鸣谢王道考研

本文参考王道考研的相关课程

若有侵权请联系,立删

其余笔记链接:

【王道考研】操作系统笔记 第一章_才疏学浅743的博客-CSDN博客

【王道考研】操作系统 笔记 第二章上 进程调度_才疏学浅743的博客-CSDN博客

1.操作系统的概念与功能

OS定义

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

下面这个图很好的展示了,定义与功能的联系

OS的功能

①操作系统是系统资源的管理者

具体功能如下

  1. 文件管理——找到文件位置

  2. 存储器管理——执行程序放入内存,或读写数据

  3. 处理机管理——执行内存中的程序

  4. 设备管理——调用I/O设备等

以QQ聊天为例:

何为处理机?

  • 就是实现功能的物理硬件综合体。或理解为CPU

处理机包括 中央处理器 , 主存储器 ,输入-输出接口,加接 外围设备 就构成完整的计算机系统。处理机是处理计算机系统中 存储程序 和数据,并按照程序规定的步骤执行指令的部件。程序是描述处理机完成某项任务的指令序列。指令则是处理机能直接解释、执行的信息单位。

随着微电子技术的进步和计算机系统结构的发展,已能用 大规模集成电路 构成不同结构的和适应不同用途的处理机,如阵列处理机、向量处理机、数组处理机、数据库处理机、输入-输出处理机和将整个处理机制作在几个硅片上的微处理器等。

②向上层提供方便易用的服务

  1. 命令接口:允许用户直接使用

    • 联机命令接口=交互式命令接口:用户说一句,系统跟着做一句

    • 脱机命令接口=批处理命令接口:用户说一堆,系统跟着做一堆

  2. 程序接口:允许用户通过程序代码间接使用

    • 系统调用=广义指令 常用库函数调用

  3. GUI 图形用户界面(Graphical User Interface):现代操作系统中最流行的图形用户接口

为上述的功能分别举例:

  1. 联机命令接口

    • 比如cmd,命令行窗口方式的操作。输入一行命令,执行一次

  2. 脱机命令接口

    • 比如 .bat文件,执行之后一次执行完整个文件内的命令。类似于matlab脚本和命令行的区别。

  3. 程序接口:

    • 可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用。

    • 比如,VBS可以用代码创建一个Windows的警告弹窗。但是不用代码,也就是用图形化操作就无法实现。或者C语言的库函数printf,使用了 内核程序的write()操作

  4. GUI

    • 就是图形化界面。点击,拖拽等等。

③是最接近硬件的一层软件

只有一个功能

  1. 需要实现对硬件机器的拓展

    • 把最底层的功能进行了封装

    • 比如:硬件:锤子、锯子、木头、钉子....操作系统:优秀的工匠。现在用户可以直接让工匠造船,而不是用原料造船。

裸机 VS 虚拟机(扩充机器)

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

通常把覆盖了软件的机器成为扩充机器,又称之为虚拟机

2.操作系统的目标

  • 方便性

  • 在硬件上运行程序,用机器语言书写极其困难,OS能将高级语言翻译成机器语言。

  • 有效性

  • 提高操作效率、系统吞吐量。

  • 可扩充性

  • 为了适应硬件体系结构及应用的发展。

  • 开放性

  • 为了更好的推广,方便使用制定行业标准。

3.操作系统的特征 ⭐

基本特征有如下四个

  1. 并发

  2. 共享

  3. 虚拟

  4. 异步

并发

并发与并行的区别

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

  • 也就是“虚假”的同时发生,CPU同时运行两个程序,其实是短时间内分别运行

  • 操作系统的并发是通过分时实现的

并行:指两个或多个事件在同一时刻同时发生

  • 是系统同时执行或操作

  • 硬件支持:多流水线或者多处理机

重要考点:

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

  • 微观上轮流执行,宏观上看上去同时在执行。

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

举例:

共享

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

共享的方式有以下两种

  1. 互斥共享方式

  2. 同时共享方式

举例来说明:

  1. 互斥共享方式

    • 系统中的某些资源,虽然可以允许多个进程使用但一个时间段内只允许一个进程访问该资源

    • 比如,QQ电话和微信电话不能同时使用摄像头。但是他们共享使用摄像头的权利。

    • 摄像头这种资源称作临界资源或者独占资源

  2. 同时共享方式

    • 系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问

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

    • 比如:QQ和微信可以同时使用内存,在内存里面写数据。

    • 但是微观上也可能是真正的“同时”,比如:游戏和音乐同时播放声音

虚拟

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。

  • 物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。

虚拟技术有两种

  1. 空分复用——虚拟存储器技术扩大内存

  2. 时分复用——单核CPU同时运行多个进程程序

具体例子:

  1. 虚拟处理器:采用多道程序并发的方式,让每个终端用户感觉到有多个处理器 时分复用技术

  2. 虚拟存储器:将物理存储变为虚拟存储器,逻辑上扩充存储器用 空分复用技术

  3. 也可以将一台IO设备虚拟为多台逻辑上的IO设备,并允许每个用户占用一台逻辑上的IO设备

异步

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

理解

走走停停的意思就是,比如Java Socket 通信中,SocketServer监听事件,就是一个异步执行的函数。因为Socket类只会存在一个,所以 0.01s 0.02s客户端A和B都发出了请求,但是0.01s的A先接受到了,所以服务器先响应A的请求。这就是结果的不可预知性

或者如下例子中,如果老渣预约的时间变了,给谁心就不一定了(不可预知性)。另一个人就会陷入阻塞状态,直到别人归还老渣的心

四大特征之间的关系

  1. 并发在操作系统诞生之初就被设计了,用来解决单核CPU运行多个进程。

  2. 共享与并发互为存在意义

  3. 没有并发,虚拟就没有意义。

  4. 没有并发,就无法产生异步

并发和共享的关系

  • 二者互为存在条件

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

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

经典的证明方法,

  • 如果不存在并发,则同时只能运行一个程序,就不存在多个程序同时使用一个资源(共享)

  • 如果不存在共享,则多个并发的程序不能同时访问一个资源,即使并发了也无法存取数据,很鸡肋。

并发和虚拟的关系

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。

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

并发和异步的关系

只有系统拥有并发性,才有可能导致异步性

4.操作系统的发展与分类

  1. 手工操作阶段——通过打孔纸片输入代码

  2. 单道批处理系统——打孔纸片先输入给磁带,磁带再更快速的输入到计算机

    • 有操作系统的雏形

  3. 多道批处理系统 ——没有人机交互的PC

    • 操作系统正式诞生

  4. 分时操作系统——所有人平等时间使用电脑

  5. 实时操作系统——优先处理紧急事务

    • 分为①硬实时操作系统——不允许规定时间内没完成任务

    • ②软实时操作系统——允许偶尔没在规定时间内完成任务

  • 绿框常考

手工操作阶段

主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低

批处理阶段——单道批处理系统

引入脱机输入/输出技术(用外围机+磁带完成),并由监督程序负责控制作业的输入、输出。

外围机:功能1.可以完成把程序提前存入纸带里面,2.并控制纸带输入。

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

主要缺点:只有脱机命令接口=批处理命令接口,没有联机命令接口=交互式命令接口。

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

批处理阶段——多道批处理系统

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

主要缺点:没有GUI,

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

分时操作系统

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

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

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

实时操作系统

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

分为两种实施系统

  1. 硬实时系统——必须在绝对严格的规定时间内完成处理

    • 如:导弹控制系统、自动驾驶系统

  2. 软实时系统——能接受偶尔违反时间规定

    • 如:12306火车订票系统

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

主要特点:是及时性和可靠性

其他几种操作系统

网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。(如:Windows NT 就是一种典型的网络操作系统,网站服务器就可以使用)

分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。

个人计算机操作系统:如Windows XP、MacOS,方便个人使用。

5.操作系统的运行机制⭐

两种指令

  1. 特权指令:操作系统允许使用的中断、删除等危险操作

    • 如:内存清零指令。这些指令影响重大,只允许“管理者”——即操作系统内核来使用

  2. 非特权指令:用户、应用程序被允许使用的简单的加减乘除等操作

两种程序

  1. 内核程序:需要调用特权指令的程序

    • 也就是实现操作系统的程序

    • 很多内核程序组成了“操作系统内核简称"内核"(Kernel)

  2. 应用程序:不需要特权指令的程序

两种处理器状态

  1. 核心态(内核态、管态):CPU只有在核心态才能使用特权指令,才能运行内核程序。

  2. 用户态(目态):CPU不能使用特权指令,不能运行内核程序

内核态、用户态的切换

状态的切换称为变态

内核态to用户态:

执行一条特权指令——修改PSW(程序状态字)的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权

用户态to内核态:

  • 1.由“中断”引发硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权

  • 2.可以使用陷入指令Trap,触发“内中断”

内核分类⭐、操作系统体系结构、计算机系统的层次结构

总计一下:

  1. 操作系统体系结构包括 内核 和 非内核 部分

  2. 内核有两大部分功能,其中黄色部分是最基本的功能。橙色的是有些OS没有划分进去的内容。

  3. 内核的分类

    • 只包含必不可少的时钟管理、中断处理、原语的内核是微内核

    • 还包含任务管理器、进程管理、设备管理的内核是大内核

典型的大内核/宏内核/单内核 操作系统: Linux、UNIX

典型的 微内核 操作系统: Windows NT

从下图可以直观看出来,只用微内核转换状态(变态)的次数变少了

内核的结构

  • 时钟管理:时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。另外,通过时钟中断的管理,可以实现进程的切换。

  • 中断机制:中断机制是操作系统各项操作的基础。如键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等。中断机制负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。

  • 原语

    • 原语是最接近硬件的部分

    • 这些程序的运行具有原子性,其操作只能一气呵成(主要从系统安全性和便于管理考虑)

6.中断与异常

中断的功能

CPU 上会运行两种程序,一种是操作系统内核程序,一种是应用程序

“中断”是让操作系统内核夺回CPU使用权的唯一途径

如果没有“中断”机制,那么一旦应用程序上CPU运行,CPU就会一直运行这个应用程序

状态转换方式:

内核态→用户态:执行一条特权指令——修改PSW(程序状态字)的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权

用户态→内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权

中断的分类

  • 分类依据是CPU中断信号的来源

外中断 (正常运行)

举例:

  1. 外部设备请求:

    • 比如:I/O设备请求读入,scanf()读入键盘缓冲区的时候,程序会中断停止。

  2. 人工干预:

    • 比如:任务管理器强行关闭一个进程

内中断(也就是异常)

  1. 陷阱、陷入(trap) 也叫自愿中断

    • 用户态下,应用程序调用系统程序

  2. 故障(fault)

    • 比如,外部设备打印机没有纸了

  3. 终止(abort)

    • 比如,整数除以0

何为陷入指令 trap?

陷入指令是指用户程序所依靠的指令用于发起系统调用,请求操作系统提供服务。

陷入指令有其中一点特殊在于,其只能在用户态下执行,而不可以在核心态下执行。

用户程序执行陷入指令,相当于把CPU的使用权主动交给了操作系统内核程序(CPU状态会从用户态切换到核心态),之后操作系统内核程序再对系统调用请求做出相应的处理。处理完成后,操作系统内核程序又会把CPU的使用权还给用户程序(即CPU状态从核心态切换到用户态)。

7.系统调用

定义

系统调用:是操作系统提供给应用程序(程序员/编程人员)使用的接口

可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过"系统调用"来请求获得操作系统内核的服务

系统调用存在的意义

系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、lO操作、文件管理等),都必须通过操作系统代为完成。防止用户进行非法操作,这样可以保证系统的稳定性和安全性。

系统调用的功能

凡是与资源有关的操作、会直接影响到其他进程的操作,一定需要操作系统介入,即需要通过系统调用来实现

系统调用与库函数的区别

库函数是高级语言中提供的与系统调用对应的函数(也有些库函数与系统调用无关),目的是隐藏“访管”指令的细节,使系统调用更为方便、抽象。库函数属于用户程序而非系统调用,是语言或应用程序的一部分,可以运行在用户态

系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在核心态,而许多库函数都会使用系统调用来实现功能。未使用系统调用的库函数,其执行效率通常要比系统调用的高。因为使用系统调用时,需要上下文的切换及状态的转换(用户态->核心态)

系统调用的过程

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

注意:

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

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

3.陷入指令是唯一一个只能在用户态执行,而不可在核心态执行的指令

【王道考研】操作系统 笔记 第一章相关推荐

  1. 王道考研 计算机网络笔记 第一章:概述计算机网络体系结构

    本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 后续章节将陆续更新- 目录 一.概念.功能.组成.分类 1. 计算机网络的概念 2. 计算机网络功能 3. 计算 ...

  2. 王道考研——操作系统(第一章 计算机系统概述)

    一.操作系统的概念(定义)功能和目标 操作系统的概念(定义) 操作系统的功能和目标--作为系统资源的管理者 操作系统的功能和目标--向上层提供方便易用的服务 封装思想:操作系统把一些丑陋的硬件功能封装 ...

  3. 王道考研 计算机网络笔记 第二章:物理层

    本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 后续章节将陆续更新- 第二章 一.物 ...

  4. (王道考研计算机网络)第一章计算机网络体系结构-第一节计算机网络概述2:计网性能指标

    指导获取:密码7281 专栏目录首页:[专栏必读]王道考研408计算机网络+湖科大教书匠计算机网络+网络编程万字笔记.题目题型总结.注意事项.目录导航和思维导图 王道考研408计算机组成原理万字笔记 ...

  5. 操作系统笔记-----第一章 基本概述

    第1章 操作系统概述 第1章 操作系统概述 操作系统的基本概念 操作系统的主要功能 操作系统的发展历史 操作系统设计目标 操作系统的基本概念 你知道哪些操作系统? 操作系统"无处不在&quo ...

  6. 王道考研——操作系统(第二章 进程管理)(进程的同步,进程的互斥,管程)

    一.进程同步与进程互斥 什么是进程同步 "进程同步"讨论的就是怎么解决"进程异步"的问题 什么是进程互斥 知识回顾与重要考点 二.进程互斥的软件实现方法 学习提 ...

  7. (王道考研计算机网络)第一章计算机网络体系结构-第二节体系结构与参考模型2:ISO/OSI模型

    文章目录 一:ISO/OSI参考模型简介 二:ISO/OSI参考模型通信流程 三:ISO/OSI参考模型各层功能及涉及协议(重点) (1)应用层(Application Layer) (2)表示层(P ...

  8. (王道考研计算机网络)第一章计算机网络体系结构-第一节计算机网络概述1:计网的概念、组成、功能和分类

    文章目录 一:计算机网络的发展 二:计算机网络的概念 三:计算机网络的功能 四:计算机网络的组成 (1)从"组成部分"视角看:由硬件.软件和协议组成 (2)从"工作方式& ...

  9. 王道考研 计算机网络笔记 第六章:应用层

    本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...

最新文章

  1. es6箭头函数中this
  2. 梯度下降法与批量梯度下降法的简洁公式总结
  3. 智能机器人服务广州春运
  4. Python学习笔记:入门(1)
  5. Matlab中特征降维主成分分析(PCA)使用方法(整套流程)
  6. 嵌入式linux, CAN 驱动有关问题
  7. [Vue源码分析]自定义事件原理及事件总线的实现
  8. 对于有志于成为架构师的开发者,支付宝架构团队有何建议?
  9. MATLAB目标检测恒虚警技术,一种自适应的恒虚警率目标检测方法
  10. button上传替换file上传按钮,并显示图片缩略图,纯jsp操作
  11. linux麒麟安装教程,优麒麟使用教程第四期:Linux平台U盘启动盘制作
  12. IE、Firefox和 Chrome长时间打开后内存都会变很大。
  13. 正则RegExp对象的用法
  14. adb调试工具下载使用
  15. SQL注入语句和方法总结
  16. 选课系统服务器,选课系统概要设计
  17. NAT 穿透的几种方式
  18. How to solve javadoc Chinese garbled in IntelliJ Idea
  19. 无法打开计算机桌面图标,桌面图标打不开如何修复?桌面图标无法打开的处理方法...
  20. AutoCAD Civil 3D里材质资源管理器手动重安装

热门文章

  1. Microsoft Dynamics CRM 常用JS语法(已转成vs2017语法提示)
  2. [NOIP2015] 斗地主
  3. 如何搭建APP分发平台分发平台搭建教程
  4. 【kong系列十一】之JWT插件RSA256非对称加密使用
  5. php:php-fpm平滑重启为什么无效
  6. X86_64 GNU汇编、寄存器、内嵌汇编
  7. 管理的角度分析:团队建设、团队管理、团队文化、沟通与辅导、招聘与解雇等
  8. APP国际化、动态设置控件颜色(APP个性化)
  9. 迅雷php源码,PHP生成迅雷、快车、旋风等软件的下载链接代码实例
  10. CF 1300.B——Assigning to Classes【思维】