- 博客(7)
- 收藏
- 关注
原创 高级软件工程课程总结
在本次高级软件工程课程上,通过孟宁老师的授课,由近及远、由浅入深的了解了软件工程的内容。孟宁老师对该课程的讲解不同于以往本科所学习过的软件工程,在这学期的课程上,孟老师授课立足于实践,通过一个简易的menu程序一步步迭代更新,结合授课内容,让我对软件过程有了切身的体会,结合代码以及以往的开发经验,对整个过程有了更深的体会。
2023-07-10 00:11:56 155 1
原创 作业4:从需求分析到软件设计
通过需求分析和逆向工程,对 VS Code Remote Development的实现以及模块、功能设计有了更充分地理解,由此可以看出,通过需求分析和逆向工程两个重要环节,可以对软件所要实现的需求、软件的功能以及设计方案等有更深入和全面的认知,以更好的满足软件的设计需求。学号后三位:376。
2023-05-30 23:27:24 110
原创 Linux系统课程总结
在该课程上,对linux操作系统的原理以及底层有了更深刻的认知。以前只是停留在命令以及操作系统课程上的认知,经过课上学习,对linux运行原理、进程管理、文件系统管理、中断异常有了更清晰的了解。通过对Linux内核启动流程以及进程切换流程的跟踪,通过对源码的阅读,有了更深刻的印象,并且学习到了gdb调试方面的知识,增强了学习能力。学号后三位:376。
2023-05-15 20:32:29 165
原创 lab5 深入理解进程切换
如果当前进程是内核级线程,则需要设置 rq->prev_mm 用于后续清除引用计数,并执行 prev->active_mm = NULL 解除对 active_mm 的借用。对于用户进程和内核线程来说,两者的task_struct的mm成员是不同的,用户进程与active_mm相同,内核线程则为NULL。完成任务调度的准备工作,与 **finish_task_switch(prev)**成对出现。
2023-04-26 13:26:27 137 1
原创 作业3:深入理解Callback函数 376
具体而言,回调函数是将一个函数的指针作为参数传递给另一个函数,在后者执行过程中通过该指针调用前者。回调函数通常用于特定的响应操作,减小了模块之间的依赖。在满足Condition函数的参数条件下,我们可以自己设定Condition条件,将其作为参数传入即可,在不同的地方可以实现多种不同的功能,实现了代码的解耦,增强了代码的可重用性。在多线程情况下,主线程需要根据其他线程的执行结果做一定地处理,在此过程中,只需A向B注册回调函数,在B处理完之后使用该Callback函数返回处理结果给A即可。
2023-04-03 15:34:18 62 1
原创 以time/gettimeofday系统调用为例分析ARM64 Linux 5.4.34
以el0_sync为例,在触发异常时首先做的就是保存执行现场,即寄存器信息等,然后根据异常原因跳转到el0_svc,el0_svc调用el0_svc_handler、el0_svc_common函数,将系统调用号传递给invoke_syscall函数。接着执行 invoke_syscall 函数,将通用寄存器中的内容传入 syscall_fn(),接着调用 __arm64_sys_gettimeofday。系统调用返回前,恢复程序现场,包括恢复ELR_EL1和SPSR_EL1的值。
2023-03-31 17:58:59 190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人