106256-操作系统(第5版)-9-《操作系统教程》(5版)教学重点、难点及解决办法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《操作系统教程》(笫5版)教学重点、难点及解决办法
(按十个核心知识单元排列)
1、概念与原理
重点:
操作系统的发展历史、定义、作用、功能、特征、分类、发展动力和研究动向;
操作系统在计算机系统中的地位,以及与其他软件的联系与区别;
操作系统的资源管理技术:复用、虚拟和抽象;
操作系统三个最基本抽象:进程抽象、虚存抽象和文件抽象;
操作系统虚拟机及其实现原理;
多道程序设计定义、实现基础、基本原理、主要特征、优点缺点。
难点:
对并发性和共享性及其关系的深刻理解;
多道程序运行的时间关系、处理器及设备利用率计算;
操作系统在计算机系统中的地位和作用;
操作系统与其他软件的联系与区别;
对操作系统三个最基本抽象的深刻理解,虚拟机的定义及其实现原理。
解决办法:
讲解操作系统是计算机系统的核心和灵魂,是各类软件系统中最复杂的软件之一,是软件系统中的基础软件;提醒学生注意学习方法、激发学习兴趣,学习本课程最终目标是建立起以操作系统为中心的计算机系统的系统级的认识和全局性把握;强调操作系统是理论性与实践性并重的课程,理论与实践相结合十分重要,既要学好原理,又要动手实践,做到课程教学与实验内容彼此呼应、掌握基本原理与提高编程能力相互并重;
多道程序设计是讲授的重点之一,让学生理解和掌握多道程序设计原理,实现它必须解决的若干问题,基本调度思想,理解计算机效率的计算方法;可通过图解方法介绍操作系统三个最基本抽象,在此基础上再介绍虚拟机,让学生牢固掌握操作系统资源管理技术;
本知识单元主要要求是讲清楚“操作系统是什么?为什么要它?它干什么?它如何干?”等问题,回顾操作系统的发展历史和分类,有助于理解操作系统的实质,提醒学生带着以上问题学习操作系统;建议学生多看参考书和参考资料,多浏览相关网站,并为学生提供这类信息资源。
2、接口与服务
重点:
操作系统接口、操作系统服务;
POSIX标准、访管指令、应用编程接口API、标准库函数;
程序接口与系统调用;
操作接口与系统程序;
shell概念、变量、命令、语句及其简单程序设计。
难点:
深入理解操作系统是接口和服务的提供者、是资源的管理和控制者、是程序执行的控制和协调者、是虚拟机和扩展机的含义;
熟练掌握和使用操作系统提供的两类接口;理解内核的主体是系统调用;
掌握shell的其本编程技巧;
了解Linux系统调用及实现机制。
解决办法:
要让学生理解POSIX标准、API、标准函数库、系统调用之间的关系,并实际使用两类接口;掌握shell最好的方法是通过实验从易到难编写、调试和运行shell程序;
通过综合性实验全面训练学生对于操作系统API的综合应用能力。
3、结构、设计与实例
重点:
操作系统结构分类及设计方法;
操作系统内核、功能及属性;
操作系统的运行模式及其分类;
安全操作系统的开发方法、安全操作系统设计技术;
典型操作系统实例之一(Linux):1) Linux中断处理、下半部分处理;2)Linux进程、线程和内核线程;进程管理;3)传统调度算法;4) O(1)调度算法;5)物理主存管理层次及实现;
6)进程虚存空间管理技术;缺页处理;7)设备I/O处理;8)VFS;9)安全和保护机制。
难点:
理解操作系统函数在用户进程中执行的运行模型;
操作系统设计权衡与折衷原则、机制与策略分离原则;
安全操作系统的开发方法和设计技术;
Linux:1)中断处理流程与各种下半部分处理机制;2) Linux进程、线程的联系和区别;
3)掌握进程创建的不同方式(fork、vfork、clone);4) O(1)调度算法的思想与实现要点;5)物理主存和进程虚存管理、缺页处理;6) VFS的设计思想及实现技术。
解决办法:
操作系统的结构与设计中分两部分:操作系统设计和安全操作系统设计。前者讨论重点放在通用操作系统功能的设计和实现,涉及有效性、易用性、开放性等方面;后者着重讨论通用操作系统的安全性的设计和实现,涉及隔离性、完整性、可验证性方面。讲课时把握不同的重点。
典型操作系统实例的某些难点配合源程序片段或实验讲授,必定会事半功倍。通过模拟类实验,了解操作系统的基本体系结构。通过Linux环境下的内核类和应用类系列实验,加深对Linux操作系统设计原理与实现机制的理解。
4、进程和线程
重点:
可重入程序和可再用程序;
为什么要引入进程?进程的定义和属性、进程的状态和转换、进程的描述和组成、进程映像、进程上下文;
进程切换、切换时机和切换过程、处理器状态转换;
为什么要引入线程?多线程环境中,进程与线程的定义、状态、组成、联系和区别。
难点:
为进程建立和实现多个逻辑时钟;
进程的定义、属性、组成、映像、上下文、状态和转换的原因;
进程切换和处理器状态转换的关系,进程切换时机;
进程控制块和线程控制块的数据结构、进程的创建与撤销、进程的状态转换;
了解Linux进程、进程状态、进程队列(链表)、进程管理。
解决办法:
进程是多道程序系统出现后,为刻画系统内部出现的动态状况,描述运行程序活动规律而引进的最基本、最重要的概念和系统机制,所有多道程序设计操作系统都建立在进程基础上。它在理论与实现方面均有重要意义,是操作系统的一根主线,要紧抓不放、讲深讲透;
让学生深刻理解和掌握进程概念,宜从解决系统“并发性”和“共享性”入手,在并发系统中,程序与程序的执行(计算)不再一一对应,必须引入新概念--进程,进程是既能描述程序并发执行状态、又能用来共享资源的一个基本单位,进程是支持程序执行的一种系统机制;
线程在Linux中的含义和实现与通常概念下的线程(如Windows中的线程)是不一样的,学生应能清楚区别而不会混淆;通过实验模拟进程控制块和线程控制块的数据结构、进程与线程的创建与撤销、进程与线程的状态转换。加深理解进程和程序、进程和线程的联系与区别,理解进程及线程的重要数据结构及实现机制,熟悉进程及线程的创建、执行、阻塞、唤醒、终止等控制方法。通过在Linux环境中的实验学习进程创建,线程共享进程中的数据,通过内核模块显示进程控制块信息,加深理解进程地址空间和进程内核结构的实现机制。
5、处理器管理和调度
重点:
处理器状态及其转换、特权指令与非特权指令、程序状态字;
绝对时钟、间隔时钟、逻辑时钟及其实现;
中断分类、中断和异常的响应及服务、中断屏蔽、中断优先级、多重中断。
处理器调度的层次;处理器调度算法选择的准则;
进程/线程调度时机;低级调度的功能和类型;
作业调度和低级调度算法;
难点:
处理器状态及其转换方式;
程序状态字的作用及不同机器上的实现;
中断机制、中断和异常的响应及服务;
为进程建立多个逻辑时钟及逻辑时钟编程;
对各种调度算法的理解并掌握其应用场合;
含作业调度/进程调度/主存分配/资源分配在内,在具有相互制约的前提条件下,根据作业对资源的占用情况,计算作业流的执行过程;
了解Linux 2.4调度算法、Linux2.6调度算法。
解决办法:
深入理解中断和异常是激活操作系统的唯一手段,也是操作系统实现并发性的硬件基础之一的含义,操作系统是如何在中断技术支撑下,实现多道程序设计、处理器与设备的并行工作、设备与设备的并行工作、捕获异常事件并作相应处理等工作的;
按中断事件的来源和实现手段划分,可把中断源分成:硬中断与软中断,结合具体操作