Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >操作系统知识点复习总结

操作系统知识点复习总结

作者头像
卡伊德
发布于 2022-07-27 02:43:30
发布于 2022-07-27 02:43:30
65800
代码可运行
举报
文章被收录于专栏:caidblogcaidblog
运行总次数:0
代码可运行

操作系统

一. 概述

1. 操作系统的概念、功能和目标

1.1 操作系统的概念

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

1.2 操作的功能

1.2.1 作为系统资源的管理者
提供的功能
  1. 处理机管理
  2. 存储器管理
  3. 文件管理
  4. 设备管理
操作系统的目标

高效、安全

1.2.2 作为用户和计算机硬件之间的接口
提供的功能
  1. 命令接口 联机命令接口:用户说一句,系统做一句 非联机命令接口:用户说一堆,系统做一堆
  2. 程序接口:由一组系统调用组成
  3. 图形用户界面
操作系统的目标

方便用户使用

1.2.3 作为最接近硬件的层次
提供的功能和目标

实现对硬件机器的拓展(逻辑 虚拟机

2. 操作系统的特点

2.1 并发(最基本特点)

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

2.2 共享(最基本特点)

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

共享方式:

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

2.3 虚拟

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

虚拟技术:

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

2.4 异步

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

3. 操作系统的发展和分类

3.1 手工操作阶段

缺点:用户独占全机、人机速度矛盾导致

3.2 批处理阶段

  1. 单道批处理系统缺点:CPU有大量的时间是在空闲等待I/O完成
  2. 多道批处理系统(操作系统开始实现)缺点:没有人机交互功能

3.3 分时操作系统

优点: 提供人机交互

缺点: 不能优先处理紧急业务

3.4 实时操作系统

分类:

**硬实时系统: ** 必须在严格的规定时间内完成处理

软实时系统: 能接受偶尔违反时间规定

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

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

4.1 运行机制

  1. 两种指令
    • 特权指令:不允许用户使用
    • 非特权指令
  2. 两种处理器状态
    • 核心态(管态):特权指令和非特权指令都可以执行
    • 用户态(目态):CPU只可以执行非特权指令 切换: 用户态 –> 核心态: 通过中断来实现,中断是唯一途径 核心态 –> 用户态: 通过执行一个特权指令来实现,将程序状态字(PSW)的标志位设置为“用户态”
  3. 两种程序
    • 内核程序:系统的管理者,特权指令和非特权指令都可以执行,运行在核心态
    • 应用程序:为了保证运行安全,只能执行非特权指令,运行在用户态

4.2 操作系统内核

  1. 时钟管理:实现计时功能
  2. 中断处理:负责实现中断机制
  3. 原语(设备驱动、CPU切换)
    • 是一种特殊的程序
    • 处于操作系统最底层,是最接近硬件的部分
    • 这种程序的运行具有原子性……其运行只能一气呵成,不可中断
    • 运行时间较短、调用频繁
  4. 对系统资源进行管理的功能
    • 进程管理
    • 设备管理
    • 存储器管理

4.3操作系统的体系结构

4.3.1 大内核
  1. 将操作系统的主要功能模块都作为系统内核,运行在核心态
  2. 优点:高性能
  3. 缺点:内核代码庞大,结构混乱,难以维护
4.3.2 微内核
  1. 只把基本的功能保留在内核
  2. 优点:内核功能少,结构清晰,方便维护
  3. 缺点:需要频繁地在核心态和用户态之间切换,性能低

5. 中断和异常

5.1 中断机制的诞生

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

5.2 中断的概念和作用

  1. 当中断发生时,CPU立即进入核心态
  2. 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
  3. 对于不同的中断信号,会进行不同的处理
  4. 发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。

5.3 中断的分类

  1. 内中断(也称为“异常”、例外、陷入)
    • 自愿中断:指令中断,如系统调用时使用的访管指令(又叫小茹指令、trap指令)
    • 强迫中断: 硬件故障,如缺页 软件中断,如除0运算.
  2. 外中断
    • 外设请求,如I/O操作完成发出的中断信号
    • 人工干预
  3. 区别
    • 信号来源:内中断是CPU内部,外中断是CPU外部
    • 内中断与当前执行的指令有关,而外中断无关

5.4 外中断的处理过程

二. 进程与线程

1. 进程的定义、组成、组织方式、特征

1.1 定义

程序: 就是一个指令序列 进程实体: 程序段、数据段、PCB三部分组成了进程实体 (进程映像) PCB是进程存在的唯一标志 进程: 进程实体的运行过程,是系统进行资源分配和调度的一个独立单位 注: 严格来说,进程实体时静态的,进程则是动态的。

1.2 组成

  1. 程序段(程序本身运行所需的数据):存放程序代码
  2. 数据段(程序本身运行所需的数据):存放程序运行时使用、产生的运算数据。如全局变量、局部变量、宏定义的常量等。
  3. PCB(进程的管理者即操作系统所需要的数据都在PCB中):操作系统通过PCB(进程控制块)来管理进程,因此PCB中应该包含操作系统对其进行管理所需的各种信息 PCB的内容:
    • 进程描述信息:进程标识符PID、用户标识符UID
    • 进程控制和管理信息:进程当前状态、进程优先级
    • 进程分配清单:程序段指针、数据段指针、键盘、鼠标
    • 处理机相关信息:各种寄存器值

1.3 组织方式

  1. 链接方式
    • 按照进程状态将PCB分为多个队列
    • 操作系统持有指向各个队列的指针
  2. 索引方式
    • 根据进程状态的不同,建立几张索引表
    • 操作系统持有指向各个索引表的指针

1.4 特征

  1. 动态性(最基本):进程是程序的一次执行过程,是动态地产生、变化和消失的
  2. 并发性:内存中有多个进程实体,各进程可并发执行
  3. 独立性:进程是能独立运行、独立获得资源、独立接受调度的基本单位
  4. 异步性:各进程按各自独立的、不可预知的速度向前推进,操作系统要提供“进程同步机制”来解决异步问题
  5. 结构性:每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成

2. 进程的状态与转换

2.1 状态

  1. 运行状态(基本):占用CPU,并在CPU上运行
  2. 就绪状态(基本):已经具备运行条件,但由于没有空闲CPU,而暂时不能运行
  3. 阻塞状态(又称等待态 基本):因等待某一事件而暂时不能运行
  4. 创建状态(又称新建态):进程正在被创建,操作系统为进程分配资源、初始化PCB
  5. 终止状态(又称结束态):进程正在从系统中撤销,操作系统会回收进程拥有的资源、撤销PCB

2.2进程状态间的转换

  • 就绪态 -> 运行态
  • 运行态 -> 就绪态
  • 运行态 -> 阻塞态
  • 阻塞态 -> 就绪态

3. 进程控制

3.1 基本概念

进程控制的主要功能是对系统中的所有实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能

3.2 进程控制相关的原语

用原语实现进程的控制:原语采用“关中断指令”和“开中断指令”来实现一气呵成的特点。 过程:

  1. 更新PCB中的信息(如修改进程状态标志)
    • a. 所有的进程控制原语一定都会修改进程状态标志
    • b. 剥夺当前运行进程的CPU使用权必然需要保存其运行环境
    • c. 某进程开始运行前必须要恢其运行环境
  2. 将PCB插入合适的队列
  3. 分配/回收资源

进程的创建

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1. 创建原语
  • a. 申请空白PCB
  • b. 为新进程分配所需资源
  • c. 初始化PCB
  • d. 将PCB插入就绪队列
    1. 引起进程创建的事件
  • 用户登录
  • 作业调度
  • 提供服务
  • 应用请求

进程的终止

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1. 撤销原语
  • 从PCB集合中找到终止进程的PCB
  • 若进程正在运行,立即剥夺CPU,将CPU分配给其他进程
  • 终止其所有子进程
  • 将进程拥有的所有资源归还给父进程或操作系统
    1. 引起进程终止的事件
  • 正常结束
  • 异常结束
  • 外界干预

进程的阻塞和唤醒

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1. 进程的阻塞
  • 阻塞原语
    • a.找到要阻塞的进程对应的PCB
    • b.保护进程运行现场,将PCB状态信息设置为“阻塞态”,暂时停止进程运行
    • c.将PCB插入相应事件的等待队列
  • 引起进程阻塞的事件
    • 需要等待系统分配某中资源
    • 需要等待相互合作的其他进程完成工作

4. 进程通信

4.1 共享存储

两个进程对共享空间的访问必须是互斥的

  • 基于数据结构的共享:比如共享空间里只能放一个长度为10的数组,特点:速度慢、限制多(低级通信方式)
  • 基于存储区的共享:在内存中画出一块共享存存储区,数据的形式、存放位置都由进程控制,而不是操作系统,特点:速度更快(高级通信方式)

4.2 消息传递

以格式化的消息为单位,通过“发送消息/接收消息”完成。一条消息包括消息头和消息体两部分

  • 直接通信方式
  • 间接通信方式

4.3 管道通信

  1. 采用半双工通信
  2. 各进程互斥地访问管道
  3. 当管道写满时,写进程的write()系统调用被阻塞,等待读进程将数据取走。当读进程全部取完数据时,读进程的read()系统调用被阻塞
  4. 如果没写满,就不允许读。如果没读空,就不允许写
  5. 数据一旦读出,则该数据就被抛弃,意味着,读进程最多只能有一个

5. 线程概念、多线程模型

5.1 概念

线程: 是一个基本的CPU执行单元,也是程序执行流的最小单位 引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机都是分配给进程的)

