太原理工大学操作系统实验报告2016资料_第1页
太原理工大学操作系统实验报告2016资料_第2页
太原理工大学操作系统实验报告2016资料_第3页
太原理工大学操作系统实验报告2016资料_第4页
太原理工大学操作系统实验报告2016资料_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课程名称:操作系统B 实验项目:操作系统实验 实验地点: 逸夫楼402、逸夫楼502教室 专业班级: 软件1415班 学生姓名: 朱伟学号:2014005960 指导教师: 张俊花 2016年11月28日 实验一几种操作系统的界面 一、目的和要求 (一)目的 本实验的目的是使学生熟悉12种操作系统的界面,在熟练使用机器的基础上,能了解各种操作命令 和系统调用在系统中的大致工作过程。也就是通过操作系统的外部特征,逐步深入到操作系统的内部实质 内容中去。 (二)要求 1. 能熟练的在1 2种操作系统的环境下工作,学会使用各种命令,熟悉系统提供的各种功能,主动 而有效地使用计算机。 2. 熟悉系统

2、实用程序的调用方法和各种系统调用模块的功能和作用 二、实验内容 在某种操作系统的环境下建立、修改、运行、打印源程序和结果,最后撤消一个完整的程序。 提示:可按下述步骤进行 1.编写一个完整的源程序,通过编辑命令送入机器,建立源程序文件; 2 .编译该源文件,建立相应的目标文件; 3. 编译有错时,再用编辑命令修改源文件,消除全部词法和语法错误; 4. 连接目标文件,形成可执行文件; 5. 执行该文件,得到结果; 6. 打印输出源程序和运行结果; 7. 撤消本次实验中形成的所有文件。 三、实验步骤及程序流程图 1、按住 Windows键+R输入notepad回车调出记事本。 2、编辑一个java

3、程序选择另存为F:。 class deitio public static void niain(String args) ( System, out. print C软件 1415班 朱伟 2014005960); 3、按住Windows键+R输入cmd回车。 4、进入 Dos界面输入 F:。 5、输入dir查看java文件,使用javac命令进行编辑 F:dir 驱祕H F屯蔚卷是新加卷 卷的序列号是B6Cfi-E63D Pf的目录 201 五、实验心得 java小程序熟悉DOS命令的使用。实验中 这次实验是在win7操作系统下进行的,通过编译连接一个 用到的DOST具: dir :列出当

4、前控制台所在的路径下的所有文件以及文件夹。 javac :编译。 这次实验,通过查找一些常用的DOS命令,进一步熟悉了 DOS命令的使用,了解了部分操作命令和系 统调用在系统中的工作过程。 实验二进程调度程序设计 一、目的和要求 (一) 目的 进程是操作系统最重要的概念之一,进程调度是操作系统的主要内容,本实验要求学生独立地用高 级语言编写一个进程调度程序,调度算法可任意选择或自行设计,本实验可使学生加深对进程调度和各种 调度算法的理解。 (二) 要求 1. 设计一个有几个进程并发执行的进程调度程序,每个进程由一个进程控制块(PCB)表示,进程控制 块通常应包括下述信息:进程名,进程优先数,进

5、程需要运行的时间,占用CPU的时间以及进程的状态等, 且可按照调度算法的不同而增删。 2. 调度程序应包含2 3种不同的调度算法,运行时可以任选一种,以利于各种方法的分析和比较。 3. 系统应能显示或打印各进程状态和参数的变化情况,便于观察。 二、示例 1.题目 本程序可选用优先数法或简单轮转法对五个进程进行调度。每个进程处于运行R(run)、就 绪W(wait)和完成F(finish) 三种状态之一,并假定起始状态都是就绪状态W 为了便于处理,程序中进程的运行时间以时间片为单位计算。各进程的优先数或轮转时间片数、以 及进程需要运行的时间片数,均由伪随机数发生器产生。 进程控制块结构如表 2-

6、1所示: 表 2-1PCB 进程标识符 链指针 优先数/轮转时间片数 占用CPU寸间片数 进程所需时间片数 进程状态 进程控制块链结构如图 2-1所示: RUNHEAD TAIL 图2-1进程控制块链结构 其中:RU当前运行进程指针; HEA进程就绪链链首指针; TAIL 进程就绪链链尾指针。 2.算法与框图 程序框图如图2-2所示。 开始 输入调度算法alog 生成并按优先数大小 排列进程控制块链 生成并按进入次序 排列进程控制块链 工 1 链首进程投入运行 链首进程投入运行 priority round robin alog=priority/round robin? *- 时间片到,进程

