python全栈开发 * 36知识点汇总 * 180721

36 操作系统的发展史     进程
一.手工操作--穿孔卡片
  1.内容:
  程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制
  台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机.
  2.特点:
  (1)用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低。
  (2)CPU 等待手工操作。CPU的利用不充分
  3.出现矛盾
  出现人机矛盾:手工操作的慢速度和计算机的高速度之间形成了尖锐矛盾,手工操作方式已严重损害了系统资源的利用率
  (使资源利用率降为百分之几,甚至更低),不能容忍。
唯一的解决办法:只有摆脱人的手工操作,实现作业的自动过渡。这样就出现了成批处理.
二.批处理--磁带存储
  1.批处理系统:
  批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业
  (这作业包括程序、数据和命令).
  2.联机批处理系统 : 即作业的输入/输出由CPU来处理.
    (1).内容
  主机与输入机之间增加一个存储设备——磁带,在运行于主机上的监督程序的自动控制下,计算机可自动完成:成批地把输入机上的用户作业读入
  磁带,依次把磁带上的用户作业读入主机内存并执行并把计算结果向输出机输出。完成了上一批作业后,监督程序又从输入机上输入另一批作业,保存在磁带上,
  并按上述步骤重复处理。
    (2)优势
  监督程序不停地处理各个作业,从而实现了作业到作业的自动转接,减少了作业建立时间和手工操作时间,有效克服了人机矛盾,
  提高了计算机的利用率。
  (3).缺点
  在作业输入和结果输出时,主机的高速CPU仍处于空闲状态,等待慢速的输入/输出设备完成工作: 主机处于“忙等”状态。
  (4)早期批处理流程:

  3.脱机批处理系统:
  (1)产生背景: 为克服与缓解高速主机与慢速外设的矛盾,提高CPU的利用率,又引入了脱机批处理系统,即输入/输出脱离主机控制。
  (2)卫星机 : 一台不与主机直接相连而专门用于与输入/输出设备打交道的。
  (3)卫星机的功能:
  a.从输入机上读取用户作业并放到输入磁带上。
    b.从输出磁带上读取执行结果并传给输出机。
  (4)脱机批处理系统流程:
  输入机-卫星机-高速磁带-主机(监督程序)-高速磁带-卫星机-输出机
  (5)优势:
  主机不是直接与慢速的输入/输出设备打交道,而是与速度相对较快的磁带机发生关系,有效缓解了主机与设备的矛盾。主机与卫星
  机可并行工作,二者分工明确,可以充分发挥主机的高速计算能力.
  (6)不足:
  每次主机内存中仅存放一道作业,每当它运行期间发出输入/输出(I/O)请求后,高速的CPU便处于等待低速的I/O完成状态,致使CPU空闲。

三.多道程序系统
 多道技术产生的背景 : 针对单核,实现并发
  1. 定义: 就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,
  它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序.
  2.单道程序系统流程:
  在A程序计算时,I/O空闲, A程序I/O操作时,CPU空闲(B程序也是同样);必须A工作完成后,B才能进入内存中开始工作,
  两者是串行的,全部完成共需时间=T1+T2。
  3,多道程序系统流程
  将A、B两道程序同时存放在内存中,它们在系统的控制下,可相互穿插、交替地在CPU上运行:当A程序因请求I/O操作而放弃CPU时,
  B程序就可占用CPU运行,这样 CPU不再空闲,而正进行A I/O操作的I/O设备也不空闲,显然,CPU和I/O设备都处于“忙”状态,大大提高
  了资源的利用率,从而也提高了系统的效率,A、B全部完成所需时间<<T1+T2。
  4.多道程序系统的优势
   多道程序设计技术不仅使CPU得到充分利用,同时改善I/O设备和内存的利用率,从而提高了整个系统的资源利用率和系统吞吐量
  (单位时间内处理作业(程序)的个数),最终提高了整个系统的效率.
  5.单处理机系统中多道程序运行时的特点
  (1)多道:计算机内存中同时存放几道相互独立的程序;
    (2)宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕;
    (3)微观上串行:实际上,各道程序轮流地用CPU,并交替运行。
  6.多道程序系统的意义:
  多道程序系统的出现,标志着操作系统渐趋成熟的阶段,先后出现了作业调度管理、处理机管理、存储器管理、外部设备管理、
  文件系统管理等功能。
  7.多道程序系统产生两个新的概念:
  (1)空间隔离 : 只有内存空间的隔离,才能让数据更加安全、稳定.(内存中串行)
  (2)时空复用 : 遇到IO操作就切换程序,使得cpu的利用率提高了,计算机的工作效率也随之提高。(复用一个CPU时间片)
  (3)空间复用 : 如内存中同时有多道程序
  注意:
  遇到io切,占用cpu时间过长也切,核心在于切之前将进程的状态保存下来,这样
  才能保证下次切换回来时,能基于上次切走的位置继续运行

  8.多道批处理系统
  (1).产生背景: 20世纪60年代中期,在前述的批处理系统中,引入多道程序设计技术后形成多道批处理系统(简称:批处理系统)。
  (2)多道批处理的特点:
  a.多道:系统内可同时容纳多个作业。这些作业放在外存中,组成一个后备队列,系统按一定的调度原则每次从后备作业队列中
