找回密码
 立即注册

微信扫码登录

使用验证码登录

搜索
查看: 48|回复: 0

06.第06节课第二章进程的描述与控制

[复制链接]

5158

主题

3

回帖

1万

积分

管理员

积分
15578
发表于 2024-4-15 08:30:45 | 显示全部楼层 |阅读模式
好吧,我们来看一下硬件同步机制,虽然可以利用。软件方法来解决朱进成护士进入临界区的问题了,但有一定的难度并存在很大的局限性,那么因而呢,现在已经很很。以及呢,很少采用那么相应的,目前许多计算机呢,已提供了一些特殊的硬件指令,允许对一个字字中的内容呢进行检测和修正,或者说两个字的内容呢?进行交换,那么可以利用这些特殊的指令呢,

来解决临界区问题,实际上呢,在对临界区呢进行管理时,可以将标志呢看成一个锁,那么锁开,进入锁关等待。那么,初始时所说打开的每个要进入临界区的进程呢?必须对相对所进行测试。当所谓开始,那么必须等待实时所被打开,那么另外呢?当锁匙打开的时候呢?就应该把其进行锁上,以防止其他的进程呢?

进入临界区。那么显然呢,为了防止多个进程进行测试,到所打开的情况,测试和关锁必须是连续的,不允许分开进行。好吧,我们看一下有关中断。利用test and set指令进行互斥,以及呢,利用swap进去指令呢,进行互斥,那么这是我们的。硬件同步机制,那么接下来我们看一下信号量机制,

整型信号量最初呢?有敌机,特斯拉呢?把整型信号量呢?定义为一个用于表示资源数目的整型量s。它一般的整形量不同,除了初始化外,只能通过两个标准的原子操作。wait和signal就是我们的wait和思维signal进行访问,那么我们把wait和signal呢称为pv操作。那么,接下来我们看一下完成的这样一个概念。虽然信号量机制呢,是一种比较方便有效的进程同步机制,但每个要访问临界区中的资源的进程呢,

都必须具有同步wait和s作的这样一个部分,这是大量的同步操作呢,分在了各个进程中。这样呢,不仅给系统的管理带来了这样一个带来了比较复杂的操作,还会因为同步操作的使用不当呢,而使制作思索,这样呢,在解决这样一个问题当中产生了一种新的进程,同步工具管成。系统中的各种硬件资源和软件资源呢,都可以用数据结构抽象的描述其资源特性,比如说用少量的对该资源所执行的操作来表示该进程,而忽略它们的内部结构和实践细节。那么。

管程呢,由四部分组成,管程的名称。局部与管层的共享数据的这样一个说明,对该数据结构进行操作,一组过程对局部与管层的数据。共享数据进行初值的这样一个语句。代表共享资源的数据结构呢?以及由该共享数据,数据结构实施操作的一组过程呢?组成资源管理程序呢?共构成了一个操作系统的这样一个资源管理模块,那么我们称之为管程。那么,也就是管城呢?

它就是代表了共享资源的数据结构,以及对该共享数据结构实施操作的一组过程,所组成的资源管理程序呢?共同构成的一个操作系统的资源管理模块,那么称之为管权,管权被请求和释放资源的进程所调用。那么,我们可以这样,我们可以来对莞城做,我们可以呢,那么可以这样的来看一下,看看待莞城的这样一个部分,也就是说。一个管程定义了一个数据结构和能为并发执行所执行的一组操作。这组操作呢?

能同步进程和改变管程中的数据,那么这是管程的这样一个部分。好,我们接下来呢来为大家讲一下几个例题,比如说用pv操作。采用整型信号量用pv操作来进行。我们的。各个进程之间的并发执行。比如说我们看一下这个例题。好吧,我们假设了在。在公共汽车上。售票员和司机的活动呢?那么分别是司机的活动呢?是启动车辆正常行车到站停车。

售票员的活动呢,是关车门。售票开车门。那么,在汽车不停到站停车以及行驶的过程中,司机与售票员之间有什么同步关系呢?那么,售票员关车门后向司机呢发出开车信号?司机接到开车信号后,启动车辆在汽车正常行驶过程中呢,售票员售票到站后呢,司机停车。售票员在车。行后。开门让乘客下车。

那么,我们来看一下。它们之间的同步关系,也就是说我们的同步呢?首先呢是。汽汽车。要要行驶,那么就是汽车了,要公共汽汽车了,要首先要关车门。关了车门之后呢,然后呢?汽车呢,才能够行驶,那么行驶过行驶过程中呢,

不能开车门。只有当汽车停下的时候呢,才能够呢开车门。那么,这是?它的这样一个。同步的这样一个方式。那么我们来。看一下它的这样一个用信号量pv操作时间,它们之间的协调,比如说。我们定义两个信号量。s1。s2。s1呢表示,

