操作系统读书工程报告概要

上传人:今*** 文档编号:108096207 上传时间:2019-10-22 格式:DOC 页数:15 大小:143.54KB
返回 下载 相关 举报
操作系统读书工程报告概要_第1页
第1页 / 共15页
操作系统读书工程报告概要_第2页
第2页 / 共15页
操作系统读书工程报告概要_第3页
第3页 / 共15页
操作系统读书工程报告概要_第4页
第4页 / 共15页
操作系统读书工程报告概要_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《操作系统读书工程报告概要》由会员分享,可在线阅读,更多相关《操作系统读书工程报告概要(15页珍藏版)》请在金锄头文库上搜索。

1、“操作系统课程设计”读书报告学号 姓名 学院 年级 专业 报告日期 成绩黑龙江大学计算机科学技术学院 软件学院一、基本理论阐述 1.进程 定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 基本介绍:多道程序在执行时,需要共享系统资源,从而导致各程序在执行过程中出现相互制约的关系,程序的执行表现出间断性的特征。这些特征都是在程序的执行过程中发生的,是动态的过程,而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述程序在内存中的执行情况,即我们无法从程序的字面上看出它何时执

2、行,何时停顿,也无法看出它与其它执行程序的关系,因此,程序这个静态概念已不能如实反映程序并发执行过程的特征。为了深刻描述程序动态执行过程的性质,人们引入“进程(Process)”概念。 进程的概念:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个

3、活动的实体,我们称其为进程。 主要特征:动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。 并发性:任何进程都可以同其他进程一起并发执行 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位; 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进 结构特征:进程由程序、数据和进程控制块三部分组成。 状态分类: 1)就绪状态(Ready):进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪

4、状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。 2)运行状态(Running):进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。3)阻塞状态(Blocked):由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行。 进程控制的基本事件:进程的创建1.引起创建进程的事件在多道程序环境中,只有(作为)进程(时)才能在系统中运行。因此,为使程序能运行,就必须为它创建进程。导致一个进程去创建另一个

5、进程的典型事件,可以有以下四类:1) 用户登录。在分时系统中,用户在终端键入登录命令后,如果是合法用户,系统将为该终端建立一个进程,并把它插入到就绪队列中。2) 作业调度。在批处理系统中,当作业调度程序按照一定的算法调度到某作业时,便将该作业装入到内存,为它分配必要的资源,并立即为它创建进程,再插入到就绪队列中。3) 提供服务。当运行中的用户程序提出某种请求后,系统将专门创建一个进程来提供用户所需要的服务,例如,用户程序要求进行文件打印,操作系统将为它创建一个打印进程,这样,不仅可以使打印进程与该用户进程并发执行,而且还便于计算出为完成打印任务所花费的时间。4) 应用请求。在上述三种情况中,都

6、是由系统内核为它创建一个新进程,而这一类事件则是基于应用进程的需求,由它创建一个新的进程,以便使新进程以并发的运行方式完成特定任务。2.进程的创建过程一旦操作系统发现了要求创建新进程的事件后,便调用进程创建原语Creat()按下述步骤创建一个新进程。1) 申请空白PCB。为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB。2) 为新进程分配资源。为新进程的程序和数据以及用户栈分配必要的内存空间。显然,此时操作系统必须知道新进程所需要的内存大小。3) 初始化进程控制块。PCB的初始化包括:初始化标识信息。将系统分配的标识符和父进程标识符,填入新的PCB中;初始化处理机状态信息。

7、使程序计数器指向程序的入口地址,使栈指针指向栈顶;初始化处理机控制信息。将进程的状态设置为就绪状态或静止就绪状态,对于优先级,通常是将它设置为最低优先级,除非用户以显式的方式提出高优先级要求。4) 将新进程插入就绪队列。如果进程就绪队列能够接纳新进程,便将新进程插入到就绪队列中。进程终止1.引起进程终止的事件1)正常结束。在任何计算机系统中,都应该有一个表示进程已经运行完成的指示。例如,在批处理系统中,通常在程序的最后安排一条Hold指令或终止的系统调用。当程序运行到Hold指令时,将产生一个中断,去通知OS本进程已经完成。2)异常结束。在进程运行期间,由于出现某些错误和故障而迫使进程终止。这

8、类异常事件很多,常见的有:越界错误,保护错,非法指令,特权指令错,运行超时,等待超时,算术运算错,I/O故障。3)外界干预。外界干预并非指在本进程运行中出现了异常事件,而是指进程应外界的请求而终止运行。这些干预有:操作员或操作系统干预,父进程请求,父进程终止。2. 进程的终止过程如果系统发生了上述要求终止进程的某事件后,OS便调用进程终止原语,按下述过程去终止指定的进程。1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程状态。2)若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真。用于指示该进程被终止后应重新进行调度。3)若该进程还有子孙进程,还应

