美文网首页
第一章 、介绍

第一章 、介绍

作者: Jorunk | 来源:发表于2018-08-05 10:58 被阅读26次
内容摘要.png

课程概述

预备知识

  • 计算机结构原理(Intel 80386+)
  • C与汇编程序设计
  • 数据结构

参考教材

操作系统概念(第七版);Silberschatz、 Galvin和Gagne著
操作系统——精髓与设计原理(第七版); William Stallings著

课程内容

■ 操作系统结构
■ 中断及系统调用
■ 内存管理
■ 进程及线程
■ 处理机调度
■ 同步互斥
■ 文件系统
■ I/O子系统

操作系统实验

■ 实验0: 实验环境准备
■ 实验1: 系统启动及中断
■ 实验2: 物理内存管理
■ 实验3: 虚拟内存管理
■ 实验4: 内核线程管理
■ 实验5: 用户进程管理
■ 实验6: CPU调度
■ 实验6: CPU调度
■ 实验7: 同步与互斥
■ 实验8: 文件系统

课程设计

■ ucore+模块化改进

  • 多种平台上的内核可加载模块完善
  • 多种平台上的动态链接库完善
  • 内核功能的模块化改进
    • 文件系统、处理机调度算法、内存置换算法、设备驱动

■ 在真实系统上运行ucore+

  • 树莓派(Raspberry PI)
  • Intel Edison

什么是操作系统?

操作系统定义

■ 没有公认的精确定义
■ 操作系统是一个控制程序

  • 一个系统软件
  • 控制程序执行过程,防止错误和计算机的不当使用
  • 方便用户程序,给用户程序提供各种服务
  • 方便用户使用计算机系统
  • 解决资源访问冲突,确保资源公平使用
    ■ 操作系统是一个资源管理器
  • 管理各种计算机软硬件资源
  • 提供访问计算机软硬件资源的高效手段
  • 应用程序与硬件之间的中间层

操作系统地位


操作系统软件的分类

操作系统软件的组成

■ Shell -- 命令行接口

  • 通过键盘操纵
  • 方便用户进行命令输入
    ■ GUI -- 图形用户接口
  • WIMP
    (视窗(Window)、图标(icon)、选单(Menu))
  • 直接操作和所见即所得
    ■ Kernel -- 操作系统内部
  • 执行各种资源管理等功能


ucore教学操作系统内部

操作系统内核特征

■ 并发

  • 计算机系统中同时存在多个运行的程序,需要OS管理和调度
    ■ 共享
  • “同时”访问
  • 互斥共享
    ■ 虚拟
  • 利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务
    ■ 异步
  • 程序的执行不是一贯到底,而是走走停停,向前推进的速度不可预知
  • 只要运行环境相同,OS需要保证程序运行结果也要相同

为什么要学习操作系统

操作系统是多门课程的综合

■ 综合课程-结合许多不同的课程

  • 程序设计语言
  • 数据结构
  • 算法
  • 计算机体系结构
    ■ 材料
  • 操作系统概念和原理、源代码
    ■ 技能
  • 操作系统的设计和实现

学习操作系统的目的

■ 已有操作系统很好,我将来的工作不会写操作系统

  • Windows,Linux
    ■ 已有操作系统是否解决了所有的事?
    ■ 为什么我要学习它


操作系统软件的地位

■ 操作系统:计算机科学研究的基石z之一

  • 计算机系统的基本组成部分
  • 由硬件的发展和应用需求所驱动
  • 学术和工业的持续推进

哪里在做操作系统研究?

■ 顶尖大学的计算机科学部门
■ 计算机产业

  • 旧时:Xerox(PARC),IBM,DEC(SRC),Bell
    Labs
  • 现代:Microsoft,Google,Yahoo,IBM,HP,Sun,Intel,VMware,Amazon,...
  • 国内:阿里巴巴、百度、华为
    ■ 研究协会
  • ACM SIGOPS
  • USENIX

操作系统研究的顶级会议

■ ACM操作系统原理研讨会(SOSP)

  • ACM SIGOPS
  • 每两年(奇数:1967 - )
  • ~20篇
    ■ USENIX操作系统设计和实现研讨会(OSDI)
  • USENIX
  • 每两年(偶数:1994 - )
  • ~20篇论文

最具影响力的操作系统论文

■ SIGOPS Hall-of-Fame Awards

  • 论文必须发表在同行评议的文献中至少十年
  • 到目前为止有说三十多篇论文获奖
    ■ 假如你想做操作系统研究
  • 需要阅读和理解这些论文
    http://www.sigops.org/award-hof.html

操作系统具有挑战性

