
HNU-2024操作系统
文章平均质量分 86
HNU2024春季学期操作系统课程相关实验与作业
Autumnshines
友链:https://blog.youkuaiyun.com/LImmortal_
展开
-
HNU-2024操作系统实验-Lab9-Shell
理解Shell程序的原理、底层逻辑和Shell依赖的数据结构等在操作系统内核MiniEuler上实现一个可用的Shell程序能够根据相关原理编写一条可用的Shell指令。原创 2024-07-11 17:17:44 · 1957 阅读 · 1 评论 -
HNU-2024操作系统实验-Lab8-内存管理
此处定义了dist和cpu的基址,GIC_DIST_BASE 和 GIC_CPU_BASE 的高位多少个f与MMU的配置有关,此处设置为8个f更加清楚在具体的armv8架构中,页表是如何将虚拟地址映射到物理地址的,这其中涉及多个寄存器的相互配合。能了解这多个寄存器的作用,在依托手册的基础上正确的配置寄存器以实现内存管理。了解了多种页表映射方案,如块映射,多级页表映射等。原创 2024-07-11 16:07:20 · 2353 阅读 · 0 评论 -
HNU-2024操作系统实验-Lab7-信号量与同步
这一部分主要是定义了一系列检查等辅助函数,其中OsSemPostErrorCheck函数和OsSemPendParaCheck函数用于检查post操作和pend操作是否有效,接着对其中较为复杂的函数进行分析:OsSemPendListPut函数:该函数将当前运行任务挂接到信号量的等待链表上,首先,此函数将当前运行的任务从就绪列表中移除,然后根据信号量的等待模式(优先级或FIFO),将任务添加到信号量的等待列表中。原创 2024-07-10 16:43:19 · 3017 阅读 · 0 评论 -
HNU-2024操作系统实验-Lab6-任务调度
ListLowLevelAdd:本函数用于在两个已存在的节点prev和next之间插入一个新的节点newNode。ListAdd:本函数将新的节点newNode添加到链表的头部,即listObject节点的后面。ListTailAdd:此函数将新的节点newNode添加到链表的尾部,即listObject节点的前面。ListLowLevelDelete:这是一个删除函数,用于删除prevNode和nextNode之间的节点。ListDelete:此函数删除指定的节点node,并将它从链表中移除。原创 2024-07-09 19:49:09 · 3458 阅读 · 0 评论 -
HNU-2024操作系统实验-Lab5-时钟中断Tick
OsGicInitCpuInterface:首先通过向GICD_CTLR(分发器控制寄存器)和GICC_CTLR(CPU接口控制寄存器)写入禁用值(GICD_CTLR_DISABLE和GICC_CTLR_DISABLE),然后设置CPU接口的优先级掩码寄存器(GICC_PMR)和二进制点寄存器(GICC_BPR)。GICC_PMR用于设置接收中断的优先级阈值,只有高于这个阈值的中断才会被处理。GICC_BPR用于分割优先级字段,确定哪些中断有资格打断当前正在处理的中断。原创 2024-07-08 16:37:02 · 3534 阅读 · 1 评论 -
HNU-2024操作系统实验-Lab3-设备树
因为实验三是选做,不计入成绩,考虑到时间紧急(考试+小班+实验),就没有写这个实验,有兴趣的同学可以自行完成。原创 2024-06-26 19:07:36 · 526 阅读 · 2 评论 -
HNU-2024操作系统实验-Lab4-异常处理
此处先取出ESR系统寄存器中的高六位,表示异常类型,然后取出寄存器x0、x8的值,并打印出相应的参数,表明顺利完成系统调用。原创 2024-06-25 12:08:20 · 1667 阅读 · 0 评论 -
HNU-2024操作系统实验-Lab2-Hello MiniEuler
1.理解操作系统与硬件的接口方法2.实现一个可打印字符的宏(非系统调用),用于后续的调试和开发2.通过QEMU导出设备树并转成可读格式virt.dtb转换后生成的virt.dts中可找到如下内容:由上可以看出,virt机器包含有pl011的设备,该设备的寄存器在0x9000000开始处。pl011实际上是一个UART设备,即串口。可以看到virt选择使用pl011作为标准输出,这是因为与PC不同,大部分嵌入式系统默认情况下并不包含VGA设备。此处定义了pl011设备的基址寄存器地址,以及Da原创 2024-06-24 17:40:38 · 2419 阅读 · 0 评论 -
HNU-2024操作系统实验-Lab1-环境配置
从2024年开始,HNU信息院计科和智能专业统一使用李老师基于UniProton编写的新实验,一共有八个实验,如果仅是按照指导书的内容将实验跑通还是比较容易的(第一个实验除外),而对于想要在将来走系统方向的同学,或者遇上比较苛刻的助教,需要将整个实验的代码完全看懂,那就是一件任务量很大的事情了。一、实验目的1.安装交叉工具链(aarch64)以及安装QEMU模拟器2.创建裸机(Bare Metal)程序3.构件工程4.完成调试支持5.建立自动化脚本二、实验过程。原创 2024-06-24 16:02:29 · 4700 阅读 · 6 评论