- 博客(18)
- 收藏
- 关注
原创 操作系统C语言实现07---并发
并发是现代计算中的一个基本概念,其中多个任务或进程同时执行。在并行和分布式系统的世界中,理解并发对于开发高效可靠的软件至关重要。
2025-02-17 19:54:03
789
原创 操作系统C语言实现08---内存管理
内存管理是操作系统设计的一个关键方面,它处理计算机内存的组织和管理。它涉及到各种机制,以有效地分配内存给进程,管理不同的内存类型,并在保持系统稳定性的同时确保最佳性能。
2025-01-30 11:46:14
535
原创 操作系统C语言实现06---线程
线程是进程中最小的执行单位。线程共享它们所属进程的相同内存空间和资源,但独立执行。线程可以在单个进程中实现多任务处理和并行性。本文探讨了线程的基础知识、它们的生命周期、实现模型,以及它们与进程的区别。我们还将深入研究使用C和POSIX线程(Pthreads)的实际示例。共享内存:同一进程中的线程共享相同的地址空间,包括全局变量、堆和代码。独立执行:每个线程都有自己的程序计数器、堆栈和寄存器。轻量级:线程比进程更轻量级,因为它们共享资源,并且需要更少的创建和上下文切换开销。
2025-01-15 20:26:10
302
原创 操作系统C语言实现05---上下文切换
上下文切换是存储和恢复进程的状态(上下文)的过程,以便可以在以后的时间从同一点恢复执行。这允许在多个进程之间分时使用CPU资源。
2025-01-14 19:22:24
267
原创 操作系统C语言实现04---进程调度
进程调度是现代操作系统的核心,它决定了如何在多个竞争进程之间分配和管理计算资源。这种复杂的资源分配确保了系统的效率、响应能力和公平性。
2025-01-13 15:19:39
434
原创 操作系统C语言实现03---进程创建
进程创建是操作系统中的一项基本操作,它支持执行新程序和管理系统资源。本文将深入探讨流程创建机制,重点关注理论概念和实际实现细节。
2025-01-11 19:10:49
720
原创 操作系统C语言实现01---进程概念
进程是计算机程序在执行过程中的动态实例。与存储在磁盘上的静态程序不同,进程表示一种具有自己的资源、内存空间和执行上下文的活动实体。它本质上是一个运行中的程序,不仅包含代码,还包含执行所需的所有计算资源。
2025-01-10 20:50:37
354
原创 C++20 协程(Coroutines)
C++20 的协程提供了一种强大的工具,用于编写异步和生成器模式的代码。通过使用co_awaitco_yield和co_return关键字,开发者可以编写更简洁、更易读的异步代码。协程的引入使得 C++ 在处理异步操作时更加灵活和高效。
2024-12-02 13:46:24
503
原创 C++无锁队列
无锁队列(Lock-Free Queue)是一种在多线程环境中使用的数据结构,它不需要使用互斥锁(mutex)来保护共享资源,从而避免了锁的开销和死锁问题。无锁队列通常使用原子操作(如 compare_exchange_strong)来实现线程安全的操作。
2024-10-18 10:11:10
1413
原创 C++内存顺序(Memory Order)
C++11 将多线程纳入了标准. 一旦涉及到多线程, 就需要考虑并发, 数据竞争 (date race), 线程同步等问题, 为此 C++ 提供了互斥锁 std::mutex, 原子变量 std::atomic 等标准库. 对于原子变量的操作, 有一个很重要的概念就是内存顺序 (memory order).
2024-10-17 14:27:50
964
原创 python学习
OrderedDict 与普通字典的区别在于它记住了元素被插入的顺序。这意味着当你迭代 OrderedDict 时,元素的顺序将与它们被插入时的顺序相同。以下是一个示例,展示了如何使用ConfigParser读取和解析配置文件。
2024-06-13 11:07:24
289
原创 Hazel -- Game Engine Series (二)
网上流传了一些偏法,主要步骤是直接移除模块,并手动修改 .gitmodules、.git/config 和 .git/modules 内容。包含了一大堆类似git rm --cached 、rm -rf 、rm .gitmodules 和 git rm --cached 之类的代码。根据官方文档的说明,应该使用 git submodule deinit 命令卸载一个子模块。这个命令如果添加上参数 --force,则子模块工作区内即使有本地的修改,也会被移除。修改: .gitmodules。
2023-11-11 20:35:38
761
1
原创 Hazel -- Game Engine Series (一)
bin\Debug-x64\Hazel目录下Hazel.dll复制到bin\Debug-x64\Sandbox目录下。复制/Git目录下文件到/Hazel目录,删除Git文件夹。按上述配置增加一个空项目名为Sanbox,作为应用程序。用记事本打开项目文件调换顺序为下图。运行显示如下即测试成功。
2023-10-31 22:10:10
139
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人