操作系统知识点(2)
4.4 内存管理
内存是现代操作系统的核心。内存用于容纳操作系统和各种用户进程,是可以被CPU和I/O设备所共同访问的数据仓库。计算机的所有程序运行时都要调入内存。
内存管理的主要工作是:为每个用户进程合理地分配内存,以保证各个进程之间在存储区不发生冲突;当内存不足时,如何把内存和外存结合起来,给用户提供一个比实际内存大得多的虚拟内存,使得程序能顺利执行。内存管理包括内存分配、地址映射、内存保护和扩充。
4.4.1 用户程序执行与地址映射
用户编写程序在执行前,需要多个处理步骤,这些步骤可将源程序转变为二进制机器代码,然后在内存中等待执行。当然有时并非每个步骤都是必需的。
通常,将指令和数据的地址映射成内存地址可以发生在以下三个执行阶段。(了解)
1.编译阶段:如果在编译时就知道进程将在内存中的什么位置驻留,那么编译器就可以直接以生成绝对地址代码。
2.加载阶段: 不知道进程将驻留在什么位置,那么编译器就必须生成程序的逻辑地址,在加载阶段再转变成内存的绝对地址。
3.执行阶段:如果进程在执行时可以从一个内存段移动到另一个内存段,那么进程的绝对地址映射工作只能延迟到执行时进行。
4.4.2 物理地址空间与逻辑地址空间
物理地址:是计算机内存单元的真实地址。
物理地址空间:由物理地址所构成的地址范围。
逻辑地址:用户程序地址,从0开始编址。
逻辑地址空间:由逻辑地址所构成的地址范围。
地址映射:用户程序在运行时要装入内存,这就需要将逻辑地址变换成物理地址,这个过程称为地址映射,也称重定位。
用户编写的源程序是不考虑地址的,源程序经CPU编译后产生逻辑地址。从CPU产生的逻辑地址转换为内存中的物理地址的映射是由计算机中被称为内存管理单元的硬件设备来实现的,将逻辑地址与内存管理单元中存放的内存基址相加就得到了物理地址。
4.4.3 进程使用内存的交换技术
为了更加有效地使用内存,进程在不运行时,可以暂时从内存移至外存上,直到需要再运行时再重新调回到内存中。也就是说内存管理程序可将刚刚运行过的进程从内存中换出以释放出占用的内存空间,然后将另一个要运行的进程占据前者释放的内存空间。
计算机工作时,为了将多个进程放入到内存就必须考虑在内存中如何放置这些进程。
4.4.4 内存分配方案-连续
对于连续内存分配方案,开始时所有内存是一个大的孔,随着内存分配的进行就会形成位置上不连续的大小不一的孔。在连续内存分配方案中,当新进程需要内存时,为其寻找合适的孔,实现内存分配 。该方案为每个进程所分配的内存物理地址空间在位置上是连续的。
4.4.5 内存分配方案-分页式
分页管理基本思想:
o 内存物理地址空间划分为若干个大小相等的块(页框)
o 进程的逻辑地址空间也划分为同样大小的块(页面)
o 内存分配时每个页面对应地分配一个页框,而一个进程所分得页框在位置上不必是连续的。
页表:操作系统为每个用户程序建立一张页表,该表记录用户程序的每个逻辑页面存放在哪一个内存物理页框。
4.5 虚拟内存方案
虚拟内存是一个容量很大的存储器的逻辑模型,它不是任何实际的物理存储器,它一般是借助硬盘来扩大主存的容量。
虚拟内存:对于一个进程来讲,如果仅将当前要运行的几个页面装入内存便可以开始运行,而其余页面可暂时留在磁盘上,待需要时再调入内存,并且调入时也不占用新的内存空间,而是对原来运行过的页面进行置换。这样,就可以在计算机有限的内存中同时驻留多个进程并运行。而对用户来讲感觉到系统提供了足够大的物理内存,而实际上并非真实的,这就是虚拟内存。
4.5.2 页面请求与页面置换算法
页面请求:在虚拟内存技术中,进程运行时并没有将所有页面装入到内存,在运行过程中进程会不断地请求页面,如果访问的页面已在内存,就继续执行下去;但如果要访问的页面尚未调入到内存,便请求操作系统将所缺页面调入内存,以便进程能继续运行下去。
页面置换:如果请求页面调入内存时,分配给该进程的页框已用完,就无法立即装入所请求页面。此时,必须将进程中的某个页面从内存的页框调出到磁盘上,再从磁盘所请求的页面调入到内存的该页框中。这个过程叫做页面置换。
4.6 文件管理
文件管理是操作系统最常见的组成部分。文件管理主要提供目录及其文件的管理。
4.6.1 文件的概念
文件:保存在外部存储设备上的相关信息的集合。
文件命名:文件主名+扩展名
文件存取属性:
• 只读:只允许授权用户进行读操作。
• 读写:只允许授权用户进行读和写的操作。
• 文档:允许任何用户进行读写操作。
• 隐藏:不允许用户直接看到文件名。
文件系统:是对文件进行操作和管理的软件,是用户与外存之间的接口。这个系统将所有文件组织成目录结构保存在外存,一个文件对应其中的一个目录条。目录条记录有文件名、文件位置等信息。
操作系统对文件的基本操作包括:
创建文件、文件写、文件读、文件重定位、文件删除、文件截短。
对文件的其它操作包括:文件复制、重命名、更改属性等。
看了“操作系统知识点”的还看了:
1.操作系统主要知识点
2.操作系统知识大全
3.操作系统基本知识
4.操作系统Windows 命令大全
5.操作系统基础知识