- 课程任务及要求
答案获取:https://laowangall.oss-cn-beijing.aliyuncs.com/studentall.pdf
注:pintos的分支有stanford的cs140, berkeley的cs162和 PKU(约翰霍普金斯版)等,课程设计内容基于我们给定的code base进行修改并提交到指定网站。
实验一 准备开发工具【Pintos Introduction】:安装C语言开发环境、掌握git等网络工程工具的使用
主要任务:阅读和分析Linux下的gcc/make/gdb等开发工具的使用文档,在自己的机器上配置好C语言开发环境。安装好git客户端工具,注册gitlab账号,构建连续集成和连续交付(CI/CD)环境。
重点检查编码、调试、提交等环节的熟练程度。
实验二 简单Shell实现
主要任务:设计和实现一个模拟Bash 的shell实现,要求支持cd和pwd命令,支持程序执行、路径解析、输入/输出的重定向,信号(Signal)处理等功能。
答案获取:
https://laowangall.oss-cn-beijing.aliyuncs.com/studentall.pdf
实验三 Pintos线程管理【Pintos Project 1: Threads】
主要任务:阅读分析Pintos源码,实现Thread部分的以下功能:
1、实现优先级调度
当一个线程被添加到具有比当前运行的线程更高优先级的就绪列表时,当前线程应该立即将处理器分给新线程中。类似地,当线程正在等待锁,信号量或条件变量时,应首先唤醒优先级最高的等待线程。线程应可以随时提高或降低自己的优先级,但降低其优先级而不再具有最高优先级时必须放弃CPU。
2、实现多级反馈调度
实现多级反馈队列调度程序,减少在系统上运行作业的平均响应时间。这里维持了64个队列, 每个队列对应一个优先级, 从PRI_MIN到PRI_MAX。通过一些公式计算来计算出线程当前的优先级, 系统调度的时候会从高优先级队列开始选择线程执行, 这里线程的优先级随着操作系统的运转数据而动态改变。
实验四 Pintos用户程序【Pintos Project 2: User Programs】
主要任务:阅读分析Pintos源码,实现User Program部分的以下功能:
1、Argument Passing 参数传递
2、Process Control Syscalls 进程控制系统调用
3、File Operating Syscalls 文件操作系统调用
实验五 Pintos文件系统【Pintos Project 4: File Systems】
主要任务:阅读分析Pintos源码,实现File Systems部分的以下功能:。
1、缓冲区cache管理;
2、目录的添加、删除、重命名;
3、文件和目录的拷贝
4、文件的读写操作
实验六 Pintos虚拟存储【Pintos Project 3: Virtual Memory】
鼓励优秀的同学挑战完成,可获取一定奖励分。
答案获取:https://laowangall.oss-cn-beijing.aliyuncs.com/studentall.pdf
二、课程考核
考核方式:考查。
重点考查学生运用工程化思想进行软/硬件系统解决方案构建和开发的能力。每个人独立为一组,程序及文档需按时提交在指定的线判题与检测网站,只有判题通过才可以在学习通上提交源码和实验报告,源码和实验报告不能缺失,否则将列为不及格。
1、系统演示成绩(50%,根据学生情况酌情给分)
(1)不及格(0-59):实验二简单Shell无法演示,基本功能没有完成,或者程序不能正常运行,或者有严重的抄袭现象。
(2)及格(60-69):实验二简单Shell的演示基本正确,基本功能全部完成,程序能够正常运行。
(3)中等(70-79):达到及格的要求,实验三Pintos线程管理的演示基本正确,基本功能全部完成,程序能够正常运行。
(4)良好(80-89):达到中等的要求,实验四 Pintos用户程序的演示基本正确,基本功能全部完成,程序能够正常运行。
(5)优秀(90-100):达到良好的要求,实验五 Pintos文件系统(挑战实验六 Pintos虚拟存储,可获取一定奖励分。)的演示基本正确,基本功能全部完成,程序能够正常运行。
2、系统讲解成绩(10%,根据学生情况酌情给分)
(1)不及格(0-59):有关实验二简单Shell程序的讲解无条理,或不正确,或者有严重的抄袭现象。
(2)及格(60-69):有关实验二简单Shell程序的讲解有条有理,逻辑清晰,代码应用熟练。
(3)中等(70-79):达到及格的要求,有关实验三Pintos线程管理实现的数据结构和算法设计讲解清晰。
(4)良好(80-89):达到中等的要求,有关实验四 Pintos用户程序的数据结构和算法设计讲解清晰。
(5)优秀(90-100):达到良好的要求,有关实验五 Pintos文件系统(挑战实验六 Pintos虚拟存储,可获取一定奖励分。)的数据结构和算法设计讲解清晰。
3、设计报告成绩(40%), 设计报告应详述设计方案、实验步骤,总结遇到的问题及解决方法,并分析所存在的问题,根据学生情况酌情给分。
(1)不及格(0-59):有关实验二简单Shell程序的数据结构描述不全面,算法设计混乱,或者有严重的抄袭现象。
(2)及格(60-69):有关实验二简单Shell程序的数据结构描述全面,算法设计合理。
(3)中等(70-79):达到及格的要求,有关实验三Pintos线程管理实现的数据结构描述全面,算法设计合理。
(4)良好(80-89):达到中等的要求,有关实验四 Pintos用户程序的数据结构描述全面,算法设计合理。
(5)优秀(90-100):达到良好的要求,有关实验五 Pintos文件系统(挑战实验六 Pintos虚拟存储,可获取一定奖励分。)程序的数据结构描述全面,算法设计合理。