读书频道 > 网站 > 网页设计 > 操作系统考研习题精析
2.2 本章主要知识点
13-07-14    奋斗的小年轻
收藏    我要投稿   

本文所属图书 > 操作系统考研习题精析

本书以教育部颁发的全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业基础综合考试大纲为基础,对操作系统各部分考点的内容进行简要介绍。本书以考试大纲规定的考查目标为依据,本着出题合理、...立即去当当网订购

什么叫进程?为什么要引入“进程”这一概念?

进程是程序的一次执行,该程序可与其他程序并发执行。

为了提高系统资源的利用率,出现了多道程序设计技术,但多道程序的并发执行和资源共享带来了新的问题,破坏了程序的封闭性和可再现性,程序和机器执行程序的活动不再一一对应,并发程序之间有可能存在相互制约关系。并发程序的独立性、并发性、动态性和相互制约反映了并发程序的本质,而程序的概念已不能反映程序并发执行的实质,因此,人们引入了进程的概念来描述并发程序的执行过程。

进程与程序

进程由程序、数据和PCB 三部分构成。程序是进程的实体。进程与程序的主要区别有:

(1 )进程是程序的一次执行,属于一种动态的概念;而程序是一组有序的指令,是一种静态的概念。但是进程离开了程序也就失去了存在的意义。因此,进程是程序执行的动态过程,而程序是进程运行的静态文本。

(2 )程序可以作为一种软件资料长期保存,而进程是程序的一次执行过程,是暂时的。进程具有生命期,它由创建而产生,由调度而运行,因得不到资源而阻塞,因撤销而死亡。

(3 )一个进程可以执行一个或几个程序;反之,同一个程序也可能由多个进程同时执行。

(4 )进程具有并发性,它能与其他进程并发运行;而一般的程序不具有这种明显的特性。

(5 )在没有线程的情况下,进程是一个独立的运行单位,也是系统进行资源分配和调度的基本单位。因此,进程具有独立性,但并发的进程之间还具有相互制约性。

进程状态

进程在其存在过程中,由于各进程并发执行及相互制约,使得它们的状态不断发生变化。一般来说进程主要有三种基本状态,分别是:就绪状态、运行状态和阻塞状态。

线程(Thread)

从操作系统管理角度看线程是指“进程的一个可调度实体”,是处理机调度的基本单位:从编程逻辑看线程是指“程序内部的一个单一的顺序控制流”。线程是进程的一个组成部分。

进程与线程

所谓线程,从操作系统的管理角度看,就是指“进程的一个可调度实体”,是处理机调度的基本单位;从编程逻辑角度看,线程是指“程序内部的一个单一的顺序控制流”。

线程是进程的一个组成部分,每个进程在创建时通常只有一个线程,由这个线程再创建其他线程。通常一个进程都有若干个线程,至少会有一个线程。

进程和线程是构造操作系统的两个基本元素,两者之间的主要区别是:

(1 )调度方面:线程作为调度分派的基本单位。

(2 )并发性方面:进程之间可以并发执行。

(3 )拥有资源方面:进程是拥有资源的基本单位,线程除少量必不可少的资源外,基本上不拥有资源,但它可以访问其隶属进程的资源。

(4 )系统开销: 进程间切换时要涉及进程环境的切换,开销比较大。而线程间的切换只需保存和设置少量的寄存器内容。因此进程间切换的系统开销远大于线程间切换的系统开销。

地址再定位

所谓地址再定位,就是当一个程序装入到与其地址空间不一致的存储空间而进行的地址变换过程,即将地址空间给出的逻辑地址映射到内存的物理地址。地址重定位有静态重定位和动态重定位两种方式。

作业与进程

作业与进程之间的区别和联系是:

(1 )作业是用户向计算机提交任务的任务实体,而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。

(2 )一个作业可以由多个进程组成,且必须至少由一个进程组成。

(3 )作业的概念主要用在批处理系统中,而进程的概念则用在所有的多道系统中。

作业调度与进程调度

作业调度属于高级调度,而进程调度属于低级调度。

作业调度是根据系统内资源的使用情况,从后备作业队列中选择一道作业进入系统,并创建相应的进程,分配必要的系统资源,使其处于“就绪”状态。

进程调度是根据CPU的使用情况及时地把CPU分配给一个“就绪”的进程,使其从“就绪”状态变为“运行”状态。

周转时间

所谓周转时间,是指作业从进入到处理完成所经历的时间。

临界区

进程中访问临界资源的代码叫做临界区,为保证对临界资源的互斥访问,应保证共享临界资源的各个进程互斥地进入自己的临界区。

临界资源

一次只运行一个进程访问的资源叫做临界资源。

并发与并行

若干个事件在同一时刻发生称为并行;若干个事件在同一时间间隔内发生称为并发。并行是并发的特例,并发是并行的拓展。

死锁

死锁是因竞争资源而引起的一种具有普遍性的现象。在多道程序系统中,由于多个并发进程共享系统的资源,如使用不当有可能造成一种僵局,即系统中两个或多个进程无限期地等待永远不会发生的条件,在无外力的干预下,这些进程都不能向前推进,我们称之为死锁。

产生死锁的必要条件

产生死锁的必要条件是:

(1 )互斥控制。进程对所要求的资源进行排他控制,在一段时间内一个资源仅能被一个进程使用。

(2 )不可剥夺控制。进程所获得的资源在未释放前,不能被其他进程剥夺。即使该进程处于阻塞态,它所占的资源也不能被其他进程使用,只有等待占有该资源的进程释放后才能给别的进程使用。

(3 )请求和保持。为了提高资源利用率,进程在运行过程中可随时提出对各种资源的请求,当进程因请求资源而阻塞时,对已获得的资源保持不放。

(4 )环路等待条件。在发生死锁时,进程的资源状态图必构成环路,即前一进程保存着后一进程所要求的资源。

UNIX操作系统在其管道通信中避免死锁的方法

UNIX操作系统在其管道通信中避免死锁的方法是:当发生读/ 写等待时,在等待前先检查对方是否已关闭。如果发现对方已关闭,则读/ 写进程不必等待而直接返回。另外,进程在关闭管道文件时,也要检查对方是否正在等待。如果发现对方正在等待,则应先唤醒等待进程。

死锁与竞争

死锁是指多个进程因竞争资源而造成的一种僵局,若无外力的作用,这些进程都将永远不能再向前推进。所以,死锁是由于系统中多个进程所共享的资源不足以同时满足需要时,引起对资源的竞争而产生的。但竞争资源不一定都会产生死锁,因为只要进程推进顺序合法,就不会产生死锁。

死锁与“饿死”

死锁不仅在两个进程之间发生,也可能在多个进程之间,甚至在系统全部进程之间发生。当死锁发生时,一定有一个资源被无限期地占用而得不到释放。

“饿死”是指系统中的每个资源占用者都在有限的时间内释放它所占用的资源,但是仍然存在申请者永远得不到资源的现象。因此,在操作系统中,不仅要考虑如何防止“死锁”,还要考虑如何避免“饿死”。

下面我们分填空题、选择题、简答题、判断题和应用题来解析进程与线程部分的考研试题。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站