7、时间片 数减1,优先数减3 时间片到,进程时间片数 减1,占用CPU时间加1 否 进程时 间片数 为0? 是 优先数 大于链 首进程? 是 Y否 撤消该进程 运行进程退岀,按 优先数插入进程链 从链首取一个 进程投入运行 进程队列空? 否 是 运行进程退岀, 排到进程链尾部 占用处 理机时 间片到? 否 是 撤消该进程 进程时 间片数 为0? 否 是 结束 否 是 结束 从链首取一个 进程投入运行 进程队列空? 图2-2进程调度框图 (1) 优先数法。 进程就绪链按优先数大小从大到小排列,链首进程首先投入运行。每过一个时间片, 运行进程所需运行的时间片数减1,说明它已运行了一个时间片,优先数也

8、减3。理由是该进程如果在一个时 间片中完成不了,优先级应降低一级。接着比较现行进程和就绪链链首进程的优先数,如果仍是现行进程高 或者相同,就让现行进程继续运行,否则,调度就绪链链首进程投入运行。原运行进程再按其优先数大小插 入就绪链,且改变它们对应的进程状态,直至所有进程都运行完各自的时间片数。 (2) 简单轮转法。进程就绪链按各进程进入的先后次序排列,链首进程首先投入运行。进程每次占用 处理机的轮转时间按其重要程度登入进程控制块中的轮转时间片数记录项(相应于优先数法的优先数记录项 位置)。每过一个时间片,运行进程占用处理机的时间片数加1,然后比较占用处理机的时间片数是否与该 进程的轮转时间片

9、数相等,若相等说明已到达轮转时间,应将现运行进程排到就绪链末尾,调度链首进程占 用处理机,且改变它们的进程状态,直至所有进程完成各自的时间片。 三、实验代码: #include #include #define furthest 5 struct process/*PCB STRUCTURE*/ int id; int priority; int cputime; int alltime; cha r state; int next; prochainfurthest - 1; int procnum; int rand(); int algo; int run, head, tail, j;

10、 void print(); void insert( int q); void insert2(); void timesch(); void init(); void prisch(); int main() /*MAIN PROGRAM*/ agan: printf( type the algorithm is (1:RR,2:PRIO):); scanf( %d, if (algo = 2) init(); prisch(); else if (algo = 1) printf( output of round robin.n ); init(); timesch(); else pr

11、intf( try again,pleasen ); goto agan; for (j = 1; j = 40; j+) printf( = ); printf( nn ); for (j = 1; j = 40; j+) printf( = ); printf( nn ); printf( system finishedn); getchar(); void print() /*PRINT THE RUNNING PROCESS,WAITING QUEUE AND PCB SEQUENCE LIST*/ int k, p; for (k = 1; k = 40; k+) printf( =

12、 ); printf( nrunning proc. ); printf( waiting queue. ); printf( n %d , prochainrun.id); p = head; while (p != 0) printf( %5d, p); p = prochainp.next; printf( n ); for (k = 1; k = 40; k+) printf( = ); printf( n ); printf( id ); for (k = 1; kfurthest + 1; k+) printf( %5d, prochaink.id); printf( n ); p

13、rintf( priority ); for (k = 1; kfurthest + 1; k+) printf( %5d, prochaink.priority); printf( n ); printf( cputime ); for (k = 1; kfurthest + 1; k+) printf( %5d, prochaink.cputime); printf( n ); printf( alltime ); for (k = 1; kfurthest + 1; k+) printf( %5d, prochaink.alltime); printf( n ); printf( sta

14、te ); for (k = 1; kfurthest + 1; k+) printf( %5c , prochaink.state); printf( n ); printf( next ); for (k = 1; kfurthest + 1; k+) printf( %5d, prochaink.next); printf( n ); void insert( int q)/*INSERT A PROCESS*/ int p, s; p = head; s = prochainhead.next; while (prochainq.priorityprochains.priority)

15、s = prochains.next; prochainp.next = q; prochainq.next = s; void insert2()/*PUT A PROCESS ONTO THE TAIL OF THE QUEUE*/ prochaintail.next = run; tail = run; prochainrun.next = 0; void init() /*CREATE A WAITING QUEUE*/ int i; head = 0; if (algo = 2) for (i = 1; ifurthest + 1; i+) prochaini.id = i; pro

16、chaini.priority = (rand() + 11) % 41; prochaini.cputime = 0; prochaini.alltime = (rand() + 1) % 7; prochaini.state = W ; prochaini.next = 0; if (prochaini.priorityprochainhead.priority) else prochaini.next = head; head = prochaini.id; else for (i = 1; ifurthest + 1; i+) prochaini.id = i; prochaini.p

17、riority = (rand() + 1) % 3 + 1; prochaini.cputime = 0; prochaini.alltime = (rand() + 1) % 7; prochaini.state = W ; prochaini.next = (i + 1) % (furthest + 1); head = 1; tail = furthest; prochainfurthest.next = 0; run = head; prochainrun.state = R ; head = prochainhead.next; prochainrun.next = 0; prin

18、t(); void prisch()/*THE PROCESS WITH PRIO ALGORITHM*/ while (run != 0) prochainrun.cputime += 1; prochainrun.priority -= 3; prochainrun.alltime -= 1; if (prochainrun.alltime = 0) prochainrun.state = F ; prochainrun.next = 0; if (head != 0) run = head; prochainrun.state =R ; head = prochainhead.next;

19、 else prochain0.id = prochainrun.id; run = 0; else if (prochainrun.priority prochainhead.priority) insert(run); run = head; prochainrun.state =R ; head = prochainhead.next; print(); void timesch() /*THE PROCESS WITH RR ALRORITHM*/ while (run != 0) prochainrun.alltime -= 1; prochainrun.cputime += 1;

20、if (prochainrun.alltime = 0) prochainrun.state = F ; prochainrun.next = 0; if (head != 0) run = head; prochainrun.state =R ; head = prochainhead.next; else prochain0.id = prochainrun.id; run = 0; else if (prochainrun.cputime = prochainrun. priority) prochainrun.cputime = 0; insert2(); run = head; pr

21、ochainrun.state = R ; head = prochainhead.next; print(); 四、实验结果: 1) D:da ma2.cppDebug2: cop.exe id 1 2 3 4 5 priority 1 3 1 2 3 cputine 1 3 1 119553 alltine 0 0 0 0-19559 state F F F F R nex t 0 0 0 0 0 S SS SS running proc waiting queue 5 =ZZ id 1 2 3 4 5 priority 1 3 1 2 3 cputine 1 3 1 119554 all

