第二章——操作系统概述

这是一个大二学生初学操作系统的学习笔记。如有错误,感谢指出,一定立即改正。

文章目录

  • 一、操作系统的目标和功能
    • (一)介绍
      • 1、什么是操作系统
      • 2、操作系统的设计目标
    • (二)做为用户/计算机接口的操作系统
      • 操作系统提供的功能/服务
    • (三)做为资源管理器的操作系统
    • (四)操作系统的易扩展性
      • 1、操作系统需要不断发展的原因
      • 2、操作系统未来怎么发展
  • 二、操作系统的发展史
    • (一)串行处理(无操作系统)
      • 1、命名
      • 2、特点
      • 3、如何操作
      • 4.主要问题
    • (二)简单批处理系统
      • 1、中心思想
      • 2、流程
      • 3、作业控制语言
      • 4、批处理系统提供的其他功能
      • 4、批处理系统解决的问题
      • 5、批处理系统存在的问题
    • (三)多道批处理系统
      • 1、中心思想
      • 2、一段时间内资源利用率计算
      • 3、依赖的硬件基础
      • 4、解决的问题
      • 5、缺点
    • (四)分时系统
      • 0、背景
      • 1、中心思想
      • 2、实现方式
      • 3、多道批处理系统和分时系统的区别
      • 4、新的问题
  • 三、操作系统发展中取得的主要成就
    • (一)概述
    • (二)进程
      • 1、定义
      • 2、背景
      • 3、进程的组成
      • 4、进程的管理方法
      • 5、进程的意义
    • (三)内存管理
      • 1、内存管理职责
      • 2、实现方式
    • (四)信息保护和安全
    • (五)调度和资源管理
      • 1、背景
      • 2、考虑因素/目标
      • 3、实现方式
  • 四、现代操作系统
    • (一)背景
    • (二)主要特征
      • 1、微内核体系
      • 2、多线程
      • 3、面向对象设计
      • 4、对称多处理
      • 5、分布式操作系统
  • 总结

一、操作系统的目标和功能 (一)介绍 1、什么是操作系统
操作系统是控制应用程序执行的程序,是应用程序与计算机硬件间的接口。 2、操作系统的设计目标
①方便:操作系统使得计算机更易于使用
②有效:操作系统允许以更高效的方式使用计算机资源
③扩展能力:在不影响正常功能的条件下,有效地开发、测试和引入新的系统功能
(二)做为用户/计算机接口的操作系统 第二章——操作系统概述
文章图片

操作系统为用户提供了某些功能,使得用户无需了解计算机硬件的细节也可以使用应用程序。
操作系统提供的功能/服务
①程序开发:为程序员提供应用程序开发工具——编译器和调试期
②程序运行:处理程序运行中的调度问题
③I/O设备访问:允许用户通过简单的读/写操作访问I/O设备,而无需使用特定的指令集或控制信号
④文件访问控制:允许用户访问文件;提供保护机制控制用户对文件的访问权限
⑤系统访问:提供保护机制控制用户对整个系统以及某些特殊系统资源的访问权限
⑥错误检测和响应:检测内部和外部的硬件错误并针对性的响应错误以解决错误
⑦记账:收集各种资源的利用率,监控各种性能参数
(三)做为资源管理器的操作系统 操作系统控制计算机的资源
操作系统作为控制机制与普通控制机制的不同?
①操作系统和其控制的计算机软件相同,操作系统也是处理器执行的程
②当处理器将要执行其他程序时,操作系统会释放控制(因为处理器会停止操作系统程序的执行而去执行其他程序),并且依赖于处理器才能恢复控制
第二章——操作系统概述
文章图片


操作系统一部分位于内存中,一部分位于外存中。
内存中的操作系统包括内核程序和当前正在使用的其他操作系统程序。

外存中的操作系统包括当前未被使用的其他操作系统程序。


内核程序:操作系统最常用的功能

PS:处理器也是一种资源,操作系统也控制处理器(体现在:操作系统必须决定再执行一个特定的用户程序时,可以分配给处理器多长时间)

