文档库 最新最全的文档下载
当前位置:文档库 › 详解RAMOS (内存操作系统) 的最新制作方法

详解RAMOS (内存操作系统) 的最新制作方法

详解RAMOS (内存操作系统) 的最新制作方法
详解RAMOS (内存操作系统) 的最新制作方法

详解RAMOS (内存操作系统) 的最新制作方法

很久没有写技术文档了,今天有空,花三个小时,针对 RAMOS 技术,收集网上相关资料结合个人实际操作,制作下文与大家共享!

看懂下面文章,需要有一定的电脑基础。会制作WINPE 的 U 盘,熟悉系统安装, 知道系统启动原理。

[基础知识] 什么是 RAMOS ?

--- 内存操作系统(RAM Operating System,简称为RAMOS),顾名思义就是全内存运行,启动后不依赖硬盘的系统。

[前言] :ThinkPad X40、X41/T 以及一些采用IDE硬盘的老机器,硬盘读写速度只有20MB/S 左右,响应速度慢,该如何提高改善电脑运行速度呢?

大家知道,内存的读取速度非常快,一般是硬盘的10 倍左右,如果能利用内存加载系统,那将彻底解决 IDE 硬盘读取速度慢的问题。

目前制作 RAMOS 主要有两种方法:

1、大多数是基于微软自己的 Ramdisk 驱动用 Ntldr 引导方式实现的,这种方法有容量上的限制 OS<500M。

2、最近新兴一个驱动叫 firadisk,这个是Grub4DOS Map --mem 虚拟出来的硬盘在WIN下的驱动,通过这种方式也能做出Ram os,而且限制很少。

专门网论坛里有很多 Ram os 的教程,大家可以找一下,但都是第一种方法:

那种基于微软的 Ramdisk 驱动用 Ntldr 引导方式制作 RAMOS 的方法,我就不介绍了,大家可以在本论坛找一下,有网友介绍的很详细。

例如网友lioulangzhb

-> https://www.wendangku.net/doc/8319067968.html,/forum/viewthread.php?tid=790328&highlight= RAMOS

今天我详细介绍基于 firadisk ,利用 Grub4Dos Map 技术制作 RAMOS 的第二种方法。

希望能给各位网友有所帮助,解决老机器运行速度慢的难题!

特別说明:若您电脑是 2G 以下内存,就不要考虑安装 RAMOS 。

RAMOS 内存操作系统的优缺点:

1. 优点:速度快,几乎不读硬盘。不会中毒,每次重启电脑,就重新加载一次系统。

2. 缺点:因为内存上的数据在断电时会丢失,因此对内存系统做的所有

修改都不能保存。

当然,数据和资料的保存可以保存到本地硬盘的盘符上(如 D:\, E:\ 等等)。重启后不会丢失。

[准备工作]

1. IBM X41 ( 1.6 /

2.5G / 20G ) 电脑一台。( 1.8 IDE 20G 未安装系统的硬盘)

2. 可启动到 WINPE 系统环境的 U 盘一个(内含精简版 WINDOWS XP 系统镜像--自己网上去找)

3. firadisk 驱动包(我附件提供一个)

4. Grub4Dos 安装包(大家可上网找,网上很多!)

5. VDM (虚拟光驱软件)--一般 WINPE 都内置,我附件提供一个。

[系统安装]

1. 通过 U 盘启动电脑到 WIN PE 系统环境下,依您个人习惯给硬盘分区。我分成 C:\ 2G , D:\ 18G ;

2. 在 WINPE 环境下,安装精简版的Windows XP 系统。安装方法(略)--我以前的贴子有详细介绍。

3. 正常安装系统,电脑第一次重启,在复制完文件后,当电脑第二次重启时,用 U 盘启动到 WINPE 环境。

4. 打开注册表管理器,运行 regedit 命令,如下图

5. 选中HKEY_LOCAL_MACHINE加载C:\windows \system32\config下的system, 配置名称随便取(我取RAMXP),找到system\mountedevices下的

\dosdevice\c: 右击,重命名为\dosdevice\B:如下图:

6. 修改后,重启电脑,等到正常安装完系统后,你就会看到效果了,系统盘的盘符不再是 C:\ 了,而是 B:\ .如下图:

[安装驱动]

1. 硬件设备驱动,最好用精简点的驱动,网上找封装万能 GHOST 的驱动包,那里驱动比较精简,装完网卡,声卡,显卡等驱动后

2. 安装 firadisk 驱动,这个是做 RAMOS 的关键。没有它, RAMOS 启动到一半会蓝屏。

3. 安装 firadisk 驱动的方法,在 firadisk.inf 上右击,选择安装即可,重启就 OK, 很简单,如下图:

[安装软件及系统优化]

1. 因为我只有

2.5G 的内存,本次测试分 700M 给 RAMOS,故软件越少越好,越小越好,尽量找绿色软件使用。

2. 系统优化可以手动优化或借助优化大师等软件来实现,目的是减少 C:\ 的安装容量。将桌面文件,我的文档等移到 D:\ ,

[制作RAMOS所需的IMG镜像]

1. 再次用 U 盘启动电脑到 WIN PE 环境下,打开 VDM (虚拟光驱软件)如下图:

2. 点创建,创建一个 600M 的 IMG, 选上分配全部空间,OK, IMG 文件存放到 D:\ 根目录下面,取名:ramxp.img ,如图:

3. 再用 VDM 这个软件装载刚才那个 IMG 文件到 A: 盘,打开我的电脑,右击,格式化 A:\ , 文件系统 NTFS, 快速格式化,启用压缩。

4. 格式化完成后,转到你安装精简版XP的那个盘(在PE下面是C:盘),复制windows , Program Files , Documents and Settings 三个文件夹和Boot.ini, bootfont.bin , https://www.wendangku.net/doc/8319067968.html, , ntldr 四个文件都 Copy 到 A:\ IMG 文件里,如图:

5. 拷贝完成后,再卸载 VDM 加载的这个 IMG , 刚才 COPY 进去的文件夹和文件会自动保存。

