《CH1操作系统引论》由会员分享,可在线阅读,更多相关《CH1操作系统引论(210页珍藏版)》请在金锄头文库上搜索。
1、主讲:林芳 Email:1 课程形式 主课,习题课,实验课,作业 考试:笔试 学习要求: 按时上课,认真听讲 认真记笔记,整理笔记 思考,讨论,提问 阅读参考书 成绩评定 考勤,作业,实验,期末考试 比例: 考勤+作业+实验 30% 期末考试 70%计算机操作系统汤小丹 编著(第三版)西 安 电 子 科 技 大 学 出 版 社 http: / 新世纪计算机类本科系列教材部级优秀教材参考教材 操作系统人民邮电出版社 罗宇 文艳 军编著 本书是国防科技大学国家精品课程配套建设 教材。全书阐述了操作系统的基本概念、工 作原理以及设计方法,以多道程序技术为基 础,以实用操作系统设计思想为主线,介绍 操
2、作系统涉及的关键内容,并在最后一章中 给出了具体的操作系统实例。 本书依次介绍了操作系统的发展历史、操作 系统运行机制、操作系统中的进程与线程管 理、存储管理、文件管理和设备管理,并对 各种并发控制问题展开了讨论,对前沿的分 布式系统进行了介绍,最后还详细介绍了 Windows NT操作系统的结构和实现。参考教材 操作系统原理与设计 张红光 机械工 业出版社 本书以计算机专业21世纪教学改革为导向,以 操作系统理论为依据,以当今主流操作系统实现 技术为内容,全面介绍操作系统的基本理论和内 核实现技术。全书共10章,主要介绍了计算机 系统知识、操作系统基本理论、并行处理技术、 存储管理技术、IO
3、管理技术、操作系统安全 知识等内容。每章后面都有本章小结及难度适宜 的习题,便于读者自学或巩固所学知识。 采用理论与实践相结合的方法,将枯燥的系统理 论与实现系统的设计和应用技术相融合,针对操 作系统的主要知识点进行阐述。 每章都附有难度适宜的习题、教学重点总结、学 习及要点掌握要求,有利子读者进行自学或巩固 所学知识。 参考教材 计算机操作系统教程清华大学出版 社 张尧学 本书在讲述操作系统原理的基础上,以 UNIX系统为例进行介绍。 为了适应计算机软硬件技术发展和培养学生 掌握新技术的能力,在第1版的基础上,本 书增加了线程以及实时调度等相关新内容, 同时对部分章节做了适当调整。 全书共分
4、10章。除了绪论之外,其他各章是 :操作系统用户界面、进程管理、处理机调 度、存储管理、进程和存储管理示例、文件 系统、设备管理、文件和设备管理示例以及 面向对象操作系统的设计。 参考教材 linux 操作系统 黄志洪 冶金工 业出版社 本书通过大量的图示和实例,深入浅出 的介绍了linux的基本原理和应用。 主要包括linux的基本概念和操作,linux 的树型结构,linux的文本编辑,linux的安 装和启动,用户管理,shell编程技术,进 程管理,c编译器,系统扩充,维护与监视 ,linux的图形界面,网络的基本概念与设 置,linux在网络资源共享和电子邮件方 面的应用,以及dns
5、、ftp、web和proxy 服务器等内容。 操作系统的地位 计算机系统由硬件和软件组成 操作系统在硬件基础上的第一层软件 是其它软件和硬件的接口硬件硬件操作系统操作系统其它系统软件其它系统软件应用软件应用软件操作系统的名称 监控(督)程序(系统)(Monitor) 执行系统(程序)(Executive System (program) 控制系统(程序)(Control System program) 管理程序(Supervisor, Supervisory System) 核心程序(Kernel) 操作系统(Operating System)初步了解操作系统做什么?-1#include in
6、t main(int argc, char *argv) puts(“hello world“); return 0; 初步了解操作系统做什么?-2 用户告诉操作系统执行hello程 序 操作系统找到该程序,检查其 类型 检查程序首部,找出正文和数 据的地址 文件系统找到第一个磁盘块 父进程需要创建一个新的子进 程(hello子进程) 操作系统需要将执行文件映射 到进程结构 操作系统设置CPU上下文环境 ,并跳到程序开始处#include int main(int argc, char *argv) puts(“hello world“); return 0; 初步了解操作系统做什么?-3 程
7、序的第一条指令执行,失败 ,缺页中断发生 操作系统分配一页内存,并将 代码从磁盘读入,继续执行 更多的缺页中断,读入更多的 页面 程序执行系统调用,在文件描 述符中写一字符串 操作系统检查字符串的位置是 否正确#include int main(int argc, char *argv) puts(“hello world“); return 0; 初步了解操作系统做什么?-4 操作系统找到字符串被送往 的设备 设备是一个伪终端,由一个 进程控制 操作系统将字符串送给该进 程 该进程告诉窗口系统它要显 示字符串 窗口系统确定这是一个合法 的操作,然后将字符串转换 成像素 窗口系统将像素写入存储
8、映 像区#include int main(int argc, char *argv) puts(“hello world“); return 0; 初步了解操作系统做什么?-5 视频硬件将像素表示转换 成一组模拟信号控制显示 器(重画屏幕) 显示器发射电子素 你在屏幕上看到hello world#include int main(int argc, char *argv) puts(“hello world“); return 0; 初步了解操作系统做什么?-6 1.程序的执行 负责启动每个程序, 以及结束程序的工作 2.完成与硬件有关的工作 3.完成与应用无关的工作 4.计算机系统的效率与
9、安 全问题#include int main(int argc, char *argv) puts(“hello world“); return 0; 硬件相关 指实现该工作的过程代码和硬件因素密切相关, 即 需要设置与测试、使用物理地址、设备接口寄存器等等 实现代码中包含存储器的物理地址,包含对设备接口寄 存器和设备接口缓冲区的读写等等。 内外存物理存储空间大小的变化程序和数据在存储空间 中物理位置的变化 硬件相关必然复杂繁琐、代码量大,硬件相关的 工作,其实现代码不通用 由于操作系统承担了上述工作,在其之上的各类 程序就没有必要直接同硬件打交道了。硬件改变 时,操作系统相应变化即可,其他的
10、程序不用作 出改变。与应用无关 是指这些工作是任何一个程序都需要的、 最基本的工作 它们具有共性,工作过程相同,与具体应 用无直接关系,即与用户所关心的应用目 标无直接关系为什么学习操作系统?-1 关于学习操作系统的争议:世界上只需要很少的操作系统设计/实现者我们都将使用 Win95/NT是这样吗?为什么学习操作系统?-2 赞成学习操作系统的理由: 操作系统包括了所有软件设计/实现问题 v资源共享/管理 v安全和身份验证 v灵活性,健壮性 v友好界面设计 v性能! 涉及到计算机科学的很多领域: v计算机体系结构/硬件 v软件设计 v程序设计语言 v数据结构 v算法为什么学习操作系统?-3我们并
11、不总使用Win95/NT。近年来,随着计算 机技术的高速发展,操作系统无论从内涵还是 外部界面都发生了巨大的变化。这些变化正朝 着两个不同的方向发展: v一个是以微软等大型软件公司为代表的通用操作系 统平台,其系统的用户界面更加友好,功能更加强 大。这样带来的结果是操作系统更加繁复和庞大, 系统内部结构更加复杂,人们对它的实现技术很难 探索清楚。 v另一个方面是随着手机等便携嵌入式系统的蓬勃发 展,操作系统技术又朝着可剪裁、浓缩化和小型化 发展。您会有被委派设计新型操 作系统的机会吗?学习操作系统很有意义! 操作系统具有一种魔力(巫术)抽象 提供了无限的CPUs 无限的内存 单一全球计算能力
12、等等.课程学习的总目标 这门课程的学习与研究可分为两个层面: 面向一般用户的应用层面:需要了解操作系统 的各种执行特点以及应用知识,学习并掌握将 操作系统提供的基本功能和特性融汇到实际应 用的编程技术和设计方法。 面向系统设计人员的核心层面:针对操作系统 内核构造、并行调度管理机制、资源管理及I/O 管理方法的原理和实现技术的描述目 录 第一章 操作系统引论 第二章 进 程 管 理 第三章 处理机调度与死锁 第四章 存 储 器 管 理 第五章 设 备 管 理 第六章 文 件 管 理 第七章 操作系统接口 第八章 网络操作系统 第九章 系 统 安 全 性 第十章 UNIX系统内核结构 第1章 操
13、作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 操作系统结构设计1.1 操作系统的目标和作用 1.1.1 操作系统的目标 1.1.2 操作系统的作用 1.1.3 推动操作系统发展的主要动力1.1.1 操作系统的目标 1有效性 2方便性 3可扩充性 4开放性设计操作系统时最重要的 两个目标操作系统的目标1有效性 操作系统的有效性可包含如下两方面的含 意: (1) 提高系统资源利用率:使CPU和I/O设备由 于能保持忙碌状态而得到有效的利用,且可使 内存和外存中存放的数据因有序而节省了存储 空间。 (2) 提高系
14、统的吞吐量:操作系统还可以通过合 理地组织计算机的工作流程,而进一步改善资 源的利用率,加速程序的运行,缩短程序的运 行周期,从而提高系统的吞吐量。操作系统的目标2方便性 配置OS后可使计算机系统更容易使用。一个未配 置OS的计算机系统是极难使用的,因为计算机硬 件只能识别0和1这样的机器代码。 用户要直接在计算机硬件上运行自己所编写的程 序,就必须用机器语言书写程序;用户要想输入 数据或打印数据,也都必须自己用机器语言书写 相应的输入程序或打印程序。 如果我们在计算机硬件上配置了OS,用户便可通 过OS所提供的各种命令来使用计算机系统。比如 ,用编译命令可方便地把用户用高级语言书写的 程序翻
15、译成机器代码,大大地方便了用户,从而 使计算机变得易学易用。操作系统的目标3可扩充性 随着VLSI技术和计算机技术的迅速发展,计算机 硬件和体系结构也随之得到迅速发展,相应地, 它们也对OS提出了更高的功能和性能要求。此外 ,多处理机系统、计算机网络,特别是Internet的 发展,又对OS提出了一系列更新的要求。 因此,OS必须具有很好的可扩充性,方能适应计 算机硬件、体系结构以及应用发展的要求。这就 是说,现代OS应采用新的OS结构,如微内核结 构和客户服务器模式,以便于方便地增加新的功 能和模块,并能修改老的功能和模块。关于新的 OS结构将在本章最后一节中介绍操作系统的目标4开放性 开放性是指系统能遵循世界标准规范,特别是遵 循开放系统互连(OSI)国际标准。凡遵循国际标准 所开发的硬件和软件,均能彼此兼容,可方便地 实现互连。开放性已成为20世纪90年代以后计算 机技术的一个核心问题,也是一个新推出的系统 或软件能否被广泛应用的至关重要的因素。 自20世纪80年代以来,由于计算机网络的迅速发 展,