22、tine 0 0 0 0-19560 state F F F F R next 0 0 0 0 0 running proc. wait ing queue 5 id 1 2 3 4 5 priority 1 3 1 2 3 cputine 1 3 1 119555 alltine 0 0 0 0-19561 state F F F F R next 0 0 0 0 0 s zs ss running proc waiting queue. 5 id 1 2 3 4 = 5 priority 1 3 1 2 3 cputine 1 3 1 119556 alltine 0 0 0 0-1956

23、2 state F F F F R next 0 0 0 0 0 running proc 5 wait ing queue. 二;tda ria.2-l.ppDebug j-1 cpp.exe cputime 1 3 1 1748856 all七imE 0 0 0 0-748862 state F F F F R next 0 0 0 0 0 running proc. 5 wa it ing queue id 1 2 3 4 5 priority 1 3 1 2 3 cputime 1 3 1 1748857 all tine 0 0 0 0-748863 state F F F F R

24、next 0 0 0 0 0 Funming proc 5 wait in gf queue. id 1 2 3 4 5 pr ioritv 1 3 1 2 3 cput ime 1 3 1 1748858 alltime 0 6 0 0-748864 state F F F F R next 0 0 0 0 0 running proc. 5 wait ing queue. id 1 2 3 4 5 priority 1 3 1 2 3 cputzime 1 3 1 1748859 allt ine 0 0 0 0-748865 state F F F F R next 0 0 0 0 ru

25、nning proc wait ingf queue. 5 id 1 2 3 4 5 pr iority 1 3 1 2 3 cput ime 1 3 1 1748860 alltime 0 0 0 0-748866 state F F F F R id 1 2 3 4 5 priority 5 13 24 6-3450 cputine 2 6 3 1 1162 alltine 0 0 0 0-1162 state F F F F R next 0 0 0 0 0 running proc. 5 waiting queue. id 1 s Mm 2 3 4 5 priority 5 13 24

