Operating System Principles And Implementation

操作系统原理与实现
陈香兰
Spring 2012


课程基本信息


  1. 必修
  2. 课时:2课时/次*2次/周*15周=60课时
  3. 机时:30;

主讲老师信息


  • 陈香兰(xlanchen@ustc.edu.cn)
    • 课程接待日:周二下午,电三421,来之前请先电话联系
    • 联系电话:0551-3606864-83
    • QQ:9444504443(请提供验证信息“OS_student:你的学号_你的姓名”)

    助教信息


  • 人数(2人)
  • 助教提供的关于本课程作业和上机有关的主页:http://home.ustc.edu.cn/~sasbl/
    1. 重要通知:
    2. 考试时间:6月15日 上午8:30-10:30, 考试教室:3321
    3. (1)请严格按照实验要求完成实验(实验的具体要求在助教的网页上
      (2)上交压缩包前,请确认你的压缩包中是否包含有你的报告,并且能够正常解压(第一次实验报告出现了空压缩包的情况)
      (3)请用校园网登录FTP,校外网不能正常登录!
      (4)请按照实验报告要求按时上交!
    4. 孙贝磊:
    5. Email: sasbl@mail.ustc.edu.cn
      MobilePhone: 15155936341
      QQ: 767384972
    6. 宋克鑫:
    7. Email: skxman@mail.ustc.edu.cn
      MobilePhone: 15955171674
    8. 上机时间、上机地点:参见助教关于本课程的主页
    9. 试验报告上交FTP: osstudent:czxt@202.38.79.82
    10. (1) 要提交的文档使用pdf格式并请打包成一个rar压缩文档;
      (2) 请按照如下格式命名上述压缩文档:学号-姓名-第N次试验报告
      (3) 不满足上述格式的,一律不接收。请上传前后进行仔细自查。
      (4) ftp地址:osstudent:czxt@202.38.79.82;
      (5) 重要提示:请务必使用专门的FTP软件登录并上传实验报告(推荐使用Filezilla).

    教材


  • 使用“恐龙书”,即《Operating System Concepts》
    1. 教材主页:http://www.os-book.com/
    2. 教材信息:英文原版的最新版为第8版,目前国内有第7版的影印版和第6版的翻译版。

    其他参考书


  • Understanding the linux kernel

  • Slides


  • 0.课程简介
  • 1. 第一章
  • 2. 第二章
  • 3. 第三章
  • 4. 第五章
  • 5. 第四章
  • 6. 第六章
  • 7. 第七章
  • 8. 第八章
  • 9. 第九章
  • 10. 第十章
  • 11. 第十一章
  • 12. 第十二章
  • 13. 第十三章

  • 交作业通知


  • 第一次交作业的时间:2012年2月22日。截止时间为2012年2月22日晚9点之前,以交到助教手上的时间为准。不接受迟交的作业。第一章作业

  • 第二次交作业的时间:待通知。第二章作业第三章作业

  • 第三次交作业的时间:待通知。第四章作业第五章作业

  • 第四次交作业的时间:待通知。第六章作业第七章作业

  • 第五次交作业的时间:待通知。第八章作业

  • 第六次交作业的时间:待通知。第九章作业

  • 第七次交作业的时间:待通知。第十章作业(若上次没有做)第十一章作业第十三章作业

  • 上机实验


    实验1[上机时间:2012年3月2日下午两点;上机地点:电3楼517;实验报告截止时间:3月4日晚12点]


  • 在虚拟机(VirtualBox)上安装一款Linux发行版操作系统(推荐KUbuntu)
    注意:使用虚拟机不是必须的。可以直接在裸机上安装。也可以使用wubi安装。
  • 熟悉Linux下的软件安装方法
  • 安装一个可用的集成开发环境(推荐:eclipse CDT)和GCC编译工具链(大多自带)
  • 学会编写简单的shell脚本
  • 注意:为防止数据因重装系统丢失,建议将数据与系统分开管理
  • 完成时间:由助教指定
  • 实验2[上机时间:3月16日下午两点半开始;上机地点:电三楼517;实验报告截止时间:3月18日晚12点]


  • 在linux中,编写一个程序,该程序能创建一个进程
    • 父进程输出当前的时间和日期
    • 父进程输出自己的进程号和子进程的进程号
    • 子进程输出自己的进程号
    • 让子进程执行另外一个程序
    • 提示:getpid,fork,execve

    • 提供上机报告,说明:
      • 编写程序的过程中参考的材料或者网页
      • 编写程序的过程中出现的错误,解决问题的方法
      • 附上源代码和运行结果的截图
    • 完成时间:由助教指定

    实验3[上机时间:3月16日下午两点半开始;上机地点:电三楼517;实验报告截止时间:3月18日晚12点]


    • 在ftp://alpha.gnu.org/gnu/grub/上下载grub-0.97.tar.gz,编译
    • 制作grub启动软盘
    • 到网络上下载一个可用的OS映像,编写menu.lst或grub.cfg,利用grub启动之
    • 也可以自己编译一个Linux内核、制作一个根文件系统,启动之
    • 可以参考这里
    • 提交实验报告
    • 完成时间:由助教指定

    实验4[实验时间:4月13日下午2:30~5:30;实验地点:电三楼517;实验报告截至时间:4月15日晚12点]


    • 写一个多线程的程序,求素数。
    • 要求1:用户运行程序时在命令行输入一个素数,然后程序创建一个独立新的线程来输出小于或等于用户所输入数的所有素数。
    • 要求2:采用两种thread来实现pthread或者Windows thread或者Java thread
    • 完成时间:由助教指定

    实验5:本实验在讲完同步后才截止[实验时间:4月27日 && 5月4日下午2:30~5:30;实验地点:电三楼517;]


    • 参见链接
    • 说明:实验五分两次做,4月27日做实验一:进程调度
    • 5月4日做实验二:进程同步
    • 完成时间:5月6日晚12点上交实验一部分的实验报告
    • 5月13日晚12点上交实验二部分的实验报告

    实验6[实验时间:5月25日;截止时间:6月3日]


    • 参见链接
    • 完成时间:6月3日

  • Edited by xlanchen@ustc.edu.cn
    HeFei, AnHui, China.
    Fall, 2011.