操作系统原理Word文档格式.docx
- 文档编号:20657799
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:33
- 大小:1.29MB
操作系统原理Word文档格式.docx
《操作系统原理Word文档格式.docx》由会员分享,可在线阅读,更多相关《操作系统原理Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
实质是对中央处理器进行管理,主要包括进程控制、进程同步、进程间通信、进程调度等。
进程控制。
主要任务就是创建进程、撤销结束的进程、控制进程运行时的各种状态转换。
进程同步。
多个进程的执行是并发的,他们以异步方式运行,OS需要提供进程同步机制,以协调进程的执行
进程间通信。
是协作的进程之间相互交换数据和消息的手段
调度。
通常包括进程调度、线程调度、作业调度等。
(2)存储管理。
管理计算机内存的资源
内存的分配与回收。
当多个程序共享有限的内存资源时,如何为多个程序分配有限的内存空间;
存储保护。
存放在内存中的多个程序和数据应该彼此隔离、互不侵扰;
内存扩充。
将内存和外存结合起来管理,为用户提供一个比实际内存大得多的虚拟存储器。
(3)文件管理。
在计算机系统中的信息资源是以文件的形式存放在外存储器上。
文件管理的任务是有效地支持文件操作,解决文件的共享、保密和保护问题,使用户方便、安全地访问文件。
(4)设备管理。
指除了CPU和内存以外的所有输入、输出设备的管理。
(5)用户接口。
从用户的观点来看,操作系统是用户与计算机系统之间的接口。
5、操作系统分类
按照用户界面的使用环境和功能特征的不同,一般可以吧操作系统分为三种基本类型:
批处理操作系统、分时操作系统、实时操作系统。
只有又出现了许多类型的OS,如个人操作系统、网络操作系统、分布式操作系统、嵌入式操作系统等。
(1)批处理操作系统。
工作方式:
用户将作业交给系统操作员,系统操作员在受到后,并不立即将作业输入计算机,而是在受到一定数量的用户作业之后,组成一批作业,再把这批作业输入到计算机中。
这批作业可以在系统中形成连续的、自动转接的作业流。
(2)分时系统
用户通过终端交互式地向系统提出命令请求,系统接收用户的命令之后,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。
分时系统追求的目标是及时响应用户输入的交互命令。
(3)实时操作系统(RealTimeOperatingSystem,RTOS)
主要目标是在严格时间范围内,对外部请求作出反应,系统具有高度可靠性。
需要具有实时时钟管理、过载防护、高可靠性能力。
(4)嵌入式操作系统(EmbeddedOS)
嵌入式操作系统就是运行在嵌入式芯片环境中,对整个芯片以及它所操作、控制的各种部件装置等资源进行统一协调、调度、指挥和控制的系统软件。
网络操作系统与分布式操作系统在概念上的主要不同之处在于网络操作系统可以构架与不同的操作系统之上,而分布式操作系统强调单一操作系统对整个系统的管理和调度。
(5)个人计算机操作系统(PersonalComputerOS)
是一种单用户多任务的操作系统
(6)网络操作系统(NetworkOS)
基于计算机网络的操作系统,其目的是相互通信及资源共享。
网络环境中的计算机不仅能够共享数据,资源及服务,还能共享运算处理能力。
(7)分布式操作系统(DistributedOS)
分布式操作系统是网络操作系统的更高级形式。
在系统中所有的主机使用的是同一个操作系统,可以实现资源的深度共享,对用户透明,具有自治性(各主机之间平等,不是主从关系)。
(8)智能卡操作系统
6、操作系统结构
操作系统结构,是指操作系统各部分程序的存在方式及相互关系。
(1)整体式结构
模块组合结构,系统中的模块不是根据程序和数据本身的特性而是根据他们完成的功能划分的。
模块独立性差,系统结构不清晰。
模块组合合法的关键在于“接口”。
(2)层次式结构
各层之间的模块只能是单向依赖或单向调用关系。
(3)微内核(客户机/服务器)结构
效率比较低,所有的用户进程只能通过微内核相互通信。
第二章操作系统运行机制
1、中央处理器(CPU)的构成
一般的处理器由运算器、控制器、一系列寄存器、高速缓存构成。
(1)运算器实现任何指令中的算术和逻辑运算,是计算机计算的核心;
(2)控制器负责控制程序运行的流程,包括取指令、维护CPU状态、CPU与内存交互等;
(3)寄存器是指令在CPU内部作出理的过程中暂存数据、地址及指令信息。
(4)高速缓存处于CPU和物理内存之间,一般由内存管理单元(MemoryManagementUnit,MMU)管理,它的访问速度快于内存,低于寄存器,利用程序局部性原理使得高速指令处理和低速内存访问得以匹配。
2、CPU指令执行的基本过程
处理器先从存储器中每次读取一条指令,然后执行该条指令。
这样的单条指令处理过程称为一个指令周期。
3、CPU的状态
特权越高,可以运行的指令集合就越大;
而且特权级别高的可运行指令集合包含低特权级的。
目态到管态的转换:
通过中断或异常。
中断响应时交换中断向量,新的中断向量中的程序状态字(PSW)的CPU状态标志位为管态。
管态到目态的转换:
设置PSW指令。
4、存储器的层次结构(容量、速度、成本)
寄存器→高速缓存→内存储器→硬盘存储器→磁带和光盘
从左向右,每比特的价格下降、容量增大、速度变慢、CPU访问频率下降。
提高存储系统性能的关键在于程序的存储访问局部性原理
5、中断与异常
(1)中断、异常的概念
中断是指CPU对系统中或者系统外发生的异步事件的响应。
异步事件是指没有一定时序关系的随机发生的事件。
引起中断的那些事件成为中断事件或中断源;
中断源向处理器发出的请求信号称为中断请求;
把处理中断事件的程序称为中断处理程序;
发生中断时正在执行的程序的暂停点称为中断断点;
处理器暂停当前程序转而处理中断的过程为中断响应;
中断处理结束后恢复原来程序的执行称为中断返回。
中断是由外部事件引起的;
异常是由正在执行的指令引起的。
(2)中断系统
中断系统分为两大组成部分:
中断系统的硬件中断装置和软件中断处理程序。
硬件中断装置负责捕获中断源发出的中断请求,并以一定的方式响应中断源,然后将处理器的控制权交给待定的中断处理程序。
中断处理程序针对中断事件的性质执行相应的操作。
整个中断信号的接收、响应和处理过程可以简要的归纳为:
接收和响应中断,保护中断断点现场,分析中断向量,调用中断处理程序,中断处理结束恢复现场,原有程序继续执行。
6、系统调用(systemcall)
系统调用,就是用户在程序中调用操作系统提供的一些子功能。
可以被看做一个低级的过程,只能由汇编语言直接访问。
系统调用是操作系统提供给编程人员的唯一接口,但是对用户屏蔽了具体动作,只是提供有关功能。
6.1系统调用与一般过程调用的区别:
(1)运行在不同的系统状态
一般过程调用,其调用程序和被调用程序都运行在相同的状态;
而系统调用中,调用程序运行在用户态,被调用程序运行在系统态。
(2)状态的转换
一般过程调用不涉及系统状态的转换;
而系统调用中,通常是通过软中断机制先由用户态转为系统态,在OS分析后再转向相应的系统调用子程序。
(3)返回问题
一般过程调用在被调用过程执行完成后,将返回到调用过程继续执行;
而在系统调用中,由于采用抢占式调度方式,被调用程序执行完成后,系统将对所有要求运行的进程进行优先级的排名,若调用进程优先级比较低,则系统把调用进程放入就绪队列。
(4)嵌套调用
系统调用同一般的过程调用一样,允许嵌套调用,但是在一般情况下,每个系统对嵌套调用的深度都有一定的限制。
系统调用可以分为以下几类:
1)进程控制类;
2)文件操作类;
3)进程通信类;
4)设备管理类;
5)信息维护类。
6.2系统调用的处理过程:
系统调用的过程类似于硬件中断处理中的中断处理机构。
在系统中,为控制系统调用服务的机构称为“陷入(trap)”或“异常指令”(访管指令)
1)保护处理现场;
2)去系统调用功能号并寻找系统调用的子程序入口
3)返回调用程序,恢复现场。
在系统调用中,需要向系统子程序传递参数,实现用户程序和系统程序之间的参数传递方法有:
1)由陷入指令自带参数;
2)通过有关通用寄存器(系统程序和用户程序都能访问);
3)在内存中开辟专用堆栈区来传参。
7、I/O技术
1)I/O结构:
在早期的计算机系统中,外部设备的控制器通过I/O硬件结构直接与CPU相连。
2)通道(I/O处理机)
通道独立于CPU,专门负责数据I/O传输工作。
通道对外部设备实行统一管理,代替CPU对I/O操作进行控制,从而使得CPU与外设可以并行工作。
通道的工作原理:
CPU按照程序规定的顺序执行一条条指令,当执行到“启动外设”的指令时,按照指令中的参数启动设备,并对该外设的控制权转移给通道;
在外设工作结束后,产生一个“输入/出操作结束”中断事件。
3)直接存储器访问(DMA,DirectMemoryAccess)
DMA通过系统总线中的一个独立控制单元,即DMA控制器,自动控制成块数据在内存和I/O单元之间的传送。
处理器只需要在整块数据开始传送和结束时关注一下即可。
(结束时也要给处理器发送一个中断)
4)缓冲技术
缓存技术是用在外部设备与其他硬件之间的一种数据暂存技术。
一般有两种途径:
外设与外设的通信、外设与CPU的通信
采用缓冲技术的根本原因是:
CPU处理数据的速度与设备传输数据速度不匹配
8、时钟——时钟中断
第三章进程线程模型
1、多道程序
多道程序同时在系统中存在且并发执行,系统中的资源由几道程序共享。
所谓并发执行,对于单CPU而言,这些并发程序按给定的时间片交替的在处理机上执行,其执行时间是重叠的;
对于多CPU而言,并发程序在各自测处理机上运行。
(宏观同时进行,微观单CPU顺序执行)
衡量系统效率的尺度是系统吞吐量,即单位时间内系统所处理作业(程序)的道数(数量)。
多道程序设计环境的特点:
1)独立性。
每道程序逻辑独立,执行速度与其他程序无关,执行起止时间独立
2)随机性。
程序和数据的输入与执行开始时间都是随机的
3)资源共享性。
程序并发执行的特性:
1)并发程序在执行期间具有相互制约关系。
因为多道程序的并发执行总是伴随着资源共享和竞争,从而制约了其他各道程序的执行速度。
2)程序与计算不再一一对应。
允许多个用户作业调用同一个共享程序段。
3)并发程序执行结果不可再现。
执行结果与其执行速度有关,是不确定的。
2、进程模型的概念
进程由程序、数据和程序控制块(PCB)组成。
进程与程序的联系与区别:
1)联系:
程序是进程的组成部分,一个进程的运行目标是执行它所对应的程序,若没有程序,进程就是去了意义。
从静态角度分析,进程是由程序、数据、进程控制块(PCB)组成。
2)区别:
程序是静态的;
进程是动态的,有生命周期。
进程的特点:
并发性、动态性、独立性、交往性、异步性
3、三状态进程模型:
1)运行状态(Running)。
2)就绪状态(Ready)。
已具备运行条件但是没有获得CPU
3)等待状态(Writing)。
(又称阻塞或封锁状态)
4、五状态进程模型:
1)运行状态
2)就绪状态
3)阻塞状态(Blocked)
4)创建状态(New)进程正在创建中,不能运行。
5)结束状态(Exit)回收除了进程控制快(PCB)之外的其他资源
5、七状态进程模块
五状态进程模型没有区分进程地址空间位于内存还是外存,由于进程优先级的引入,一些低优先级进程可能等待时间较长而被转至外存。
2)创建状态(New)进程正在创建中,不能运行。
3)结束状态(Exit)回收除了进程控制快(PCB)之外的其他资源
4)就绪状态(Ready):
进程在内存且可以立即进入运行状态
5)阻塞状态(Blocked):
进程在内存并等待某时间出现
6)就绪挂起状态(Ready,Suspend):
进程在外存,但只要进入内存即可运行
7)阻塞挂起状态(Blocked,Suspend):
进程在外存,并等待某时间出现
挂起:
把一个进程从内存转到外存
6、进程控制块(PCB)
7、进程控制
进程控制的作用就是对进程在整个生命周期中各个状态之间的转换进行有效的控制。
进程控制是通过原语来实现的。
原语通常有若干条指令组成(由一组程序模块组成而不是由进程),原语是不可分割的或不可中断的程序,即原语的执行必须是连续的。
原语必须在管态下进行,并且常驻内存。
8、进程与线程的区别与联系
(1)引入进程的目的是为了使多个程序并发执行,以改善资源利用率及提高系统效率;
引入线程的目的是为了减少程序的并发执行时所付出的时间和空间开销,是操作系统具有更好的并发性(因为进程是一个资源拥有者,因而在进程的创建、撤销和切换中系统必须为之付出较大的时空开销)。
(2)进程具有两个基本属性:
进程是一个可拥有资源的独立单位;
一个可以独立调度和分派的基本单位。
线程是进程中的一个实体,比进程更小,是CPU调度和分派的基本单位,基本不拥有系统资源,但是可以与同属于一个进程的其他线程共享资源。
【总结】进程与线程的比较:
(1)调度。
在引入线程的操作系统中,把线程作为调度和分派的基本单位而把进程作为资源拥有者的基本单位,从而使得传统进程的两个属性分开,可以显著的提高系统的并发程度。
同一进程中,线程的切换不会引起进程的切换;
而属于不同进程的线程在切换时需要进程切换。
(2)并发性。
在引入线程的操作系统中,不仅进程之间可以并发执行,同一进程中的多个线程也可以并发执行。
(3)拥有资源。
进程是拥有资源的独立单位,而线程虽然不拥有系统资源但是可以访问其所属进程的资源,与同一进程中的各个线程共享资源(代码段、数据段、内存地址等)
(4)系统开销。
进程>
线程
9、线程的实现机制
(1)用户级线程(User-LevelThreads)——Linux操作系统
用户级线程只存在于用户态中,不通过系统调用来实现,不依赖于内核,内核也不知道用户线程的存在。
这使得用户级线程包可以在不支持线程的操作系统上实现。
而且用户级线程允许每个进程有自己定制的调度算法。
(2)内核级线程(Kernel-SupportedThreads)——Windows操作系统
内核级线程依赖于内核,每个进程中没有线程表,而是在内核中有用来记录所有线程的线程表。
(3)混合实现方式——Solaris操作系统
将用户级线程与某些或者全部内核线程多路复用,每个内核线程有一个可以轮流使用的用户线程集合。
【总结】用户级线程与内核级线程的比较:
(1)线程的调度与切换速速。
用户级>
内核级
(2)系统调用。
在用户级线程调用一个系统调用时,由于内核不知道该用户级线程的存在,因而把系统调用看做是整个进程的行为,于是使该进程等待,而调度另一个进程执行。
在内核级线程中,则调度是以线程为单位,当一个线程调用一个系统调用时,内核把系统调用只看做是该线程的行为,因而封锁该线程。
(3)线程执行时间。
10、进程(线程)调度概念
进程(线程)调度的任务是控制、协调进程(线程)对CPU的竞争,按照一定的调度算法,使得某一就绪进程获得CPU的控制权,转换成运行状态。
11、进程(线程)调度算法
进程(线程)调度算法解决以何种次序对各就绪进程(线程)进行处理机的分配以及按照何种时间比例让进程(线程)占用处理机。
(1)先来先服务(First-ComeFirst-Servered,FCFS)——非抢占式
(2)最短作业优先(ShortestJobFirst,SJF)——非抢占式批处理调度算法
周转时间(TurnaroundTime):
指从一个批处理作业提交时刻开始直到该作业完成时刻为止的统计平均时间,度量了用户要得到输出所需的平均等待时间。
例如有四个作业A、B、C、D运行时间分别为a,b,c,d分钟,若按照A、B、C、D的次序运行,则A的周转时间为a分钟,B的周转时间为(a+b)=12分钟,C的周转时间为(a+b+c)=16分钟,D的周转时间为(a+b+c+d)=20分钟,平均时间为(4a+3b+2c+d)/4分钟。
由于A的a分钟对平均值影响最大(加了4次),所以它应该是最短作业。
(3)最短剩余时间优先(ShortestRemainingTimeNext,SRTN)
(4)轮转发(Round-Robin,RR),最早来自分时系统
将CPU的运行时间划分成一个个时间片,就绪队列中的进程轮流运行一个时间片。
当时间片结束时,就强迫运行进程让出CPU,该进程进入就绪队列,等待下一次调度。
时间片设置过短会导致过多的进程切换降低CPU的效率;
时间片过长可能会引起对短的交互申请的响应时间边长。
(5)最高优先级优先(HighestPriorityFirst,HPF)
(6)多级反馈队列算法
多级队列反馈法综合了先进先出调度算法、时间片轮转算法、可抢占式最高优先级算法的一种进程(线程)调度算法。
系统按照优先级别设置多个就绪队列,不同优先级的队列有不同的时间片,优先级越高时间片越小;
同一个队列遵循先进先出;
系统总是先调用级别高的队列,仅当级别高的队列为空时才调用次一级的队列;
当正在执行的进程(线程)用完其时间片后,进入次一级的就绪队列。
当等待进程(线程)被唤醒时,该进程进入与其同级的队列中,若该进程的优先级高于正在执行的进程时,就抢占CPU。
(7)最短进程优先
(8)实时系统中的调度算法
如果有m个周期事件,事件i以周期
发生,并且需要
秒CPU时间处理一个事件,那么可以处理负载的条件:
满足这个条件的实时系统称为是可调度的。
:
适用于可抢先的周期性进程的经典静态实时调度算法
“单调”是因为优先级是以程序触发事件发生的频率定义的,所以优先级与进程的速率(每秒运行进程的次数)呈线性关系。
RMS要求:
每个周期性的进程必须在其周期内完成;
进程间相互独立;
每个进程在一次突发中需要相同的CPU时间量;
进程抢先即刻发生而没有系统开销;
任何非周期性进程都没有最终时间
动态算法
只要一个进程需要CPU时间,它就宣布它的到来时间和最终时间。
调度程序维持一个可运行进程的列表,该列表按照最终时限排序。
第四章并发与同步
1、经典的进程同步问题:
1)、简单生产者——消费者问题
生产者和消费者通过一个缓冲区联系起来,缓冲区只能容纳一个产品。
消费者不断生产产品,然后送往缓冲区;
消费者不断从缓冲区取出产品。
2)、多个生产者——消费者问题
多个生产者和多个消费者通过一个环形缓冲池联系起来。
缓冲池有多个缓冲区,每个缓冲区只能容纳一个产品。
3)、读者——写者问题
有某个共享文件,系统允许若干个进程对文件进行读写。
要读文件的进程称为读者,要写文件的称为写者。
且读者和写者之间存在如下关系:
允许多个进程同时读;
有进程在写时,其他进程不能读写;
有进程在读时,其他进程不能写。
2、管程(Monitor)——高级同步原语
一个管程是一个由过程、变量及数据结构等组成的集合,他们组成一个特殊的模块或软件包。
进程可在任何时候调用管程中的过程,但是不能在管程之外声明的过程中直接访问管程内的数据结构。
管程由四部分组成:
管程名称、共享数据的说明、对数据进行操作的一组过程、对共享数据赋初值的语句。
管程能保障共享资源的互斥执行,即一次只能有一个进程可以在管程内活动。
该性能是由管程本身实现的,因此程序员可以不必显示编写程序代码去实现这种同步制约,管程不能使用C语言,因为管程是语言特性而C不支持。
管程的特性:
模块化、信息隐蔽、抽象数据类型
管程是编程语言的组成部分,进入管程时的互斥由编译器负责,编译器知道管程的特殊性,因此采用与其他过程调用不同的方法来处理对管程的调用。
管程通常是用来管理资源的。
1)共享变量:
管程的共享变量在管程外是不可见的,外部只能通过调用管程中所说明的外部过程(函数)来间接访问共享变量。
2)条件变量:
使得进程在无法继续运行时被阻塞。
引入条件变量和两个操作wait和signal
3、进程通信
解决进程之间的大量信息通信的问题有三类方案:
共享内存、消息机制、管道通信(共享文件)。
三种方式都是高级通信原语;
解决少量信息通信的问题,例如P/V操作,是一类低级通信原语。
(1)共享内存
在相互通信的进程之间设一个公共内存区,通过读写实现进程之间的信息交换。
需要注意的两个问题:
怎样提供共享内存;
公共内存总的读写互斥(互斥问题由开发人员解决)
(2)消息机制
(3)管道(Pipe)通信
管道通信的基础是文件系统。
管道——连接两个进程间的一个打开的共享文件。
发送进程和接收进程要实施正确的同步和互斥才能确保通信的正确性。
而同步和互斥是操作系统自动进行的,对用户透明。
第五章内存管理
计算机可以直接访问内存,但是不能直接访问外存,需要启动相应的I/O设备后才能使外存与内存交换信息。
存储管理实质上就是管理供用户使用的部分(用户区)。
1、操作系统中存储管理的主要任务:
内存的分配和回收
存储共享
存储保护
地址转换
(1)内存的分配与回收
有效的分配回收机制需要具有以下功能:
记录每个存储区域的状态,记录内存空间中哪些是分配了的,哪些是空闲的。
实施分配,按需分配,并修改相应的分配表格。
回收,接收用户释放的区域,修改分配表格。
(2)存储共享
指两个或多个进程共用内存中的相同区域,包括代码共享和数据共享:
代码共享节省内存空间,提高内存利用率;
数据共享实现进程通信。
(3)存储保护
存储保护一般以硬件保护机制为主,软件为辅,因为完全用软件实现系统开销太大,速度显著降低。
当发生地址越界或非法操作时,由硬件产生中断,进入操作系统处理。
(4)“扩充”内存容量
借助虚拟存储技术活其他交换技术达到在逻辑上扩充内存容量,亦即为用户提供比内存物理空
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 原理