Logo
Section 1 / 35

操作系统项目描述

简要了解“操作系统”并学习本项目中我们将实现的功能。

导入

操作系统项目描述

简要了解“操作系统”并学习本项目中我们将实现的功能。

简介

现代操作系统(OS)是一套复杂的软件系统。它必须在有限且复杂的硬件资源条件下高效运行,并为用户程序提供服务。从硬件管理的角度来看,操作系统需要管理处理、存储和输入/输出等资源。另一个重要的组成部分是用户外壳(shell),用于处理用户交互。

本章将讨论的场景和问题,主要涉及操作系统中的内存管理模块和进程管理模块。

问题描述

假设你是一名知名操作系统开发团队的开发者。你们团队正在开发与进程调度以及进程内存高效分配相关的多个功能。此外,你还负责实现一种高效的磁盘文件编码方案。

功能需求

为了实现上述功能,我们需要引入以下特性:

  • 特性 #1: 首先,需要计算出一个或多个具有连续内存分配的运行进程被抢占时,有多少种可能的方式可以释放内存以供新进程使用。

  • 特性 #2: 其次,需要从当前驻留在内存中的进程ID列表中,定位第 n 个要恢复执行的进程。

  • 特性 #3: 对进程进行排序,确保每当一个进程被调度时,其所有依赖项均已满足。

  • 特性 #4: 部署一种压缩策略,用于识别并分离所有连接在一起的单词。

  • 特性 #5: 通过移除最少数量的不匹配起始或结束分隔符,来恢复损坏的文件。

  • 特性 #6: 构建一个文件管理系统,支持添加文件并执行通配符搜索。

  • 特性 #7: 将特定目录为根的文件系统序列化并反序列化到远程机器。

  • 特性 #8: 通过用字符重复次数替换连续重复的字符,实现文件压缩。

  • 特性 #9: 在文件目录系统中使用正则表达式匹配来搜索文件。

  • 特性 #10: 反向工程消息摘要函数,以验证在给定操作符集合下,某个消息摘要是否可能生成。

  • 特性 #11: 创建一个目录树迭代器,遍历文件系统中的每一个文件和目录。

  • 特性 #12: 验证多进程系统中优先级更新的潜在顺序是否合理。

  • 特性 #13: 通过反转日志文件中的命令顺序,纠正命令的执行顺序。

  • 特性 #14: 通过查找未释放锁的进程,解除进程锁。

  • 特性 #15: 根据进程的优先级以及优先级更高的进程数量,重建进程队列。

理解这些功能需求并设计相应的解决方案,将有助于我们将所需功能集成到操作系统中。

在接下来的课程中,我们将讨论这些特性的推荐实现方式。在开始之前,请思考一下你会如何实现这些功能。随着你的思考,你会逐渐发现需要解决的一些底层问题。而这些问题的解决方案,同样适用于许多常见的编程面试题。

网络安全

功能一:分配空间