是否允许司机启动车门,启动车辆。s2表示,是否允许程序售票员开门,那么最先呢?定义s1=1s,2s一=0s,二=0。好了,我们来看一下这个主,这看一下这样一个有两个有两个。那么我们这里呢?这里呢?有两个进程,一个呢是司机进程,

一个呢是售票员进程。我们看一下司机进程是什么?司机进程是driver,while 1 waits 1。启动车辆正常行车到站停车。售票员呢,是while 1关车门signals 1售票waits 2。开车门上下乘客,我们来看一下。首先呢?这里司机了。他要waits 1呢。就是一个p操作。这里呢,waits 1。

就是将。s1呢?减就是要s1,那么减少一个,那么减少一个,这样一个数量的,这样的部分,那么waits 1呢?就是查看这样一个检验,这样一个信号量,那么检验这个信号量呢?这样一个让这个信号量呢?减减减少一个,那么这样一个部分。然后呢,

启动车辆。到站停车。正常行车到站停车,也就是说s1呢,表示允是否允许司机启动车辆,在他启动车辆之前就要先对这个s1呢进行检验,那么这个waits 1。那么售票员呢?它首先要关车门,关了车门之后呢siglos 1就是它关了车门之后呢?s1呢就sigmas 1就v操作VS 1。然后这个时候呢s1就加一,那么s1呢就增加一,然后呢售票。这里的s sigmas 1之后呢?

s1+1之后那么。这里的waits 1呢,那么就被。使用的这样一个部分,那么我们这里当它关了车门之后呢?那么就释放一就。signal呢s1就是微操作s1呢就加一,这里的s1+1之后呢signals 1呢这里的。就执行这样运用运行这样这这里的waits 1这样一个使用的部分,那么这里的s1呢,那么就加一呢就。就增加了一,那么增加一了之后呢?那么就表示了这里呢是可以。满足这样一个条件的,

这样一个部分,那么就启动车辆。正常行车到站停车,停车之后呢?signals 2那么停车之后呢?s2呢?就加一。那么,售票员这里呢?他要开车门之前呢?就要进行一个waits 2的这样一个检查。那么,最先呢s2呢?它是减一减,减少一,

那么这个时候呢?weights 2。那么这个时候呢?s2呢?s2+1之后呢?waits 2呢?运行这样一个部分,它是满足条件的,那么这个时候开车门,然后上下乘客。那么,这是我们。用信号量s1和s2来和pv操作呢?来实现了它们之间售票员和司机之间的这样一个。协调关系,

协调操作。好吧,我们看一下这个程序,这样一个程序v。call began并发执行driver conductor,那么这里呢?就是司机和售票员呢?并发执行。那我们再来看一下,首先呢,是司机。嗯嗯。首先呢,是司机这里呢,要启动车辆之前就进行s1的检查,

那么s1-1那么就在这里了,那么就阻塞了这个部分,那么就停止了。那么conductor。售票员在关了车门之后呢s1呢就加1v操作s1+1+1,之后呢就运行这样一个s1,那么它满足条件。那么就启动车辆正常行车到站停车,那么售票员呢?在开车门之前呢?要进行waits 2的这样一个操作,那么s2呢?就减一那么看这样呢?就停在这个。停止这样一个误操作,

那么司机呢?请到站停车之后呢?sigmas 2这个时候呢?就s2呢,就加一那么这个时候呢?s2 sigmas 2这个操作那么就执行waits 2它是满足条件的,那么就开车门上下乘客,那么这就是我们用信号量s1s2和pv操作的实验司机和主表演之间的这样一个协调的这样一个操作的这样一个部分。那么,这是我们的并发执行的这样一个pv操作的这样一个协调部分。那么我们再看一下。这样一个这样一个题,桌子上呢,有一个盘子允许了放一只水果,那么爸爸呢?

可以向盘子中放苹果,妈妈呢?可以向盘子中放橘子。那么女儿专吃。盘子中的苹果儿子专吃盘子中的橘子。当盘子为空时,一次只能放一只水果,请用信号量实现它们的同步与互斥。那么这个时候呢,我们分析一下这个问题,这里的关系呢,要稍微复杂一些,由于每次呢,只能由。只能向其中放入一只水果,

可以知道那么爸爸和妈妈呢是互斥关系,爸爸和女儿,妈妈和女儿之间是同步关系。而这两对进程呢,必须连起来,而儿子和女儿之间呢,没有处置和同步的关系,因为他们是选择条件执行,那么。那么不可能并发。那么,我们进行设信号量设置,设置四个信号量mmt apple orange。mutex呢表示,爸爸妈妈,