[制作Grub4Dos的引导]

1. 自己到网上去下载一个最新的 Grub4Dos 把它安装到 XP 系统,用记事本打开 menu.lst 文件,再最后加入以下几行代码:

title RUN RAMOS

find --set-root /ramxp.img

map --mem /ramxp.img

map --hook

root (hd0,0)

chainloader /ntldr

boot

# 说明: ramxp.img 是刚才制作的 IMG 的文件名。

2. 修改根目录下的 Boot.ini 文件,在最后加入一行 C:\grldr="RUN RAMOS"

3. 重启电脑,选择 "RUN RAMOS" 就可进入刚才做好的 RAMOS 系统,完全在内存中运行的 Windows XP , 运行速度飞快。

[最后工作]

1. 启动您刚才做好的 RAMOS ,会提示发现新硬件,点下一步,安装后会提示您重启,这时选择不重启,再次打开注册表编辑器,运行 regedit , 找到HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices下的dosdevice\X:,(X为你的IMG虚拟出来的那个盘符,可能性比较大为C,查看分区大小就能确定了)还有一项是数据和它一样的,名字类似于\??\Volume{xxxx-xxxx-xxxx- xxxx}这样的,把这两项留下,其它的全部删除,然后把dosdevice\X:改我dosdevice\B: 如下图:

2. 做完后,选中 system 项,右击,导出,保存类型为:注册表配置单元文件,导出范围是所选分支 HKEY_LOCAL_MACHINE\SYSTEM,文件夹名为system,点保存。如下图:

3. 再次打开 VDM 软件,加载 D:\ramxp.img 这个文件到 A:\盘,将您刚才保存的那个 system 文件 COPY 到 A:\ windows\system32\config 目录替换原文件,卸载 VDM 上的 IMG 就 OK 了。

[结束语]

这样,这个 RAMOS 就全部制作完成,大家可以尽情享受 RAMOS 带来的飞一般的速度。也不用去买昂贵的SSD硬盘,只要扩充本机内存就可。

相关软件就请各位 XD 上网查找,我这里只提供部分软件在附件中。有任何问题可以跟贴问,我乐意回答大家的任何问题。

附件:

Firadisk 软件

VDM 软件

讨论连接:【原创】详解 RAMOS (内存操作系统) 的最新制作方法

(售后服务)操作系统编程进程或作业先来先服务高优先权按时间片轮转调度算法

(售后服务)操作系统编程进程或作业先来先服务高优先权按时间片轮转调度 算法

湖南农业大学科学技术师范学院 学生实验报告

(高优先权流程图) (按时间片轮转调度) 程序说明及实现: 1)先来先服务调度算法: 高响应比优先实现进程调度.(用C语言实现), 2)优先级调度程序: 该程序由主程序、构造队列子程序、打印子程序、运行子程序构成。 3)时间片轮转法程序: 于此程序中由于程序比较小,未进行分模块设计。直接采用单壹模块。 1先来先服务 #include floatt,d;/*定义俩个全局变量*/ struct/*定义壹个结构体数组,包括进程的信息*/ { intid; floatArriveTime; floatRequestTime; floatStartTime; floatEndTime; floatRunTime; floatDQRunTime; intStatus; }arrayT ask[4];/*定义初始化的结构体数组*/ GetTask()/*给结构体数组赋值,输入到达,服务时间*/ {inti; floata; for(i=0;i<4;i++) {arrayT ask[i].id=i+1; printf("inputthenumber"); printf("inputthetheArriveTimeofarrayT ask[%d]:",i);/*用户输入进程的时间,初始为零*/ scanf("%f",&a); arrayT ask[i].ArriveTime=a; printf("inputtheRequestTimeofarrayT ask[%d]:",i); scanf("%f",&a); arrayT ask[i].RequestTime=a; arrayT ask[i].StartTime=0; arrayT ask[i].EndTime=0; arrayT ask[i].RunTime=0;

操作系统第一章作业讲解

第一章 习题 1、有3个作业A 、B 、C , A 是计算作业、 B 是检索磁带上数据的作业, C 是打印作业。3个作业单道运行时间分别为5分钟、15分钟和10分钟。假设可在15分钟内并行完成这3个作业。则各资源的利用率分别为多少? 单道CPU 利用率:5 /(5+15+10)= 5 / 30 = 1 / 6 磁带利用率:15 /(5+15+10)= 15 / 30 = 1 / 2 打印利用率:10 /(5+15+10)= 10 / 30 = 1 / 3 多道CPU 利用率:5 / 15 = 1 / 3 磁带利用率:15 / 15 = 1 打印利用率:10 / 15 = 2 / 3 2、在有一台CPU 和两台输入/输出设备磁盘和磁带的多道程序系统中,同时投入运行2个程序A 和B 。这2个程序对CPU 和磁盘和磁带的使用顺序和使用时间为: 程序A :磁带(30S )、CPU (10S )、磁盘(30S )、CPU (10S )、磁带(20S ) 程序B :磁盘(20S )、CPU (30S )、磁带(40S ) 假定:CPU 、磁盘和磁带都能并行工作,试问:在单道和多道两种方式下, 1)程序A 和B 从投入运行到运行完成所用的时间分别是多少? 2)CPU 、磁盘和磁带的利用率是多少? 答:在单道情况下,从投入到运行完成所用的时间A 为:100S ;B 为100S+90S=190S 在两道情况下,从投入到运行完成所用的时间A 为:120S ;B 为90S (非抢占式) 在两道情况下,从投入到运行完成所用的时间A 为:100S ;B 为120S (抢占式) 单道运行的时间关系图 计算 磁带 多道、非抢占式运行的时间关系图

操作系统内存管理复习过程

操作系统内存管理

操作系统内存管理 1. 内存管理方法 内存管理主要包括虚地址、地址变换、内存分配和回收、内存扩充、内存共享和保护等功能。 2. 连续分配存储管理方式 连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。 2.1 单一连续存储管理 在这种管理方式中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的操作系统。CP/M和 DOS 2.0以下就是采用此种方式。这种方式的最大优点就是易于管理。但也存在着一些问题和不足之处,例如对要求内

