运行于Windows的 小型模拟操作系统MicroOS
@LLeavesG @yyb1012 @zhijiangjiaran @TIGERUNNAMED @Cplus-plus @mrliang
设计并实现一个具有操作系统基本功能的软件,
➢ 进程管理功能。 进程创建(new)、进程调度(scheduling)、进程阻塞(block)、进程唤醒(wakeup)、进程同步(synchronous)等。
➢ 内存管理功能。 进程存储空间的分配和回收,空闲空间的管理等。
➢ 文件系统。 目录/文件的创建和删除、空间分配和回收
➢ 设备管理。 设备的申请、分配、使用、释放等
➢ UI界面。
➢ 中断机制
(1)进程模块
- 为便于管理,每个进程需要有进程控制块PCB
- 进程的基本操作(创建、撤销、阻塞、唤醒合同步控制)
- 进程需要考虑五种进程状态在何时进行状态转移
- 进程需要能够换入换出。
- 需要使用调度算法对进程进行调度
- 进程允许并发,即需要使用时间片分给不同进程
- 由于时间片的提出,需要计时器中断
- 进程间与文件系统需要进行互斥操作
(2)内存模块
- 分配:当进程创建时,内存需要分配相应大小的内存空间给进程,包括内核内存分配用于存放PCB和页表信息,以及用户内存以页为单位分配给进程存放代码段和数据段内容;
- 释放:当进程结束后,需要将该进程所占用的空间释放,并对内存空间进行整理;
- 访问:当进程运行时,要对该进程的相应数据进行访问,内存需要通过逻辑地址到物理地址的映射找到所需要的数据,如果缺页需要触发缺页中断;
- 监控:需要能够实时的显示当前内存的占用情况。
- 交换:由于加入了虚拟内存,进程页可以在内存中换入换出
(3)文件模块
- 需要确定文件系统目录的逻辑结构(树形Tree)合物理结构
- 确定文件系统文件控制块FCB
- 进程对文件进行操作时文件或目录的状态以及实现方式
- 确定文件访问方法
- 文件的权限保护
- 文件系统分配方式(连续、链接合索引分配)
- 空闲空间管理
- 物理存储空间的设计
(4)设备模块
- 设备的申请、管理以及释放
- 进程使用设备的队列
(5)CPU设计
- CPU解释执行编译完成的二进制
- 需要接收时间中断完成进程切换
- 模拟进程对CPU的使用
(6)中断设计
- 最重要的是中断机制的实现方式,如何模拟中断
- 设计IO中断(包括键盘中断和打印中断)和设备中断
- 设计磁盘中断
- 设计计时中断对时间片进行模拟
(7)UI设计
- 设计Shell来完成最基本的命令操作
- 设计各种监控窗口进行操作系统监控