9、将其所有子孙进程予以终止,以防他们成为不可控的进程。4)将被终止的进程所拥有的全部资源,或者归还给其父进程,或者归还给系统。5)将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息。进程的阻塞和唤醒1.引起进程阻塞和唤醒的事件1)请求系统服务。当正在执行的进程请求操作系统提供服务时,由于某种原因,操作系统并不立即满足该进程的要求时,该进程只能转变为阻塞状态来等待,一旦要求得到满足后,进程被唤醒。2)启动某种操作。当进程启动某种操作后,如果该进程必须在该操作完成之后才能继续执行,则必须先使该进程阻塞,以等待该操作完成,该操作完成后,将该进程唤醒。3)新数据尚未到达。对于相

10、互合作的进程,如果其中一个进程需要先获得另一(合作)进程提供的数据才能运行以对数据进行处理,则是要其所需数据尚未到达,该进程只有(等待)阻塞,等到数据到达后,该进程被唤醒。4)无新工作可做。系统往往设置一些具有某特定功能的系统进程,每当这种进程完成任务后,便把自己阻塞起来以等待新任务到来,新任务到达后,该进程被唤醒。2.进程阻塞过程正在执行的进程,当发现上述某事件后,由于无法继续执行,于是进程便通过调用阻塞原语block把自己阻塞。可见,进程的阻塞是进程自身的一种主动行为。进入block过程后,由于此时该进程还处于执行状态,所以应先立即停止执行,把进程控制块中的现行状态由执行改为阻塞,并将PC

11、B插入阻塞队列。如果系统中设置了因不同事件而阻塞的多个阻塞队列,则应将本进程插入到具有相同事件的阻塞(等待)队列。最后,转调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换,亦即,保留被阻塞进程的处理机状态(在PCB中),再按新进程的PCB中的处理机状态设置CPU环境。3. 进程唤醒过程当被阻塞的进程所期待的事件出现时,如I/O完成或者其所期待的数据已经到达,则由有关进程(比如,用完并释放了该I/O设备的进程)调用唤醒原语wakeup(),将等待该事件的进程唤醒。唤醒原语执行的过程是:首先把被阻塞的进程从等待该事件的阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该PC

12、B插入到就绪队列中。2、 当前理论或实践应用现状1. 线程、SMP和微内核在许多操作系统中,传统的进程概念被分为两部分:一部分负责管理资源所有权;另一部分负责指令流的执行。一个单独的进程可包含多个线程。使用多线程的组织方法对程序的结构化和性能方面都有很大的帮助。SMP是一个拥有多处理器的计算机系统,其中的每一个处理器都可以执行所有应用程序和系统代码。SMP的组织方法增强了系统的性能和可靠性。SMP通常和多线程机制一起使用,即使没有多线程机制也能很大幅度的提高系统性能。微内核是操作系统为了减少运行在内核模式的代码量的一种设计方式,并且分析了这种方法的优点。2.并发:互斥和同步相交进程之间的关系主

13、要有两种:同步与互斥。所谓互斥是指散步在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行。所谓同步,是指散步在不同进程之间的若干程序片断,它们的运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。显然,同步是一种更为复杂的互斥,而互斥是一种特殊的同步。也就是说互斥是两个线程之间不可以同时运行,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行,而同步也是不能同时运行,但他是必须要安照某种次序来运行相应的线程(也是一种互斥)!总结:互斥:是指某一资源同时只允许一个

14、访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。3. 并发:死锁和饥饿死锁是这样的一种情况:一组进程中的两个或多个进程要等待该组中的其他成员完成一个操作后才能继续运行,但是没有成员可以继续。死锁是一种很难预测的现象,并且没有比较容易的通用解决方案。处理死锁的三个主要手段是预防、避免和检测。饥饿时一个准备运行的进程由于其他进程的运行而一直不能访问处理器的情

15、况。从打的方面来说,饥饿是被当成调度问题来处理的。4.进程调度我们经常遇到两个或多个进程(例如,生产者和消费者)在逻辑上均可以运行的情况。当有多个进程就绪时,操作系统必须决定先运行哪一个。操作系统中作出这种决定的部分称作调度程序(scheduler)它使用的算法称作调度算法(scheduling algorithm)。再回到早期以磁带上的卡片映像作为输入的批处理系统时代,那时的调度算法很简单:依次运行磁带上的下一个作业。对于分时系统,则调度算法要复杂一些,因为经常有多个用户等待服务,而且同时可能存在多个批处理流(例如,保险公司理赔)。即使在个人电脑上,也可能有若干用户启动的进程竞争CPU,更不要说还有后台作业,例如网络或收发电子邮件的精灵进程。在讨论具体的调度算法之前,我们应该考虑一下调度程序要达到的目标。毕竟调度程序关注的是确定策略,而并不提供机制。一个好的调度算法应当考虑很多方面,其中可能有:1. 公平-确保每个进程获得合理的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号