存空间少的程序,造成内存浪费;程序全部装入,使得很少使用的程序部分也占用—定数量的内存。 2.2 分区式存储管理 为了支持多道程序系统和分时系统,支持多个程序并发执行,引入了分区式存储管理。分区式存储管理是把内存分为一些大小相等或不等的分区,操作系统占用其中一个分区,其余的分区由应用程序使用,每个应用程序占用一个或几个分区。分区式存储管理虽然可以支持并发,但难以进行内存分区的共享。 分区式存储管理引人了两个新的问题:内碎片和外碎片。 内碎片是占用分区内未被利用的空间,外碎片是占用分区之间难以利用的空闲分区(通常是小空闲分区)。 为实现分区式存储管理,操作系统应维护的数据结构为分区表或分区链表。表中各表项一般包括每个分区的起始地址、大小及状态(是否已分配)。

分区式存储管理常采用的一项技术就是内存紧缩(compaction)。 2.2.1 固定分区(nxedpartitioning)。 固定式分区的特点是把内存划分为若干个固定大小的连续分区。分区大小可以相等:这种作法只适合于多个相同程序的并发执行(处理多个类型相同的对象)。分区大小也可以不等:有多个小分区、适量的中等分区以及少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。 优点:易于实现,开销小。 缺点主要有两个:内碎片造成浪费;分区总数固定,限制了并发执行的程序数目。 2.2.2动态分区(dynamic partitioning)。 动态分区的特点是动态创建分区:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小。与固定分区相比较其优点是:没有内碎

操作系统实验之内存管理实验报告

学生学号 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称 计算机操作系统 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 2016 — 2017 学年第一学期

实验三 内存管理 一、设计目的、功能与要求 1、实验目的 掌握内存管理的相关内容,对内存的分配和回收有深入的理解。 2、实现功能 模拟实现内存管理机制 3、具体要求 任选一种计算机高级语言编程实现 选择一种内存管理方案:动态分区式、请求页式、段式、段页式等 能够输入给定的内存大小,进程的个数,每个进程所需内存空间的大小等 能够选择分配、回收操作 内购显示进程在内存的储存地址、大小等 显示每次完成内存分配或回收后内存空间的使用情况 二、问题描述 所谓分区,是把内存分为一些大小相等或不等的分区,除操作系统占用一个分区外,其余分区用来存放进程的程序和数据。本次实验中才用动态分区法,也就是在作业的处理过程中划分内存的区域,根据需要确定大小。 动态分区的分配算法:首先从可用表/自由链中找到一个足以容纳该作业的可用空白区,如果这个空白区比需求大,则将它分为两个部分,一部分成为已分配区,剩下部分仍为空白区。最后修改可用表或自由链,并回送一个所分配区的序号或该分区的起始地址。 最先适应法:按分区的起始地址的递增次序,从头查找,找到符合要求的第一个分区。

最佳适应法:按照分区大小的递增次序,查找,找到符合要求的第一个分区。 最坏适应法:按分区大小的递减次序,从头查找,找到符合要求的第一个分区。 三、数据结构及功能设计 1、数据结构 定义空闲分区结构体,用来保存内存中空闲分区的情况。其中size属性表示空闲分区的大小,start_addr表示空闲分区首地址,next指针指向下一个空闲分区。 //空闲分区 typedef struct Free_Block { int size; int start_addr; struct Free_Block *next; } Free_Block; Free_Block *free_block; 定义已分配的内存空间的结构体,用来保存已经被进程占用了内存空间的情况。其中pid作为该被分配分区的编号,用于在释放该内存空间时便于查找。size表示分区的大小,start_addr表示分区的起始地址,process_name存放进程名称,next指针指向下一个分区。 //已分配分区的结构体 typedef struct Allocate_Block { int pid; int size; int start_addr; char process_name[PROCESS_NAME_LEN]; struct Allocate_Block *next; } Allocate_Block; 2、模块说明 2.1 初始化模块 对内存空间进行初始化,初始情况内存空间为空,但是要设置内存的最大容量,该内存空间的首地址,以便之后新建进程的过程中使用。当空闲分区初始化

第四章 操作系统存储管理(练习题)

第四章存储管理 1. C存储管理支持多道程序设计,算法简单,但存储碎片多。 A. 段式 B. 页式 C. 固定分区 D. 段页式 2.虚拟存储技术是 B 。 A. 补充内存物理空间的技术 B. 补充相对地址空间的技术 C. 扩充外存空间的技术 D. 扩充输入输出缓冲区的技术 3.虚拟内存的容量只受 D 的限制。 A. 物理内存的大小 B. 磁盘空间的大小 C. 数据存放的实际地址 D. 计算机地址位数 4.动态页式管理中的 C 是:当内存中没有空闲页时,如何将已占据的页释放。 A. 调入策略 B. 地址变换 C. 替换策略 D. 调度算法 5.多重分区管理要求对每一个作业都分配 B 的内存单元。 A. 地址连续 B. 若干地址不连续 C. 若干连续的帧 D. 若干不连续的帧 6.段页式管理每取一数据,要访问 C 次内存。 A. 1 B. 2 C. 3 D. 4 7.分段管理提供 B 维的地址结构。 A. 1 B. 2 C. 3 D. 4 8.系统抖动是指 B。 A. 使用计算机时,屏幕闪烁的现象 B. 刚被调出内存的页又立刻被调入所形成的频繁调入调出的现象 C. 系统盘不干净,操作系统不稳定的现象 D. 由于内存分配不当,造成内存不够的现象 9.在 A中,不可能产生系统抖动现象。 A. 静态分区管理 B. 请求分页式管理 C. 段式存储管理 D. 段页式存储管理 10.在分段管理中 A 。 A. 以段为单元分配,每段是一个连续存储区 B. 段与段之间必定不连续 C. 段与段之间必定连续 D. 每段是等长的 11.请求分页式管理常用的替换策略之一有 A 。 A. LRU B. BF C. SCBF D. FPF 12.可由CPU调用执行的程序所对应的地址空间为 D 。 A. 名称空间 B. 虚拟地址空间 C. 相对地址空间 D. 物理地址空间 13. C 存储管理方式提供二维地址结构。 A. 固定分区 B. 分页

