kernel - XV6 内核中的动态内存分配
问题描述
我想在文件中实现一个结构Queue
(使用Node
结构,类似于这里C
的代码)并将进程存储在内核中。Queue.c
Queue.h
proc.c
XV6
我不知道该怎么做,因为它需要使用malloc
,但我不能在从内核调用的方法中使用它。
为了实现和使用Queue
?
解决方案
您可能必须为内核实现类似于用户 malloc 代码 ( user/malloc.c ) 的内容。例如,查看文件kernel/string.c。它的内容与user/ulib.c非常相似。这样,内核和用户空间就有了自己的函数版本,比如memset
.
来自user/umalloc.c的代码不能只是复制粘贴到内核版本中。您必须对其进行调整才能在内核空间中工作。例如,改变分配器管理的空间的morecore
增长方式......
推荐阅读
- javascript - FIrebase 应用程序未在 Vue3-Ionic 项目上初始化
- javascript - 检查 JS 远程替换、Shopify 中的变体可用性
- docker - 仅在发布阶段指定环境变量
- python - 从Python中的稀疏矩阵开始获取图形中路径/行走数量的有效方法
- python - 如何避免对不同大小的输入进行张量流回溯
- amazon-web-services - 具有多个客户网关的 AWS 冗余站点到站点 vpn
- javascript - 无需购买域名和托管即可使用 React 应用
- python - 如何使用 struct 模块转换 64 位地址?
- forms - Symfony 5中带有like参数的搜索表单不返回结果
- arrays - onChange 中数组的 changeData 方法对我不起作用-React.js Firebase