5.2 优点

  • 资源分配、调度
  • 并发性
  • 系统开销

5.3 属性

  • 线程是处理机调度的单位
  • 多CPU计算机中,各个线程可占用不同的CPU
  • 多个线程都有一个线程ID、线程控制块(TCB)
  • 线程也有就绪、阻塞、运行三种基本状态
  • 线程几乎不拥有系统资源
  • 同一进程的不同线程间共享进程的资源
  • 由于共享内存地址,同一进程中的线程间通信甚至无需系统干预
  • 同一进程中的线程切换,不会引起进程切换
  • 不同进程中的线程切换,会引起进程切换
  • 切换同进程内的线程,系统开销很小

5.4 实现方式

  1. 用户级线程
  • 由应用程序通过线程库实现。所有的线程管理工作都由应用程序负责(包括线程切换)。
  • 切换线程可以在用户态下即可完成,无需操作系统干预
  • 在用户看来,是有多个线程。但是操作系统内核看来,并意识不到线程的存在。(用户级线程对用户不透明,对操作系统透明)
  1. 内核级线程 重点: 操作系统只”看得见“内核级线程,因此只有内核级线程才是处理机分配的单位

5.5 多线程模型

  1. 多对一模型:多个用户级线程映射到一个内核级线程。每个用户进程对应一个内核级线程
  2. 一对一模型:一个用户级线程映射到一个内核级线程。每个用户进程有与用户及线程同数量的内核级线程
  3. 多对多模型:n用户级线程映射到m个内核级线程(n>=m)。每个用户进程对应m个内核级线程
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/07/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【操作系统】操作系统运行环境——处理器的运行模式
在上一篇内容中我们介绍了操作系统的发展史,操作系统从诞生到发展主要经历了手工操作阶段、批处理阶段、分时操作系统阶段、实时操作系统阶段、网络操作系统和分布式计算机系统阶段以及个人计算机操作系统这6个阶段。我们可以将其归纳为以下4个阶段:
蒙奇D索隆
2024/09/07
3510
【操作系统】操作系统运行环境——处理器的运行模式
​五分钟扫盲:进程与线程基础必知
进程(Process)和线程(Thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。以下这个解释出自阮一峰老师的博客(http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html),虽然「不是非常严谨,但是足够形象」,看完之后能对进程和线程有个非常直观的印象,这样也方便理解后文。
飞天小牛肉
2021/02/26
3930
​五分钟扫盲:进程与线程基础必知
操作系统习题知识点
操作系统有硬件和软件组成,硬件是CPUC软件建立与活动的基础,而软件是对硬件功能的扩充。硬件包括CPU、内存、I/O设备和总线等,软件通常分为应用软件、支撑软件和系统软件。
kif
2023/02/27
1.9K0
操作系统习题知识点
操作系统学习笔记-进程描述和控制
进程控制块包含了充分的信息,这样就可以中断一个进程的执行,并且在后来恢复执行进程时就好像进程未被中断过。进程控制块是操作系统能够支持多进程和提供多处理的关键工具。当进程被中断时,操作系统会把程序计数器和处理器寄存器(上下文数据)保存到进程控制块中的相应位置,进程状态也被改变为其他的值(例如阻塞状态或就绪状态)。
花猪
2022/02/16
8230
操作系统学习笔记-进程描述和控制
[每天五分钟,备战架构师-2]操作系统基本原理
操作系统是管理和控制计算机硬件和软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件。注意,这里说的裸机可以是物理机,也可以是虚拟机。随着技术的发展,现在还出现了Docker容器技术,一个Docker容器实际上不一定需要具备完整的系统功能也能够运行程序,其底层是通过宿主机的内核来与硬件进行交互的。
大江小浪
2018/09/19
5300
[每天五分钟,备战架构师-2]操作系统基本原理
开发成长之路(21)-- 不可不知的操作系统知识(1)
最下面是硬件系统;最上面是使用计算机的人,即各种各样的用户;人与硬件系统之间是软件系统。系统软件是最靠近硬件的一层,其次是支撑软件和应用软件。
看、未来
2021/09/18
4730
操作系统 - 进程
系统为每一个运行的程序配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代码存放位置)
ppxai
2020/09/23
9230
操作系统 - 进程
《Linux操作系统编程》第二章 进程运行与调度: 了解进程的定义与特征、进程的状态与切换、进程管理的数据结构、进程的创建与终止、阻塞与唤醒、挂起与激活以及处理机调度的相关概念
要求学生了解进程的定义与特征、进程的状态与切换、进程管理的数据结构、进程的创建与终止、阻塞与唤醒、挂起与激活以及处理机调度的相关概念。
猫头虎
2024/04/08
4250
《Linux操作系统编程》第二章 进程运行与调度: 了解进程的定义与特征、进程的状态与切换、进程管理的数据结构、进程的创建与终止、阻塞与唤醒、挂起与激活以及处理机调度的相关概念
操作系统知识清单
1、存储器在CPU外,一般指硬盘,U盘等可以在切断电源后保存资料的设备,容量一般比较大,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右。
zhangjiqun
2024/12/16
680
操作系统知识梳理共9次缺页
第一章:概述 什么是操作系统? 是一段一直运行在计算机上的程序 是资源的分配者 向上管理软件向下管理硬件 为用户提供良好接口 中断的概念? 中断指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。 中断向量的概念? 各种设备的中断处理子程序的地址数组 什么是系统调用? 由操作系统实现提供的所有系统调用所构成的集合即(Application Programming Interface,API)。是应用程序同系统之间的接口。 内存是什么? 内存是处理器可以直接访问的唯一的大容量存储区
张俊怡
2018/04/24
8980
操作系统笔记-进/线程模型
进程表(process table),也称进程控制块(PCB),是由操作系统维护的,每个进程占用其中一个表项。该表项包含了操作系统对进程进行描述和控制的全部信息,从而保证该进程换出后再次启动时,就像从未中断过一样。
Cloud-Cloudys
2020/07/25
5570
关于操作系统的一些事,这些你应该要知道~
操作系统的运行机制 计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序或系统外层的应用程序。对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此“管理程序”要执行一些特权指令,而“被管理程序”出于安全考虑不能执行这些指令。所谓特权指令,是指计算机中不允许用户直接使用的指令,如I/O指令、 置中断指令,存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等指令。操作系统在具体实现上划分了用户态(目态)和核心态(管态),以严格区分两类程序。 现代计算机几
谭庆波
2018/08/10
4350
关于操作系统的一些事,这些你应该要知道~
操作系统知识点整理
书《计算机操作系统》第四版(汤小丹编著) 课程操作系统 操作系统启动流程略了 md和pdf下载:Chasssser 完整版包括收集的题目 以下仅为知识点
Enterprise_
2019/02/20
1.2K0
你该懂得操作系统知识—内核态和用户态
现代操作系统一般将 OS 划分非若干层次,再将 OS 的不同功能分别设置在不同的层次中。通常将一些与硬件紧密相关的模块(如中断处理程序等)、各种常用设备的驱动程序以及运行频率较高的模块(如时钟管理、进程调度和许多模块所公用的一些基本操作),都安排在紧靠硬件的软件层次中,将它们常驻内存,即通常所称为的OS 内核。这种安排方式的目的在于两个方面:
早安嵩骏
2020/08/11
1.8K0
操作系统笔记-进程
由于某些硬件或操作是需要操作系统进行调用的,保证安全所以防止用户直接进行操作,而当用户要操作的只有操作系统能够调用的操作的时候,此时需要通知操作系统,而此时则是产生中断,中断实际上就是设置中断寄存器的标识位,cpu会在每个指令后检查其中断寄存器是否发生中断,如果发生则需要执行对应的中断程序。
大猫的Java笔记
2023/03/08
5970
操作系统笔记-进程
操作系统笔记【进程管理及控制
顺序执行:单道批处理的执行方式,也用于简单的单片机系统,具有独立功能的程序独占cpu直到得到最终结果的过程
BWH_Steven
2020/05/09
9570
操作系统之进程管理(上),研究再多高并发,都不如啃一下操作系统进程!!!
由图可知程序会先由编译器编译成机器指令,运行之前先把程序放入内存,在内存中创建一个进程实体。一个进程实体(进程映像)由PCB、程序段、数据段组成。然后CPU从内存中取出指令,来运行程序。
阿甘的码路
2022/09/22
4890
操作系统之进程管理(上),研究再多高并发,都不如啃一下操作系统进程!!!
大学课程 | 计算机操作系统
(3) 模块接口法的优缺点: 优点: ①提高OS设计的正确性,可理解性,可维护性 ②增强OS的可适应性 ③加速OS的开发过程 缺点: ①接口很难满足实际需求 ②无序模块法,无法寻找一个可靠的决定顺序
Justlovesmile
2021/12/14
9340
大学课程 | 计算机操作系统
《计算机操作系统-第三章》之中断与系统调用
早期的计算机虽然对程序的处理是成批进行的,但是内存中始终只能处理一个程序,而CPU的处理速度是非常的快的,当CPU运行期间向IO设备发送输入或者输出请求时,高度运转的CPU需要等待龟速的IO完成状态。为了提高资源利用率,人们就发明了操作系统,引入了中断机制,实现了多道程序技术。
用户10517932
2023/10/07
4700
《计算机操作系统-第三章》之中断与系统调用
『操作系统』 进程的描述与控制 Part 1 前驱图与程序执行
一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种程序执行的方式就称为程序的顺序执行。
风骨散人Chiam
2021/09/06
1.3K0
推荐阅读
相关推荐
【操作系统】操作系统运行环境——处理器的运行模式
更多 >
LV.1
这个人很懒,什么都没有留下~
作者相关精选
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验