操作系统内存管理系统

操作系统存管理 1. 存管理方法 存管理主要包括虚地址、地址变换、存分配和回收、存扩充、存共享和保护等功能。 2. 连续分配存储管理方式 连续分配是指为一个用户程序分配连续的存空间。连续分配有单一连续存储管理和分区式储管理两种方式。 2.1 单一连续存储管理 在这种管理方式中,存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的操作系统。CP/M和DOS 2.0以下就是采用此种方式。这种方式的最大优点就是易于管理。但也存在着一些问题和不足之处,例如对要求存空间少的程序,造成存浪费;程序全部装入,使得很少使用的程序部分也占用—定数量的存。

2.2 分区式存储管理 为了支持多道程序系统和分时系统,支持多个程序并发执行,引入了分区式存储管理。分区式存储管理是把存分为一些大小相等或不等的分区,操作系统占用其中一个分区,其余的分区由应用程序使用,每个应用程序占用一个或几个分区。分区式存储管理虽然可以支持并发,但难以进行存分区的共享。 分区式存储管理引人了两个新的问题:碎片和外碎片。 碎片是占用分区未被利用的空间,外碎片是占用分区之间难以利用的空闲分区(通常是小空闲分区)。 为实现分区式存储管理,操作系统应维护的数据结构为分区表或分区链表。表中各表项一般包括每个分区的起始地址、大小及状态(是否已分配)。 分区式存储管理常采用的一项技术就是存紧缩(compaction)。

2.2.1 固定分区(nxedpartitioning)。 固定式分区的特点是把存划分为若干个固定大小的连续分区。分区大小可以相等:这种作法只适合于多个相同程序的并发执行(处理多个类型相同的对象)。分区大小也可以不等:有多个小分区、适量的中等分区以及少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。 优点:易于实现,开销小。 缺点主要有两个:碎片造成浪费;分区总数固定,限制了并发执行的程序数目。 2.2.2动态分区(dynamic partitioning)。 动态分区的特点是动态创建分区:在装入程序时按其初始要求分配,或在其执行过程过系统调用进行分配或改变分区大小。与固定分区相比较其优点是:没有碎片。但它却引入了另一种碎片——外碎片。动态分区的分区分配就是寻找某个空闲分区,其大小需大于或等于程序的要求。若是大于要求,则将该分区分割成两个分区,其中一个分区为要

Windows操作系统正常系统服务services参数详解

Windows操作系统正常系统服务services参数详解操作系统启动项命令参数详解有很多朋友感觉自己的电脑运行速度比较慢,那就让我们来了解一下电脑的启动组的构成,首先在运行中输入(services.msc)回车,会看到本地服务的框线,tab一次就是列表: 01.显示名称:alerter◎进程名称:svchost.exe-kLocalService◎微软描述:通知所选用户和计算机有关系统管理级警报。如果服务停止,使用管理警报的程序将不会受到它们。如果此服务被禁用,任何直接依赖它的服务都将不能启动。◎补充描述:警报器。该服务进程名为Services.exe,一般家用计算机根本不需要传送或接收计算机系统管理来的警示(Administrativealerts),除非你的计算机用在局域网络上。◎默认:禁用建议:禁用 02.显示名称:ApplicationLayerGatewayService◎进程名称:alg.exe◎微软描述:为Internet连接共享和Windows防火墙提供第三方协议插件的支持。◎补充描述:XPSP2自带的防火墙,如果不用可以关掉。◎默认:手动(已启动)建议:禁用 03.显示名称:ApplicationManagement◎进程名称:svchost.exe-knetsvcs◎微软描述:提供软件安装服务,诸如分派,发行以及删除。◎补充描述:应用程序管理。从Windows2000开始引入的一种基于msi文件格式的全新有效软件管理方案:程序管理组件服务。该服务不仅可以管理软件的安装、删除,还可以使用此服务修改、修复现有应用程序,监视文件复原并通过复原排除基本故障等,软件安装变更的服务。◎默认:手动建议:手动 04.显示名称:AutomaticUpdates◎进程名称:svchost.exe-knets vcs◎微软描述:允许下载并安装Windows更新。如果此服务被禁用,计算机将不能使用WindowsUpdate网站的自动更新功能。◎补充描述:自动更新,手动就行,需要的时候打开,没必要随时开着。不过2005年4月12日以后微软将对没有安装SP2的WindowsXP操作系统强制安装系统补丁SP2。◎默认:自动建议:手动 06.显示名称:ClipBook◎进程名称:clipsrv.exe◎微软描述:启用“剪贴簿查看器”储存信息并与远程计算机共享。如果此服务终止,“剪贴簿查看器”将无法与远程计算机共享信息。如果此服务被禁用,任何依赖它的服务将无法启动。◎补充描述:剪贴簿。把剪贴簿内的信息和其它台计算机分享,一般家用计算机根本用不到。◎默认:禁用建议:禁用 07.显示名称:COM+EventSystem◎进程名称:svchost.exe-knetsvcs◎微软描述:支持系统事件通知服务(SENS),此服务为订阅组件对象模型(COM)组件事件提供自动分布功能。如果停止此服务,SENS将关闭,而且不能提供登录和注销通知。如果禁用此服务,显式依赖此服务的其他服务将无法启动。◎补充描述:COM+事件系统。有些程序可能用到COM+组件,如自己的系统优化工具BootVis。检查系统盘的目录“C:\ProgramFiles\ComPlusApplications”,没东西可以把这个服务关闭。◎默认:手动(已启动)建议:手动 08.显示名称:COM+SystemApplication◎进程名称:dllhost.exe/Processid:{02D4B3F1-FD88-11D1-960D-00805FC79235}◎微软描述:管理基于

操作系统课程设计内存管理