26、 6-3453 cputine 2 6 3 1 1163 alltine 0 0 0 0-1163 state F F F F R next 0 0 asmm 0 0 OHB W 0 running proc. 5 waiting queue id 1 2 3 4 5 priority 5 13 24 6-3456 cputine 2 6 3 1 1164 alltine 0 0 0 0-1164 state F F F F R next 0 0 0 0 0 running proc. waiting queue. 5 id 1 MM 2 3 4 5 priority 5 13 24 6-34

27、59 cputine 2 6 3 1 1165 allt ine 0 0 0 0-1165 state F F F F R next 0 0 MM 0 0 0 running proc. waiting queue. 5 J D:daim a2-l.cppDebug2-lxpp.exe state F F F F R next 0 0 0 0 0 runniingr proc. ua it in si Queue * 5 id 1 2 3 4 5 pr ioi*it5i 5 13 24 6-15132 cputine 2 E 3 1 5056 allt line 0 0 0 0-5056 st

28、ate F F F F R next 0 0 0 0 0 Funniingr pi*oc 5 ua itinr queue, id 1 2 3 4 5 priority 5 13 24 6-15135 cputine 2 6 3 1 5057 allt ine 0 0 0 0-5057 state F F F F R next 0 0 0 0 0 riinninsF proc ua :Lt in si queue * id 1 2 3 4 5 pr ioF iti 5 13 24 6-1513B cputine 2 6 3 1 5058 alltime 0 0 0 0-5058 state F

29、 F P F R next 0 0 0 0 0 Funningr pi*oc w E 嵋 it inq queue - id 1 2 3 4 5 pr iorit 5 13 24 6-15141 cputine 2 6 3 1 5059 alltime 0 0 0 O-5B59 F F F F R next 0 0 e 0 0 五、实验心得: 通过本次实验,加深了对进程调度和调度算法的理解。 CPU分 对于简单轮转法,既将全部的进程按照进入的先后顺序排成一个就绪队列,设置每隔一段时间后将 配给队列中新的队首进程,这样就可以保证就绪队列中的所有进程在确定的时间段内都能获得一个时间片 的处理机时间

30、。 而对于优先数法,本次试验中使用了动态优先数对进程进行排序,即就绪队列按优先数从大到小进行 排列,而各进程的优先数随着进程的推进而改变,以达到获取更好的调度性能的目的。 简单轮转法有效的保证了队列中的所有进程都能分配到处理机,而优先数法则可防止一个长作业长期 的垄断处理机。 实验三存储管理程序设计 一、目的和要求 (一)目的 存储管理的主要功能之一是合理地分配主存空间。请求页式管理是一种常用的虚拟存储管理技术。 本实验的目的是通过请求页式存储管理中页面置换算法的模拟设计,来了解虚拟存储技术的特点,掌 握请求页式存储管理的页面置换算法。 (二)要求 模拟页式虚拟存储管理中硬件的地址转换和缺页中

31、断的处理过程,并用先进先出调度算法(FIFO )处 理缺页中断。 二、提示 (1)为了装入一个页面而必须调出一页时,如果被选中调出的页面在执行中没有修改过,则不必把该 页重新写到磁盘上(因磁盘上已有副本)。因此,在页表中可以增加是否修改过的标志,当执行“存”指 令、“写”指令时把对应页的修改标志置成“1 ”,表示该页修改过,否则为“0 ”,表示该页未修改过。 页表格式如表3-1所示。 表3-1 页表格式 页号 标志 主存块号 修改标志 磁盘上的位置 (2)设计一个地址转换程序来模拟硬件的地址转换和缺页中断处理过程。当访问的页在主存时则形成 绝对地址,但不去模拟指令的执行,可用输出转换后的绝对地

32、址来表示一条指令已完成。当访问的页不在 主存时则输出“ *该页页号”来表示硬件产生了一次缺页中断。模拟地址转换的程序流程如图3-1所示。 (3)编制一个FIFO页面调度程序。FIFO页面调度算法总是先调出作业中最先进入主存的那一页,因此, 可以用一个数组来构成页号队列。数组中每个元素是该作业已在主存的页面号,假定分配给作业的主存块 数为m且该作业开始的 m页已装入主存,则数组可由m个元素组成: P0,P1,,,Pm-1 它们的初值为 P0 : =0, P1 : =1, , ,Pm-1 : = m-1 用一指针k指示当要装入新页时应调出的页在数组的位置,k的初值为“ 0”。 三、实验报告内容要求

