操作系统原理 第一章第二章复习

操作系统复习

第一章 操作系统概述

基本概念

  1. 吞吐量:单位时间内系统能处理的工作量。
  2. 进程:正在动态执行的程序
  3. 实时操作系系统:实时计算。计算的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生这个结果的时间一类的计算。
  4. 操作系统的特征:现代操作系统大多支持多任务,具有并发、共享、虚拟、异步的特征。

单道批处理系统

  1. 特性:自动性、顺序性、单道性。
  2. 作业独占CPU和内存。

多道批处理系统

  1. 特性: 多道性、无序性、调度性、复杂性。
  2. 优点:提高CPU的利用率、提高内存和I/O设备的利用率、增加系统吞吐量。
  3. 缺点:平均周转时间长(每个任务都存在等待时间) (2)缺乏交互能力

操作系统的功能

1.存储器管理功能

(1) 内存分配:静态分配、动态分配
(2) 内存保护
(3) 地址映射: 需配合硬件完成。其结果为逻辑地址映射为物理地址。
逻辑地址从哪来:IR寄存器->译码->取操作数
(4) 内存扩充:虚拟存储技术。

2.进程管理功能

包括进程控制、进程同步、进程通信、进程调度

3.设备管理功能

设备管理应有以下功能:
(1) 缓冲管理:管理各种缓冲区。
(2) 设备分配:分配I/O所需的设备
(3) 设备处理:由设备驱动实现CPU与设备控制器间的通信。
(4) 设备独立性与虚拟设备

4.文件管理

主要解决:按名访问、文件存储的功能。

5.为用户提供接口

指令的执行

  1. 一条高级语言对应多条机器语言
  2. 程序的执行本质是指令一条条执行的过程,指令执行的本质只可能产生存储单元的变化。
  3. 取指令和执行指令是通过硬件完成的。
  4. 任何高级语言程序被编译成指令集合,其中的每一条指令都属于机器体系结构指令集。
  5. 硬件上下文:中断返回恢复被中断程序的执行时,必须要写回CPU寄存器的值。

第二章 进程的描述与控制

1.程序的并发执行

1.1 程序的顺序执行

程序的顺序执行时具有以下特点:顺序性、封闭性、可再现性。

1.2 程序的并发执行

程序的并发执行具有如下特点: 间断性、失去封闭性、不可再现性

不可再现性产生的原因:CPU交替执行指令,产生了不同的指令执行序列,导致结果不同。

2. 进程的描述

2.1 基本概念

  1. 进程的定义:进程是程序在一个数据集合上的运行过程。

? 进程时由正文段、用户数据段以及系统数据段共同组陈的一个执行环境。

  1. 程序的执行过程实际上是一个执行环境的总和。
  2. 进程的特征:1) 并发性:多个进程实体同存于内存中

    ? 2) 动态性:进程时进程实体的执行过程

    ? 3) 独立性:在没有引入线程的操作系统中,进程是独立 运行和资源调度的基本单位。

    ? 4) 异步性:进程以不可预知的速度向前推进,按异步方式运行。

    ? 5) 结构特征: 进程实体包括用户正文段、系统数据段和用户数据段。

  3. 进程与程序的比较:

    区别:1)程序是静态的、进程是动态的。

    ? 2)程序是永久的,进程是暂时存在的。

    ? 3)进程与程序存在实体不同。程序是指令的集合,而进程包含了用户正文段、系统数据段、用户数据 段的实体。

    联系: 进程是程序的一个执行,总是对应至少一个特定程序,而一个程序可对应多个进程。

  4. 操作系统内核是计算机硬件的第一次扩充。

2.2 进程控制块PCB

  1. 进程控制块是进程实体的一部分,是操作系统中最重要的记录型数据结构。
  2. \(time\_slice\) 字段用于记录进程在CPU上运行的时间片中还剩余的时钟节拍数。

3. 进程的控制

  1. 进程三种状态:就绪状态、执行状态、阻塞状态。
  2. 进程进程间三个基本状态之间的转换关系

4. 操作系统内核

4.1 操作系统如何被加载

  1. BIOS将当前磁盘的活动分区的第一个扇区(引导扇区)加载到内存
  2. 执行boot程序,从磁盘的文件系统中找到OS内核的加载程序(loader.bin),并且将loader.bin装入内存,跳转至loader.bin的第一条命令,开始执行loader.bin程序。
  3. 执行loader程序,将OS内核程序从外存装入内存。
  4. 内核从式模式跳转到保护模式的启用分页机制。

