基于C++语言开发的Windows环境微型操作系统

news/2024/7/5 9:47:24

一 需求分析

用高级语言编写程序,模拟实现一个简单功能的操作系统。

  • 实现作业调度(先来先服务)、进程调度功能(时间片轮转)

  • 实现内存管理功能(连续分配)

  • 实现文件系统功能(选做内容)

  • 这些功能要有机地连接起来

二 程序设计

2.1 算法简介

先来先服务算法:

如果早就绪的进程排在就绪队列的前面,迟就绪的进程排在就绪队列的后面,那么先来先服务(FCFS: first come first service)总是把当前处于就绪队列之首的那个进程调度到运行状态。也就说,它只考虑进程进入就绪队列的先后,而不考虑它的下一个CPU周期的长短及其他因素。FCFS算法简单易行,但性能却不大好。

时间片轮转算法:

时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。

动态分配算法:

主要算法有首次适应算法、循环首次适应算法、最坏适应算法、最佳是适应算法等,是一种具有较高性能的内存分配算法。

三 程序实现

3.1 开发与运行环境

  • 运行系统:Windows 10

  • 编译工具:Dev C++

3.2 主要方法介绍

方法功能
OS()操作系统主界面
jobS()作业调度算法(先来先服务)
courseS()进程调度算法(时间片轮转)
memory()内存管理算法

点击此处下载文档和源码


http://www.niftyadmin.cn/n/3102309.html

相关文章

驱动对象 设备对象 设备栈 乱杂谈

驱动对象 设备对象 设备栈 乱杂谈 作者: JIURL 主页: http://jiurl.yeah.net -------------------------------------------------------------------------------- 用有限的几句话就舒舒服服的建立起对驱动对象和设备对象的概念是不可能的。刚开始是…

基于VC++的MFC框架实现的飞机大战小游戏

一、类介绍 1.1 程序使用到的MFC类库中主要的类 CDC类 CRect类 CBitmap类 CImageList类 mfc框架:app类、wnd类、doc类、view类 1.2 项目包含的对象类 8个游戏类: enemy(敌人) bomb(敌人子弹) miss…

(WSS)WSS3.0安装文档库组件后恢复默认安全设置,上下文菜单消失了,想请教下各位老大是咋回事(问题有了突破)...

最近装了WSS3.0并且安装了文档库这个模板,原本我windows 2003的机器在鼠标移动到文档项目的名称列下某行的空白处会出现一个显亮的方框,左键单击后会出现一个上下文菜单,如下图: 后来因为其他机器(有win7的&#xff0c…

基于C语言的Linux环境下socket编程

一 需求分析 柏克莱套接字,又称为BSD 套接字是一种应用程序接口,用于网际插座与Unix域套接字,包括了一个用C语言写成的应用程序开发库,主要用于实现进程间通讯,在计算机网络通讯方面被广泛使用。 使用Berkeley套接字…

Windows下使用标准Shell接口遍历文件和文件夹

Windows下使用标准Shell接口遍历文件和文件夹(1) 在Windows中我们经常需要遍历一个文件夹或者遍历一个磁盘。本文介绍如何使用标准的Shell接口进行遍历。在介绍过程中会逐步的实现一个类似FileZilla的TreeViewListView的界面。我最近为psftp做界面的时候简单了解了一下这方面的…

基于Qt和OpenCV实现彩色图和灰度图的转换

一、实验目的与要求 1.1 目的 熟悉Qt可视化开发,理解C的面向对象思想 熟悉Qt和Opencv开发环境搭建 了解Qt消息机制 初步理解Opencv的用法 学会使用c异常处理 1.2 要求 使用Qt编写一程序,点击按钮从电脑目录选择jpg图片,显示在界面上 再…

VC++中如何判断当前用户是否具有管理员权限

代码一: BOOL CRSysInfo::IsUserAdminPrivilege(const CString & strUserName,BOOL & bAdminPrivilege) { bAdminPrivilege FALSE; PSID pSid NULL; DWORD cbSid 0; LPTSTR bufDomain NULL; …

linux下载html并查看代码 curl使用

linux下载html并查看代码 curl使用 linux下载html并查看代码 curl -L http://www.baidu.com posted on 2019-07-15 02:21 ysbl 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/ysbl/p/11186687.html