33、 编程实现前述功能。 当产生缺页中断后,操作系统总是选择Pk所指出的页面调出,然后执行 Pk:=要装入的新页页号 k : =(k+1) mod m 在实验中不必实际地启动磁盘执行调出一页和装入一页的工作,而用输出“OUT调出的页号”和“ IN要装 入的新页页号”来模拟一次调出和装入的过程。模拟程序的流程见图3-1。 (4) 假定主存的每块长度为1024个字节,现有一个共7页的作业,其副本已在磁盘上。系统为该作业 分配了 4块主存块,且该作业的第 0页至第3页已经装入主存,其余 3页尚未装入主存,该作业的页表见 表3-2所示。 表3-2 作业的页表 标志 主存块号 修改标志 在磁盘上的位置 0

34、1 5 0 011 1 1 8 0 012 2 1 9 0 013 3 1 1 0 021 4 0 0 022 5 0 0 023 6 0 0 121 如果该作业依次执行的指令序列如表3-3所示。 表3-3作业依次执行的指令序列 操作 页号 页内地址 操作 页号 页内地址 + 0 070 移位 4 053 + 1 050 + 5 023 X 2 015 存 1 037 存 3 021 取 2 078 取 0 056 + 4 001 - 6 040 存 6 084 依次执行上述的指令序列来调试你所设计的程序(仅模拟指令的执行,不必考虑指令序列中具体操作的执 行) (5) 为了检查程序的正确性,可

35、自行确定若干组指令序列,运行设计的程序,核对执行结果。 四、代码: #in elude #i nclude #in clude using n amespace std; struct pageTable / 定义页表 int address; / 地址 int page; / 页号 int block; / 块号 ; typedef struct pageTable PAGETABLE; PAGETABLE *pt; const int first_memory = 1000; / 内存首地址 int work320; / 作业 int index, offset; /index 是作业的页

36、号, offset 为页内偏移地址 PAGETABLE*oldPtr; /minPtr 指向驻留时间最久的页 int count1; / 记数器,用于记录发生的缺页数 bool is_LRU = false ; / 是否是 LRU算法 void init(); void insertPage(); void pushback_Page(PAGETABLE *, PAGETABLE *); void print(PAGETABLE *); void run( int ); void find_FIFO(); void find_LRU(); void main( void ) int i = 0

37、; while (1) cout nPlease select a number(1,2,0) endl; cout 1- 先进先出算法( FIFO) endl; cout 2- 最久未使用算法( LRU) endl; cout 0- 程序结束 i; if (i = 1) cout nThis is a example for FIFO: endl; is_LRU = false ; init(); / 构造页表和内存 else if (i = 2) endl; cout next = NULL; for ( int i = 0; inext; / 初始化最久的页面 cout 页表初始状态为:

38、 endl; print(pt); for ( int k = 0; k320; k+) / 初始化作业 workk = k; / 作业运行 for ( int f = 0; f53; f+) int m, m1, m2; m = rand() % 320; if (m = 319) m = 318; run(m); print(pt); run(m + 1); print(pt); if (m = 0) m1 = 0; else m1 = rand() % m; run(m1); print(pt); run(m1 + 1); print(pt); m2 = rand() % (320 -

39、m) + m - 1; if (m20) m2 = 318; if (m2 = 319) m2 = 318; run(m2); print(pt); run(m2 + 1); print(pt); rate = ( double )count / 318 * 100; cout nn 缺页率为: rate % address = id; newPage-page = -1; newPage-block = blockId; newPage-next = NULL; pushback_Page(pt, newPage); else cout 没有内存足够的空间为页表分配! next; while

40、 (current != NULL) previous = current; current = current-next; previous-next = item; void print(PAGETABLE *ptr) temp = ptr-next; cout 页号 块号 endl; while (temp != NULL) cout page block next; void run( int num) int universal; PAGETABLE *previous, *current; index = worknum / 10;/ 程序所在的页号 offset = worknu

41、m % 10; / 页内的位移量 previous = pt; current = previous-next; while (current != NULL current = current-next; if (current = NULL) cout n 作业 num 没有在内存,发生缺页中断 block) * 10 + offset; cout n 作业 num 所在内存的物理地址为 universal next = NULL) universal = first_memory + (current-block) * 10 + offset; cout n 作业 num 所在内存的物理

42、地址为 universal next = current-next; ptr = pt-next; while (ptr-next != NULL) ptr = ptr-next; ptr-next = temp; temp-next = NULL; universal = first_memory + (temp-block) * 10 + offset; cout n 作业 num 所在内存的物理地址为 universal endl; 五、结果: D:daima2014005960Debug2014005960.exe Piease select a numbeir 作业所在风存的物理地址

