书栈网 · BookStack 本次搜索耗时 0.017 秒,为您找到 178 个相关结果.
  • 信号量

    信号量 信号量 信号量是一种同步互斥机制的实现,普遍存在于现在的各种操作系统内核里。相对于spinlock的应用对象,信号量的应用对象是在临界区中运行的时间较长的进程。等待信号量的进程需要睡眠来减少占用CPU 的开销。参考教科书“Operating Systems Internals and DesignPrinciples”第五章“同步互斥”中对信...
  • 原理: 线程的属性与特征分析

    【原理】线程的属性与特征分析 【原理】线程的属性与特征分析 线程概念的提出是计算机系统的技术发展和操作系统对进程管理优化过程的自然产物。随着计算机处理能力的提高,内存容量的加大,在一个计算机系统中会存在大量的进程,为了提高整个系统的执行效率,需要进程间能够进行简洁高效的数据共享和进程切换,进程创建和进程退出。这样就会产生一个自然的想法:能否改进进程模...
  • 使用远程调试

    使用远程调试 使用远程调试 为了与qemu配合进行源代码级别的调试,需要先让qemu进入等待gdb调试器的接入并且还不能让qemu中的CPU执行,因此启动qemu的时候,我们需要使用参数-S –s这两个参数来做到这一点。在使用了前面提到的参数启动qemu之后,qemu中的CPU并不会马上开始执行,这时我们启动gdb,然后在gdb命令行界面下,使用下面...
  • 实验内容

    实验内容 实验内容 实验六完成了用户进程的调度框架和具体的调度算法,可调度运行多个进程。如果多个进程需要协同操作或访问共享资源,则存在如何同步和有序竞争的问题。本次实验,主要是熟悉ucore的进程同步机制—信号量(semaphore)机制,以及基于信号量的哲学家就餐问题解决方案。然后掌握管程的概念和原理,并参考信号量机制,实现基于管程的条件变量机制和...
  • 等待队列

    等待队列 数据结构定义 相关函数说明 调用关系举例 等待队列 到目前为止,我们的实验中,用户进程或内核线程还没有睡眠的支持机制。在课程中提到用户进程或内核线程可以转入等待状态以等待某个特定事件(比如睡眠,等待子进程结束,等待信号量等),当该事件发生时这些进程能够被再次唤醒。内核实现这一功能的一个底层支撑机制就是等待队列wait_queue,等待...
  • 创建第1个内核线程initproc

    创建第 1 个内核线程 initproc 创建第 1 个内核线程 initproc 第0个内核线程主要工作是完成内核中各个子系统的初始化,然后就通过执行cpu_idle函数开始过退休生活了。所以uCore接下来还需创建其他进程来完成各种工作,但idleproc内核子线程自己不想做,于是就通过调用kernel_thread函数创建了一个内核线程init...
  • 6. CPU 调度

    6. CPU 调度 实验要求 实验指导 6. CPU 调度 文档更新 2020-02-26 号进行了一些更新 修改了测试文件 删掉了对 sys_wait 的需求 在文件末尾增加了测评方式 实验要求 阅读理解文档第七章。 理解 rcore 中实现的 Round Robin 调度算法。 编程:将 Round Robin 调度算法 ...
  • 项目组成

    项目组成 项目组成 ├── boot ├── kern │ ├── debug │ ├── driver │ ├── fs │ ├── init │ ├── libs │ ├── mm │ ├── process │ │ ├─...
  • 练习

    练习 练习0:填写已有实验 练习1: 完成读文件操作的实现(需要编码) 练习2: 完成基于文件系统的执行程序机制的实现(需要编码) 练习 对实验报告的要求: 基于markdown格式来完成,以文本方式为主 填写各个基本练习中要求完成的报告内容 完成实验后,请分析ucore_lab中提供的参考答案,并请在实验报告中说明你的实现与参考答案的区别...
  • 管程和条件变量

    管程和条件变量 原理回顾 “哲学家就餐”实例 关键数据结构 条件变量的signal和wait的设计 管程中函数的入口出口设计 管程和条件变量 原理回顾 引入了管程是为了将对共享资源的所有访问及其所需要的同步操作集中并封装起来。Hansan为管程所下的定义:“一个管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组...