要求:添加alarm系统调用
1) 使用grep命令筛选出出现uptime字样的文件和文件中所在行号,以便仿照uptime系统调用实现alarm系统调用:


2) 在syscall.c中添加系统调用函数的外部声明,共有两处地方需要添加:


3) 在syscall.h中添加系统调用号:

4) 在sysproc.c中添加系统调用函数sys_alarm()的实现:


5) 在user.h中添加用户态函数的定义:

6) 在usys.S中添加用户态函数的实现:

7) 由于我们还需要在用户空间来对内核提供的系统命令进行调用,新建用户程序alarmtest.c文件,写入以下代码:

8) 在Makefile文件UPROGS处添加_alarmtest:

9) 在proc.h文件的proc结构体中,添加以下三个属性:


10) 在trap.c文件中的“case T_IRQ0 + IRQ_TIMER”位置处添加以下代码:

运行qemu:

xv6 CPU alarm相关推荐

  1. 操作系统作业3 xv6 CPU alarm

    操作系统作业3 xv6 CPU alarm 实验过程 在syscall.c中添加系统调用函数的外部声明 在syscall.h里添加系统调用号 在sysproc.c中添加函数具体内容: 在user.h文 ...

  2. 3-AltiumDesignerPCB设计

    Altium Designer PCB设计 PCB设计是电子产品的设计中不可缺少的重要环节.原理图设计的再完美,如果电路板PCB Layout设计不合理,产品的性能将大打折扣,甚至不能正常工作. 做好 ...

  3. 资源向导之 JOS 计划 MIT 6.828

    Project of JOS update: 2016.03.18 哇,JOS过去一段时间了,有一些同学可能获得JOS实验初始的源代码比较困难,原因可能是GFW也可能是JOS官方他们每学期都可能会课程 ...

  4. KVM 虚拟化原理探究--启动过程及各部分虚拟化原理

    KVM 虚拟化原理探究- overview 标签(空格分隔): KVM 写在前面的话 本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验.同时希望借此系列博客,能够对KVM底层 ...

  5. sniffer 和 debug flow

    sniffer 和 debug flow sniffer 和 debug flow 复制模板,直接修改IP即可使用: diagnose sys session filter clear diagnos ...

  6. Python 基于 Prometheus 数据生成巡检报告

    设计思路 1.基于Prometheus 开放接口获取数据(node_exporte/windows_exporter) 2.存放数据至mysql数据库 3.基于jinja2 编写模板生成巡检报告.ht ...

  7. XV6实验(2020)

    XV6实验记录(2020) 环境搭建 参考连接 Lab guidance (mit.edu) 6.S081 / Fall 2020 (mit.edu) xv6 book中文版 Lab1:Xv6 and ...

  8. XV6 lab3:Trap

    Lab3:Traps 参考文章: 6.S081 & 操作系统内核 操作系统MIT6.S081:Lab4->Trap Xv6操作系统的系统调用通过 trampoline 来实现用户空间和内 ...

  9. XV6源代码阅读-中断与系统调用

    XV6源代码阅读-中断与系统调用 Exercise1 源代码阅读 1.启动部分: bootasm.S bootmain.c 和xv6初始化模块:main.c bootasm.S 由16位和32位汇编混 ...

最新文章

  1. uni-app编译配置
  2. 使用ADO.NET操作数据库
  3. OpenCV + python 实现人脸检测(基于照片和视频进行检测)
  4. 2020年12月大学英语四六级英语作文预测(XDF王江涛)
  5. 计算机视觉和模式识别领域SCI期刊介绍
  6. 实现当前目录下开启CMD
  7. gps频率范围_一种应用于低电压GPS接收机的高线性度低噪声放大器
  8. 关于MVC与三层架构
  9. 性能测试--jmeter中HTTP Cookie管理器的使用【18】
  10. Python面试题之python是一种什么语言及优缺点
  11. 酷狗音乐分类html,酷狗音乐手机版创建歌单教程 分类自己的音乐库
  12. Win11系统时间不同步的解决方法
  13. Python基础——循环语句
  14. java 获取文件的大小kb_java获取文件大小的方法
  15. 如何知道当前操作系统是centos的哪个版本和内核版本?
  16. JavaCard开发环境搭建
  17. 微信公众号调起扫码功能
  18. AS基本使用总结之从svn导入eclipseADT项目
  19. 土著刷题微信小程序迭代新增更多的实用功能,试题查重、导出、笔记~~~
  20. 什么是自动化测试?如何开展自动化测试你需要知道这些点

热门文章

  1. 10 公众号开发 - 关注/取消关注事件
  2. win 下 docker 环境配置
  3. python整形怎么切片_遥感影像切分切片
  4. Android: 如何切换 SCO 链路。
  5. 鸿蒙系统的软件怎么下载,怎么下载鸿蒙系统?
  6. TypeScript 初学者指南
  7. 设有 4道作业,它们的提交时间及执行时间如下,试计算在单道程序环境下,采用先来先服务调度算法和短作业优先调度算法时的平均周转时间和平均带权周转时间,并指出它们的调度顺序。
  8. P3426 [POI2005]SZA-Template
  9. Linux进程控制(一)
  10. 手机wps怎么设置打印横竖_手机WPS怎么设置横版打印?