
Operating System
文章平均质量分 94
头发没了还会再长
你不需要很厉害才开始,但你要开始才能很厉害
展开
-
实验五 基于内核栈切换的进程切换
实验内容 本次实践项目就是将 Linux 0.11 中采用的 TSS 切换部分去掉,取而代之的是基于堆栈的切换程序。具体的说,就是将 Linux 0.11 中的 switch_to 实现去掉,写成一段基于堆栈切换的代码。 本次实验包括如下内容: 编写汇编程序 switch_to: 完成主体框架; 在主体框架下依次完成 PCB 切换、内核栈切换、LDT 切换等; 修改 fork(),由于是基于内核栈的切换,所以进程需要创建出能完成内核栈切换的样子。 修改 PCB,即 task_struct 结构,增加相应的原创 2022-01-16 22:35:17 · 699 阅读 · 0 评论 -
进程运行的轨迹跟踪与统计
0.实验内容 基于模板 process.c 编写多进程的样本程序,实现如下功能: + 所有子进程都并行运行,每个子进程的实际运行时间一般不超过 30 秒; + 父进程向标准输出打印所有子进程的 id,并在所有子进程都退出后才退出; 在 Linux0.11 上实现进程运行轨迹的跟踪。 + 基本任务是在内核中维护一个日志文件 /var/process.log,把从操作系统启动到系统关机过程中所有进程的运行轨迹都记录在这一 log 文件中。 在修改过的 0.11 上运行样本程序,通过分析 log 文件,统计该程原创 2022-01-15 20:10:09 · 2208 阅读 · 0 评论 -
实验三 系统调用
实验目的 建立对系统调用接口的深入认识; 掌握系统调用的基本过程; 能完成系统调用的全面控制; 为后续实验做准备。 实验内容 此次实验的基本内容是:在 Linux 0.11 上添加两个系统调用,并编写两个简单的应用程序测试它们。 (1)iam() 第一个系统调用是 iam(),其原型为: int iam(const char * name); copy 完成的功能是将字符串参数 name 的内容拷贝到内核中保存下来。要求 name 的长度不能超过 23 个字符。返回值是拷贝的字符数。如果 name 的字原创 2022-01-14 23:32:41 · 384 阅读 · 0 评论 -
Linux-0.11 操作系统的引导实验
Linux-0.11 操作系统的引导实验 实验目的 熟悉 hit-oslab 实验环境; 建立对操作系统引导过程的深入认识; 掌握操作系统的基本开发过程; 能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱。 实验内容 此次实验的基本内容是: 阅读《Linux 内核完全注释》的第 6 章,对计算机和 Linux 0.11 的引导过程进行初步的了解; 按照下面的要求改写 0.11 的引导程序 bootsect.s 有兴趣同学可以做做进入保护模式前的设置程序 setup.s。 改写 bootsect原创 2022-01-14 19:02:10 · 1967 阅读 · 0 评论