选取一个或多个作业进入内存运行,运行作业结束、退出运行和后备作业进入运行均由系统自动实现,从而在系统中形成一个自动
转接的、连续的作业流。
  b.成批:在系统运行过程中,不允许用户与其作业发生交互作用,即:作业一旦进入系统,用户就不能直接干预其作业的运行。
  (3)批处理追求的目标 : 提高系统资源利用率和系统吞吐量,以及作业流程的自动化
  (4)不足 : 不提供人机交互能力,给用户使用计算机带来不便。
四.分时系统(交互式系统)
  1.产生背景:一种新的追求目标:既能保证计算机效率,又能方便用户使用计算机。 20世纪60年代中期,计算机技术和软件技术的发
  展使这种追求成为可能.
  2.定义: 把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。
  3.流程 : 若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时中断,把处理机让给另一作业使用,等待下一轮时再继续其运行。
  由于计算机速度很快,作业运行轮转得很快,给每个用户的印象是,好象他独占了一台计算机。而每个用户可以通过自己的终端向系统
  发出各种操作控制命令,在充分的人机交互情况下,完成作业的运行。
  4.分时系统的特点:
  (1)多路性。若干个用户同时使用一台计算机。微观上看是各用户轮流使用计算机;宏观上看是各用户并行工作。
  (2)交互性。用户可根据系统对请求的响应结果,进一步向系统提出新的请求。这种能使用户与系统进行人机对话的工作方式,
明显地有别于批处理系统,因而,分时系统又被称为交互式系统。
  (3)独立性。用户之间可以相互独立操作,互不干扰。系统保证各用户程序运行的完整性,不会发生相互混淆或破坏现象。
  (4)及时性。系统可对用户的输入及时作出响应。分时系统性能的主要指标之一是响应时间,它是指:从终端发出命令到系统予以应答所需的时间.
  5.分时系统的主要目标:对用户响应的及时性,即不至于用户等待每一个命令的处理时间过长
  6.分时系统:分时系统可以同时接纳数十个甚至上百个用户,由于内存空间有限,往往采用对换(又称交换)方式的存储方法。即将未
  “轮到”的作业放入磁盘,一旦“轮到”,再将其调入内存;而时间片用完后,又将作业存回磁盘(俗称“滚进”、“滚出“法),
  使同一存储区域轮流为多个用户服务。
  7.注意:
  分时系统的分时间片工作,在没有遇到IO操作的时候就用完了自己的时间片被切走了,这样的切换工作其实并没有提高
  cpu的效率,反而使得计算机的效率降低了。但是我们牺牲了一点效率,却实现了多个程序共同执行的效果,这样你就可以在计算机
  上一边听音乐一边聊qq了。
五.实时系统
  1.产生的背景:
