The Go Blog

Operating Systems 原理

11 March 2019 and bantana
1 January 0001

操作系统原理(Operating Systems)学习目标

《操作系统原理》是针对计算机科学技术专业三年级本科生开设的一门专业基础课程。

本课程着重学生 "系统观" 的培养,

通过重点讲述:

  • 操作系统的内部结构、
  • 工作原理及典型技术的实现,
  • 使学生建立起对操作系统的整体及各个功能模块的认识

从而系统掌握计算机的专业知识,进一步提升学生的软件开发能力乃至系统软件开发能力。

任何计算机都必须在加载相应的操作系统之后,才能构成一个可以运转的、完整的计算机系统。

操作系统的功能是否强大,决定了计算机系统的综合能力;操作系统的性能高低,决定了整个计算机系统的性能;操作系统本身的安全可靠程度,决定了整个计算机系统的安全性和可靠性。操作系统是软件技术的核心和基础运行平台。因此,计算机科学技术专业的学生需要学习和掌握操作系统的基本原理和专业知识。

本课程的教学目标是:

1.掌握操作系统的基本概念、功能组成、系统结构及运行环境; 2.熟悉并运用操作系统工作原理、设计方法和实现技术,理解有代表性、典型的操作系统实例(如UNIX、Linux和Windows); 3.了解操作系统的演化过程、发展研究动向、新技术以及新思想,为后续相关课程的学习打下良好基础,为后续职业发展奠定基石。

操作系统概述

  • 操作系统做了什么?10m
  • 操作系统的定义和作用 20m
  • 操作系统的主要特征 10m
  • 典型操作系统的架构 11m
  • 操作系统的分类1 17m
  • 操作系统的分类2 18m

practice exercise: 第一周测试

操作系统运行环境

主要内容:特权指令/非特权指令、CPU状态;中断系统的作用;中断硬件工作原理;中断处理程序流程;中断处理程序举例;中断系统举例;系统调用基本概念;系统调用实现机制;系统调用实现实例。

  • 处理器状态15m
  • 中断与异常机制介绍14m
  • 中断与 异常机制 工作原理 16m
  • 实例:X86的中断与异常机制 9m
  • 系统调用机制 15m
  • 实例:基于X86的Linux系统调用机制简介13m

practice exercise:

第二周测验32m

进程线程模型

主要内容:进程基本概念;进程状态及状态转换;进程控制块的作用和内容;进程控制操作;进程地址空间与进程映像;为什么引入线程?线程的应用场景;Web服务器的实现;线程概念、线程与进程的区别;线程实现的三种方式;Pthreads线程库及应用;几个重要的概念:原语、可再入程序。

  • 进程的基本概念 17m
  • 进程状态及状态转换 14m
  • 进程控制 14m
  • 关于进程相关概念的讨论 14m
  • 线程的引入 14m
  • 线程机制的实现11m

practice exercise:

第三周测验30m

处理器调度

主要内容:调度层次与调度类型;调度时机与进程切换;调度算法设计原则;调度算法设计时考虑的各种因素;基本调度算法;多级队列反馈调度算法;调度算法应用;Linux调度算法的演化; Windows调度算法简介。

  • 处理器调度的相关概念15m
  • 设计调度算法要考虑的几个问题9m
  • 批处理系统的调度算法 13m
  • 交互式系统的调度算法 16m
  • 多级反馈队列调度算法、各种调度算法小结等 13m
  • Windows 的线程调度算法 14m

1 practice exercise 第四周测验30m

同步机制(1)

主要内容:进程/线程的并发执行;竞争条件的引入;进程互斥与进程同步的概念;进程互斥的软件解法;Peterson算法;进程互斥的硬件解法;睡眠与唤醒机制;信号量及PV操作;用信号量解决互斥问题举例;用信号量解决生产者消费者问题;用信号量解决读者写者问题。

  • 进程的并发执行 12m
  • 进程互斥 9m
  • 进程互斥的软件解决方案 17m
  • 进程互斥的硬件解决方案 12m
  • 进程同步 13m
  • 信号量及PV操作 11m
  • 生产者消费者问题 9m
  • 读者写者问题 10m

