进程与存储管理示例课件.ppt

上传人(卖家):晟晟文业 文档编号:4533870 上传时间:2022-12-17 格式:PPT 页数:54 大小:920.50KB
下载 相关 举报
进程与存储管理示例课件.ppt_第1页
第1页 / 共54页
进程与存储管理示例课件.ppt_第2页
第2页 / 共54页
进程与存储管理示例课件.ppt_第3页
第3页 / 共54页
进程与存储管理示例课件.ppt_第4页
第4页 / 共54页
进程与存储管理示例课件.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

1、进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与

2、存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例v6.3.1 Linux6.3.1 Linux启动及进程树的形成启动及进程树的形成vLINUXLINUX系统的自举过程是读一个磁盘的引导块系统的自举过程是读一个磁盘的引导块(文件系统的第(文件系统的第0 0 块),并将其装入内存,在块),并将其装入内存,在核心装入内存后,系统开始执行启动过程核心装入内存后,系统开始执行启动过程start_kernel()start_kernel()。启动过程。启动过程start_kernel()start_kernel()首先初始化系统内部数

3、据结构。例如,构造空首先初始化系统内部数据结构。例如,构造空闲缓冲区、初始化区结构、页表项等。随后,闲缓冲区、初始化区结构、页表项等。随后,进程进程0 0的作用就转变为的作用就转变为idleidle进程,只有在系统进程,只有在系统中没有任何进程可以被执行的时候才会得到调中没有任何进程可以被执行的时候才会得到调度。度。进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例v 用用C C语言实现的程序例

4、如下。语言实现的程序例如下。v#include#include stdiostdio.h.hv main()main()v vchar commandchar command3232 ;vchar char *prompt=“$”;prompt=“$”;vwhile(printfwhile(printf(“%s”(“%s”,prompt),gets prompt),gets(command)!=NULL)(command)!=NULL)v vif(fork()=0)if(fork()=0)vexeclpexeclp(command (command,command command,(char(

5、char*)0);)0);velseelsevwait(0);wait(0);v v 进程与存储管理示例进程与存储管理示例。进程与存储管理示例进程与存储管理示例vLINUXLINUX系统的调度与交换都是进程系统的调度与交换都是进程0 0 的两的两个部分。它们由个部分。它们由 schedule()schedule()过程实现。过程实现。事实上,因此,有时也把进程事实上,因此,有时也把进程0 0 称为调称为调度进程。度进程。进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例v2.2.调度的时机调度的时机v第一种情况:处理机在执行完核心程序之后向用户第一种情况:处理机在执行完核

6、心程序之后向用户态转换之前的瞬间态转换之前的瞬间,检查各就绪进程的优先级进行检查各就绪进程的优先级进行调度的方法。调度的方法。Need_reschedNeed_resched=1=1则执行调度。则执行调度。v第二种情况:当进程状态发生变化时,直接调用调第二种情况:当进程状态发生变化时,直接调用调度进程进行调度。度进程进行调度。进程与存储管理示例进程与存储管理示例v 3.3.调度标识的设置调度标识的设置v UNIXUNIX中有三个关于调度和交换用的调度标识。它们是中有三个关于调度和交换用的调度标识。它们是runrunrunrun、runinrunin和和runoutrunout。v runrun

7、runrun标识是要求处理机调度程序进行调度的标识,由唤醒标识是要求处理机调度程序进行调度的标识,由唤醒原语原语wakeupwakeup、setrunsetrun及优先级设置过程及优先级设置过程setprisetpri在发现某进程在发现某进程的优先级高于当前进程的优先级时,设置的优先级高于当前进程的优先级时,设置runrunrunrun标识。另外,标识。另外,每隔一秒一次的时钟中断处理中也将检查各就绪态进程的优每隔一秒一次的时钟中断处理中也将检查各就绪态进程的优先级而设置先级而设置runrunrunrun标识。只要设置了该标识,在中断陷阱程标识。只要设置了该标识,在中断陷阱程序结束之前,系统就

8、会调用序结束之前,系统就会调用swtchswtch 过程调度具有最高优先级过程调度具有最高优先级的进程执行。的进程执行。v runin runin 和和runoutrunout标识是用于就绪进程换入换出内存的。标识是用于就绪进程换入换出内存的。runinrunin 表示内存无足够空间换入一个外存就绪态进程,设置表示内存无足够空间换入一个外存就绪态进程,设置runinrunin 标识也意味着内存中无适当的进程可以换出。标识也意味着内存中无适当的进程可以换出。runoutrunout标识与标识与runinrunin 相反,它表示外存交换区中无适当的进程可以相反,它表示外存交换区中无适当的进程可以调

9、入内存。调入内存。进程与存储管理示例进程与存储管理示例vLinuxLinux只使用一个调度标志只使用一个调度标志need_reschedneed_resched,该标志,该标志保存在进程的进程描述符中。下面两种情况置保存在进程的进程描述符中。下面两种情况置1 1。当处于运行态的进程的时间片耗尽时当处于运行态的进程的时间片耗尽时 当进程被唤醒,而它的优先级别比正在运行的当当进程被唤醒,而它的优先级别比正在运行的当前进程的优先级高前进程的优先级高进程与存储管理示例进程与存储管理示例v4.4.调度策略与优先数的计算调度策略与优先数的计算v动态优先数调度策略,适用动态优先数调度策略,适用普通进程普通进