儿子和女儿对盘子的互斥诶诶。6 mmt呢表示,盘子是否为空?apple表示,是否可以取苹果orange呢?表示,是否可以取橘子,那么最开始的时候MT=1 mtx=1 apple=0 orange=0,那么我们看一下这个程序,这个部分。那么,父亲的进程呢?是wait father do wait MT就是看盘子是否为空?那么v but EX那么看这样一个盘子呢?是否呢?

能被使能是否被占用被使用被占用,那么接下来呢,往盘子中放一个苹果,然后接下来呢,释放掉盘子的使用权,那么盘子的使用权呢,那么释放掉盘子的使用权mo TeX+1。接下来呢,sigma apple盘apple的数量加一。那个那个接下来的那个那个路虎七的进程呢,都wait MT看盘子是否为空?然后呢?wait MT看盘子是否被占用,接下来呢?向盘子中放一个橘子,

释放掉盘子的使用权,然后盘子呢?当中的这样一个orange的这样一个橘子呢,那么数加一那么我们看上进层do weight orange那么看这样一个orange呢是?是否是是否有是否有orange?如果有的话呢?那么weight muti x那么看排除了是否被占用?那么,取出盘子中的棋子释放在盘子的使用权加一,然后呢,那个MT那么盘子释放为空,那么这个时候呢?把盘子呢那么释放为空MT+1,让盘子呢为空的这样一个部分,那么女儿进程呢就是do white。

apple看是否有苹果那么那么看我们的盘子是否被使用,接下来取出盘子中的苹苹果,然后呢?是放到盘子的使用权,那么盘子为空了,那么让它盘子为空了m+1这样一个部分,那么就是这样一个。实现了这样一个实行部分,那么这就是这样一个运行的,这样一个实现的,这样一个运用方式,那么这就是这样一个实验的,这样一个运用的。实行。实例的这样一个应用的实现进行方式。

那么,实现的应用方式,那么就是实现的执行方式。那么,这是我们的运程序运行的这样一个类型,那么也就是我们运行的这样一个。机器的信息方信息的方式。那么,运行这样一个部分,那么大家看一下这个运行这样一个应用部分。那父亲父亲进城了,那我们首先呢,都要看父亲呢,首先看盘子为空是否为空呢,为空的话呢?

就再看盘值是否被占用了。然后呢,放了苹果之后呢,释放了盘子的使用权,那么apple的数量加一。那么,母亲进城呢?是首先看盘子是否被占,是否为空,然后看盘子是否被占用了。那么,放了橘子之后呢?释放掉盘子的使用权,那么橘子的数加一。那么,

海尔的进程呢?首先看是否有橘子,然后呢?看盘子是否会占用,然后呢?取出橘子释放掉盘子的使用权,那么m题呢?让盘子为空。好吧,女儿进城了,看是否有苹果,然后呢,占对看盘子是否被占用,然后取出盘子中的苹果。然后呢,

释放了盘子的使用权,让盘子为空MT+1,那么复兴进程呢?这里呢,如果有其他人占用盘子,那么wait MT呢,就要进行等待,直到了其他的这样一个进程呢,释放掉。我们的mutex。释放在我们的mutex。那么,其他进程呢?其他的进程这样一个seg l的操作呢?让mutex的加一释放了盘子,

释放了盘子的使用权,让mutex呢?加一的这样一个加一,那么接下来放了苹果之后呢?ce GL的mutex那么释放了盘子的使用权?然后呢,再释放掉apple,那么这个时候呢?女儿进城,女儿进城了,如果wait up了,如果看是否有苹果,那么这里的是放还苹果树加一了,那么就运行这里的,我们这里的wait up了,

可以买可以运行这样一个部分。那么鱼儿呢?再看盘子呢?是否被使用?那么如果没有被使用了,那么取出盘子中的苹果,那么取出盘子中的苹果?然后呢?许多盘子中的苹果,然后呢,释放掉盘子的使用权,然后呢,让盘子为空,那么让盘子为空之后呢,那么再cmt,

让cmt MT的加一。那么,母亲进城呢?这里首先看盘子是否为空,如果为空了,那么看盘子是否被占用,然后呢?放一个橘子,那么释放掉盘子的使用权,那么。啊,桔子树加一那么儿子这里呢?那么weight signal这is weight orange那么signal orange了那么坛子桔子树加一了那么weight orange了,这里可以运行这样一个部分。然后串盘的时候被占用,

然后取出橘子。那么,让我们的释放掉我们的使用权,最后呢,这个了MT让盘值为空,那么MT+1那么继续了。那么,让其他进行了进行运行的这样一个部分,那么这是四个并发执进程的同步执行的这样一个部分。那么接下来呢?我们再看一下进程通信。进程通信呢,是指在进程之间交换信息,那么由于进程的互斥与同步呢,需要在进程间交换一定的信息,

