资源描述
Click to edit Master title style,Silberschatz,Galvin and Gagne,2002,2.,*,Operating System Concepts,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,例1.试比较进程和程序的异同,(1),每个进程实体中包含了程序段、数据段这两个部分,因此说进程和程序是紧密相关的。但从结构上看,进程实体中除了程序段和数据段外,还必须包含一个数据结构,即进程控制块,PCB,。,(2),进程是程序的一次执行过程,因此是动态的;动态性还表现在进程由创建产生、由调度而执行、由撤销而消亡,即它具有一定的生命周期。而程序则只是一组指令的有序集合,并可永久地存放在某种介质上,其本身不具有动态的含义,因此是静态的。,(3),多个进程实体可同时存放在内存中并发执行,其实这正是引入进程的目的。而程序的并发执行具有不可再现性,因此程序不能正确地并发执行。,Operating System Concepts,(4),进程是一个能够独立运行、独立分配资源和独立接受调度的基本单位。而因程序不具有,PCB,,,所以它是不可能在多道程序环境下独立运行的。,(5),进程和程序不一一对应。同一个程序的多次运行,将形成多个不同的进程;同一个程序的一次执行也可以产生多个进程;而一个进程也可以执行多个程序。,Operating System Concepts,例2.试比较进程和线程的异同,(1),线程是进程的一个组成部分,。,一个进程可以有多个线程,而且至少有一个可执行线程。,(2),进程是资源分配的基本单位,它拥有自己的地址空间和各种资源。线程是处理机调度的基本单位,它只能和其他线程共享进程的资源,而本身并不具有任何资源。,(3),进程的多个线程都在进程的地址空间内活动。这样,在以线程为单位进行处理机调用和切换时,由于不发生资源变化特别是地址空间的变化,因此切换时间较短。而以进程为单位进行处理机调用和切换时,由于涉及到资源转移及现场保护等问题,将导致切换时间变长和资源利用率降低。,Operating System Concepts,(4),线程和进程一样,都有自己的状态和相应的同步机制。但是,由于线程没有自己单独的程序和数据空间,因而不能像进程的程序和数据那样交换到外存去。,(5),进程的调度和控制大多由操作系统的内核完成,而线程的控制即可以由操作系统的内核完成,也可以由用户控制完成。,Operating System Concepts,例3:,a,b,两点之间是一段东西向的单行车道,现要设计一个自动管理系统,管理规则如下:当,ab,之间有车辆在行驶时同方向的车可以同时驶入,ab,段,但另一方向的车必须在,ab,段外等待;当,ab,之间无车辆在行驶时,到达,a,点(或,b,点)的车辆可以进入,ab,段,但不能从,a,点和,b,点同时驶入,当某方向在,ab,段行驶的车辆驶出了,ab,段且暂无车辆进入,ab,段时,应让另一方向等待的车辆进入,ab,段行驶。请用信号量为工具,对,ab,段实现正确管理以保证行驶安全。,Operating System Concepts,解析:,读者写着问题的变形。我们设置,3,个信号量,S1,、,S2,和,Sab,,,分别用于从,a,点进入的车互斥访问共享变量,ab,(,用于记录当前,ab,段上由,a,点进入的车辆的数量),从,b,点进入的车互斥访问共享变量,ba,(,用于记录当前,ab,段上由,b,点进入的车辆的数量)和,a,、,b,点的车辆互斥进入,ab,段。,3,个信号量的初值分别为,1,、,1,和,1,,两个共享变量,ab,和,ba,的初值分别为,0,、,0,。,Operating System Concepts,Semaphore S1=1,S2=1,Sab=1;,int ab=ba=0;,void Pab(),while(1),wait(S1);,if(ab=0)wait(Sab);,ab=ab+1;,signal(S1);,车辆从,a,点驶向,b,点;,wait(S1);,ab=ab-1;,if(ab=0)signal(Sab);,signal(S1);,Operating System Concepts,void Pba(),while(1),wait(S2);,if(ba=0)wait(Sab);,ba=ba+1;,signal(S2);,车辆从,b,点驶向,a,点;,wait(S2);,ba=ba-1;,if(ba=0)signal(Sab);,signal(S2);,main(),cobegin Pab();Pba();,Operating System Concepts,例4:,桌子上有一只盘子,每次只能放一只水果。爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,一个儿子专等吃盘子中的橘子,一个女儿专等吃盘子中的苹果。用,PV,操作实现他们之间的同步机制。,Operating System Concepts,Semaphore S=1,S1=S2=0;,void father(),while(1),准备苹果;,wait(S);,将苹果放在盘子内;,signal(S1);,Operating System Concepts,void mother(),while(1),准备橘子;,wait(S);,将橘子放在盘子内;,signal(S2);,Operating System Concepts,void daughter(),while(1),wait(Sl);,从盘子里拿走苹果;,signal(S);,吃苹果;,Operating System Concepts,void son(),while(1),wait(S2);,从盘子里拿走橘子;,signal(S);,吃橘子;,Operating System Concepts,main(),cobegin,father();,mother();,daughter();,son();,Operating System Concepts,
展开阅读全文