2010软件水平考试软件设计师重点难点辅导(6)
一、进程相关的概念:
进程、线程和管程
这是三个看起来似乎比较容易混淆的概念,所以在复习的时候一定要牢记其定义和相互之间的区别。
*进程
进程是一个可并发执行的程序在一个数据集合上的运行过程。也就是说,它是运行中的程序,是程序的一次运行活动。在操作系统中,进程是进行系统资源分配、调度和管理的最小单位。
*线程
对于一些多线程程序来讲,其包含两条或两条以上并发运行的部分,每个部分就称作一个线程,每个线程都有独立的执行路径。线程是处理器分配资源的最小单位。
*管程
管程是一种并发性的构造,它包括用于分配一个共享资源或一组共享资源的数据和过程。为了完成分配资源的功能,进程必须调用特定的管程入口。
操作系统中,多任务处理一般有两种方式:基于进程和基于线程。基于进程的多任务处理的特点是允许计算机同时运行两个或更多的程序。而基于线程的多任务处理是指一个程序可以同时执行两个或者多个任务的功能。
多线程程序比多进程程序需要更少的管理费用。进程是重量级的任务,需要分配它们自己独立的地址空间。进程间的通信和相互转换需要很多的开销。而线程是轻量级的任务,它们共享相同的地址空间并且分享同一个进程。线程间的通信和转换开销要小很多。
二、信号量处理:
信号量和P-V操作
为了解决进程同步的问题,提出了信号量机制。这一机制取得了很大的发展,从整型信号量到记录型信号量,再进而发展为"信号量集"机制。不过,在原理上和考试中,一般我们都只涉及整型信号量机制。
对于互斥临界区的管理要求:
n 有空则进
n 无空等待
n 两者择一
n 有先等待
在整型信号量机制中,信号量被定义为一个整型变量,除初始化外,仅能通过两个标准的原子操作wait(s)和signal(s)来访问。其通常被分别称作P、V操作。描述如下:
P操作
I. S-1→S
II. 如果S< 0,则该进程进入等待状态;否则继续进行
V操作
I. S+1→S
II. 如果S≥0,则唤醒队列中的一个等待进程
进程互斥的情况初值是1,而同步的初值是0
进程同步的问题相对来说是比较复杂的,这其中一些比较经典的进程同步问题,如:
*生产者-消费者问题
*读者-写者问题
*哲学家进餐问题
三、各种调度算法:
操作系统中,涉及到的调度比较多,如进程调度、作业调度、磁盘调度等。但是其调度算法的原理都大致相同。进程调度是比较典型的一类调度,其调度算法较多。包括:
*先来先服务
*优先数调度
*轮转法
*短作业优先
通过对这些调度算法的复习,对我们掌握其他种类调度的调度算法也会很有帮助。
例题: 一台 PC 计算机系统启动时,首先执行的是__(42)__,然后加载__(43)__。在设备管理中,虚拟设备的引入和实现是为了充分利用设备,提高系统效率,采用__(44)__来模拟低速设备(输入机或打印机)的工作。
例题:设有 7 项任务,分别标记为 a、b、c、d、c、f 和 g,需要若干台机器以并行工作方式来完成,它们执行的开始时间和完成时间如下表所示:
信号量例题:
在某超市里有一个收银员,且同时最多允许有n个顾客购物,我们可以将顾客和收银员看成是两类不同的进程,且工作流程如下图所示。为了利用PV操作正确地协调这两类进程之间的工作,设置了三个信号量S1、S2和Sn,且初值分别为0、0和n。这样图中的a应填写__C__,图中的b1、b2应分别填写__D_,图中的c1、c2应分别填写__A。 (操作系统)?
编辑推荐:
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>