Skip to content

设计并实现一个具有操作系统基本功能的软件

Notifications You must be signed in to change notification settings

LLeavesG/MicroOS

Repository files navigation

MicroOS-GUI

运行于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来完成最基本的命令操作
  • 设计各种监控窗口进行操作系统监控

总设计图

image

About

设计并实现一个具有操作系统基本功能的软件

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published