计算机操作系统.docx
《计算机操作系统.docx》由会员分享,可在线阅读,更多相关《计算机操作系统.docx(48页珍藏版)》请在冰点文库上搜索。
计算机操作系统
第一章
★1.操作系统的概念:
通常把操作系统定义为用以控制和管理计算机系统资源方便用户使用的程序和数据结构的集合。
★2.操作系统的基本类型:
批处理操作系统、分时操作系统、实时操作系统、个人计算机操作系统、网络操作系统、分布式操作系统。
①批处理操作系统
特点:
用户脱机使用计算机
成批处理
多道程序运行
优点:
由于系统资源为多个作业所共享,其工作方式是作业之间自动调度执行。
并在运行过程中用户不干预自己的作业,从而大大提高了系统资源的利用率和作业吞吐量。
缺点:
无交互性,用户一旦提交作业就失去了对其运行的控制能力;而且是批处理的,作业周转时间长,用户使用不方便。
批处理系统中作业处理及状态
②分时操作系统(TimeSharingOS)
分时操作系统是一个联机的多用户交互式的操作系统,如UNIX是多用户分时操作系统。
分时计算机系统:
由于中断技术的使用,使得一台计算机能连接多个用户终端,用户可通过各自的终端使用和控制计算机,我们把一台计算机连接多个终端的计算机系统称为分时计算机系统,或称分时系统。
分时技术:
把处理机的响应时间分成若于个大小相等(或不相等)的时间单位,称为时间片(如100毫秒),每个终端用户获得CPU,就等于获得一个时间片,该用户程序开始运行,当时间片到(用完),用户程序暂停运行,等待下一次运行。
特点:
人机交互性好:
在调试和运行程序时由用户自己操作。
共享主机:
多个用户同时使用。
用户独立性:
对每个用户而言好象独占主机。
③实时操作系统(real-timeOS)
实时操作系统是一种联机的操作系统,对外部的请求,实时操作系统能够在规定的时间内处理完毕。
特点:
有限等待时间
有限响应时间
用户控制
可靠性高
系统出错处理能力强
设计实时操作系统要考虑的一些因素:
(1)实时时钟管理
(2)连续的人—机对话
(3)过载
(4)高度可靠性和安全性需要采取冗余措施。
④通用操作系统
同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能。
⑤个人计算机上的操作系统
个人计算机上的操作系统是联机的交互式单用户操作系统,目前在个人计算机上使用的操作系统以windows系列和linux系统为主。
⑥网络操作系统
特征:
(1)计算机网络是一个互连的计算机系统群体。
这些计算机在物理上是分散的。
(2)这些计算机是自治的,每台计算机有自己的操作系统,各自独立工作,它们在网络协议控制下协同工作。
(3)系统互连要通过通信设施(硬件、软件)来实现。
(4)系统通过通信设施执行信息交换、资源共享、互操作和协作处理。
⑦分布式系统(DistributedSystem)
特征:
(1)功能的分布
(2)坚强性
(3)高可靠性
★3.操作系统的功能
处理机管理、存储管理(内存分配、存储保护、内存扩充)、设备管理(通道、控制器、输入输出设备的分配与管理,设备独立性)、信息管理(文件系统管理)、用户接口(程序一级的接口、作业一级的接口)。
4.通道和中断技术
通道:
用于控制I/O设备与内存间的数据传输。
启动后可独立于CPU运行,实现CPU与I/O的并行。
¡通道有专用的I/O处理器,可与CPU并行工作
¡可实现I/O联机处理
中断是指CPU在收到外部中断信号后,停止原来工作,转去处理该中断事件,完毕后回到原来断点继续工作。
¡中断处理过程:
中断请求,中断响应,中断点(暂停当前任务并保存现场),中断处理例程,中断返回(恢复中断点的现场并继续原有任务
监督程序发展为执行系统(executivesystem),常驻内存
★5.多道批处理系统
特点
¡多道:
内存中同时存放几个作业;
¡宏观上并行运行:
都处于运行状态,但都未运行完;
¡微观上串行运行:
各作业交替使用CPU;
优点:
¡资源利用率高:
CPU和内存利用率较高;
¡作业吞吐量大:
单位时间内完成的工作总量大;
缺点:
¡用户交互性差:
整个作业完成后或中间出错时,才与用户交互,不利于调试和修改;
¡作业平均周转时间长:
短作业的周转时间显著增长;
多道程序系统中,要解决的问题:
同步互斥、内存不够、使用效率、内存保护
6.计算机硬件:
构成计算机的基本硬件元素:
处理器、存储器、输入输出控制与总线、外部设备。
与操作系统相关的几种主要的寄存器
数据寄存器
⏹地址寄存器
⏹条件码寄存器
⏹程序计数器
⏹指令计数器
⏹程序状态字PSW
⏹中断现场保护寄存器
⏹过程调用用堆栈
存储器的访问速度
指令的执行和中断
操作系统的启动
启动电源——产生中断信号——触发CPU中的一段指令发现操作系统引导区位置——导入内存执行——操作系统程序加载到内存制定区域——初始化硬件……
7.算法
begin….end算法的开始于结束
repeat操作…..until条件当“条件”未被满足时重复所描述的“操作”
while条件do操作…….od当“条件”满足时,进行相应的“操作”
if条件then操作else操作fi满足“if”所指的“条件”时,进行“then”后的相关“操作”,否则完成“else”后的相关操作。
第二章
★1.作业:
在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。
作业由不同的顺序相连的作业步组成,作业步是一个作业的处理过程中计算机所做的相对独立的工作。
2.作业的组织:
作业由三部分组成,即程序、数据和作业说明书。
作业中包含的程序和数据完成用户所要求的业务处理工作,作业说明书则体现用户的控制意图。
★由作业说明书在系统中生成一个称为作业控制块(JCB)的表格,JCB包括:
作业名、估计执行时间、优先数(用于调度)、作业说明书文件名、程序类型、资源要求(静态申请和动态申请)、作业状态(提交后各执行完成)。
作业说明书包括:
作业基本情况描述(用户名、作业名、使用语言名、允许最大处理时间等)、作业控制描述(控制方式、操作顺序、出错处理等)、作业资源要求描述(要求处理时间、内存空间、外设类型和数量、处理及优先级、库函数或实用程序等)。
★3.如何控制作业
①联机输入输出方式
联机输入输出方式大多用在交互式系统中,用户与系统通过交互式会话输入输出作业。
在联机输入输出方式中,外围设备直接与主机相连接。
②脱机输入输出方式
脱机输入又称为预输入方式,利用低档个人计算机作为外围处理机进行输入输出处理。
③直接耦合方式
把主机与低档外围通过一个公用的大容量外存直接耦合起来。
④SPOOLING系统(外围设备同时联机操作)
多台外围设备通过通道或DMA器件和主机与外存连接起来。
⑤网络联机方式
网络联机方式以上述几种输入输出方式为基础。
当用户通过计算机网络中的某一台设备对计算机网络中的另一台主机进行输入输出操作时,就构成了网络联机方式。
4.系统调用
系统调用大致可分为6类:
(1)设备管理:
该类系统调用被用来请求和释放有关设备以及启动设备操作等。
(2)文件管理:
包括对文件的读、写、创建和删除等。
(3)进程控制:
包括进程创建、进程执行、进程撤销、进程等待和执行优先级控制等。
(4)进程通信:
该系统调用被用在进程之间传递消息或符号。
(5)存储管理:
包括调查作业占据内存区的大小、获取作业占据内存区的始址等。
(6)线程管理:
包括线程的创建、调度、执行、撤销等。
系统调用的实现:
当用户使用系统调用时,产生一条相应的指令,处理机在执行到该指令时发生相应的中断,并发出有关信号给该处理机制。
该处理机制在收到了处理机发来的信号后,启动相关的处理程序去完成该系统调用所要求的功能。
陷进处理机构:
在系统中为控制系统调用服务的机构称为陷进处理机构。
陷进指令:
把由于系统调用引起处理机中断的指令称为陷进指令。
第三章
1.程序的并发执行
程序用来描述计算机所完成的独立功能,并在时间上严格地按前后次序相继地进行计算机操作序列集合,是一个静态概念。
个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种程序执行的方式就称为程序的顺序执行。
程序顺序执行的特点:
⏹1.顺序性
处理机严格按照程序所规定的顺序执行,即每个操作必须在下一个操作开始之前结束。
⏹2.封闭性
程序一旦开始执行,其计算结果不受外界的影响,当程序的初始条件给定之后,其后的状态只能由程序本身确定,即只有本程序才能改变它。
⏹3.可再现性
程序执行的结果与初始条件有关,而与执行时间无关。
即只要程序的初始条件相同,它的执行结果是相同的,不论它在什么时间执行,也不管计算机的运行速度。
多道程序系统中程序执行环境的变化
执行环境的特点:
⏹
(1)独立性
在多道环境下执行的每道程序都是逻辑上独立的。
⏹
(2)随机性
程序和数据的输入和执行开始时间都是随机的。
⏹(3)资源共享
软硬件资源的有限性导致资源共享。
程序并发执行:
若干个程序段同时在系统中运行,这些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并发执行的。
2.★.进程:
进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。
进程和程序的区别与联系:
①程序是指令的集合,是静态的概念。
进程是程序在处理机上的一次执行的过程,是动态的概念。
程序可以作为软件资料长期保存。
进程是有生命周期的。
②进程是一个独立的运行单位,能与其它进程并行(并发)活动。
而程序则不是。
③进程是竞争计算机系统有限资源的基本单位,也是进行处理机调度的基本单位。
④不同的进程可以包含同一程序,只要该程序所对应的数据集不同。
作业和进程的关系
作业是用户需要计算机完成某项任务时要求计算机所做工作的集合。
而进程则是已提交完毕程序的执行过程的描述,是资源分配的基本单位。
其主要区别如下:
⏹作业是用户向计算机提交任务的任务实体。
⏹一个作业可由多个进程组成。
⏹作业的概念主要用于批处理系统中。
进程描述
在系统中一个进程存在:
进程控制块PCB、有关程序段、数据结构集
1进程控制块PCB(ProcessControlBlock)
包含一个进程的描述信息、控制信息及资源信息,有些系统还有进程调度等待所使用的现场保护区。
PCB集中反映一个进程的动态特征。
在创建时,建立PCB,并伴随进程运行的全过程,当进程完成其功能后,系统释放PCB,进程也随之消亡
(1)描述信息
1、进程名或进程标识号name
每个进程都必须有一个唯一的标识符,可以是字符串,也可以是一个数字。
UNIX系统中就是一个整型数。
在进程创建时由系统赋予。
2、用户名或用户标识号
每个进程都隶属于某个用户,用户名或用户标识号有利于资源共享和保护
3、家族关系processfamily
有的系统允许一个进程可创建自已的子进程,子进程还可以创建,一个进程往往处在一个家族之中,就需要记录进程在家族中位置的信息。
(2)控制信息
1、进程当前状态status
说明进程当前所处的状态。
为了管理的方便,系统设计时会将相同的状态的进程组成一个队列,如就绪进程队列,等待进程则要根据等待的事件组成多个等待队列,如等待打印机队列、等待磁盘I/O完成队列等等。
2、进程优先级priority
进程的优先级反映进程的紧迫程度,通常由用户指定和系统设置。
3、执行程序开始地址start-addr
4、各种计时信息
进程占用系统资源的情况,不同的系统的处理差别很大。
5、通信信息communicationinformation
是指某个进程在运行的过程中要与其它进程进行通信,该区记录有关进程通信方面的信息。
(3)资源管理信息
包括有关存储器的信息、使用输入、输出设备的信息、有关文件系统的信息:
1、占用内存大小及管理用数据结构指针。
2、在某些复杂系统中,还有对换或覆盖用的有关信息。
3、共享程序段大小及起始地址。
4、输入输出设备的设备号,所要传送的数据长度、缓冲区地址、缓冲区长度及使用设备的有关数据结构指针等。
5、指向文件系统的指针及有关标识等。
(4)、CPU现场保护区cpustatus
当进程因某种原因不能继续占用CPU时(等待打印机),释放CPU,这时就要将CPU的各种状态信息保护起来,为将来再次得到处理机恢复CPU的各种状态,继续运行。
②进程上下文实际上是进程执行活动全过程的静态描述。
进程上下文是一个抽象的概念,它包含了每个进程执行过的、执行时的以及待执行的指令和数据,在指令寄存器、堆栈(存放个调用子程序的返回点和参数等),状态字寄存器等中的内容。
上文:
已执行过的进程指令和数据在相关寄存器与堆栈中的内容。
正文:
正在执行的指令和数据在相关寄存器与堆栈中的内容。
下文:
待执行的指令和数据在相关寄存器与堆栈中的内容。
③进程上下文切换
进程上下文切换发生在不同的进程之间而不是同一个进程内。
包含3个部分,第一部分为保存被切换进程的正文部分(或当前状态)至有关存储区。
第二部分操作系统进程中有关调度和资源分配程序执行,并选取新的进程。
第三部分则是将被选中进程的原来被保存的正文部分从有关存储区中选出,并送至有关寄存器或堆栈中,激活被选中进程执行。
④进程空间和大小
任一进程都有自己的地址空间,把该空间称为进程空间或虚空间。
进程空间的大小只与处理机的位数有关。
程序的执行都在进程空间内进行。
用户程序、进程的各种控制表格等都按一定的结构排列在进程空间中。
在有的系统中进程空间被划分为两部分:
用户空间和系统空间。
为了防止用户程序访问系统空间,造成访问出错,计算机通过程序状态寄存器等设置不同的执行模式,即用户模式(用户态)和系统模式(系统态)来进行保护。
3.进程状态及其转换
★进程的三种基本状态:
执行状态、就绪状态、等待状态(又称阻塞、挂起、睡眠)
就绪状态(Ready)
存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU,就立即可以运行,这些进程所取的状态为就绪状态。
(有多个进程处于此状态)
执行状态(Running)
当进程由调度/分派程序分派后,得到CPU控制权,它的程序正在运行,该进程所处的状态为执行状态。
(在系统中,总只有一个进程处于此状态)
等待状态(Wait)
若一个进程正在等待某个事件的发生(如等待I/O的完成),而暂停执行,这时,即使给它CPU时间,它也无法执行,则称该进程处于等待状态。
★进程状态转换
运行到等待等待某事件的发生(如等待I/O完成)
等待到就绪事件已经发生(如I/O完成)
运行到就绪时间片到(例如,两节课时间到,下课)
新建进程到就绪新创建的进程进入就绪状态
就绪到运行当处理机空闭时,由调度(分派)程序从就绪进程队列中选择一个进程占用CPU。
进程控制:
就是系统使用一些具有特定功能的程序段来创建、撤销进程以及完成进程各状态的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。
原语:
把系统态下执行的某些具有特定功能的程序段称为原语。
用于进程控制的原语有:
创建原语、撤销原语、阻塞原语、唤醒原语。
进程创建方式:
由系统程序模块统一创建;由父进程创建。
进程创建系统调用:
create(name,priority,start-addr)UNIX系统:
fork()
进程撤销:
(1)该进程已完成所要求的功能而正常终止
(2)由于某种错误导致非正常终止(3)祖先进程要求撤销某个子进程。
在一般操作系统中进程撤消的系统调用是:
killUNIX系统中是exit()如果撤销进程有自己的子进程,则撤销原语先撤销其子进程的PCB结构并释放子进程所释放的资源后,再撤销当前进程的PCB结构和释放其资源。
进程的阻塞与唤醒
当一个处在运行状态的进程,因等待某个事件的发生(如等待打印机)而不能继续运行时,将调用进程挂起系统调用,把进程的状态置为阻塞状态,并调用进程调度程序(等于让出处理机)。
进程从运行状态转换成阻塞状态是由进程挂起原语实现的,因此,调用进程挂起操作是在进程处于运行状态下执行的。
它的执行将引起等待某事件的队列的改变.
一个正在运行的进程会因等待某事件(例如,等待打印机)的发生,由运行状态转换成阻塞状态,当它等待的事件发生后,这个进程将由阻塞状态转换成就绪状态。
这种转换由进程唤醒操作完成。
唤醒一个进程有两种方式:
系统进程唤醒、事件发生进程唤醒。
调用进程唤醒操作一般在中断处理、进程通信等过程中。
例如,打印机完成中断处理程序,在完成了打印完成的操作后,就去检查等待打印机的队列,若不为空,则调用进程唤醒操作,唤醒一个(或多个)等待打印机的进程。
4.进程互斥
产生互斥的原因:
资源共享、进程合作
★临界资源:
一次仅允许一个进程使用的资源称为临界资源。
★临界区:
每个进程中访问临界资源的那段程序段称为临界区(临界段)。
间接制约:
由于共享某公有资源而引起的在临界区内不允许并发进程交叉执行的现象称为有共享公有资源而造成的对并发进程执行速度的间接制约,简称间接制约。
★互斥:
在操作系统中,当某一进程正在访问某临界区时,就不允许其它进程进入,否则就会发生(后果)无法估计的错误。
我们把进程之间的这种相互制约的关系称为互斥。
进入临界区的准则:
(1)不能假设各并发进程的相对执行速度;
(2)并发进程中的某个进程不在临界区时,它不能阻止其他进程进入临界区;
(3)并发进程中的若干个进程申请进入界区时,只能允许一个进程进入;
(4)当有若干个进程欲进入临界区时,应在有限的时间内使其进入。
解决进程互斥的最简单的办法是加锁。
在系统中为每个临界资源设置一个锁位,
⏹1表示资源可用,
⏹0表示资源已被占用(不可用)。
这样当一个进程使用某个临界资源之前必须完成下列操作:
1、考察锁位的值;
2、若原来的值是为“1”,将锁位置为“0”(占用该资源);
3、若原来值是为“0”,(该资源已被别人占用),则转到1。
当进程使用完资源后,将锁位置为“1“,称为开锁操作。
5.信号量与P、V原语
★信号量sem:
是一个整数,在sem大于等于零时,代表可供并发资源使用的资源实体数,但sem小于零时则表示正在等待使用临界区的进程数。
sem代表资源的实体。
在实际应用中应准确地说明sem的意义和初值。
★P操作:
(1)sem减1;
(2)若sem减1后仍大于等于0,则进程继续执行;
(3)若结果小于0,则该进程挂起。
注:
挂起该进程包括:
保留调用进程CPU现场;置“等待”状态;入等待队列;转进程调度;
V操作:
(1)s值加1;
(2)若相加结果大于0,进程继续执行;
(3)否则,唤醒一个(或多个)等待该信号灯的进程,然后本进程继续执行或转进程调度。
★P、V原语实现互斥的原理
当一个进程想要进入临界区时,它必须先执行P原语操作以将信号量sem减1。
在一个进程完成对临界资源的操作后,它必须执行V原语操作以释放它占用的临界资源。
由于信号量初始值为1,所以,任一进程在执行P原语操作之后将sem的值变为0,表示该进程可以进入临界区。
在该进程未执行V原语操作之前如有另一进程想进入临界区的话,它也应先执行P原语操作,从而使sem的值变为-1,因此,第二个进程将会被阻塞,直到第一个进程执行V原语操作之后,sem的值变为0,从而可唤醒第二个进程进入就绪队列,经调度后进入临界区。
在第二个进程执行完V原语操作之后,如果没有其它进程申请进入临界区的话,则sem又恢复到初始值。
用信号量实现两并发进程Pa,Pb互斥的描述如下:
(1)设sem为互斥信号量,其取值范围为(1,0,-1)。
其中sem=1标志进程Pa,Pb都未进入类名为S的临界区,sem=0表示进程Pa,Pb已进入类名为S的临界区,sem=-1表示进程Pa,Pb中,一个进程已进入临界区,而另一进程等待进入临界区。
(2)描述
Pa:
P(sem)
V(sem):
………….
Pb:
P(sem)
V(sem):
:
………….
6.进程同步
★同步:
把异步环境下的一组并发进程,因直接制约而互相发送消息而进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。
用wait(消息名)表示进程等待合作进程发来的消息.
功能:
等待到消息名为true的进程继续执行。
用signal(消息名)表示向合作进程发送消息
功能:
发送消息名,并将其值置为true。
利用过程wait和singnal描述计算进程Pc和打印进程Pp的同步关系
(1)设消息名Bufempty表示buf为空,消息名Buffull表示Buf中装满了数据。
(2)初始化Bufempty=true,Buffull=false.。
(3)描述:
Pc:
A:
wait(Bufempty)
计算
Buf计算结果
Bufemptyfalse
signal(Buffull)
GotoA
Pp:
B:
wait(Bufful)
打印Buf中的数据
清除Buf中的数据
Buffulfalse
signal(Bufempty)
GotoB
★私有信号量(privateSemaphore):
进程同步的信号量只与制约进程及被制约进程有关而不是与整组并发进程有关。
因此该信号量称为私有信号量。
★用P,V原语操作实现同步
首先,为各并发进程设置私有信号量,
然后,为私有信号量赋初值,
最后,利用P,V原语和私有信号量规定各进程的执行顺序。
例:
设进程Pa和Pb通过缓冲区队列传递数据。
Pa为发送进程,Pb为接收进程。
Pa发送数据时调用发送过程deposit(data),Pb接受数据时调用过程remove(data),且数据的发送和接受过程满足如下条件:
(1)在
★7.生产者与消费者问题
对于生产者进程:
产生一个数据,当要送入缓冲区时,要检查缓冲区是否已满,若未满,则可将数据送入缓冲区,并通知消费者进程;否则,等待;
对于消费者进程:
当它去取数据时,要看缓冲区中是否有数据可取,若有则取走一个数据,并通知生产者进程,否则,等待。
这种相互等待,并互通信息就是典型的进程同步。
同时,缓冲区是个临界资源,因此,诸进程对缓冲区的操作程序是一个共享临界区,因此,还有个互斥的问题。
8.进程通信
通信(communication)意味着进程间传递数据。
操作系统可以看作是各种进程组成的,这些进程都具有各自独立的功能,且大多数都被外部需要而启动执行。
在单机系统中进程的通信有4种形式:
(1)主从式
(2)会话式
(3)消息或邮箱机制
(4)共享存储区方式
会话方式的特点:
(1)使用进程在使用服务进程所提供的服务之前,必须得到服务进程的许可。
(2)服务进程根据使用进程的要求提供服务,但对所提供服务的控制由服务进程自身完成。
(3)使用进程和服务进程在进行通信时有固定连接关系。
消息或邮箱机制的特点是:
(1)只要存在空缓冲区或邮箱,发送进程就可以发送消息。
(2)与会话系统不同,发送进程和接受进程之间无直接联接关系。
(3)发送进程和接受进程之间存在缓冲区或邮箱用来存放被传送消息。
邮箱通信就是由发送进程申请建立一与接受进程联接的邮箱。
设置邮箱的最大好处是发送进程和接受进程之间没有时间上的限