操作系统原理与实例分析.ppt
《操作系统原理与实例分析.ppt》由会员分享,可在线阅读,更多相关《操作系统原理与实例分析.ppt(73页珍藏版)》请在冰豆网上搜索。
![操作系统原理与实例分析.ppt](https://file1.bdocx.com/fileroot1/2022-10/19/8040dfe6-b177-4c76-ae1f-99e4d98b08b2/8040dfe6-b177-4c76-ae1f-99e4d98b08b21.gif)
3.33.3程序装入技术程序装入技术可执行程序的生成步骤可执行程序的生成步骤图图3.103.10高级程序处理过程高级程序处理过程源程序源程序目标模块目标模块编译编译库函数库函数装入模块装入模块链接链接编辑编辑执行执行目标模块目标模块内存内存可执行程序的装入可执行程序的装入?
如何装入待执行的程序及其所需的数据?
如何装入待执行的程序及其所需的数据?
如何装入待执行的程序及其所需的数据?
如何装入待执行的程序及其所需的数据?
何时将程序的逻辑地址转换为物理地址何时将程序的逻辑地址转换为物理地址何时将程序的逻辑地址转换为物理地址何时将程序的逻辑地址转换为物理地址3333种装入方式:
绝对装入、重定位装入和运行种装入方式:
绝对装入、重定位装入和运行种装入方式:
绝对装入、重定位装入和运行种装入方式:
绝对装入、重定位装入和运行时动态装入。
时动态装入。
时动态装入。
时动态装入。
绝对装入绝对装入程序运行之前,按照程序的逻辑地址,程序运行之前,按照程序的逻辑地址,将程序和数据装入内存指定的地方。
将程序和数据装入内存指定的地方。
实现简单,无须进行逻辑地址到物理地实现简单,无须进行逻辑地址到物理地址的变换。
址的变换。
绝对装入绝对装入缺点:
缺点:
缺点:
缺点:
程序每次必须装入同一内存区;程序每次必须装入同一内存区;程序每次必须装入同一内存区;程序每次必须装入同一内存区;程序员必须事先了解内存的使用情况,根据内程序员必须事先了解内存的使用情况,根据内程序员必须事先了解内存的使用情况,根据内程序员必须事先了解内存的使用情况,根据内存情况确定程序的逻辑地址;存情况确定程序的逻辑地址;存情况确定程序的逻辑地址;存情况确定程序的逻辑地址;程序的修改(增加或删除指令)将引起整个程程序的修改(增加或删除指令)将引起整个程程序的修改(增加或删除指令)将引起整个程程序的修改(增加或删除指令)将引起整个程序中指令地址的变动;序中指令地址的变动;序中指令地址的变动;序中指令地址的变动;程序中的所有存储引用,例如函数调用或过程程序中的所有存储引用,例如函数调用或过程程序中的所有存储引用,例如函数调用或过程程序中的所有存储引用,例如函数调用或过程调用等,在装入之前都必须转换为物理地址,调用等,在装入之前都必须转换为物理地址,调用等,在装入之前都必须转换为物理地址,调用等,在装入之前都必须转换为物理地址,这不利于存储共享。
这不利于存储共享。
这不利于存储共享。
这不利于存储共享。
重定位装入重定位装入允允许许将将程程序序装装入入与与逻逻辑辑地地址址不不同同的的物物理理内内存存空空间间。
即即程程序序可可以以装装入入到到内内存存的的任任何何位位置置,其其逻逻辑辑地地址址与与装装入入内内存存后后的的物物理地址无直接关系。
理地址无直接关系。
但但是是,必必须须进进行行地地址址映映射射,将将逻逻辑辑地地址址转换为物理地址。
转换为物理地址。
静静态态重重定定位位技技术术:
地地址址映映射射在在程程序序装装入入时进行,以后不再更改程序地址。
时进行,以后不再更改程序地址。
重定位装入重定位装入有有有有利利利利于于于于程程程程序序序序代代代代码码码码和和和和数数数数据据据据的的的的共共共共享享享享。
因因因因为为为为装装装装入入入入程程程程序序序序时时时时,可可可可以以以以将将将将其其其其中中中中的的的的某某某某些些些些存存存存储储储储引引引引用用用用的的的的逻逻逻逻辑辑辑辑地地地地址址址址映映映映射为内存中已有的共享区的物理地址。
射为内存中已有的共享区的物理地址。
射为内存中已有的共享区的物理地址。
射为内存中已有的共享区的物理地址。
但但但但是是是是,静静静静态态态态重重重重定定定定位位位位不不不不允允允允许许许许程程程程序序序序在在在在内内内内存存存存中中中中移移移移动动动动。
这这这这不不不不便便便便于于于于进进进进程程程程交交交交换换换换和和和和紧紧紧紧凑凑凑凑拼拼拼拼接接接接操操操操作作作作,也也也也很很很很难难难难实实实实现现现现多多多多道道道道程程程程序序序序环环环环境境境境下下下下,多多多多个个个个程程程程序序序序同同同同时时时时装装装装入入入入内内内内存存存存的的的的要求。
要求。
要求。
要求。
故,重定位装入方式只适合于单道程序环境。
故,重定位装入方式只适合于单道程序环境。
故,重定位装入方式只适合于单道程序环境。
故,重定位装入方式只适合于单道程序环境。
运行时动态装入运行时动态装入指指指指,程程程程序序序序的的的的地地地地址址址址转转转转换换换换不不不不是是是是在在在在装装装装入入入入时时时时进进进进行行行行,而而而而是是是是在程序运行时动态进行。
在程序运行时动态进行。
在程序运行时动态进行。
在程序运行时动态进行。
运运运运行行行行时时时时动动动动态态态态装装装装入入入入需需需需要要要要硬硬硬硬件件件件支支支支持持持持,即即即即重重重重定定定定位位位位寄寄寄寄存存存存器,用于保存程序在内存中的起始地址。
器,用于保存程序在内存中的起始地址。
器,用于保存程序在内存中的起始地址。
器,用于保存程序在内存中的起始地址。
程程程程序序序序被被被被执执执执行行行行时时时时,通通通通过过过过重重重重定定定定位位位位寄寄寄寄存存存存器器器器内内内内的的的的起起起起始始始始物物物物理理理理地地地地址址址址和和和和指指指指令令令令或或或或数数数数据据据据的的的的逻逻逻逻辑辑辑辑地地地地址址址址计计计计算算算算其其其其物物物物理理理理地地地地址。
址。
址。
址。
运运运运行行行行时时时时动动动动态态态态装装装装入入入入有有有有利利利利于于于于多多多多道道道道程程程程序序序序环环环环境境境境下下下下,进进进进程程程程的换进的换进的换进的换进/换出及实现紧凑技术。
换出及实现紧凑技术。
换出及实现紧凑技术。
换出及实现紧凑技术。
可执行程序的链接形成可执行程序的链接形成?
目标模块如何链接成装入模块呢目标模块如何链接成装入模块呢静态链接静态链接动态链接动态链接:
装入时动态链接和运行时动:
装入时动态链接和运行时动态链接态链接静态链接静态链接指指指指,程程程程序序序序被被被被装装装装入入入入内内内内存存存存之之之之前前前前,必必必必须须须须完完完完全全全全链链链链接接接接成成成成一一一一个个个个装装装装入入入入模模模模块块块块,将将将将其其其其中中中中的的的的存存存存储储储储引引引引用用用用全全全全部部部部转转转转换换换换为为为为相相相相对对对对地地地地址址址址跳跳跳跳转转转转语语语语句句句句。
并并并并将将将将多多多多个个个个目目目目标标标标模模模模块块块块链链链链接接接接成成成成为为为为一一一一个个个个模模模模块块块块,使使使使装装装装入入入入模模模模块块块块中中中中的的的的每每每每一一一一条条条条指指指指令令令令具具具具有有有有相相相相对于整个模块的第一条语句的逻辑地址。
对于整个模块的第一条语句的逻辑地址。
对于整个模块的第一条语句的逻辑地址。
对于整个模块的第一条语句的逻辑地址。
静态链接生成的装入模块可以采用重定位装入静态链接生成的装入模块可以采用重定位装入静态链接生成的装入模块可以采用重定位装入静态链接生成的装入模块可以采用重定位装入或运行时动态装入方式。
或运行时动态装入方式。
或运行时动态装入方式。
或运行时动态装入方式。
静态链接需要花费大量的处理机时间。
而其中静态链接需要花费大量的处理机时间。
而其中静态链接需要花费大量的处理机时间。
而其中静态链接需要花费大量的处理机时间。
而其中的很多模块将不会运行,浪费存储空间和处理的很多模块将不会运行,浪费存储空间和处理的很多模块将不会运行,浪费存储空间和处理的很多模块将不会运行,浪费存储空间和处理机时间。
机时间。
机时间。
机时间。
链接链接图图3.11目标模块链接成装入模块目标模块链接成装入模块模块模块1ifx1thencallmm1elsecallmm2模块模块mm1模块模块mm2(a)目标模目标模块块模块模块1ifx1thenelse模块模块mm1模块模块mm2(b)装入模装入模块块?
执行?
执行?
执行?
执行动态链接动态链接指指,不不用用事事先先链链接接所所有有目目标标模模块块形形成成一一个个完完备备的的装装入入模模块块,而而是是生生成成一一个个含含有有未未被被链链接接的的外外部部模模块块引引用用的的装装入入模模块块,这这些些外外部部模模块块可可以以在在装装入入时时链链接接,或或运运行时链接。
行时链接。
装入时动态链接装入时动态链接指指指指,当当当当系系系系统统统统装装装装入入入入含含含含有有有有未未未未链链链链接接接接的的的的外外外外部部部部模模模模块块块块引引引引用用用用的的的的装装装装入入入入模模模模块块块块时时时时,每每每每当当当当遇遇遇遇到到到到一一一一个个个个外外外外部部部部模模模模块块块块引引引引用用用用,则则则则查查查查找找找找相相相相应应应应的的的的目目目目标标标标模模模模块块块块。
将将将将其其其其装装装装入入入入内内内内存存存存,并并并并将将将将模模模模块块块块内内内内的的的的指指指指令令令令地地地地址址址址转转转转换换换换为为为为相相相相对对对对于于于于整整整整个个个个装装装装入入入入模模模模块块块块起起起起始地址的相对地址。
始地址的相对地址。
始地址的相对地址。
始地址的相对地址。
优优优优点点点点:
有有有有利利利利于于于于目目目目标标标标模模模模块块块块的的的的更更更更新新新新与与与与升升升升级级级级;有有有有利利利利于于于于代代代代码码码码共共共共享享享享;有有有有利利利利于于于于扩扩扩扩充充充充软软软软件件件件的的的的功功功功能能能能,可可可可以以以以将将将将扩扩扩扩充部分作为动态链接模块。
充部分作为动态链接模块。
充部分作为动态链接模块。
充部分作为动态链接模块。
但但但但是是是是,可可可可能能能能链链链链接接接接一一一一些些些些不不不不会会会会执执执执行行行行的的的的模模模模块块块块,浪浪浪浪费费费费存存存存储空间和处理机时间。
储空间和处理机时间。
储空间和处理机时间。
储空间和处理机时间。
运行时动态链接运行时动态链接指,外部模块引用直至程序执行时才装入内存,指,外部模块引用直至程序执行时才装入内存,指,外部模块引用直至程序执行时才装入内存,指,外部模块引用直至程序执行时才装入内存,并链接到装入模块中,进行地址转换。
并链接到装入模块中,进行地址转换。
并链接到装入模块中,进行地址转换。
并链接到装入模块中,进行地址转换。
可以解决静态链接和装入时动态链接都面临的可以解决静态链接和装入时动态链接都面临的可以解决静态链接和装入时动态链接都面临的可以解决静态链接和装入时动态链接都面临的存储空间和处理机时间浪费问题,不需要执行存储空间和处理机时间浪费问题,不需要执行存储空间和处理机时间浪费问题,不需要执行存储空间和处理机时间浪费问题,不需要执行的模块就不会装入内存。
的模块就不会装入内存。
的模块就不会装入内存。
的模块就不会装入内存。
广广广广泛泛泛泛用用用用于于于于事事事事务务务务处处处处理理理理系系系系统统统统,如如如如航航航航空空空空售售售售票票票票系系系系统统统统、银银银银行管理系统等。
行管理系统等。
行管理系统等。
行管理系统等。
操操操操作作作作系系系系统统统统自自自自身身身身的的的的一一一一些些些些特特特特殊殊殊殊处处处处理理理理例例例例程程程程,如如如如错错错错误误误误处处处处理例程,也无需事先全部装入内存。
理例程,也无需事先全部装入内存。
理例程,也无需事先全部装入内存。
理例程,也无需事先全部装入内存。
3.43.4简单存储管理技术简单存储管理技术简单存储简单存储相对于虚拟存储而言,指为了实现简单,执行相对于虚拟存储而言,指为了实现简单,执行相对于虚拟存储而言,指为了实现简单,执行相对于虚拟存储而言,指为了实现简单,执行之前,操作系统必须将待执行的程序全部装入之前,操作系统必须将待执行的程序全部装入之前,操作系统必须将待执行的程序全部装入之前,操作系统必须将待执行的程序全部装入内存。
内存。
内存。
内存。
然而,现代操作系统大都支持虚拟存储功能,然而,现代操作系统大都支持虚拟存储功能,然而,现