操作系统(2017春季)课程主页

课程编号

  • 22010040

课程时间与地点

  1. 周二 5~6节,逸B-205
  2. 周五 5~6节,逸B-205

备注:2017.2.20~2017.6.23(共计18周)

课程目标:

  • 了解操作系统在计算机系统中的地位
  • 了解与掌握操作系统的基本原理、概念、方法与技术
  • 了解操作系统的整体工作原理
  • 了解与掌握操作系统的主要功能模块与经典算法

教材:

参考书目:

  1. 《现代操作系统(第3版)》,Andrew S. Tanenbaum著,机械工业出版社
  2. 《操作系统概念(第七版)》,Abraham Silberschatz等著,郑扣根译,高等教育出版社
  3. 《UNIX操作系统设计(英文版)》,Maurice J. Bach著,机械工业出版社

课程考核方法:

  • 课后作业成绩 10%
  • 期中测验 10%
  • 实验成绩 30%
  • 期末成绩 50%

课程安排:

顺序 开始时间 课程内容 讲义 课后习题
1 2017/02/21 操作系统概论 操作系统概论讲义 一(10、34),二(7、9)
2 2017/03/17 处理器管理 处理器管理讲义 一(9、11、32、57),二(15、22、30、34)
3 2017/04/11 并发进程控制 并发进程控制讲义 一(14、20),二(10、19、23、46)
4 2017/05/26 存储管理 存储管理讲义 一(15、33),二(9、39、40)
5 2017/05/12 文件系统 文件系统讲义 一(6、27、35),二(17、23、28)
6 2017/06/16 设备管理 设备管理讲义 二(5,10,15,18)

实验内容:

  1. 引导程序与保护模式[时间:2017-03-03,地点:实验楼-乙124], 参考资料

    • MBR:从实模式切换到保护模式,加载测试程序并执行;
    • 应用:实现一个能够屏幕输出的测试程序。

  2. 系统调用[时间:2017-03-24,地点:实验楼-乙124], 参考资料

    • 内核:建立完整的系统调用机制,实现系统调用putc;
    • 库:基于putc系统调用实现库函数printf(格式化输出);
    • 用户:实现一个调用printf的测试程序。

  3. 进程切换[时间:2017-04-07,地点:实验楼-乙124], 参考资料

    • 内核:实现进程切换,并提供系统调用fork, exit, sleep(时钟中断);
    • 库:封装上述系统调用;
    • 用户:实现一个Pingpong的测试程序,Ping进程与Pong进程各自sleep若干秒之后分别打印出Ping和Pong。

  4. 进程同步[时间:2017-05-05,地点:实验楼-乙124], 参考资料

    • 内核:实现信号量和P/V操作,并提供相应的系统调用createSem, lockSem, unlockSem, destroySem;
    • 库:封装上述系统调用;
    • 用户:实现一个改进的Pingpong测试程序,Pong进程需要等Ping进程打印出Ping之后才能打印出Pong。

  5. 文件系统(可选)[时间:2017-06-02,地点:实验楼-乙124], 参考资料

    • 内核:实现文件系统的基本操作,并提供系统调用open, close, read, write;
    • 库:封装上述系统调用;
    • 工具:格式化磁盘镜像,并能在磁盘镜像对应的文件系统中创建目录,从宿主机拷贝文件至磁盘镜像中指定目录等;
    • 用户:实现一个文件拷贝的测试程序。

课堂演示小程序

助教:

© 2015 Institute of Computer Software, Nanjing University. All rights reserved.