正在加载图片...
计算其用户优先数(优先数越大,优先级越低:优先数越小,优先级越高)。 decay( CPU)=CPU/2 优先数=最近使用CP的时间/2+基本用户优先数 核心首先从处于内存就绪"或"被剥夺”状态的进程中选择一个优先级最高的进程。若系 统中同时有多个进程都具有最高优先级,则核心将选择其中处于就绪状态最久的进程,将它从 所在队列中移出,恢复其上下文,使之执行。 (3)进程切换 在操作系统中,凡是要进行中断处理和系统调用时,都将涉及到进程上下文的保存和恢复 此时系统所保存和恢复的是同属于一个进程的上下文。而在进程调度之后实现进程则是另 个进程的上下文,这一进程取决于调度程序所选中的是哪一个进程。 ①进程上下文的保存与恢复 不论发生了哪种中断(如I/0设备中断、程序中断〉,如果处理机运行级低于该中断的级别 则处理机将响应该中断,并提高处理机的运行级,以屏蔽其他中断。 ②进程上下文的切换 总的说来,引起进程上下文切换的原因,都是由于核心进行了进程调度而选中了一个新的 进程运行。在NIX系统中,由于采用了可剥夺的调度方式,因而引起进程调度的原因有时间片 完、当前进程执行了 sleep例程、进程执行完等,它们都会导致进程上下文的切换。 6.进程的同步与通信 在 UNIX SyStem V中,进程的同步与通信提供了软中断信号和管道机制以及新的进程通 信机构,简称IPC( Interprocess Comnmication)。它由三部分组成:消息机制、共享存储器机 制和信号量机制 (1)软中断信号:软中断信号(简称信号)是一种实现进程间简单通信的设施,用于通知 对方发生了异常事件。UNIX系统V中,共有19个软中断信号。软中断是对硬件中断的一种模 拟,发送软中断就是向接收进程的进程表项结构中的相应项发送一个软中断信号。如果用户进 程发送的软中断信号大于19,则接收进程不予理睬,从而发送无效。接收进程在收到软中断信 号后,将按照事先的规定去执行一个软中断处理程序。但是软中断处理程序不像硬件中断处理 程序那样,收到中断信号后立即被启动,它必须等到接收进程执行时才能生效。另外,一个进程 自己也可以向自己发送软中断信号,以便在某些意外的情况下,进程能转入规定好的处理程 序 (2)管道:用信号来处理异常事件或错误是非常合适的,但用它来处理进程之间的大量信 息传送就显得非常不适宜。为此,UNIX又提供了一种称作管道的机构。所谓管道是指能连接 某些读进程和写进程的、专门用于进程通信的共享文件(又称pipe文件)。它允许读/写进程 按先进先出的方式传送数据,即写进程从管道的一端向管道写入数据流,读进程从管道的另 端读出数据流。管道的类型有无名管道和有名管道,进程可利用pipe系统调用来建立一个无 名管道:对无名管道的读写涉及到对pipe文件大小的限制:进程互斥;进程写管道和进程读 管道 3)消息:消息是一个格式化的可变长的信息单元。消息机制允许由一个进程给其他任 何进程发送一个消息。当一个进程收到多个消息时,可将它们排成一个消息队列。在UNIX中 消息机制向用户提供了四个系统调用,分别用于建立、发送和接收消息等。 消息有消息首部和消息队列头标,在UNIX系统中,每一个消息队列都有一个称为关键字 ey)的名字,关键字是由用户指定的。此外,消息队列还有一消息队列描述符,其作用与用户 文件描述符一样,也是为了方便用户和系统对消息队列的访问。进程可利用系统调用 meget 来建立一消息队列,或者获取一消息队列的描述符:用 msgsnd()系统调用向指定的消息队列 发送一个消息,并将发送消息链接到该消息队列的尾部;用 msgrcv(系统调用从指定的消息计算其用户优先数(优先数越大,优先级越低:优先数越小,优先级越高)。 decay(CPU)=CPU/2 优先数=最近使用 CPU 的时间/2+基本用户优先数 核心首先从处于"内存就绪"或"被剥夺"状态的进程中选择一个优先级最高的进程。若系 统中同时有多个进程都具有最高优先级,则核心将选择其中处于就绪状态最久的进程,将它从 所在队列中移出,恢复其上下文,使之执行。 (3)进程切换 在操作系统中,凡是要进行中断处理和系统调用时,都将涉及到进程上下文的保存和恢复, 此时系统所保存和恢复的是同属于一个进程的上下文。而在进程调度之后实现进程则是另一 个进程的上下文,这一进程取决于调度程序所选中的是哪一个进程。 ①进程上下文的保存与恢复 不论发生了哪种中断(如 I/0 设备中断、程序中断〉,如果处理机运行级低于该中断的级别, 则处理机将响应该中断,并提高处理机的运行级,以屏蔽其他中断。 ②进程上下文的切换 总的说来,引起进程上下文切换的原因,都是由于核心进行了进程调度而选中了一个新的 进程运行。在 UNIX 系统中,由于采用了可剥夺的调度方式,因而引起进程调度的原因有时间片 完、当前进程执行了 sleep 例程、进程执行完等,它们都会导致进程上下文的切换。 6.进程的同步与通信 在 UNIX System V 中, 进程的同步与通信提供了软中断信号和管道机制以及新的进程通 信机构,简称 IPC(Interprocess Comnmication)。它由三部分组成:消息机制、共享存储器机 制和信号量机制。 (1)软中断信号:软中断信号(简称信号)是一种实现进程间简单通信的设施,用于通知 对方发生了异常事件。UNIX 系统 V 中,共有 19 个软中断信号。软中断是对硬件中断的一种模 拟,发送软中断就是向接收进程的进程表项结构中的相应项发送一个软中断信号。如果用户进 程发送的软中断信号大于 19,则接收进程不予理睬,从而发送无效。接收进程在收到软中断信 号后,将按照事先的规定去执行一个软中断处理程序。但是软中断处理程序不像硬件中断处理 程序那样,收到中断信号后立即被启动,它必须等到接收进程执行时才能生效。另外,一个进程 自己也可以向自己发送软中断信号,以便在某些意外的情况下,进程能转入规定好的处理程 序。 (2)管道:用信号来处理异常事件或错误是非常合适的,但用它来处理进程之间的大量信 息传送就显得非常不适宜。为此,UNIX 又提供了一种称作管道的机构。所谓管道是指能连接 某些读进程和写进程的、专门用于进程通信的共享文件(又称 pipe 文件〉。它允许读/写进程 按先进先出的方式传送数据,即写进程从管道的一端向管道写入数据流,读进程从管道的另一 端读出数据流。管道的类型有无名管道和有名管道,进程可利用 pipe 系统调用来建立一个无 名管道;对无名管道的读写涉及到对 pipe 文件大小的限制;进程互斥;进程写管道和进程读 管道。 (3)消息:消息是一个格式化的可变长的信息单元。消息机制允许由一个进程给其他任 何进程发送一个消息。当一个进程收到多个消息时,可将它们排成一个消息队列。在 UNIX 中, 消息机制向用户提供了四个系统调用,分别用于建立、发送和接收消息等。 消息有消息首部和消息队列头标,在 UNIX 系统中,每一个消息队列都有一个称为关键字 (key)的名字,关键字是由用户指定的。此外,消息队列还有一消息队列描述符,其作用与用户 文件描述符一样,也是为了方便用户和系统对消息队列的访问。进程可利用系统调用 msgget 来建立一消息队列,或者获取一消息队列的描述符;用 msgsnd( )系统调用向指定的消息队列 发送一个消息,并将发送消息链接到该消息队列的尾部;用 msgrcv()系统调用从指定的消息
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有