虽然多道批处理系统和分时系统能获得较令人满意的资源利用率和系统响应时间,但却不能满足实时控制与实时信息处理两个应用
领域的需求。于是就产生了实时系统,即系统能够及时响应随机发生的外部事件,并在严格的时间范围内完成对该事件的处理。
  2.实时系统的分类:
  (1)实时控制系统。当用于飞机飞行、导弹发射等的自动控制时,要求计算机能尽快处理测量系统测得的数据,及时地对飞机或导
弹进行控制,或将有关信息通过显示终端提供给决策人员。当用于轧钢、石化等工业生产过程控制时,也要求计算机能及时处理由各
类传感器送来的数据,然后控制相应的执行机构。
    (2)实时信息处理系统。当用于预定飞机票、查询有关航班、航线、票价等事宜时,或当用于银行系统、情报检索系统时,都要求计
算机能对终端设备发来的服务请求及时予以正确的回答。此类对响应及时性的要求稍弱于第一类。
  3.实时操作系统的主要特点:
  (1)及时响应。每一个信息接收、分析处理和发送的过程必须在严格的时间限制内完成。
  (2)高可靠性。需采取冗余措施,双机系统前后台工作,也包括必要的保密措施等。
  4.分时与实时的比较:
  分时——现在流行的PC,服务器都是采用这种运行模式,即把CPU的运行分成若干时间片分别处理不同的运算请求 linux系统
  实时——一般用于单片机上、PLC等,比如电梯的上下控制中,对于按键等动作要求进行实时处理

六.通用操作系统
  1.定义:通用操作系统:具有多种类型操作特征的操作系统。可以同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能。
  2.类型: 多道批处理系统、分时系统、实时系统。
  3.实时处理+批处理=实时批处理系统。
  首先保证优先处理实时任务,插空进行批处理作业。常把实时任务称为前台作业,批作业称为后台作业。
  4.分时处理+批处理=分时批处理系统:
   时间要求不强的作业放入“后台”(批处理)处理,需频繁交互的作业在“前台”(分时)处理,处理机优先运行“前台”作业。
七.操作系统进一步发展
  1.个人计算机操作系统
  2.网络操作系统
  网络操作系统:在原来各自计算机操作系统上,按照网络体系结构的各个协议标准增加网络管理模块,其中包括:通信、资源共享、
  系统安全和各种网络应用服务。
  3.分布式操作系统
  分布式系统与计算机网络系统没有多大区别。分布式操作系统也是通过通信网络,将地理上分散的具有自治功能的数据处理系统或
  计算机系统互连起来,实现信息交换和资源共享,协作完成任务。
  4.区别
  (1)分布式系统要求一个统一的操作系统,实现系统操作的统一性。
    (2)分布式操作系统管理分布式系统中的所有资源,它负责全系统的资源分配和调度、任务划分、信息传输和控制协调工作,并为
  用户提供一个统一的界面。
    (3)用户通过这一界面,实现所需要的操作和使用系统资源,至于操作定在哪一台计算机上执行,或使用哪台计算机的资源,则是
  操作系统完成的,用户不必知道,此谓:系统的透明性。
    (4)分布式系统更强调分布式计算和处理,因此对于多机合作和系统重构、坚强性和容错能力有更高的要求,希望系统有:更短的
  响应时间、高吞吐量和高可靠性。
八.操作系统的作用.
  1.操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序.
  2.定位:计算机硬件之上,应用程序之下,计算机{ 软件 [ 用户态 ( 应用程序,用户接口程序 ),内核态 ( 操作系统 ) ],硬件[ 计算机硬件 ] }
  3.操作系统的功能:
  (1)隐藏丑陋的,复杂的硬件接口,提供良好的抽象接口
  (2)管理,调度进程并且将多个进程对硬件的竞争变得有序.
  (3)调度硬件资源
九.进程 (实体, 执行中的程序)
  1.定义: 是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
  2,狭义定义:进程是正在运行的程序的实例
  3.广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操
  作系统中,进程既是基本的分配单元,也是基本的执行单元。
  4.进程的意义:进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道
  程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上
十.操作系统引入进程的原因:
  1.是对正在运行的程序过程的抽象;
  2.是一种数据结构,目的在于清晰地刻画动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。