(四)操作系统的易扩展性 1、操作系统需要不断发展的原因
①硬件升级和新型硬件的出现:新的硬件需要操作系统提供更多的支持
②新的服务出现:出现新的用户需求
③纠正错误:之前的操作系统存在错误
2、操作系统未来怎么发展
见后
二、操作系统的发展史 (一)串行处理(无操作系统) 1、命名
用户可以串行的访问系统(执行程序) 2、特点
用户直接与计算机硬件交互(此时没有操作系统的概念) 3、如何操作
将机器代码编写的程序通过输入设备(如卡片阅读机),然后程序被执行。若遇到错误,则程序停止,显示灯显示错误原因;若正确执行,则将结果输出到打印机中。 4.主要问题
①调度问题:同一时间只有一个程序运行;每个程序被分配特定的时间。如果实际用时短于预定时间,会导致计算机闲置、资源浪费;如果实际用时长于预定时间,该程序会在预定时间达到后被强制终止。 ②准备时间:需要花费大量的时间在程序运行前的准备工作上,资源利用率低。 (二)简单批处理系统 1、中心思想
使用"监控程序"。
用户不再直接与计算机交互,而是将作业交给计算机操作员,由操作员将作业按顺序组织成批,将整个批作业放在输入设备上,供监控程序使用,每个程序完成后返回监控程序,同时监控程序自动加载下一个程序。
批:多个用户作业
作业 = 程序 + 数据 + 作业说明书
2、流程
监控程序从批中读取一个作业,并将控制权交给这个作业;这个作业完成之后,将控制权返还给监控程序;监控程序读取下一个作业。

下面从两个角度解释这一流程:
①监控程序角度:
监控程序控制事件的顺序。
为了达到这个目的,大部分监控程序必须总是处于内存中并且可以执行,这部分成为常驻监控程序。其他监控程序包括一些实用程序和公用函数,在用户程序需要的时候,做为用户程序的子程序加载到内存中。

监控程序从输入设备读取作业,将其放置在用户程序区域,并将控制权交给这个作业;作业完成后,这个作业将控制权返还给监控程序;监控程序读取下一个作业并把刚完成的作用的结果发送到输出设备。
第二章——操作系统概述
文章图片

注意:监控程序分为常驻监控程序和其他监控程序;这也是现代操作系统分为内核程序和其他操作系统程序的历史。
②处理器角度:
处理器执行监控程序和用户程序的指令。
那么按照顺序,这些指令都是什么呢?
首先,处理器执行监控程序中“将下一个作业读入内存”的指令;然后,处理器遇到监控程序的分支指令,这个指令指导处理器从用户程序的开始处执行;再之后,处理器执行用户程序,直到用户程序的结束指令或者出现一个错误;最后,处理器执行监控程序中的指令。

所以,所谓的“某某获取控制权”,本质上是指处理器读取并执行的是某某的指令。

3、作业控制语言
作业控制语言是一种特殊的程序设计语言,用于为监控程序提供指令,以“$”符号开头。
第二章——操作系统概述
文章图片

4、批处理系统提供的其他功能
①内存保护:不允许用户程序修改监控程序所在的内存区域。
②特权指令:某些机器指令被设计为特权指令,只允许监控程序执行。
③定时器:防止一个作业独占计算机。
④中断:控制权从监控程序和用户程序之间切换的机制,为之后的中断机制的诞生起到了重要作用。
(注意:简单批处理系统并没有中断机制)
如果有作业修改监控程序所在内存、执行特权指令、达到定时器规定时间,处理器将发现错误,将控制权返还监控程序,监控程序取消该作业,输出错误信息,并加载下一个作业。
①和②引出了之后运行模式的概念:用户程序以用户模式执行,此时某些内存区域受保护,不允许执行特权指令;监控程序以系统态或内核模式执行,可以访问受保护的内存,也可以执行特权指令。
④引出了之后的中断机制。
tips:I/O指令属于特权指令,所以用户程序想要执行I/O操作时必须向监控程序发送请求并由监控程序进行I/O操作。
4、批处理系统解决的问题
批处理系统解决了串行处理中资源调度和准备时间的问题。
资源调度:作业以批的形式进入计算机,计算机按顺序执行批中的作用,减少了资源浪费。
准备时间:无需花费大量时间拆装磁带,减少了准备时间。
5、批处理系统存在的问题
①常驻监控程序一直在内存中占据空间
②监控程序的执行消耗了时间
③处理器利用率仍然很低。虽然以批的形式执行作业,但是内存中只能有一个用户处理程序,并且处理器仍然经常处于空闲状态。
原因:I/O设备相对于处理器速度太慢。
TIPS:
①、②问题在现在仍未解决;③之后会解决。
(三)多道批处理系统 1、中心思想
在内存中保存多个用户程序,在用户程序之间不断切换。
当多个用户程序没有资源竞争时,处理器资源在切换用户程序之间可以得到充分利用。
2、一段时间内资源利用率计算
一段时间内的资源利用率是其各段时间内的资源利用率的加权平均数,权重及该段时间占总时间的比例。
3、依赖的硬件基础
①支持中断的硬件
②支持直接存储器访问的硬件(DMA)
4、解决的问题
相比于批处理系统,多道批处理系统提高了资源利用率
5、缺点
没有提供用户与计算机进行交互的模式,即多道批处理系统中,不允许人机交互。
(四)分时系统 0、背景
用户具有和计算机进行交互的需求。当时基本没有个人使用的计算机,大多是多个人共用一台计算机。
如果允许用户与计算机进行交互,因为多个人使用一台计算机,计算机响应时间可能很长。
1、中心思想
实现用户与计算机的交互;多个用户可以"同时"分享处理器时间,以减少用户响应时间。
2、实现方式
多个用户可以通过终端同时访问系统,由操作系统控制每个用户程序在很短的时间内交替进行。
时间片技术(time slicing):
系统以较短的固定的时间产生一个中断,再中断时,操作系统回复控制权,并将控制权交给下一个用户。原用户的状态(程序和数据)可能被写入磁盘,在下一次获得机会后,状态被重新写入内存。(这类似于电路交换中的时分复用,n个用户在一段时间中各使用1/n长的时间)
对上面“可能”的解释:
为了减小磁盘开销,提高利用率,只有当新来的程序需要重写内存空间时,才将内存中旧程序的状态写入磁盘(并写入新的程序);否则旧的程序仍然保留。
第二章——操作系统概述
文章图片