■ 操作系统很大

  • Windows XP有4500万行
    ■ 操作系统管理并发
  • 并发导致有趣的编程挑战
    ■ 操作系统代码管理原始硬件
  • 时间依赖行为,非法行为,硬件故障
    ■ 操作系统代码必须是高效的,低耗CPU、内存、 磁盘的
    ■ 操作系统有错,就意味着机器出错
  • 错做系统必须比用户程序拥有更高的稳定性
    ■ 操作系统是系统安全的基础
    ■ 操作系统并不仅仅关于并发性和琐碎的调度算法
    ■ 并发性是一小部分
  • 内核里不存在管程和哲学家问题
  • 内核中的锁问题需要太多的知识背景
    ■ 磁盘调度大多是不相干的(SCSI已经做了这些)
    ■ 进程调度室个比较小的话题

■ 操作系统是关于
■ 权衡

  • 时间与空间
  • 性能和可预见性
  • 公平与性能
    ■ 硬件
  • 如何让中断、异常、上下文切换真正的有效?
  • TLB是如何工作的?这对页表又意味着什么?
  • 如果你不展示任何汇编代码,那么你就是不是教操作系统的。

如何学习操作系统

■ "不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之;学至于行之而止矣。"
--荀子《儒效篇》
■ “天才是1%的灵感加上99%的汗水"
-- Thomas Edison


操作系统实例


KenThompson、Dennis Ritchie

Linux家族


Windows家族

操作系统的演变

操作系统为什么改变

■ 只要功能:硬件抽象和协调管理
■ 原则:设计随着各种相关技术的改变而做出一定的改变
■ 在过去二十年底层技术有极大的改变

  • 在1981年到2012计算机系统的对比


操作系统的演变

■ 单用户系统
■ 批处理系统
■ 多道程序系统
■ 分时
■ 个人计算机:每个用户一个系统
■ 分布式计算:每个用户多个系统

单用户系统(‘45 - ’55)

■ 操作系统 = 装载器 + 通用子程序库
■ 问题:昂贵的组件的低利用率


批处理(‘55 - ’65)

■ 顺序执行与批处理


多道程序(‘65 - ’80)

■ 保证多个工作在内存中并且在个工作间复用CPU


分时(‘70 - )

■ 定时中断用于工作对CPU的复用


个人端脑操作系统

■ 个人电脑系统

  • 单用户
  • 利用率已不再是关注点
  • 重点是用户界面和福媒体功能不存在
  • 很多老的服务和功能不存在
    ■ 演变
  • 最初:操作系统作为一个简单的服务提供者(简单库)
  • 现在:支持协调和沟通的多应用系统
    越来越多的安全问题(如,电子商务、医疗记录)

分布式操作系统

■ 网络支持成为一个重要的功能
■ 通常支持分布式服务

  • 跨多系统的数据共享和协调
    ■ 可能使用多个处理器
  • 松、紧耦合系统
    ■ 高可用性与可靠的要求


操作系统演变中的计算机系统

操作系统结构

简单结构

■ MS-DOS - 在最小空间,设计用于提供大部分功能(1981 ~ 1994)

  • 没有拆分为模块
  • 虽然MS-DOS在接口和功能水平没有很好地分离,主要用汇编编写


分层结构

■ 将操作系统分为多层(levels)

  • 每层建立在低层之上
  • 最底层(layer 0)是硬件
  • 最高层(layer N)是用户界面

■ 每一层仅使用更低一层的功能(操作)和服务

UNIX操作系统与C语言

■ 1972由Kenneth Thompson和Dennis Ritchie在贝尔实验室设计。
■ 设计用于UNIX操作系统的编程例程
■ “高级”系统编程语言创建可移植操作系统概念


K. Thompson and D. Ritchie

uCore操作系统结构

微内核接口(Microkernel)

■ 尽可能把内核功能移到用户空间
■ 用户模块间的通信使用消息传递
■ 好处:灵活、安全
■ 缺点:性能


外核结构(Exokernel)

■ 让内核分配机器的物理资源给多个应用程序,并让每个程序决定如何处理这些资源
■ 程序能链接到操作系统库(libOS)实现操作系统抽象
■ 保护与控制分离


VMM(虚拟机管理器)


■ 虚拟机管理器将单独的机器接口转换成很多的虚拟机,每个虚拟机都是一个原始计算机系统的有效副本,并能完成所有的处理器指令。


小结

■ 操作系统很有趣,可以管理和控制整个计算机!
但...
■ 它是不完备的

  • bug、性能异常、功能缺失,有很多的挑战和机遇
    ■ 它是庞大的
  • 有很多概念、原理和代码需要了解。
    ■ 我们能做到!
  • ...至少靠你自己的恒心和投入,完全可以在一个学期理解OS原理和uCore OS的实现

相关文章

网友评论

      本文标题:第一章 、介绍

      本文链接:https://www.haomeiwen.com/subject/qwxbvftx.html