课程大纲:操作系统 - 计算机科学与形式科学

第一章:课程介绍(1周)

  • 主题:操作系统概述
  • 学习目标
    • 了解操作系统的基本概念和重要性
    • 熟悉操作系统的主要类型和功能
  • 阅读/资源
    • "Operating System Concepts" by Abraham Silberschatz, Peter B. Galvin, Greg Gagne
  • 教学方法:讲座、讨论
  • 评估:简短的课堂讨论和自我介绍

第二章:进程管理(2-3周)

  • 主题:进程与线程
  • 学习目标
    • 理解进程、线程的基本概念
    • 学习进程调度算法
  • 阅读/资源
    • "Operating System Design" by Andrew S. Tanenbaum
  • 教学方法:讲座、小组讨论、编程练习
  • 评估:进程调度模拟项目

第三章:内存管理(4周)

  • 主题:内存分配与回收
  • 学习目标
    • 了解内存分配算法(如分页、分段)
    • 掌握虚拟内存的概念
  • 阅读/资源
    • "Computer Systems: A Programmer's Perspective" by Randal E. Bryant, David R. O'Hallaron
  • 教学方法:讲座、案例分析
  • 评估:内存管理系统设计作业

第四章:文件系统(5-6周)

  • 主题:文件存储与I/O
  • 学习目标
    • 理解文件系统结构
    • 探讨文件I/O操作的实现
  • 阅读/资源
    • "Modern Operating Systems" by Andrew S. Tanenbaum, Gordon M. Lee
  • 教学方法:讲座、实践演示
  • 评估:文件系统设计报告

第五章:并发与同步(7周)

  • 主题:并发控制与互斥
  • 学习目标
    • 学习进程间通信机制
    • 理解死锁及其避免策略
  • 阅读/资源
    • "Operating System Concepts" by Abraham Silberschatz et al.
  • 教学方法:讲座、小组讨论、同步练习
  • 评估:并发控制程序设计作业

第六章:高级话题(8-9周)

  • 主题:内核与用户空间、虚拟化技术
  • 学习目标
    • 深入理解内核与用户空间的交互
    • 了解现代操作系统中的虚拟化技术
  • 阅读/资源
    • "Linux Kernel Development" by Robert Love
  • 教学方法:讲座、研讨会
  • 评估:虚拟机设计报告

结束课程(10周)

  • 主题:总结与未来展望
  • 学习目标
    • 总结本课程核心概念
    • 分析实际操作系统中的挑战与解决方案
  • 教学方法:复习讨论、期末项目分享
  • 评估:期末考试与项目展示

全程评估:

  • 作业:每章后的小型编程任务和理论作业
  • 小测验:每周或每两章进行一次
  • 项目:贯穿课程的大规模设计项目
  • 课堂参与:讨论和小组活动的表现

此大纲旨在提供一个全面且循序渐进的学习路径,确保学生在理论和实践中深入理解操作系统。