TIPS:书中并没有提及如何实现的人机交互。
3、多道批处理系统和分时系统的区别
第二章——操作系统概述
文章图片

注意:
多道批处理系统和分时系统都属于“多道程序设计”的范畴。
多道批处理系统解决的是处理器利用率低问题,并且它增大了作业的吞吐量,其面对的是作业程序和作业控制语言命令;
分时解决的是多用户交互的响应时间长的问题,其面对的是多个用户在终端输入的指令。
4、新的问题
①内存管理:对准备运行的多个作业,他们必须都保留在内存中,这时候就要合理的安排内存空间的使用。
②调度问题:计算机的各种资源如何被使用,多个作业如何被执行。
③权限问题:多个用户对计算机文件的访问应该有不同的权限控制。
等等等等
三、操作系统发展中取得的主要成就 (一)概述 操作系统的发展主要依赖于5各方面的进展(进展就是成就)
①进程
②内存管理
③信息保护和安全
④调度和资源管理
⑤系统结构
(二)进程 1、定义
①一个正在执行的程序
②有一个单一顺序线程、一个当前状态和一组相关的系统资源所表征的活动单元
这是等价的表述,其中①用于答题,②用于理解本质。
2、背景
在不同程序的执行过程中,可能会由于以下4个原因出现在当时的操作系统下难以检测和避免的错误。
①不正确的同步(工作)
例如程序A和程序B同步工作,经常出现程序A挂起等待B发送的信号的情况,而这个信号很可能丢失或者多次发送,导致A和B的同步(工作)失败。
②失败的互斥
同一时间,同一文件只能由一个用户访问修改。
③不确定的程序操作
当程序共享内存时,可能因为重写相同的内存区域造成干扰
④死锁
可能有两个或者多个程序互相挂起等待。
3、进程的组成
①一段可执行的程序
②程序所需要的数据(变量、工作空间、缓冲区等)
③执行上下文
公式:process = program + data + context
执行上下文,又称为进程状态,是进程的根本。执行上下文包含操作系统管理和控制进行所需要的所有信息,如寄存器内容、进程优先级、进程使用使用I/O设备等等。
执行上下文大部分或者全部在进程表中(没有和进程在一起),可能小部分与进程保存在一起或者在其他的独立区域。
4、进程的管理方法
【第二章——操作系统概述】内存中存在两块区域,一部分存放进程,一部分存放进程表。
存放进程的内存中存放:进程的可执行程序、数据、可能还有一部分进程上下文。
存放进程表的内存中存放:进程表。
进程表的内容:指向每个进程的指针和每个进程的部分或全部执行上下文。
进程索引:包含当前正在执行的进程在进程表中的索引
程序计数器:当前正在执行的进程中的下一条待执行指令
基址寄存器:进程的开始地址
界限寄存器:进程所占内存的大小(以字或者字节为单位)
(程序计数器和其它的数据引用以基址寄存器为基准,且不超过界限寄存器的值,这使得进程间不会相互干涉)
以下面两个进程A和B为例,当前B正在执行(根据上述寄存器的值可以看出)。
如果此时发生中断,开始执行A进程,那么B的所有状态将会被保存在其执行上下文中,并且将恢复A的执行上下文,修改程序计数器等寄存器的值即可令A执行。
第二章——操作系统概述
文章图片

