Contents Menu Expand Light mode Dark mode Auto light/dark mode
uCore-Tutorial-Guide-2024S 文档
uCore-Tutorial-Guide-2024S 文档

正文

  • 第零章:实验环境搭建
    • 实验环境配置
  • 第一章:应用程序与基本执行环境
    • 引言
    • 代码框架简述
    • makefile 和 qemu
  • 第二章:批处理系统
    • 引言
    • 特权级机制
    • 实现应用程序以及user文件夹
    • 实现批处理操作系统的细节
  • 第三章:多道程序与分时多任务
    • 引言
    • 多道程序放置与加载
    • 进程基础结构
    • 多道程序与协作式调度
    • 分时多任务系统与抢占式调度
    • chapter3练习
  • 第四章:地址空间
    • 引言
    • C 中的动态内存分配
    • 地址空间
    • SV39多级页表机制:内容介绍
    • SV39多级页表机制:OS实现
    • chapter4练习
  • 第五章:进程及进程管理
    • 引言
    • 与进程有关的重要系统调用
    • 进程管理的核心数据结构
    • shell与测例的加载
    • chapter5练习
  • 第六章:文件系统与I/O重定向
    • 引言
    • 文件系统接口
    • nfs文件系统
    • chapter6练习
  • 第七章:进程间通信
    • 引言
    • 文件系统扩充
    • 进程通讯与 fork
    • chapter7练习
  • 第八章:并发
    • 引言
    • 内核态的线程管理
    • 锁机制
    • 信号量机制
    • 条件变量机制
    • chapter8 练习

附录

  • 附录 B:常见工具的使用方法(Rust版本)
  • 附录 C:深入机器模式:RustSBI
  • 附录 D:RISC-V相关信息
    • RISCV汇编相关
    • RISCV硬件相关

开发注记

  • 修改和构建本项目
  • reStructuredText 基本语法

第八章:并发¶

  • 引言
    • 本章导读
      • 线程定义
      • 同步互斥
    • 实践体验
    • 本章代码树
  • 内核态的线程管理
    • 线程概念
    • 线程模型与重要系统调用
      • 线程创建系统调用
      • 等待子线程系统调用
      • 进程相关的系统调用
    • 应用程序示例
      • 系统调用封装
      • 多线程应用程序 – threads
    • 线程管理的核心数据结构
      • 线程控制块
      • 包含线程的进程控制块
    • 线程管理机制的设计与实现
      • 线程创建、线程退出与等待线程结束
        • 线程创建
        • 线程退出
        • 等待线程结束
      • 线程执行中的特权级切换和调度切换
  • 锁机制
    • 本节导读
    • 为什么需要锁
    • 锁的基本思路
    • 内核态操作系统级方法实现锁 — mutex 系统调用
      • 使用 mutex 系统调用
      • mutex 系统调用的实现
  • 信号量机制
    • 本节导读
    • 信号量的起源和基本思路
    • 实现信号量
      • 使用 semaphore 系统调用
      • 实现 semaphore 系统调用
  • 条件变量机制
    • 本节导读
    • 条件变量的基本思路
    • 实现条件变量
      • 使用 condvar 系统调用
      • 实现 condvar 系统调用
  • chapter8 练习
    • 本章任务
    • 编程作业
      • 死锁检测
      • 实验要求
    • 问答作业
    • 报告要求
    • 选作题目
Next
引言
Previous
chapter7练习
Copyright © OS2024Spring | Built with Sphinx and @pradyunsg's Furo theme. | 显示源代码