c#分页_[内附完整源码和文档] 基于C#实现的操作系统模拟系统

一、课程设计的性质与目的
操作系统是计算机系统配置的基本软件之一,其作用是对计算机系统进行统一的调度和—管理,提供各种强有力的系统服务,为用户创造既灵活又方便的使用环境。本课程是计算机及应用专业的一门专业主干课和必修课。通过课程设计,使学生掌握操作系统的基本概念、设计原理及实施技术,具有分析操作系统和设计、实现、开发实际操作系统的能力。

二、课程设计任务
采用C或C#程序设计语言,模拟实现一个简单功能的操作系统。

三、设计要求
3.1 实现作业管理
创建作业

为每个作业定义一个作业控制块(包含作业标识、用户名称、预计运行时间、要求内存大小、作业大小、资源需求的类型和最大数量、以及其他所需信息等)
建立后备作业队列(不少于10个作业)
采用短作业优先调度算法

每次作业调度时,最多从后备队列选取5个作业调入内存

显示作业的调度情况

3.2 实现进程管理
假设每个作业只创建一个进程,进程控制块PCB包含进程标识、状态、大小、进程页表地址、资源类型和数量以及其他信息等

创建进程

申请空白进程控制块PCB
内存分配
初始化进程控制块
将新进程插入就绪队列
进程调度:采用时间片轮转进程调度算法,将CPU分配给就绪队列队首进程,原进程插入就绪队列队尾。显示各进程信息

当进程被调度执行时,提出资源请求,采用银行家算法实现资源分配,避免死锁

唤醒进程:当某类资源被释放时,则对该资源阻塞队列中的进程按顺序判断是否满足资源需要,如果满足资源需求,则把该进程插入就绪队列

终止进程:当进程完成时,释放内存,释放其他资源,撤销进程控制块PCB,进行作业调度。

3.3 实现内存管理功能
采用请求分页虚拟存储器管理方式,页面大小为1K个存储单元

建立一个存储分块表(MBT),表示内存所有物理页的当前状态

允许多进程并发执行,为每个进程建立一个页表,表示该进程中各逻辑页是否已经调入内存,如果已经调入,该逻辑页对应的内存物理页号

当进程发生缺页中断,并且没有空闲物理页时,采用LRU算法页面置换

当进程被调度执行时,模拟进程的访存过程:输入逻辑地址,转换为逻辑页号和页内地址,判断是否产生缺页中断完成调页,然后实现地址变换,查页表得到对应的物理页号,最后显示物理地址

四、总体设计
模拟实现操作系统的作业管理、进程管理和存储管理等功能。

v2-5a07c045811ae723222c6d0049a3808a_b.jpg

v2-ad3cdb8e8d05f6058962798001e278a6_b.jpg

完整的源码和详细的文档,上传到了 WRITE-BUG技术共享平台 上,需要的请自取:

https://www.write-bug.com/article/3168.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值