10、程。在在LINUXLINUX系统中,优先数越大优先级越低。系统中,优先数越大优先级越低。调度策略从内存就绪队列中选取优先数最大的进调度策略从内存就绪队列中选取优先数最大的进程投入执行。程投入执行。采用下式计算各进程的优先数:采用下式计算各进程的优先数:weightweight counter counter priority-nicepriority-nicev先来先服务调度策略和轮转法调度策略适用于先来先服务调度策略和轮转法调度策略适用于实时实时进程进程。进程与存储管理示例进程与存储管理示例v5.5.调度的实现调度的实现v进程调度是由进程调度是由schedule()schedule()过程实

11、现的。这里主要过程实现的。这里主要讲述讲述schedule()schedule()的执行过程。的执行过程。vschedule()schedule()过程实质上是完成一个进程之间的上过程实质上是完成一个进程之间的上下文切换过程。它的执行分为两个阶段。下文切换过程。它的执行分为两个阶段。v第一阶段进程选择。第一阶段进程选择。v第二阶段进程切换。第二阶段进程切换。进程与存储管理示例进程与存储管理示例vLinux Linux 中的进程通信分为三个部分:中的进程通信分为三个部分:低级通信低级通信、管管道通信道通信和和进程间通信进程间通信IPCIPC(interprocessinterprocess co

12、mmunicationcommunication)。近年来,)。近年来,Linux Linux 的改进版中又的改进版中又加入了计算机间通信(网络通信)用的加入了计算机间通信(网络通信)用的TCPTCPIP IP 协协议并提供了相应的系统调用接口。议并提供了相应的系统调用接口。进程与存储管理示例进程与存储管理示例vLINUXLINUX的低级通信主要用来传递进程间的控制信号。的低级通信主要用来传递进程间的控制信号。实现传递控制信号的方法有两种。实现传递控制信号的方法有两种。v一种是利用文件锁。一种是利用文件锁。v另一种是利用软中断信号实现同一用户的诸进程之另一种是利用软中断信号实现同一用户的诸进程

13、之间的通信。目的是通知对方发生了异步事件。间的通信。目的是通知对方发生了异步事件。Linux Linux 中有中有3030个软中断信号和个软中断信号和3131个实时软中断信号个实时软中断信号32-6332-63,软中断信号作用见图,软中断信号作用见图6.106.10。进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例vIPC IPC 是是Linux Linux 的一个核心程序包,它负责完成的一个核心程序包,它负责完成System System 进程之间的大量数据传送工作。在进程之间的大量数据传送工作。在IPC IPC 包被开发出来之前,通信只能利用包被开发出来之前,通信只

14、能利用pipepipe来传递大量来传递大量数据。而数据。而pipepipe只有调用只有调用pipepipe的进程的子孙后代才能的进程的子孙后代才能使用它进行通信的缺点。虽然有名管道能使非同族使用它进行通信的缺点。虽然有名管道能使非同族进程之间相互通信,但它们不能复用一个有名管道进程之间相互通信,但它们不能复用一个有名管道以便为多对通信进程提供私用通道。也就是说,有以便为多对通信进程提供私用通道。也就是说,有名管道不能识别其通信伙伴,也不能有选择地接收名管道不能识别其通信伙伴,也不能有选择地接收信息。信息。IPCIPC核心程序包解决了这些弱点。核心程序包解决了这些弱点。进程与存储管理示例进程与存

15、储管理示例vUNIX IPC UNIX IPC 软件包分三个组成部分:软件包分三个组成部分:v(1)(1)消息(消息(messagemessage)用于进程之间传递分类的格)用于进程之间传递分类的格式化数据。式化数据。v(2)(2)共享存储器(共享存储器(shared memoryshared memory)方式可使得不)方式可使得不同进程通过共享彼此的虚拟空间而达到互相对共享同进程通过共享彼此的虚拟空间而达到互相对共享区操作和数据通信的目的。区操作和数据通信的目的。v(3)(3)信号量(信号量(semaphoresemaphore)机制用于通信进程之间)机制用于通信进程之间往前推进时的同步控

16、制。信号量总是和共享存储器往前推进时的同步控制。信号量总是和共享存储器方式一起使用。方式一起使用。进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例v6.6 LINUX6.6 LINUX存储管理存储管理v存储管理极大地影响进程调度和控制,因为调度程存储管理极大地影响进程调度和控制,因为调度程序不调度一个只有序不调度一个只有task_structtask_str

17、uct结构在内存的进程结构在内存的进程执行。执行。LINUXLINUX系统必须解决为进程分配内存空间、系统必须解决为进程分配内存空间、进行内存扩充、以及完成由虚存到物理存储器的地进行内存扩充、以及完成由虚存到物理存储器的地址变换,和内存信息保护与共享等问题。址变换,和内存信息保护与共享等问题。vLinux Linux 采用采用请求调页请求调页策略进行存储器管理。策略进行存储器管理。进程与存储管理示例进程与存储管理示例v6.6.16.6.1虚存空间和管理虚存空间和管理v本节以本节以80 x8680 x86为例,说明为例,说明LinuxLinux的地址空间划分和存的地址空间划分和存储管理的基本思想。储管理的基本思想。进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例进程与存储管理示例 LinuxLinux的内存淘汰策略:的内存淘汰策略:LRULRU算法算法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(进程与存储管理示例课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|