操作系统实验报告

时间:2024.4.7

 

计算机操作系统

实验报告

                                                                                               

东北大学秦皇岛分校

计算机与通信工程学院


实验1使用动态优先权的进程调度算法的模拟

1实验目的

    通过动态优先权算法的模拟加深对进程概念和进程调度过程的理解。

2实验内容

(1)实现对N个进程采用动态优先权优先算法的进程调度。

(2)每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:

  进程标识数 ID。

  进程优先数 PRIORITY,并规定优先数越大的进程,其优先权越高。

  进程已占用的CPU时间CPUTIME。

  进程还需占用的CPU时间ALLTIME。当进程运行完毕时,ALLTIME变为0。

  进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,将进入阻塞状态。

  进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间片后,将转换成就绪状态。

  进程状态STATE。

  队列指针NEXT,用来将PCB排成队列。

(3)优先数改变的原则:

  进程在就绪队列中停留一个时间片,优先数加1。

  进程每运行一个时间片,优先数减3。

(4)假设在调度前,系统中有5个进程,它们的初始状态如下:

   ID            0      1      2      3      4

   PRIORITY     9      38     30     29     0

   CPUTIME      0      0      0      0      0

   ALLTIME      3      3      6      3      4

   STARTBLOCK  2      -1     -1      -1     -1

   BLOCKTIME    3      0      0      0      0

   STATE        ready   ready  ready   ready   ready

(5)为了清楚的观察各进程的调度过程,程序应将每个时间片内的情况显示出来,参照的具体格式如下:

RUNNING PROG:i

READY-QUEUE:->id1->id2

BLOCK-QUEUE:->id3->id4

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = == = =

ID              0     1     2     3     4

PRIORITY       P0    P1   P2    P3     P4

CUPTIME       C0    C1   C2    C3    C4

ALLTIME       A0    A1   A2    A3   A4

STARTBLOCK   T0    T1   T2    T3    T4

BLOCKTIME    B0    B1   B2    B3    B4

STATE          S0    S1   S2    S3     S4

3实验结果(给出编写的程序源代码和运行结果的截图)

 源代码:

实验心得:

考虑了进程在执行过程中可能发生的多种情况, 更好的体现了进程的就绪态、执行态、阻塞态三者之间的关系以及相互的转换
实验2使用动态分区分配方式的模拟

1实验目的

(1)了解动态分区分配方式中使用的数据结构和分配算法

(2)加深对动态分区存储管理方式及其实现过程的理解。

2实验内容

(1)分别实现采用首次适应算法和最佳适应算法的动态分区分配过程alloc()和回收过程free()。其中,空闲分区通过空闲分区链来管理:在进行内存分配时,系统优先使用空闲区低端的空间。

(2)假设初始状态下,可用的内存空间为640KB,并有下列的请求序列:

?作业1申请130KB。

?作业2申请60KB。

?作业3申请100KB。

?作业2释放60KB。

?作业4申请200KB。

?作业3释放100KB。

?作业1释放130KB。

?作业5申请140KB。

?作业6申请60KB。

?作业7申请50KB。

?作业6释放60KB。

分别采用首次适应算法和最佳适应算法,对内存块进行分配和回收,要求每次分配和回收后显示出空闲分区链的情况。

3实验结果(给出编写的程序源代码和运行结果的截图)

 首次适应:

 

实验心得:

  这次试验模拟内存分配,模拟了操作系统是如何通过作业调度选择作业进入内存以及系统是如何为进入内存的作业分配内存空间,实现多道作业同时驻留内存,就绪进程队列中的多个进程是如何以分式方式共享CPU,作业运行完成离开系统时,系统如何进行内存回收,采用的是首次适应算法,应用的数据结构是双向链表。实际上整个程序是比较简单的,但是由于自己对链表的应用不熟悉,查阅课本文库才实现内存分配这简单的功能,这个程序的缺陷就是在进行操作选择时没有进行分配空间的情况下回收空间会出现错误。本次试验使我对链表有了一定的了解但是还需继续学习。

最佳适应算法:

实验心得:

 建立2个链表,空闲链表和已分配链表来管理内存

实验3请求调页存储管理方式的模拟

1实验目的

通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求调页系统的原理和实现过程的理解。

2实验内容

(1)假设每个页面中可存放10条指令,分配给一作业的内存块数为4。

(2)模拟一作业的执行过程。该作业共有320条指令,即它的地址空间为32页,目前它的所有页都还未调入内存。在模拟过程中,如果所访问的指令已经在内存中,则显示其物理地址,并转下一条指令。如果所访问的指令还未装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。如果4个内存块中均已装入该作业,则需进行页面置换。最后显示其物理地址,并转下一条指令。在所有320条指令执行完毕后,请计算并显示作业运行过程中发生的缺页率。

(3)置换算法:请分别考虑OPT、FIFO和LRU算法。

(4)作业中指令的访问次序按下述原则生成:

?50%的指令是顺序执行的。

?25%的指令是均匀分布在前地址部分。

?25%的指令时均匀分布在后地址部分。

3实验结果(给出编写的程序源代码和运行结果的截图)