5、进程的意义
进程可以被当作一个数据结构。一个进程可以正在执行,也可以等待执行;任何时候,进程的状态(操作系统管理和控制进行所需要的所有信息)都保存在其进程上下文中。
人们可以开发强大的技术,以确保在进程中协调和合作,从而解决2中的问题。
线程对比:
线程:一个分配了资源的进程可以分为多个并发的线程,线程之间相互协作执行,完成进程的任务。
(三)内存管理 1、内存管理职责
①进程隔离
必须保护独立的进程,防止进程之间数据、指令的干扰。
②自动分配和管理
程序员无需关注内存的分配管理问题,由操作系统分配内存。
③支持模块化程序设计
程序员能够动态地创建和销毁模块
④保护和访问控制
就是访问控制的权限问题
⑤长期存储
应用程序应在关机之后长期存储。
2、实现方式
(之后的章节会展开)
①虚拟内存
以小内存执行大程序
②文件系统机制
(四)信息保护和安全 ①可用性
②保密性
③数据完整性
④认证
(五)调度和资源管理 1、背景
操作系统要管理各种可用资源,如内存空间、I/O设备、处理器。
2、考虑因素/目标
①公平性
给竞争同一资源的所有进程提供几乎平等和公平的机会
②有差别的响应
对于不同的进程需求,有差别的进行满足,例如考虑优先级等等。
希望操作系统做出满足所有需求的分配和调度决策。
③高效性
希望操作系统获得最大的吞吐量和最小的响应时间。
3、实现方式
强调:不同的操作系统的实现细节和模块化细节可能不同,下面只是功能性的说明。
操作系统维护了多个队列,队列中是等待某些资源的进程列表。
队列包含短程队列、长程队列和I/O队列。
短程队列中的进程:
①位于内存中(至少最基本的部分位于内存中)
②随时准备运行
③具体是哪个进程被执行取决于短期调度器或分配器
长程队列中的进程:
①位于外存中
②需要被移动到短程队列中才能被执行
③避免太多长城队列中的进程进入短程队列,从而节省内存、减少处理时间
I/O队列:
①每一个I/O设备都有其对应的I/O队列
②操作系统决定每个I/O队列中哪个进程被执行。
短程队列的调度方式:
①时间片轮转:以环形队列的方式,依次为每个进程分配一定的时间。
②优先级:为不同的进程分配不同的优先级,根据优先级进行调度。
操作系统在什么情况下获得处理器控制权?
①处理中断:出现中断后,操作系统从中断处理程序入口得到处理器控制权
②服务调用(进程通过服务调用请求操作系统的服务,如I/O设备处理任务):出现服务调用后,操作系统从服务调用程序入口得到处理器控制权。
只要操作系统得到了控制权,短期调度器就会从短程队列中选择一个进程执行。
第二章——操作系统概述
文章图片

四、现代操作系统 (一)背景 ①新的硬件出现
②新的软件出现
③新的安全威胁
(二)主要特征 1、微内核体系
单体内核:操作系统的大多数功能通过(一个)大内核提供;大内核是作为一个进程实现的;所有元素共享功能的地址空间。
微内核体系:只为内核分配最基本的功能;其他功能由运行在用户模式的类似于其他应用程序的进程提供。
微内核体系中内核提供的功能:
①地址空间
②进程痛惜
③基本的调度
2、多线程
把一个应用程序的进程分为可以同时运行的多个线程
3、面向对象设计
无具体描述
4、对称多处理
拥有多个处理器;操作系统将可调度进程或线程到所有处理器上运行。
优点:
①性能更佳:多个处理器可以同时处理多个进程
②可用性更强:单个处理器失效不会导致机器停止,只是性能下降
③增量增长:可以通过增加处理器个数增强系统功能
④可扩展性:生产商可以根据处理器数目提供不同性能和价格的产品
5、分布式操作系统
一群计算机处理单系统外部特征
对称多处理技术与分布式操作系统的对比:
对称多处理技术有多个处理器,但是只有一套硬件(内存、外存、I/O设备等);而分布式操作系统有多套硬件,只是这些硬件被单个操作系统统一调度。
总结 这是一个大二学生初学操作系统的学习笔记。如有错误,感谢指出。

    推荐阅读