1.实验要求

完成一个简单的时间片轮转躲到程序内核代码

2.实验过程

进入实验楼,打开shell,输入一下代码:

实验结果:

3.mykernel时间片轮转代码分析

mypcb.h头文件,用来定义进程控制块,也就是进程结构体的定义。

对mymain.c进行修改,这里是mykernel内核代码的入口,负责初始化内核的各个组成部分。在linux北河源代码中,实际的内核入口是init/main.c中的start_kernel(void)函数。

对myinterrupt.c进行修改,主要是增加了进程切换的代码my_schedule(void)函数,在Linux内核源代码中对应的是schedule(void)函数。

时间中断:

进程调度:

总结:本次实验最终的是进程的切换,进程在执行过程中,当时间片用完需要进行进程切换时,需要先保存当前的进程执行的上下文环境,下次进程被调度时,需要恢复进程的上下文环境。这样实现多道程序的并行执行。

2022-2023-1 20222816《Linux内核原理与分析》第三周作业相关推荐

  1. 2017-2018-1 20179215《Linux内核原理与分析》第二周作业

    20179215<Linux内核原理与分析>第二周作业 这一周主要了解了计算机是如何工作的,包括现在存储程序计算机的工作模型.X86汇编指令包括几种内存地址的寻址方式和push.pop.c ...

  2. 2022-2023-1 20222809《Linux内核原理与分析》第一周作业

    Linux内核原理与分析第一周作业 配置环境 1.参考Linux(Ubuntu)系统安装图文教程中第二种借助virtualbox成功配置Ubuntu环境 2.升级更新软件包 可以通过调节分辨率和虚拟机 ...

  3. 实验楼 linux内核原理与分析,《Linux内核原理与分析》第一周作业 20189210

    实验一 Linux系统简介 这一节主要学习了Linux的历史,Linux有关的重要人物以及学习Linux的方法,Linux和Windows的区别.其中学到了LInux中的应用程序大都为开源自由的软件, ...

  4. 《Linux内核原理与分析》第二周作业

    反汇编一个简单的C程序 1.实验要求 使用: gcc –S –o test.s test.c -m32 命令编译成汇编代码,对汇编代码进行分析总结.其中test.c的具体内容如下: int g(int ...

  5. 2018-2019-1 20189218《Linux内核原理与分析》第九周作业

    进程调度的时机 进程调度时机就是内核调用schedule函数的时机.当内核即将返回用户空间时,内核会检查need_resched标志是否设置.如果设置,则调用schedule函数,此时是从中断(或者异 ...

  6. 2021-2022-1 20212820《Linux内核原理与分析》第一周作业

    声明:本文是基于Linux 基础入门_Linux - 蓝桥云课 (lanqiao.cn)这门课学习所写的课程笔记. 实验1 Linux系统简介 Linux主要包括是系统调用和内核两部分 Linux与W ...

  7. 20189220 余超《Linux内核原理与分析》第一周作业

    实验一 Linux系统简介 通过实验一主要是学习到了Linux 的历史简介,linux与windows之间的区别,主要是免费和收费,软件和支持,安全性,使用习惯,可制定性,应用范畴等.linux具有稳 ...

  8. 2022-2023-1 20222816《Linux内核原理与分析》第一周作业

    目录 实验一     Linux系统简介 实验二     基础概念及操作 实验三     用户及文件权限管理 总结 第一周课后在实验楼学习了<Linux入门>(新版),以下是我本周的学习笔 ...

  9. 2018-2019-1 20189201 《LInux内核原理与分析》第九周作业

    那一天我二十一岁,在我一生的黄金时代.我有好多奢望.我想爱,想吃,还想在一瞬间变成天上半明半暗的云.那一年我二十一岁,在我一生的黄金时代.我有好多想法.我思索,想象,我不知该如何行动,我想知道一个城市 ...

  10. 2018-2019-1 20189208《Linux内核原理与分析》第九周作业

    活动 main函数编译有问题,div 函数和系统中某个函数重名,浮点输出有问题,scanf也有问题 修改如下 scanf_s("%d %d", &a, &b); p ...

最新文章

  1. 60+业内技术专家,9大核心技术专题,AI ProCon倒计时一周!
  2. python0o12_2020年日期表-python实现
  3. 敏捷与 DevOps:是敌是友?
  4. 云计算在未来一定是不可或缺的
  5. mysql下载哪一代版本好_潮一代更好的设计
  6. 今天学习jquery 希望开个好头
  7. cuda gpu相关汇总
  8. 武器系统仿真技术(一):系统误差分析的蒙特卡洛算法
  9. editplus配置刷新
  10. Install Toad for Oracle 10.6 on Winows 7 X64
  11. 灰灰考研c语言讲义,灰灰全书之数据结构试讲
  12. 拳王虚拟项目公社:如何搭建虚拟资源解析站,全自动化卖会员网络赚钱项目
  13. openssl 制作证书, nginx https请求转http请求
  14. Flixel横板游戏制作教程(六)—SoundsandMusic(音效与音乐)
  15. PS网页设计教程XXI——在Photoshop中创建一个光质感网页设计
  16. NAS实现家用服务器
  17. 关于出现IllegalArgumentException异常的可能原因
  18. Java判断字符串是否为数字(正负、小数)
  19. 【Golang】golang实现发送微信服务号模板消息
  20. html 重复一百次 代码,重复一百次

热门文章

  1. 中缀、后缀、前缀表达式
  2. ubuntu16.04配置a-loam、lego-loam、lio-sam可能遇到的问题及解决方案
  3. 保险业务与系统——LOMA 290 保险公司运营——第十六讲——保险会计
  4. 论文翻译及笔记 --Visual Place Recognition: A Survey
  5. 2022-2028全球中翅片管行业调研及趋势分析报告
  6. 高端vip维护服务器,vip服务
  7. 游戏特效有哪些制作的分类
  8. 3GPP PDU短信协议解析
  9. py2neo操作图数据库neo4j
  10. linux 目录的粘滞位,Linux浅谈SUID,SGID,Sticky粘滞位对目录以及文件的相关作用