那么所以呢,把它归结为进程通信,那么。但是呢,把它们归结为地,积极进行通信。那么,这是我们的进程,通信的这样一个部分,那么进程,通信的类型呢?有共享存储器类系统,在共享存储器系统中。相互通信的某些进程呢?某些进程呢?

共享某些数据结构共性构成共享存储区进程之间能够通过这些空间进行通信,因此呢,又把它们分成。基于共享数据结构的通讯方式,以及呢,基于共享存储器的通讯方式,那么接下来我们再看一个管道。管道通信系统是什么呢?管道是指用于连接一个读进程,一个写进程,以实现它们之间通信的一个共享文件,又称为tab文件。向管道提供输入的发送进程。以字符流形式呢,将大量的输入送去管道,

而接收管道输出的接收进程呢,则从管道中接收读取数据,由于发送和接收进程呢,是利用管道进行通信的,共称为管道通信。这种方式呢?那么是unix使用的,那么它能有效的。那么,首先是unix使用的,它们有效的传递大量数据,因此呢,被引入到其中的操作系统中。比如说我们的管道呢,是一个用于连接一个读进程和一个写进程。

以实现它们之间通信的一个共享文件,那么成本派普文件,那么我们再看一下消息传递系统,那么在这样一个技术中呢?进程呢,不必借助任何共享存储区或者数据结构,而是以格式化的消息为单位将通讯的数据呢封装在消息中,并利用操作系统呢,提供一组通信命令。在进程之间呢,提供消息传递并完成信息间的数据交换,那么基于向消息系统传递的方式呢?通讯方式属于高级通讯方式,因为其实现的方式不同呢,可以分为直接通讯方式和间接通讯方式。

那么,我们还有客户机,服务器系统,那么我们的套接字和远程调用过程和远程调用方法,那么接下来我们看一下线程。线程是什么呢?线如果说在操作系统中引入进程的目的呢?是为多个进程序呢?能够并发执行以提高资源利用率和系统分组量,那么在操作系统中呢?再引入线程就是为了减少程序的。并发时呢,所付出的时空开销使操作系统呢,具有更好的并发性。那么进程呢?

它有两个基本属性啊,一个是它一个呢,它可以呢,作为资源的。进程呢,可以呢,作为资源。的拥有单位。那么进程呢?可以作为拥有资源的基本单位,那么进程呢?它的两个主要属基本属性呢?是第一个呢?进程是一个可拥有资源的独立单位。那么一个进程要能独立运行,

它必须拥有一定的资源,第二个呢?进程同时又是一个可独立调度和分配的基本单位。那么一个进程要能独立运行,它是一个必须可调度和分配的基本单位。那么。引入了。引入了线程之后呢,在传统的操作系统中,进程是作为独立调度和分派的基本单位,因此呢,进程是能够独立运行的基本单位。而在引入线程的操作系统中,就把线程呢作为调度和分配的基本单位,那么也就是说。

在我们引入了线程的这样一个操作系统中,进程呢,是拥有资源的基本单位,而线程呢,是作为调度和分配的基本单位。因为线程是能独立运行的,基本单位当线程切换时,仅需保存和设置少量寄存器内存,那么切换代价呢?低于进程。在同一进程中,线程的切换不会引起进程的切换,而从一个进程的进线程呢,切换到另一个进程的线程,那么就会引起线进程的这样一个切换。

那么说什么呢?在同一进程中,线程的切换不会引起进程的切换,但从一个进程的线程切换到另一个进程的线程中,就会引起进程的切换。那么,线程的状态呢?和线程控制块,线程运行的基本三个状态呢?有执行态表示,线程呢?已获得了处理机,而正在运行就是状态呢?是指线程已具备了某种执行条件。只需再获得CPU呢,

便巨额巨巨额执行阻塞状态呢,是指线程在执行中因某事件受阻而处于暂停状态,那么这是我们的阻塞状态。线程控制块呢,如同每个进程,有一个进程控制块一样,系统呢,也为每个线程配置了一个线程控制块tcb,用于控制和管理。线程的信息记录在线程控制块当中。好同学们,今天呢,我们为大家介绍了进程的调度与管理,那么这一方面的内容。那么,

包括了我们进程的这样一个特点进程呢?它的含义以及呢?我们进程的同步。以及呢,我们的pv操作和整形信号量的这样一个信号量机制的这样一个pv操作,以及呢,我们现成的这样一个内容。那么大家下来的时候呢,那么再看一下这些部分进行一个了解和熟悉好,我们今天的课呢,就讲到这里好,谢谢大家。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5432考试网 ( 蜀ICP备2022024372号|川公网安备51152402000101号 )|网站地图

GMT+8, 2024-5-3 10:18 , Processed in 0.075347 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表