源代码:

实验心得:

   通过本次实验,对FIFO,LRU页面调度算法有了更加深刻的理解,根据实验结果可以比较两者命中率的大小,LRU页面调度算法的性能更好;

  实验4简单文件系统的实现(A.7)

1实验目的

 通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。

2实验内容

(1)在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简单的单用户文件系统。在退出这个简单的文件系统时,应将该虚拟文件系统保存到磁盘上,以便下次可以再将它恢复到内存的虚拟磁盘空间中。

(2)文件存储空间的分配可采用显示链接分配或其他的办法。

(3)空闲空间的管理可选择位示图或其他的办法。如果采用位示图来管理文件存储空间,并采用显示链接分配方式,那么可以将位示图合并到FAT中。

(4)文件目录结构采用多级目录结构。为了简单起见,可以不使用索引结点,其中的每个目录项应包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。

(5)要求提供以下有关的操作:

format:对文件存储器进行格式化,即按照文件系统的结构对虚拟磁盘空间进行布局,并在其上创建根目录以及用于管理文件存储空间等的数据结构。

mkdir:用于创建子目录。

rmdir:用于删除子目录。

ls:用于显示目录。

cd:用于更改当前目录。

create:用于创建文件。

open:用于打开文件。

close:用于关闭文件。

write:用于写文件。

read:用于读文件。

rm:用于删除文件。

思考:

(1)如果引入磁盘索引结点,上述实现过程需要哪些修改?

(2)如果设计的是一个多用户文件系统,则又要进行哪些扩充?

3实验结果(给出编写的程序源代码和运行结果的截图并回答思考问题)

源代码:

实验心得:

基本上实现了DOS下简单文件系统的实现,通过学习基本掌握了文件系统的存储结构


第二篇:操作系统实验报告十二


《采用无缓冲方式实现文件读/写》实验报告

实验序号: 十二 实验项目名称:采用无缓冲方式实现文件读/写—共享内存

操作系统实验报告十二

操作系统实验报告十二

操作系统实验报告十二

操作系统实验报告十二

操作系统实验报告十二

操作系统实验报告十二

更多相关推荐:
操作系统实验报告 完全版

《计算机操作系统》实验报告班级:姓名:学号:实验一进程控制与描述一、实验目的通过对Windows2000编程,进一步熟悉操作系统的基本概念,较好地理解Windows2000的结构。通过创建进程、观察正在运行的进…

操作系统实验报告

操作系统实验报告实验名称理解UNIXLINUXShell及UNIX的进程树成绩专业班级计科姓名学号联系电话实验日期20xx年12月5日实验报告日期20xx年12月5日一实验名称理解UNIXLINUXShell及...

操作系统实验报告

目录实验一进程的创建2实验二进程控制3实验三进程的管道通信4实验四消息通信6实验五进程调度算法8实验六FIFO页面置换算法12实验七LRU页面置换算法14实验八磁盘调度18实验一进程的创建1一实验目的编写一段程...

操作系统实验报告

操作系统实验报告学号姓名班级实验一实验报告实验名称并发程序设计实验1实验目的掌握在程序中创建新进程的方法观察并理解多道程序并发执行的现象实验原理fork建立子进程子进程得到父进程地址空间的一个复制返回值成功时该...

计算机操作系统课程设计报告

《操作系统原理》实验报告院(部):管理工程学院专业:信息管理与信息系统实验项目:实验一二三五班级:信管102姓名:学号:目录引言.........................................…

操作系统课程设计实验报告

操作系统课程设计实验报告姓名学号班级地点20xx年月日任务说明共完成四个任务任务一IO系统调用开销比较任务二实现一个简单的shell任务三进程线程同步任务四文件内容的并行搜索其中任务一完成了标准c和unix下的...

操作系统实验报告

郑州航空工业管理学院计算机科学与应用系课程设计报告操作系统原理操作系统课程设计目录1题目简述22需求分析221设计思想222要求323任务324运行环境325开发工具33概要设计与详细设计331系统流程图332...

操作系统实验报告

一实验内容模拟时钟中断的产生及设计一个对时钟中断事件进行处理的模拟程序二实验目的现代计算机系统的硬件部分都设有中断机构它是实现多道程序设计的基础中断机构能发现中断事件且当发现中断事件后迫使正在处理器上执行的进程...

操作系统上实验报告3

操作系统实验三报告实验题目进程管理及进程通信实验环境虚拟机Linux操作系统实验目的1利用Linux提供的系统调用设计程序加深对进程概念的理解2体会系统进程调度的方法和效果3了解进程之间的通信方式以及各种通信方...

操作系统原理实验报告02

操作系统原理实验报告实验序号2实验项目名称Windows基本进程管理

操作系统原理实验报告

操作系统原理实验报告一课程设计的题目根据操作系统原理课程的课堂教学内容结合自己的知识积累情况题目可从下述拟题中选择亦可自定二实验设计的内容在Linux或Windows操作系统下用C语言进行操作系统相关的设计开发...

操作系统原理实验报告05

操作系统原理实验报告实验序号5实验项目名称线程的同步

操作系统实验报告(38篇)