1 practice exercise 第五周测验20m

同步机制(2)

主要内容:信号量的问题及管程的引入;管程的基本概念;Hoare管程;管程应用举例;Mesa管程;JAVA管程解决生产者消费者问题。

  • 管程的基本概念 11m
  • HOARE管程 8m
  • 管程的应用 11m
  • MESA管程 13m
  • PTHREAD中的同步机制 8m
  • 进程间通信IPC 11m
  • 典型操作系统中的IPC机制 10m

1 practice exercise 第六周测验12m

存储模型(1)

主要内容:基本概念介绍;物理内存管理方案之可变分区管理方案;物理内存管理方案之页式管理方案。

  • 基本概念-地址重定位 12m
  • 物理内存管理 7m
  • 伙伴系统 8m
  • 基本内存管理方案1 9m
  • 基本内存管理方案2 19m
  • 交换技术 14m

1 practice exercise 第七周测验26m

存储模型(2)

主要内容:虚拟存储管理基本思想;页表设计;地址转换过程;TLB引入;缺页异常处理;页面置换算法及应用;工作集模型;清除策略与页缓冲技术。

  • 虚拟存储技术 12m
  • 页表及页表项的设计 18m
  • 地址转换过程及TLB的引入 11m
  • 页错误(Page Fault) 6m
  • 软件相关策略 18m
  • 页面置换算法1 25m
  • 页面置换算法2-工作集算法 17m
  • 其他相关技术 7m

1 practice exercise 第八周测验36m

文件系统(1)

主要内容:文件系统的功能;文件分类;文件的逻辑结构和物理结构;文件控制块的内容和作用;文件目录与目录文件;文件系统的布局;文件的基本操作;文件系统的内存结构;磁盘空间管理;UNIX文件系统。

  • 文件与文件系统 15m
  • 文件的存储介质 8m
  • 磁盘空间管理 11m
  • 文件控制块及文件目录 13m
  • 文件的物理结构 29m
  • 文件系统的实现 13m
  • 文件系统实例——UNIX 15m

1 practice exercise 第九周作业32m

文件系统(2)

主要内容:FAT16/32文件系统;文件共享与保护机制;文件系统一致性;文件系统性能。

  • 文件系统实例——FAT 22m
  • 文件操作的实现 12m
  • 文件系统的管理 13m
  • 文件系统的安全性 6m
  • 文件系统的性能1 18m
  • 文件系统的性能2 16m
  • 文件系统的性能3 11m
  • 文件系统的两个练习 8m

1 practice exercise 第十周作业30m

I/O系统

主要内容:设备管理的目标和任务;I/O设备分类;I/O设备组成;I/O端口地址;I/O控制方式;I/O软件层次;设备分配算法;设备驱动程序;缓冲技术;I/O性能问题。

  • I/O管理概述 18m
  • I/O硬件组成 9m
  • I/O控制方式 6m
  • I/O软件的组成 5m
  • I/O相关技术 10m
  • I/O设备管理 8m
  • I/O性能问题 5m

1 practice exercise 第十一周作业24m

死锁

主要内容:死锁的基本概念;产生死锁的原因;死锁举例;用资源分配图讨论死锁问题;死锁预防方法;死锁避免方法;银行家算法;银行家算法的应用;死锁检测方法;死锁解除方法;哲学家就餐问题。

  • 死锁的基本概念 20m
  • 资源分配图 12m
  • 死锁预防 14m
  • 死锁避免 16m
  • 银行家算法 15m
  • 死锁检测与解除 8m
  • 哲学家就餐问题 18m

1 practice exercise 第十二周作业30m

期末

1 practice exercise 期末考试2m