内存管理模拟 实验目标: 本实验的目的是从不同侧面了解Windows 2000/XP 对用户进程的虚拟内存空间的管理、分配方法。同时需要了解跟踪程序的编写方法(与被跟踪程序保持同步,使用Windows提供的信号量)。对Windows分配虚拟内存、改变内存状态,以及对物理内存(physical memory)和页面文件(pagefile)状态查询的API 函数的功能、参数限制、使用规则要进一步了解。 默认情况下,32 位Windows 2000/XP 上每个用户进程可以占有2GB 的私有地址空间,操作系统占有剩下的2GB。Windows 2000/XP 在X86 体系结构上利用二级页表结构来实现虚拟地址向物理地址的变换。一个32 位虚拟地址被解释为三个独立的分量——页目录索引、页表索引和字节索引——它们用于找出描述页面映射结构的索引。页面大小及页表项的宽度决定了页目录和页表索引的宽度。 实验要求: 使用Windows 2000/XP 的API 函数,编写一个包含两个线程的进程,一个线程用于模拟内存分配活动,一个线程用于跟踪第一个线程的内存行为,而且要求两个线程之间通过信号量实现同步。模拟内存活动的线程可以从一个文件中读出要进行的内存操作,每个内存操作包括如下内容: 时间:操作等待时间。 块数:分配内存的粒度。 操作:包括保留(reserve)一个区域、提交(commit)一个区域、释放(release)一个区域、回收(decommit)一个区域和加锁(lock)与解锁(unlock)一个区域,可以将这些操作编号存放于文件。保留是指保留进程的虚拟地址空间,而不分配物理 存储空间。提交在内存中分配物理存储空间。回收是指释放物理内存空间,但在虚拟地址空间仍然保留,它与提交相对应,即可以回收已经提交的内存块。释放是指将物理存储和虚拟地址空间全部释放,它与保留(reserve)相对应,即可以释放已经保留的内存块。 大小:块的大小。 访问权限:共五种,分别为PAGE_READONLY,PAGE_READWRITE ,PAGE_EXECUTE,PAGE_EXECUTE_READ 和PAGE EXETUTE_READWRITE。可以将这些权限编号存放于文件中跟踪线程将页面大小、已使用的地址范围、物理内存总量,以及虚拟内存总量等信息显示出来。

windows操作系统内存管理方式综述

一页式管理 1 页式管理的基本原理将各进程的虚拟空间划分成若干个长度相等的页(page),页式管理把内存空间按页的大小划分成片或者页面(page frame),然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。页式管理采用请求调页或预调页技术实现了内外存存储器的统一管理。 它分为 1 静态页式管理。静态分页管理的第一步是为要求内存的作业或进程分配足够的页面。系统通过存储页面表、请求表以及页表来完成内存的分配工作。静态页式管理解决了分区管理时的碎片问题。但是,由于静态页式管理要求进程或作业在执行前全部装入内存,如果可用页面数小于用户要求时,该作业或进程只好等待。而且作业和进程的大小仍受内存可用页面数的限制。 2 动态页式管理。动态页式管理是在静态页式管理的基础上发展起来的。它分为请求页式管理和预调入页式管理。 优点:没有外碎片,每个内碎片不超过页大小。一个程序不必连续存放。便于改变程序占用空间的大小(主要指随着程序运行而动态生成的数据增多,要求地址空间相应增长,通常由系统调用完成而不是操作系统自动完成)。 缺点:程序全部装入内存。 要求有相应的硬件支持。例如地址变换机构,缺页中断的产生和选择淘汰页面等都要求有相应的硬件支持。这增加了机器成本。增加了系统开销,例如缺页中断处理机,请求调页的算法如选择不当,有可能产生抖动现象。虽然消除了碎片,但每个作业或进程的最后一页内总有一部分空间得不到利用果页面较大,则这一部分的损失仍然较大。 二段式管理的基本思想 把程序按内容或过程(函数)关系分成段,每段有自己的名字。一个用户作业或进程所包含的段对应一个二维线形虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址影射机构把段式虚拟地址转换为实际内存物理地址。 程序通过分段(segmentation)划分为多个模块,如代码段、数据段、共享段。其优点是:可以分别编写和编译。可以针对不同类型的段采取不同的保护。可以按段为单位来进行共享,包括通过动态链接进行代码共享。 三段页式管理的实现原理 1 虚地址的构成 一个进程中所包含的具有独立逻辑功能的程序或数据仍被划分为段,并有各自的段号s。这反映相继承了段式管理的特征。其次,对于段s中的程序或数据,则按照一定的大小将其划分为不同的页。和页式系统一样,最后不足一页的部分仍占一页。这反映了段页式管理中的页式特征。从而,段页式管理时的进程的虚拟地址空间中的虚拟地址由三部分组成:即段号s,页号P和页内相对地址d。虚拟空间的最小单位是页而不是段,从而内存可用区也就被划分成为着干个大小相等的页面,且每段所拥有的程序和数据在内存中可以分开存放。分段的大小也不再受内存可用区的限制。 2 段表和页表

操作系统实验-先来先服务、短作业优先算法