4.2 中断

  1. 什么是中断?

    中断时改变处理器执行顺序的一种事件。

  2. 为什么引入中断?

    引入中断后,CPU可以与其他设备并行工作,能够有效提高CPU的利用率,改善系统性能,支持系统的异步性。

  3. 中断的类型

    分为:同步中断(内部中断或异常)、异步中断(外部中断)。内部中断:一条指令终止执行后CPU才会发出中断。异步中断:其他硬件设备按照CPU时钟信号随机产生。

  4. 关中断指令:由内核或基于硬件的软件执行。
  5. 对于可屏蔽中断,开中断是响应中断的前提。
  6. 响应中断的时机:对于外部中断,CPU每执行完一条指令都会检测是不是有外部中断信号到来,若有,则转中断处理。
  7. 检测到有中断信号,转中断处理的过程:

    1)先保护断点,将当前要执行的下一条指令的地址保存到内存中,以便中断返回时能把这个地址恢复到PC中,使得,被中断的程序从断电出开始继续执行。

    2)系统关闭中断,转中断处理程序,在中断处理程序中完成保护现场的工作,即把相关硬件上下文信息保存到内存中。

    3)保护完现场,根据中断向量到中断向量表中(Linux中是到中断描述符表)找到与中断处理子例程入口地址的相关信息,根据这些信息找到中断处理子例程的入口地址,并执行中断处理子例程,完成本次中断处理的特定处理工作。

    4)恢复现场,开中断,CPU返回断电处继续执行被中断程序 。

  8. 中断向量:中断向量是对不同中断源到来的信号编号。不可屏蔽中断的向量和异常的中断向量是固定的,而可屏蔽中断的向量可通过中断控制器的编程来实现。
  9. 中断描述符表(IDT):一个系统表,每个中断或异常斗鱼向量联系,每个向量在表中都有唯一对应的表项,其中存有与中断或异常处理子程序入口地址的相关信息。OS初始化时,由OS执行汇编指令Idit加载进内存。

    中断处理子程序的入口地址相关信息在内存中的地址 = idtr中的地址 + 8 * 中断向量?

4.3 时钟管理

  1. 操作系统内核可以通过时间机制防止一个程序垄断CPU或者其他资源。
  2. 计算机系统中的时钟:

    RTC时钟:又叫CMOS时钟。

    OS时钟:产生于PC机主板上的定时/记数芯片。

  3. 可编程间隔定时器PIT:PIT按照一定的频率产生时钟中断,以告知内核又一个时间间隔过去了。
  4. 时钟滴答:OS时钟由可编程定时计数器输出脉冲触发中断而产生的,输出的脉冲中心叫做一个时钟滴答。
  5. 时钟中断间隔高:有些需要精确计时的应用无法正确运行

    时钟中断间隔低:OS占用CPU高,吞吐量变低

    因此,时钟中断间隔由系统性能决定。

4.4 系统调用

  1. 什么是系统调用?

    系统调用是核心程序与用户程序之间的接口,是操作系统内核中预先定义好的模块。

  2. 系统调用与一般函数调用的区别:

    1) 系统调用运行在系统态,一般函数运行在用户态。

    2)系统调用与一般函数调用的过程不同。当系统调用执行时,当前进程被中断,由系统寻找相应的系统调用子程序,并在核心态下执行,执行结果返回进程。

    3)系统调用要进行中断处理,比一般函数调用多了一些系统开销。

  3. 用户态执行:用户空间指的是用户进程所处的地址空间。一个用户进程不能访问其他进程的用户空间。只有核心程序所启动的进程才能访问其他用户空间。当一个进程在用户空间执行时,称该进程在用户态执行。
  4. 系统态执行:系统核心空间指的是含有一切系统核心代码的地址空间,当进程处于具有执行系统核心代码的权力状态时,称该进程在系统态执行。
  5. 系统调用的过程:

    1.保存系统调用号。

    2.执行中断指令,陷入内核态。

    3.根据系统调用号从系统调用表中找到系统调用实现历程的实现地址。

    4.执行系统调用实现历程。

    5.返回用户态。

  6. 系统调用的优点:

    1.使编程更容易,用户不用具体了解相应硬件设备。

    2.极大提高了系统安全性。

原文地址:https://www.cnblogs.com/zyf3855923/p/12077415.html

时间: 2024-08-01 10:51:17

操作系统原理 第一章第二章复习的相关文章

《Hadoop权威指南》笔记 第一章&第二章

? ? ? ? ? ? ? ? ? ? ? ? ? ? 使用MapReduce ? ? ? ? ? ? ? ? import java.io.IOException; // 是hadoop针对流处理优化的类型 import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; // 会继承这个基类 import org.apache

201671010105 2016-2017-2《Java程序设计》第一、第二章学习心得

