黑龙江大学操作系统

第一部分 课程目的与任务

一、课程基础

在学这门课之前,学生必须预修过高级语言、数据结构、离散数学方面的基本知识,并学习操作系统课程相关内容。

二、适应对象

计算机科学与技术-计算机应用; 软件工程-软件工程; 电子信息科学类-电子信息科学与技术;管理类-信息管理专业

三、教学目的

为配合“操作系统”课程的教学,通过模拟操作系统的实现,使学生能更深刻地领会操作系统工作原理和操作系统实现方法,并提高程序设计能力。

四、内容提要

本课程要求实现一套模拟单用户多任务操作系统的软件程序。该软件通过5个互相关联的模块模拟进程管理、存储管理、设备管理和文件管理四部分的主要内容,最终形成一套完整的模拟程序。


第二部分 主要内容及基本要求

一、进程控制

●基本要求:模拟操作系统内核对进程的控制和管理:包括进程的创建和撤销、进程状态的切换和简单的内存空间管理。

●参考学时:6学时

●实验提示:

  1. 定义管理每个进程的数据结构PCB:包含进程名称、队列指针、分配的物理内存区域(基址和长度)。每创建一个进程时,需要为其创建PCB并分配空闲内存空间,对PCB进行初始化,并加入就绪队列。(斜体为可选)

可参考如下数据结构(动态形式):

struct PCB{

char name[8];

struct PCB *next;

...

};

struct PCB *ready,*blocked,*running;

创建进程时申请空白PCB:

struct PCB *p=(struct PCB *)malloc(sizeof(struct PCB));

并把新建进程的PCB添加到就绪队列末尾:

add(ready,p);

其中,ready为就绪队列头节点,并在开始处分配了空间;add函数是链表中添加节点函数,代码参考如下:

void add(struct PCB *head, struct PCB *process){

   struct PCB *tmp=head;

   while(tmp->next!=NULL)

       tmp=tmp->next;

   tmp->next=process;

   process->next=NULL;

}

  1. 模拟触发进程状态转换的事件:采用键盘控制方法来模拟触发进程状态切换的事件(例如输入1代表创建新进程、2执行进程时间片到、3阻塞执行进程、4唤醒第一个阻塞进程、5终止执行进程),实现对应的控制程序。
  2. 根据当前发生的事件对进程的状态进行切换,并显示出当前系统中的执行队列、就绪队列和阻塞队列。
  3. *(选做)完成可变分区的分配与回收,创建进程的同时申请一块连续的内存空间,在PCB中设置好基址和长度,结束进程时回收分配的内存空间。分配可采用首次适应、最佳适应或最差适应算法,碎片大小为2Kb,最后回收所有进程的空间,对空间分区的合并。可以查看进程所占的空间和系统空闲空间。

可以用一个链表(如图1-1所示)来维护已分配的和空闲的内存段,其中一个段或者包含一个进程,或者是两个进程之间的空闲段。 在图1-1中,链表的每一项包含四个值域。第一个值域表示内存段是空闲或占用(例如,空闲段用H表示,进程占用的段用P表示);第二个值域表示内存段的起始位置,第三个值域表示内存段的长度;第四个值域为指向链表下一项的指针。该链表按照内存段的起始地址进行从小到大排序。这样排序的好处是方便内存空间的回收。一个要终止的进程一般会有两个邻居(除了在内存顶端和内存底端的进程)。邻居可能是进程也可能是空闲段。根据两个邻居的不同类型,可以分为四种回收情况(如图1-2所示)。在图1-2(a)中,对链表的更新只需要将P置为H;在图1-2(b)和(c)中,需要将P置为H,并将该项与另外一个相邻的空闲段的项合并为一项;在图1-2(d)中,需要将该项和两个邻居合并为一项。考虑到合并空闲段需要查看邻居,因此用双向链表会比单向链表更加方便。

(b) 管理内存空间的链表

●评分标准:满分20分

要求必须完成以下几个方面的内容:

  1. 能够模拟进程的创建与撤销过程;(4分)
  2. 对进程的状态进行全面的控制;(4分)
  3. 按先进先出方式管理就绪和阻塞队列,按队列输出进程状态 (2分)
  4. 完成可变分区的分配与回收 (3分)
  5. 界面清晰友好 (2分)
  6. 实验结束后撰写实验报告(5分)。

二、分页式存储管理

●实验目的:

  1. 熟练掌握分页式管理基本原理,并在实验过程中体现内存空间的分配与回收、地址转换过程。
  2. 掌握利用“位示图”管理内存与置换空间的分配与回收。
  3. 掌握基本的位运算。
  4. 掌握请求分页式存储管理基本原理,并在实验过程中体现内存与置换空间的分配与回收、地址转换以及缺页处理过程。

●实验内容:在实验1基础上实现分页式存储管理内存分配和地址转换过程。进一步实现请求分页式存储管理过程,包括内存和置换空间管理、地址转换以及缺页处理,能够体现FIFO和LRU算法思想。

●参考学时:8学时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光灿若星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值