43、为1001 页号疾号 0 1 17 14 作业276没有毎陵,发生缺页中断 页面开始置 0 1 2 3 *贝 回廿兴刁宜扌央* 置换后作业在岗存药物理地址为 页号 27 1 17 11 1006 块号 0 1 2 3 0 1 2 3 块号 0 1 2 3 作业277所在内存的物理地址为1007 页号 27 1 17 11 作业1所在内存的物理地址为1001 页号疾号 0 1 17 14 0 1 2 3 作业216没有毎发生缺页中断 萱换后作业在卤存苗物理地址为1016 _块号 0 1 XX MMXX 页面开丈 块号 0 1 2 3 作业118所在内存的物理地址为1038 页号 0 1 17 1

44、1 块号 0 1 2 3 页号 27 21 17 11 作业21?所在內存的物理地址为1017 页号块号 270 211 172 113 作业291没有在内压 发生缺页中断 置换后作业在岗存苗物理地址为1021 页号 2? 21 29 11 块号 0 1 2 j D:di ma2014005960Debug2014005$60.exM 0 1 2 3 作业齬2所在内存的物理地址为1022 页号- 27 21 29 11 块号 0 1 作业“?没有建应发生缺页中断 置换后作业在卤存前物理地址为103? 页号 - 2? 21 29 19 电发生缺页中断 作业近躍有发生缺页中断 *页面开始置换* 匱

45、换后罪亚总肉荐的物理地址为100 |页号 16 21 29 19 冠发生缺页中断 块号 0 1 块号 0 1 2 作业1阮所在内存的物理地址为 页号 - 16 21 29 19 1007 块号 1 作业8所在内存的物理地址为1038 页号块号 27fi 211 292 193 作业214所在內存的物理地址为 页号- 1S 21 29 19 块号 0 1 2 1014 作业段有隹臨 发生缺页中断 置换后祜並住岗存的物理地址为100& 侦号- 1S 21 29 19 MX WK 0 1 2 3 作业却5所在內存的物理地址为 页号 - 16 21 29 19 块号 0 1 1015 |作业6?所在内

46、存的物理地址为1007 _块号 0 1 2 缺页率为:也 页号 16 21 29 19 Please select a numbeil2*0 丄一先进先出算法(FIFO) 2用算法(LRU) 0一程序结束 (2 )最久未使用算法 LRU D:daima2014005960Debug2014005960.S D:daima2014005960Debug2014005960.exe 页号 18 28 2 17 物理地址为1001 伍业17?所在内存的物理地址为101? -块号 2 3 0 1 作业91殁頁在0舊宀发生缺页中断 呈换后作亚徽嚮 块号 0 1 作业51没有在 *页 面幵? 置换后传业生

47、 页号块号 I J -A- *页面幵 28 2 17 块号 2 3 0 1 发生缺页中断 的物理地址为1021 1002 1 17 5 0 9 2 0 2 17 5 块号 1 2 3 0 块号 2 3 0 1 作业52所在內存的物理地址为1022 页号奴号 28 2 17 作业8没有在內尼盏生缺页中断 *页面幵始置换* 在岗存药物理地址为1038 3 0 1 2 作业26殺有ftfW,发生缺页中断 *贝 问开丈台首検口 口只口 口口 萱换后祜业在卤存胡物理地址为10H 页号一 26 作业262所在內存的物理地址为1012 页号 5 0 9 26 作业9所在內存的物理地址为1039 页号疾号 2

48、 1? 0 1 2 3 作业丄08沒有至卩 置换后作业在岗 页号 10 0 9 26 块号 2 3 0 发生缺页中断 物理地址为1028 D:daima2014005960Debug2014005960 a、D:daima2014005960Debug2014005960 作业109所在內存的物理地址为1029 页号块号 0 9 26 10 3 0 1 2 作业295没有在内压 发生缺页中断 置换后作业左岗存苗物理地址为1035 页号 29 9 26 10 作业88逡直在内奁发生缺页中断 置换后祜业住卤存苗物理地址为1018 页号块号 8 1 102 293 120 * 块号 3 0 1 2 1019 12 0 8 1 作业296所在内存的物理地址为1036 页号 9 26 10 29 块号 0 1 2 3 作业129所在内存的物理地址为1009 页号块号 102 293 8 1 12 0 作业123OJ 12 26 10 29 殳有隹内佥发生缺页中断 页面幵始置换* 徒业左

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论