实验报告 【实验名称】实验一进程调度【实验目的】 巩固和加深处理机调度的概念。 【实验内容】 设计调度算法,模拟实现处理机的调度。 1.设计先来先服务调度算法 数据结构和符号说明: typedef struct PCB { char name[10]; //进程名 char state; //进程状态 int arrivetime; //到达时间 int starttime; //开始时间 int finishtime; //完成时间 int servicetime;//服务时间 float turnaroundtime;//周转时间 float weightedturnaroundtime;//带权周转时间 struct PCB *next; //指向下个进程的指针 }pcb; int time;//全局变量,计时器 int n;//全局变量,进程个数 pcb *head = NULL,*p,*q;//进程链表指针 流程图:

开始 输入进程名、到达时间、服务时间存入链表 进程是否全部处理完毕? 当前进程状态是否为F ?N 处理进程,计算完成时间,周转时间等,并更新当前时间Y 处理下一进程 N 结束Y 程序源代码 /* 操作系统实验一 先来先服务调度算法 */ #include #include typedef struct PCB//进程控制 { char name[10];//进程名 char state;//进程状态 int arrivetime;//到达时间 int starttime;//开始时间 int finishtime;//结束时间 int servicetime;//服务时间 float turnaroundtime;//周转时间 float weightedturnaroundtime;//带权周转时间 struct PCB *next;//指向下个进程 }pcb; int time;//当前时间 int n;//进程个数 pcb *head = NULL,*p,*q; //处理未完成的进程 void run_fcfs(pcb *p1) { time = p1->arrivetime > time ? p1->arrivetime : time; //如果进程到达时间大于当前时间,则当前时间=到达时间 p1->starttime = time;//当前时间即为进程开始时间

操作系统内存管理原理

内存分段和请求式分页 在深入i386架构的技术细节之前,让我们先返回1978年,那一年Intel 发布了PC处理器之母:8086。我想将讨论限制到这个有重大意义的里程碑上。如果你打算知道更多,阅读Robert L.的80486程序员参考(Hummel 1992)将是一个很棒的开始。现在看来这有些过时了,因为它没有涵盖Pentium处理器家族的新特性;不过,该参考手册中仍保留了大量i386架构的基本信息。尽管8086能够访问1MB RAM的地址空间,但应用程序还是无法“看到”整个的物理地址空间,这是因为CPU寄存器的地址仅有16位。这就意味着应用程序可访问的连续线性地址空间仅有64KB,但是通过16位段寄存器的帮助,这个64KB大小的内存窗口就可以在整个物理空间中上下移动,64KB逻辑空间中的线性地址作为偏移量和基地址(由16位的段寄存器给处)相加,从而构成有效的20位地址。这种古老的内存模型仍然被最新的Pentium CPU支持,它被称为:实地址模式,通常叫做:实模式。 80286 CPU引入了另一种模式,称为:受保护的虚拟地址模式,或者简单的称之为:保护模式。该模式提供的内存模型中使用的物理地址不再是简单的将线性地址和段基址相加。为了保持与8086和80186的向后兼容,80286仍然使用段寄存器,但是在切换到保护模式后,它们将不再包含物理段的地址。替代的是,它们提供了一个选择器(selector),该选择器由一个描述符表的索引构成。描述符表中的每一项都定义了一个24位的物理基址,允许访问16MB RAM,在当时这是一个很不可思议的数量。不过,80286仍然是16位CPU,因此线性地址空间仍然被限制在64KB。 1985年的80386 CPU突破了这一限制。该芯片最终砍断了16位寻址的锁链,将线性地址空间推到了4GB,并在引入32位线性地址的同时保留了基本的选择器/描述符架构。幸运的是,80286的描述符结构中还有一些剩余的位可以拿来使用。从16位迁移到32位地址后,CPU的数据寄存器的大小也相应的增加了两倍,并同时增加了一个新的强大的寻址模型。真正的32位的数据和地址为程序员带了实际的便利。事实上,在微软的Windows平台真正完全支持32位模型是在好几年之后。Windows NT的第一个版本在1993年7月26日发布,实现了真正意义上的Win32 API。但是Windows 3.x程序员仍然要处理由独立的代码和数据段构成的64KB内存片,Windows NT提供了平坦的4GB地址空间,在那儿可以使用简单的32位指针来寻址所有的代码和数据,而不需要分段。在内部,当然,分段仍然在起作用,就像我在前面提及的那样。不过管理段的所有责任都被移给了操作系统。

操作系统课后练习答案解析

1. 什么是操作系统?它的主要功能是什么? 答:操作系统是用来管理计算机系统的软、硬件资源,合理地组织计算机的工作流程,以方便用户使用的程序集合; 其主要功能有进程管理、存储器管理、设备管理和文件管理功能。 2. 什么是分时系统?什么是实时系统?试从交互性、及时性、独立性、多路性和可靠性几个方面比较分时系统和实时系统。 答:分时系统:一个计算机和许多终端设备连接,每个用户可以通过终端向计算机发出指令,请求完成某项工作,在这样的系统中,用户感觉不到其他用户的存在,好像独占计算机一样。 实时系统:对外部输入的信息,实时系统能够在规定的时间内处理完毕并作出反应。 比较:(1)交互性:实时系统具有交互性,但人与系统的交互,仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样向终端用户提供数据处理、资源共享等服务。实时系统的交互性要求系统具有连续人机对话的能力,也就是说,在交互的过程中要对用户得输入有一定的记忆和进一步的推断的能力。 (2)及时性:实时系统对及时性的要求与分时系统类似,都以人们能够接受的等待时间来确定。而分时系统则对及时性要求更高。 (3)独立性:实时系统与分时系统一样具有独立性。每个终端用户提出请求时,是彼此独立的工作、互不干扰。 (4)多路性:实时系统与分时一样具有多路性。操作系统按分时原则为多个终端用户提供服务,而对于实时系统,其多路性主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。 (5)可靠性:分时系统虽然也要求可靠性,但相比之下,实时系统则要求系统高度可靠。 9.设内存中有三道程序,A ,B ,C ,他们按A →B →C 的先后次序执行,它们进行“计算”和“I/O 操作”的时间如表1-2所示,假设三道程序使用相同的I/O 设备。 表1-2 三道程序的操作时间 (1) 试画出单道运行时三道程序的时间关系图,并计算完成三道程序要花多少时间。 I/O 操作 计算 90 60 50 14020160170190 200 A A B B B C C C 总时间=20+30+10+30+50+20+10+20+10=200 (2) 试画出多道运行时三道程序的时间关系图,并计算完成三道程序要花多长时间。

操作系统 内存管理实验报告

同组同学学号: 同组同学姓名: 实验日期:交报告日期: 实验(No. 4 )题目:编程与调试:内存管理 实验目的及要求: 实验目的: 操作系统的发展使得系统完成了大部分的内存管理工作,对于程序员而言,这些内存管理的过程是完全透明不可见的。因此,程序员开发时从不关心系统如何为自己分配内存,而且永远认为系统可以分配给程序所需的内存。在程序开发时,程序员真正需要做的就是:申请内存、使用内存、释放内存。其它一概无需过问。本章的3个实验程序帮助同学们更好地理解从程序员的角度应如何使用内存。 实验要求: 练习一:用vim编辑创建下列文件,用GCC编译工具,生成可调试的可执行文件,记录并分析执行结果,分析遇到的问题和解决方法。 练习二:用vim编辑创建下列文件,用GCC编译工具,生成可调试的可执行文件,记录并分析执行结果。 练习三:用vim编辑创建下列文件,用GCC编译工具,生成可调试的可执行文件,记录并分析执行结果。 改编实验中的程序,并运行出结果。 实验设备:多媒体电脑 实验内容以及步骤: 在虚拟机中编写好以下程序: #include #include #include int main(void) { char *str; /* 为字符串申请分配一块内存*/ if ((str = (char *) malloc(10)) == NULL) { printf("Not enough memory to allocate buffer\n"); return(1); /* 若失败则结束程序*/ } /* 拷贝字符串“Hello”到已分配的内存空间*/ strcpy(str, "Hello"); /* 显示该字符串*/ printf("String is %s\n", str); /* 内存使用完毕,释放它*/ free(str); return 0; } 调试过后得出的结果截图如下:(由图可看出我将此程序以aa.c为文件名保存,调试后出现aa1文件,调试结果出现语句“String is Hello”)

计算机操作系统试题库new

计算机操作系统试题 一填空: 1.操作系统为用户提供三种类型的使用接口,它们是命令方式和系统调用和图形用户界面。 2.主存储器与外围设备之间的数据传送控制方式有程序直接控制、中断驱动方式、DMA方式和通道控制方式。 3.在响应比最高者优先的作业调度算法中,当各个作业等待时间相同时,运行时间短的作业将得到优先调度;当各个作业要求运行的时间相同时,等待时间长的作业得到优先调度。 4.当一个进程独占处理器顺序执行时,具有两个特性:封闭性和可再现性。 5.程序经编译或汇编以后形成目标程序,其指令的顺序都是以零作为参考地址,这些地址称为逻辑地址。 6.文件的逻辑结构分流式文件和记录式文件二种。 7.进程由程度、数据和FCB组成。 9.操作系统是运行在计算机裸机系统上的最基本的系统软件。11.文件系统中,用于文件的描述和控制并与文件一一对应的是文件控制块。 12.段式管理中,以段为单位,每段分配一个连续区。由于各段长度不同,所以这些存储区的大小不一,而且同一进程的各段之间不要求连续。 13.逻辑设备表(LUT)的主要功能是实现设备独立性。

17.文件的物理结构分为顺序文件、索引文件和索引顺序文件。18.所谓设备控制器,是一块能控制一台或多台外围设备与CPU并行工作的硬件。 20分页管理储管理方式能使存储碎片尽可能少,而且使存利用率较高,管理开销小。 20.计算机操作系统是方便用户、管理和控制计算机软硬件资源的系统软件。 21.操作系统目前有五大类型:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。 22.按文件的逻辑存储结构分,文件分为有结构文件,又称为记录式文件和无结构文件,又称流式文件。 23.主存储器与外围设备之间的信息传送操作称为输入输出操作。 24、在设备管理中,为了克服独占设备速度较慢、降低设备资源利用率的缺点,引入了虚拟分配技术,即用共享设备模拟独占设备。 25、常用的存管理方法有分区管理、页式管理、段式管理和段页 式管理。 26、动态存储分配时,要靠硬件地址变换机构实现重定位。 27、在存储管理中常用虚拟存储器方式来摆脱主存容量的限制。 28、在请求页式管理中,当硬件变换机构发现所需的页不在存时,产生缺页中断信号,中断处理程序作相应的处理。 30、在段页式存储管理系统中,面向用户的地址空间是段式划分,面向物理实现的地址空间是页式划分。

操作系统实验-先来先服务FCFS和短作业优先SJF进程调度算法

操作系统实验报告 实验一 先来先服务FCFS和短作业优先SJF进程调度算法 学号: 班级: 姓名:

【实验题目】:先来先服务FCFS和短作业优先SJF进程调度算法 【实验目的】 通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。 【实验内容】 问题描述: 设计程序模拟进程的先来先服务FCFS和短作业优先SJF调度过程。假设有n个进程分别在T1, …,T n时刻到达系统,它们需要的服务时间分别为S1, …,S n。分别采用先来先服务FCFS和短作业优先SJF进程调度算法进行调度,计算每个进程的完成时间,周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。 程序要求如下: 1)进程个数n;每个进程的到达时间T1, … ,T n和服务时间S1, … ,S n;选择算法1-FCFS,2-SJF。 2)要求采用先来先服务FCFS和短作业优先SJF分别调度进程运行,计算每个进程的周转时间,带权周转时间,并且计算所有进程的平均周转时间,带权平均周转时间; 3)输出:要求模拟整个调度过程,输出每个时刻的进程运行状态,如“时刻3:进程B开始运行”等等; 4)输出:要求输出计算出来的每个进程的周转时间,带权周转时间,所有