我们大一的时候学习的是C语言程序设计,C语言是面向程序的,而老师也说过我们后面会学习一种面向对象的程序设计语言--Java程序设计,而在二年级开学第一周,我们第一次真正意义上接触到了它. 令人意外的是和往常老师讲学生听不同,这一周我们对Java程序设计第一.第二章的学习完全是自主的,通过一周对Java第一.第二章的学习,心得体会如下: 第一章 Java程序设计概述 1.通过对第一章的学习,对Java有了比较深入的了解,Java和C一样,是一种语言,但它又不止是一种语言,它是一个完整的程序设计平台

《Hadoop权威指南》笔记 第一章&第二章 MapReduce初探

? ? ? ? ? ? ? ? ? ? ? ? ? ? 使用MapReduce ? ? ? ? ? ? ? ? import java.io.IOException; // 是hadoop针对流处理优化的类型 import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; // 会继承这个基类 import org.apache

20172304 2018-2019《java软件结构与数据结构》 第一章 第二章学习总结

20172304 2018-2019<java软件结构与数据结构> 第一章 第二章学习总结 教材学习内容总结 第一章 概述 1.1软件质量: 高质量软件的几个特征: 正确性:软件在多大程度上满足其特定需求 可靠性:软件故障发生频率和危险程度 健壮性:出错情况下可以得到恰当处理的程度 可用性:用户学习和执行任务的难易程度 可维护性:对软件进行修改的难易程度 可重用性:软件组件可重用于其他软件系统开发的难易程度 可移植性:软件组件可以在多个计算机环境下使用的难易程度 运行效率:在不浪费资源的情况下

CSS3秘笈复习:第一章&amp;第二章&amp;第三章

第一章: 1.<cite>标签不仅可以将网页设置为斜体,还能给标题做上标记,使它便于被搜索引擎搜索到. 第二章: 1.import指令链接样式表: CSS本身有一种添加外部样式的方法:@import指令.把这个指令添加到一个HTML的<style>标签中,像这样: <style> @import url(css/styles.css); </style> 要将所有@import行都放在CSS规则之前. 第三章: 1.类选择器命名只允许使用字母数字连字符(-)

《淘宝技术这十年》读书笔记——第一章 第二章

引言 ? ? 这本书的作者是子柳先生,子柳本名赵超,2004年加入淘宝网.历任开发工程师.项目经理.产品经理.测试经理,2009年随着淘宝系统的大规模重构和人才的迅速扩张,创办了"淘宝技术大学",因培养内外部工程师众多,人称"校长". ? ? 之所以读这本书,主要想了解淘宝的技术/业务发展过程中遇到过哪些问题,以及他们怎么解决的.在阅读的过程中有很多不懂的地方,主要是知识面确实涵盖的太广,就当拓展视野吧. ? ? 第一章 ? ? 淘宝架构初版 ? ? 淘宝的第一版源

淘宝技术这十年 第一章 第二章

作者:子柳先生,本名赵超,2004年加入淘宝网,取花名子柳.历任开发工程师.项目经理.产品经理.测试经理,2009年随着淘宝系统的大规模重构和人才的迅速扩张,创办了"淘宝技术大学",培养内外部工程师众多,人称"校长". ? ? 这本书,主要想了解淘宝的技术/业务发展过程,遇到了哪些问题,怎么解决的.在阅读的过程中有很多不懂的地方,纯属拓展视野,的确如书中所说,不同阶段的读者会有不一样的收货,我也会不止一次的读下去的. ? ? 第一章 ? ? 淘宝的第一版源代码直接从

201671010138 2016-2017-2《Java程序设计》第一、第二章学习心得

JAVA在没接触这本书之前,所有的认识大概都停留在c语言的层面,对我们的意义只不过是另一种编程.但看到书的厚度,突然觉得如临大敌,迎面而来的是更多专业术语,另外一个不同的编程环境.嗯--老师说总结与c相同之处,学习不同之处.同时,开展了全新的教学模式,这似乎是开学以来最大的一次紧迫感了吧,我们需要赶紧投入学习,改变以往散漫和偷懒的作为,于是乎只能沉迷学习,无法自拔了.虽然刚开始似乎步伐有点混乱,节奏有点跟不上啊??但我们必须要尽快适应,提升对自己的要求,毕竟大二了,升一级也该对自己要求高一级了.

现代编译原理--第二章(语法分析之LL(K))

LL(K)语法分析技术是建立在预测分析的技术之上的.我们先来了解预测分析技术.考虑以下文法: 当使用该文法对(1*2-3)+4和(1*2-3)进行分析,前者因该调用E->E+T,而后者应该调用E->T,怎么确定到底使用哪个产生式呢?这就要使用预测分析技术来构建预测分析语法分析器,LL(k)是其一种.预测分析技术的关键是构建一个无冲突的预测分析表.所谓预测分析表就是程序可以根据当前的状态来查询该表,然后确定下一步使用哪个产生式. 构建预测分析表要要用到两个集合,分别是first集合和follow