清华大学操作系统向勇老师的讲义专业知识讲座
- 格式:ppt
- 大小:1.52 MB
- 文档页数:96
《操作系统安全》课程教学大纲课程名称操作系统安全课程编码131530019 课程类型(学院内)跨专业课程适用范围信息安全学分数 3 先修课程操作系统、数据结构学时数48 其中实验学时其中实践学时考核方式考试制定单位数学与信息科学学院执笔者审核者一、教学大纲说明(一)课程的性质、地位、作用和任务操作系统安全是信息领域重要的核心技术, 在信息安全领域有着非常重要的地位。
《操作系统安全》对培养学生抽象思维能力和信息安全的分析能力有着重要作用;也是信息安全专业高年级学生开设的一门重要课程, 其为全面了解操作系统的安全机制、安全设计、操作系统评测和安全应用提供一些入门方法, 使学生对操作系统安全有一个清晰和完整的认识。
(二)课程教学的目的和要求通过本课程的学习, 学生具有操作系统安全基础知识, 具备对操作系统安全进行分析的基本专业素质和能力。
了解:操作系统安全的有关概念及相关问题, 包括Windows、UNIX等流行操作系统的存在的安全问题, 了解高安全级别操作系统的有关安全机制, 了解操作系统安全评测、安全操作系统的应用和国外在安全操作系统领域的新进展。
理解: 操作系统安全模型、安全体系结构和操作系统安全形式化规范与验证以及安全操作系统设计一般过程。
掌握: 操作系统安全的基本概念、操作系统的安全机制、操作系统设计主要的安全模型和安全体系结构、Unix系统安全策略及安全机制、隐蔽通道分析和处理方法。
(三)课程教学方法与手段教学方法: 本课程采用老师讲授、结合学生自学的方法;教学手段:采用多媒体教学, 教师口授结合电脑演示。
(四)课程与其它课程的联系本课程涉及到信息安全基础、数据结构、计算机网络和操作系统等知识, 因而在开设本课程之前需要为学生开设预备课程: 数据结构、密码学原理、计算机网络和操作系统。
(五)教材与教学参考书教材: 卿斯汉等著, 操作系统安全(第2版), 清华大学出版社, 2011。
教学参考书:1.卿斯汉等著, 操作系统安全, 清华大学出版社, 2004。
中山大学信息科学与技术学院计算机科学系 中山大学信息科学与技术学院计算机科学系课程教学大纲《操作系统原理》课程教学大纲课程名称:操作系统原理类别:专业必修课授课对象:本科生总学时:72学时适用专业:计算机科学与技术/信息安全开课学期:第五学期编写人员:丘静玉审核人员:印鉴编写日期:2006年4月一、教学目的操作系统是配置在计算机硬件上的第一层软件,其他所有的系统软件和应用软件都必须依赖于操作系统的支持。
《操作系统原理》是计算机学科各相关专业的重要的必修课程之一,它在计算机知识结构中有着极其重要的地位和作用,可为学生较全面地建立起关于计算机系统的概念。
学生通过学习本课程应该达到以下目标:1.掌握操作系统的基本概念、原理、技术和方法,深入了解操作系统在计算机系统中的地位及作用,以及它与硬件和其它软件之间的关系,进而了解操作系统控制整个计算机系统执行的全过程,具有操作系统的整体概念。
2.能用程序设计语言编写、调试和运行操作系统的主要算法和功能模块。
3.了解一个以上主流操作系统的实现技术,熟练掌握应用。
4.获取知识的同时,掌握学科的基本规律及研究方法,初步培养自我拓展知识和运用知识的能力。
总之,本课程要求学生全面地了解和掌握操作系统的目标、作用和模型,从资源管理的角度领会操作系统的功能和实现过程,使学生系统科学地受到分析问题和解决问题的训练,提高运用理论知识解决实际问题的能力,鼓励并初步培养学生的研究精神和能力。
二、教材选择1. 教学内容概述《操作系统原理》讲述操作系统的基本概念、原理和方法,其课程内容应包含《中国计算机科学与技术学科课程2002》(简称CCC2002)里列举的知识体系:CS-OS1至8。
从资源管理的角度来说,课程内容主要围绕操作系统的几个基本功能展开:(1) 操作系统概述:介绍操作系统的基本概念、目标、功能、发展历史和类型、操作系统的主要成就以及现代操作系统的特点等。
(2) 处理器管理:在进程概念的基础上讨论进程描述、进程控制、进程同步和互斥、死锁、饿死、线程、处理器调度等问题。
清华⼤学操作系统(陈渝,向勇)课程笔记——(⼗)协同多道程序设计和并发问题主要内容背景—些概念临界区 (Critical section)⽅法1:禁⽤硬件中断⽅法2:基于软件的解决⽅法⽅法3:更⾼级的抽象背景多道程序设计(multi-programming):现代操作系统的重要特性并⾏很有⽤(为什么? )提⽰:多个并发实体:CPU(s),I/O, …,⽤户,…进程/线程:操作系统抽象出来⽤于⽀持多道程序设计CPU调度:实现多道程序设计的机制调度算法-不同的策略独⽴的线程:不和其他线程共享资源或状态确定性=输⼊状态决定结果可重现→能够重现起始条件,I/OI/O调度顺序不重要合作线程:在多个线程中共享状态不确定性不可重现不确定性和不可重现意味着bug可能是间歇性发⽣的进程/线程,计算机/设备需要合作优点1:共享资源—台电脑,多个⽤户⼀个银⾏存款余额,多台ATM机嵌⼊式系统〔机器⼈控制:⼿臂和⼿的协调)优点2:加速I/O操作和计算可以重叠多处理器–将程序分成多个部分并⾏执⾏优点3:模块化将⼤程序分解成⼩程序使系统易于扩展以编译为例,gcc会调⽤cpp,cc1,cc2,as,ld程序可以调⽤函数fork()来创建⼀个新的进程操作系统需要分配⼀个新的并且唯⼀的进程ID因此在内核中,这个系统调⽤会运⾏共享的全局变量翻译成机器指令new_pid = next_pidit ++(不是原⼦操作);1) LOAD next_pid Regl2)STORE Regl new_pid3)INC Regl4STORE Regl next_pid假设两个进程并发执⾏如果next_pid等于100,那么其中⼀个进程得到的ID应该是100,另⼀个进程的ID应该是101,next_pid应该增加到102⽆论多个线程的指令序列怎样交替执⾏,程序都必须正常⼯作多线程程序具有不确定性和不可重现的特点不经过专门设计,调试难度很⾼不确定性要求并⾏程序的正确性先思考清楚问题,把程序的⾏为设计清楚切忌急于着⼿编写代码,碰到问题再调试Race Condition(竞态条件)系统缺陷:结果依赖于并发执⾏或者事件的顺序/时间不确定性不可重现怎样避免竞态?让程序不会被打断Atomic Operation(原⼦操作)原⼦操作是指⼀次不存在任何中断或者失败的执⾏该执⾏成功结束或者根本没有执⾏并且不应该发现任何部分执⾏的状态实际上操作往往不是原⼦的有些看上去是原⼦操作,实际上不是连x++这样的简单语句,实际上是由3条指令构成的有时候甚⾄连单条机器指令都不是原⼦的Pipeline,super-scalar,out-of-order,page fault问题Critical section(临界区)临界区是指进程中的⼀段需要访问共享资源并且当另⼀个进程处于相应代码区域时便不会被执⾏的代码区域Mutual exclusion (互斥)当⼀个进程处于临界区并访问共享资源时,没有其他进程会处于临界区并且访问任何相同的共享资源Dead lock (死锁)两个或以上的进程,在相互等待完成特定任务,⽽最终没法将⾃⾝任务进⾏下去Starvation(饥饿)⼀个可执⾏的进程,被调度器持续忽略,以⾄于虽然处于可执⾏状态却不被执⾏临界区临界区属性互斥:同⼀时间临界区中最多存在⼀个线程Progress:如果⼀个线程想要进⼊临界区,那么它最终会成功有限等待:如果⼀个线程i处于⼊⼝区,那么在i的请求被接受之前,其他线程进⼊临界区的时间是有限制的⽆忙等待(可选)∶如果⼀个进程在等待进⼊临界区,那么在它可以进⼊之前会被挂起临界区代码保护⽅法⽅法1:禁⽤硬件中断没有中断,没有上下⽂切换,因此没有并发硬件将中断处理延迟到中断被启⽤之后⼤多数现代计算机体系结构都提供指令来完成进⼊临界区禁⽤中断离开临界区开启中断缺点⼀旦中断被禁⽤,线程就⽆法被停⽌整个系统都会为你停下来可能导致其他线程处于饥饿状态要是临界区可以任意长怎么办⽆法限制响应中断所需的时间(可能存在硬件影响)所以要⼩⼼使⽤另外,禁⽤软件中断⽆法在多CPU情况下⽆法解决互斥问题⽅法2:基于软件的解决⽅法经典逻辑线程可以共享⼀些共有的变量来同步他们的⾏为。
159计算机教育Computer Education第 4 期2020 年 4 月 10 日中图分类号:G642基于公有云的操作系统实验平台建设方案朱小军(南京航空航天大学 计算机科学与技术学院,江苏 南京 211106)摘 要:分析当前编写、调试操作系统内核对特殊运行环境的需求,对比现行的方案,提出一套基于公有云的实验平台建设方案,介绍该方案在教学中的应用情况,最后总结教学效果和经验。
关键词:操作系统;内核实验;公有云0 引 言操作系统课程一般分为原理课程和实践课程两部分,在笔者所在高校这两部分是同步开展的。
但学生的反馈一般是“理论简单,实验难”。
原因在于,实验涉及大量的软硬件交互,一方面需要用汇编语言管理硬件,同时要用高级语言给上层应用提供支撑。
虽然“难”,但是学生在坚持完成后获得了收获和成长,因此,“难”是不可或缺的[1]。
作为任课教师,我们希望尽力为学生减少不必要的、与核心知识点相关性较弱的负担。
在教学实践中, “配置实验环境”给学生带来了不小的麻烦。
如何在经费有限的前提下,搭建一个既方便学生修改调试内核,又能够为教师批改程序提供支撑的操作系统实验平台,十分必要。
1 操作系统实验平台的现状操作系统实验,尤其是内核实验,需要特殊的运行环境。
笔者提出了一套基于xv6的内核实验[1]。
由于编译工具链的原因,这套实验依赖Ubuntu 操作系统,并且编译完成的xv6内核需要在QEMU (一个虚拟机)上运行。
如果电脑是Windows 操作系统,则需要首先创建一个虚拟机,在虚拟机上安装Ubuntu 操作系统,整个运行环境如图 1所示。
在教学中尝试多种实验教学平台搭建方案,基金项目:南京航空航天大学2019年度“实验技术研究与开发项目”研究创新类项目“基于云计算的操作系统实验平台建设”。
作者简介:朱小军,男,副教授,研究方向为无线网络、算法设计与分析,*************.cn。
文章编号:1672-5913(2020)04-0159-04图 1 教学实践中xv6操作系统通常的运行环境ຳྲമ 1ᡰ⽪DŽ㼨ᵪWindows ㌫㔏VMWare 㲊ᤏᵪ Ubuntu ㌫㔏 QEMU 㲊ᤏᵪ xv6㌫㔏 遇到一些困难。