十一.进程的特征
动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。
并发性:任何进程都可以同其他进程一起并发执行
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进
结构特征:进程由程序、数据和进程控制块三部分组成。
多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能
发生改变
十二.进程与程序的区别
程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。
而进程是程序在处理机上的一次执行过程,它是一个动态的概念。
程序可以作为一种软件资料长期存在,而进程是有一定生命期的。
程序是永久的,进程是暂时的。
注意 : 同一个程序执行两次,就会在操作系统中出现两个进程,所以我们可以同时运行一个软件,分别做不同的事情也不会混乱。
十三.进程调度
  1.先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。FCFS算法比较有利于长作业
(进程),而不利于短作业(进程)。由此可知,本算法适合于CPU繁忙型作业,而不利于I/O繁忙型的作业(进程)。
  2.短作业(进程)优先调度算法(SJ/PF)是指对短作业或短进程优先调度的算法,该算法既可用于作业调度,也可用于进程调度。但其
  对长作业不利;不能保证紧迫性作业(进程)被及时处理;作业的长短只是被估算出来的。
  3.时间片轮转(Round Robin,RR)法的基本思路是让每个进程在就绪队列中的等待时间与享受服务的时间成比例。在时间片轮转法中,
需要将CPU的处理时间分成固定大小的时间片,例如,几十毫秒至几百毫秒。如果一个进程在被调度选中之后用完了系统规定的时间片,
但又未完成要求的任务,则它自行释放自己所占有的CPU而排到就绪队列的末尾,等待下一次调度。同时,进程调度程序又去调度当前就
绪队列中的第一个进程。
  在轮转法中,加入到就绪队列的进程有3种情况
  一种是分给它的时间片用完,但进程还未完成,回到就绪队列的末尾等待下次调度去继续执行。
  另一种情况是分给该进程的时间片并未用完,只是因为请求I/O或由于进程的互斥与同步关系而被阻塞。当阻塞解除之后再回到就绪队列。
  第三种情况就是新创建进程进入就绪队列。
  4.多级反馈队列调度算法则不必事先知道各种进程所需的执行时间,而且还可以满足各种类型进程的需要,因而它是目前被公认的一种较好的
进程调度算法.
流程:
(1) 应设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,其余各队列的优先
  权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就
  愈小。例如,第二个队列的时间片要比第一个队列的时间片长一倍,……,第i+1个队列的时间片要比第i个队列的时间片长一倍。
(2) 当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内
  完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调
  度执行;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,……,如此下去,当一个长作业(进程)从第一队列
  依次降到第n队列后,在第n 队列便采取按时间片轮转的方式运行。
(3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1~(i-1)队列均空时,才会调度第i队列中的进程运行。如果
  处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运
  行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权进程。
十四.进程的并行与并发
1.并行:两者同时执行,比如赛跑两人都在不停地往前跑
2.并发:资源有限的情况下,两者交替轮流使用资源.一段公路(单核CPU资源)同时只能过一个人,A走一段让给B,B走完再让给A,交替使用,,为了提高效率.
3.并行与并发的区别
并行:微观上,在同一个精确时间片刻,有不同的程序在执行,这就要求必须有多个处理器.
并发:宏观上,在一个时间段上可以看出是同时执行的,比如一个服务器同时处理多个session.
十五.进程的同步异步
1.同步(顺序执行): 所谓同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种
可靠的任务序列。要么成功都成功,失败都失败,两个任务的状态可以保持一致。
2.异步(并行)是不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行,只要自己完成了
整个任务就算完成了。至于被依赖的任务最终是否真正完成,依赖它的任务无法确定,所以它是不可靠的任务序列。
十六.进程的阻塞和非阻塞
阻塞和非阻塞这两个概念与程序(线程)等待消息通知(无所谓同步或者异步)时的状态有关。也就是说阻塞与非阻塞主要是程序
(线程)等待消息通知时的状态角度来说的
原文地址:https://www.cnblogs.com/J-7-H-2-F-7/p/9361363.html