进程的平均周转时间,带权平均周转时间。 实现提示: 用C++语言实现提示: 1)程序中进程调度时间变量描述如下: static int MaxNum=100; int ArrivalTime[MaxNum]; int ServiceTime[MaxNum]; int FinishTime[MaxNum]; int WholeTime[MaxNum]; double WeightWholeTime[MaxNum]; double AverageWT_FCFS,AverageWT_SJF; double AverageWWT_FCFS,AverageWWT_SJF; 2)进程调度的实现过程如下: 变量初始化; 接收用户输入n,T1, … ,T n,S1, … ,S n;算法选择1-FCFS,2-SJF; 按照选择算法进行进程调度,计算进程的完成时间、周转时间和带权周转时间; 计算所有进程的平均周转时间和平均带权周转时间; 按格式输出调度结果。 实验要求: 1)上机前认真复习FCFS和SJF进程调度调度算法,熟悉进程调度的执行过

操作系统内存管理

操作系统内存管理 1. 内存管理方法 内存管理主要包括虚地址、地址变换、内存分配和回收、内存扩充、内存共享和保护等功能。 2. 连续分配存储管理方式 连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。 2.1 单一连续存储管理 在这种管理方式中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的操作系统。CP /M和DOS 2.0以下就是采用此种方式。这种方式的最大优点就是易于管理。但也存在着一些问题和不足之处,例如对要求内存空间少的程序,造成内存浪费;程序全部装入,使得很少使用

