
操作系统
文章平均质量分 96
HNU操作系统
往虚
一名很摆的hnuer
展开
-
HNU-操作系统实验lab9-2022级
这个函数的主要功能是初始化UART,包括禁用UART、清空中断状态、设置波特率、配置行控制寄存器、启用UART、配置GIC中断控制器和创建UART数据接收信号量。在 src/bsp/print.c 中的 PRT_UartInit 添加初始化代码,使其支持接收数据中断。函数实现了一个简单的命令行接口,通过UART接收用户输入的命令并执行相应的操作。这个函数用于处理UART接收中断,将接收到的数据存储到缓冲区中,并通知相关任务数据已经到达。函数检查命令缓冲区中的内容,并根据命令执行相应的操作。原创 2024-11-01 19:40:45 · 1435 阅读 · 0 评论 -
HNU-操作系统实验lab8-2022级
TTBR0指向整个虚拟空间下半部分通常用于应用程序的空间,TTBR1指向虚拟空间的上半部分通常用于内核的空间。其中TTBR0除了在EL1中存在外,也在EL2 and EL3中存在,但TTBR1只在EL1中存在。在涉及仅一级查找的简单地址转换中,我们假设使用的是64KB粒度和42位虚拟地址。MMU将虚拟地址转换如下:如果VA[63:42] = 1,则用TTBR1作为第一页表的基地址。当VA[63:42] = 0时,用TTBR0作为第一页表的基地址。原创 2024-10-31 17:03:37 · 1175 阅读 · 1 评论 -
HNU-操作系统实验lab7-2022级
为了模拟活锁,可以通过两个任务反复尝试获取对方持有的资源,并在每次失败后执行一些无效操作(例如打印日志或忙等待)后再次尝试获取资源。为了模拟死锁,可以创建两个任务,每个任务都持有一个信号量,然后尝试获取对方持有的信号量。这段代码会导致任务1和任务2不断地打印失败信息,并尝试重新获取信号量,但从未成功,使得两个任务陷入活锁状态。可以看到最后任务1卡在了获取信号量2,任务2卡在了获取信号量1中,程序无法继续运行下去。函数获取被挂起的任务,该函数会从信号量的等待队列中取出一个任务。原创 2024-10-30 20:05:09 · 1318 阅读 · 0 评论 -
HNU-操作系统实验lab6-2022级
在UniProton中,一个任务表示一个线程。任务控制块(Task Control Block, TCB)是操作系统内核中的一个数据结构,用于存储和管理任务(或线程)的信息。每个任务在创建时都会分配一个任务控制块,操作系统通过这些控制块来管理任务的调度、状态和执行。在理论课程中,我们知道当发生任务切换时会首先保存前一个任务的上下文到栈里,然后从栈中恢复下一个将运行任务的上下文。它首先从运行队列中获取第一个任务,如果这个任务是空闲任务,那么它会将这个任务移动到队列的末尾,并设置下一个任务为当前任务。原创 2024-10-29 11:53:24 · 1746 阅读 · 0 评论 -
HNU-操作系统实验Lab5-2022级
中断是一种硬件机制。借助于中断,CPU可以不必再采用轮询这种低效的方式访问外部设备。将所有的外部设备与CPU直接相连是不现实的,外部设备的中断请求一般经由中断控制器,由中断控制器仲裁后再转发给CPU。如下图所示Arm的中断系统。其中nIRQ是普通中断,nFIQ是快速中断。Arm采用的中断控制器叫做GIC,即general interrupt controller。gic包括多个版本,如GICv1(已弃用),GICv2,GICv3,GICv4。简单起见,我们实验将选用GICv2版本。原创 2024-10-27 18:55:14 · 1586 阅读 · 0 评论 -
HNU-操作系统实验Lab4-2022级
AArch64中共有4个异常级别,分别为EL0,EL1,EL2和EL3。在AArch64中,Interrupt是Exception的子类型,称为异常。Sync(Synchronous exceptions,同步异常),在执行时触发的异常,例如在尝试访问不存在的内存地址时。IRQ (Interrupt requests,中断请求),由外部设备产生的中断。原创 2024-10-26 20:47:26 · 1491 阅读 · 0 评论 -
HNU-操作系统实验Lab2-2022级
0x09000000// pl011 设备寄存器地址// 寄存器及其位定义参见:https://developer.arm.com/documentation/ddi0183/g/programmers-model/summary-of-registers0x00// UARTDR(Data Register) 寄存器0x18// UARTFR(Flag Register) 寄存器0x2c// UARTLCR_H(Line Control Register) 寄存器0x020。原创 2024-10-25 18:30:27 · 1772 阅读 · 0 评论 -
HNU-操作系统实验Lab1-2022级
操作系统实验一环境配置原创 2024-10-24 22:58:35 · 2134 阅读 · 0 评论