计算机操作系统
文章平均质量分 83
小汪跑不动
大数据本科生一枚
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++实现简单文件目录管理系统
今天和大家分享一个用C++实现的简单文件目录管理系统。这个项目虽小,但涵盖了链表操作、文件管理的基本概念,非常适合用来学习和练习C++编程。这是一个基于内存的单级文件目录管理系统,支持文件的创建、删除和目录显示等基本功能。系统使用链表结构存储文件信息,每个文件节点包含文件名和大小信息。这个项目虽然简单,但包含了很多基础且重要的编程概念。希望这篇文章能对正在学习C++的同学有所帮助。如果你有任何问题或建议,欢迎在评论区留言交流!---代码已开源,完整代码可以在文章开头找到。原创 2024-12-25 23:21:21 · 932 阅读 · 0 评论 -
死锁问题的解决——银行家算法
互斥条件:资源不能被多个进程同时使用请求和保持条件:进程在等待其他资源时,不释放已占有的资源不可剥夺条件:资源只能由进程自愿释放循环等待条件:存在一组进程循环等待其他进程的资源在本次实验中,我们实现了银行家算法,深入理解了死锁避免的原理和实现方法。通过设计核心数据结构(如可用资源向量、最大需求矩阵和分配矩阵),我们能够有效管理资源分配。实验过程中,我们实现了用户输入处理、资源请求验证、资源分配和安全性检查等功能。通过 getResourceRequest 函数,我们确保用户输入的有效性。原创 2024-12-18 14:22:01 · 2287 阅读 · 0 评论 -
哲学家干饭问题(基于C++)
哲学家就餐问题的场景设定在一张圆桌旁,五位哲学家围坐在桌子周围。每位哲学家面前有一根筷子,哲学家们的主要活动是思考和用餐。为了能够用餐,哲学家必须同时拿起左右两根筷子。这个简单的场景却引发了复杂的同步问题,成为了多线程编程中的经典案例。信号量结构体用于实现同一时间只能有一个哲学家拿起筷子,防止对同一个筷子的竞争,筷子结构体用于保证一个筷子一次只能被一个哲学家使用。// 信号量结构体// 互斥信号量,用于保护信号量计数// 条件变量,用于线程同步int sem;// 信号量计数。原创 2024-12-10 23:22:52 · 1680 阅读 · 0 评论 -
读者-写者问题(基于C++实现)
以下是我们实现的代码,使用了 C++11 的线程库、互斥锁和条件变量来管理读者和写者的访问。引入头文件我们定义了一个 Semaphore 结构体,用于管理互斥锁和条件变量// 信号量结构体,用于线程同步// 互斥信号量// 条件变量int sem;// 信号量计数// 全局互斥锁,用于保护输出,防止多个读者竞争输出在这篇博客中,我们实现了一个简单的多线程读者-写者模型,使用 C++ 的线程库来确保线程安全。通过使用互斥锁和条件变量,我们能够有效地管理对共享资源的访问。原创 2024-12-03 23:56:07 · 2084 阅读 · 0 评论
分享