的程序部分也占用—定数量的内存。 2.2 分区式存储管理 为了支持多道程序系统和分时系统,支持多个程序并发执行,引入了分区式存储管理。分区式存储管理是把内存分为一些大小相等或不等的分区,操作系统占用其中一个分区,其余的分区由应用程序使用,每个应用程序占用一个或几个分区。分区式存储管理虽然可以支持并发,但难以进行内存分区的共享。 分区式存储管理引人了两个新的问题:内碎片和外碎片。 内碎片是占用分区内未被利用的空间,外碎片是占用分区之间难以利用的空闲分区(通常是小空闲分区)。 为实现分区式存储管理,操作系统应维护的数据结构为分区表或分区链表。表中各表项一般包括每个分区的起始地址、大小及状态(是否已分配)。 分区式存储管理常采用的一项技术就是内存紧缩

(compaction)。 2.2.1 固定分区(nxedpartitioning)。 固定式分区的特点是把内存划分为若干个固定大 小的连续分区。分区大小可以相等:这种作法只适合于多个相同程序的并发执行(处理多个类型相同的对象)。分区大小也可以不等:有多个小分区、适量的中等分区以及少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。 优点:易于实现,开销小。 缺点主要有两个:内碎片造成浪费;分区总数固定,限制了并发执行的程序数目。 2.2.2动态分区(dynamic partitioning)。 动态分区的特点是动态创建分区:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小。与固定分区相比较其优点是:没有内碎片。但它却引入了另一种碎片——外碎片。动态分区的分区分配就是寻找某个空闲分区,其大小需大于或等于程序的要求。

操作系统 计算题

四、计算题 1.有以下三个作业,分别采用先来先服务和短作业优先作业调度算法。试问它们的平均周转时间各是什么?是否还可以给出一种更好的调度算法,使其平均周转时间优于这两种调度算法? 解:(1)采用先来先服务作业调度算法时的实施过程如下。 这时,作业的调度顺序是1→2→3。其平均周转时间为:(8 + 11.6 + 12)/ 3 = 10.53 (2)采用短作业优先作业调度算法时的实施过程如下。

这里要注意,在作业1运行完毕进行作业调度时,作业2和3都已经到达。由于是实行短作业优先作业调度算法,因此先调度作业3运行,最后调度作业2运行。所以,这时的作业调度顺序是1→3→2。其平均周转时间为:(8 + 8 + 12.6)/ 3 = 9.53 (3)还可以有更好的作业调度算法,使其平均周转时间优于这两种调度算法。例如,如果知道在作业1后面会来两个短作业,那么作业1到达后,先不投入运行。而是等所有作业到齐后,再按照短作业优先作业调度算法进行调度,具体实施过程如下。 这时的作业调度顺序是3→2→1。其平均周转时间为:(1 + 5.6 + 14)/ 3 = 6.87 2.有一组作业,它们的到达时间和所需CPU时间如下所示,分别采用先来先服务和短作业优先作业调度算法,给出它们的调度顺序、作业周转时间以及平均周转时间。 解:(1)采用先来先服务作业调度算法时的实施过程如下:

这时,作业的调度顺序是1→2→3→4,其平均周转时间为:(70 + 60 + 60 + 45)/ 4 = 58.75 (2)采用短作业优先作业调度算法时的实施过程如下: 这时,作业的调度顺序是1→4→3→2,其平均周转时间为:(70 + 5 + 35 + 75)/ 4 = 46.25 三、简答题 1.对临界区的管理应遵循哪些基本准则? 答:为了合理利用临界资源,保证进程互斥地进入临界区,对临界区的管理应遵循以下准则: (1)空闲让进。当无进程处于临界区时,表明临界资源处于空闲状态,应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。 (2)忙则等待。当已有进程进入临界区时,表明临界资源正在被访问,因而其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。 (3)有限等待。对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态。

操作系统课程设计磁盘调度先来先服务算法完整版

操作系统课程设计磁盘 调度先来先服务算法 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

《操作系统原理》 课程设计报告书 题目:磁盘调度先来先服务算法 学号: 学生姓名: 专业:计算机科学与技术 指导教师: 2014年5月29 目录 1.1功能实现思想 (1) 1.2功能详述 (1) 2系统设计 (1) 2.1系统总体设计 (1) 2.1.1数据结构描述 (1) 2.1.2函数功能分析 (1)

2.1.2程序函数调用关系 (2) 2.2系统详细设计 (2) 2.2.1设计任务 (2) 2.2.2设计要求 (2) 2.2.3算法思想 (2) 2.2.4FCFS算法流程图 (3) 3系统实现 (3) 4系统测试与分析 (4) 4.1系统运行结果 (4) 4.2系统运行结果分析 (4) 5总结 (5) 参考文献 (5) 附:源程序代码 (6) 教师评分表 (9)

1功能描述 根据进程请求访问磁盘的先后次序进行调度,从而计算出磁头移动的总距离和平均寻道长度。 1.1功能实现思想 这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。 1.2功能详述 根据进程请求访问磁盘的先后次序进行调度,首先根据提示输入总的磁道数、提出磁盘I/O申请的进程数、开始磁道号和磁道序列。通过程序调用函数输出磁盘请求序列和磁盘扫描序列,从而计算出磁头移动的总距离和平均寻道长度。 2系统设计 2.1系统总体设计 2.1.1数据结构描述 voidFCFS(intcidao[],intm)输入磁道号,按先来先服务的策略输出磁盘请求序列和磁盘扫描序列,求移动的总距离和平均寻道长度,输出移动的总磁道数和平均寻道长度。

相关文档
相关文档 最新文档