Download presentation
Presentation is loading. Please wait.
1
大学计算机基础—— 系统工具与环境 (理工科用) 赵 欢 肖德贵 李丽娟 洪跃山 编著
2
第一部分 计算科学概论 第3章 操作系统 大学计算机基础 ——系统工具与环境(理工科用)
3
本章内容提要 操作系统概述 操作系统的功能模块 常用操作系统 小结 大学计算机基础——系统工具与环境
4
3.1 操作系统概述 3.1.1 操作系统概念 一个计算机系统包含计算机硬件、操作系统、系统和应用程序、用户等组件
3.1 操作系统概述 操作系统概念 一个计算机系统包含计算机硬件、操作系统、系统和应用程序、用户等组件 操作系统是计算机系统中最核心和最底层的软件系统 中断(Interrupt)和陷阱(Trap) 中断(也称硬件中断) 陷阱(也称软中断) 理解一个计算机系统 大学计算机基础——系统工具与环境
5
3.1 操作系统概述 3.1.1 操作系统概念 操作系统的通用定义: 操作系统的目标是提供一个执行程序的环境
3.1 操作系统概述 操作系统概念 操作系统的通用定义: 中间层 服务提供者 资源管理器 控制程序 内核(kernel) 操作系统的目标是提供一个执行程序的环境 操作系统的工作模式,中断驱动:通过中断(底层)和陷阱(上层) 大学计算机基础——系统工具与环境
6
3.1 操作系统概述 3.1.2 操作系统历史 其发展与计算机硬件的发展以及计算机的应用密不可分
3.1 操作系统概述 操作系统历史 其发展与计算机硬件的发展以及计算机的应用密不可分 批处理系统(Batch Processing OS) 分时系统(Time Sharing OS) 个人系统(Personal Computing OS) 并行系统(Parallel Computing OS) 分布式系统(Distributed OS) 实时系统(Real Time OS) 手持系统(Hand Holden OS) 大学计算机基础——系统工具与环境
7
3.1 操作系统概述 3.1.3 操作系统的结构 单一结构(Simple structure)
3.1 操作系统概述 操作系统的结构 单一结构(Simple structure) 是一个单一的程序 分层结构(Layered structure) 微内核结构(Microkernel structure) 微内核只提供最基本的进程管理、内存管理以及一些通信功能。微内核结构操作系统的基本思想是获得操作系统的高可靠性 模块化结构(Modules structure) 分层结构 Solaris的模块 大学计算机基础——系统工具与环境
8
3.2 操作系统的功能模块 用户界面,用户界面的任务是与机器的一个或多个用户进行通信。
3.2 操作系统的功能模块 用户界面,用户界面的任务是与机器的一个或多个用户进行通信。 内核,管理计算机资源并提供服务,至少包括进程管理器、存储管理器、文件管理器和设备管理器 大学计算机基础——系统工具与环境
9
3.2 操作系统的功能模块 3.2.1 用户界面 用户通过界面与计算机打交道 命令行界面(CLI) 图形用户界面(GUI)
3.2 操作系统的功能模块 用户界面 用户通过界面与计算机打交道 命令行界面(CLI) 图形用户界面(GUI) 大学计算机基础——系统工具与环境
10
3.2 操作系统的功能模块 3.2.2 进程管理 1.程序、进程和线程 程序(Program)是由程序员编写的一组稳定的指令
3.2 操作系统的功能模块 进程管理 1.程序、进程和线程 程序(Program)是由程序员编写的一组稳定的指令 进程(Process)是运行中的程序 线程(Thread)是利用CPU的一个基本单位,也称轻量级进程 程序是一个被动实体(静态的),进程是一个主动实体(动态的),多个进程可能与同一个程序关联。现代操作系统的一个进程可能只包含一个线程(主线程),也可能包含多个线程(主线程和子线程),属于同一个进程的所有线程共享该进程的代码段、数据段以及其他操作系统资源。在操作系统中,进程是计算机资源的抽象,即一个进程包含了运行该进程所需要的所有计算机资源:CPU、内存、I/O等等;而线程是CPU的抽象,即一个线程可以看成一个CPU,对于包含多个线程的进程,线程是并发执行、独立进行调度的。采用多线程的好处是可以节省资源,加快进程的响应速度,在多CPU的机器上,还可以实现并行运算。 大学计算机基础——系统工具与环境
11
3.2 操作系统的功能模块 3.2.2 进程管理 2.进程的状态 新建(New),进程正被创建。
3.2 操作系统的功能模块 进程管理 2.进程的状态 由于进程是动态的,具有生存期,生存期内其可能处于多种状态中的一个: 新建(New),进程正被创建。 运行(Running),进程的指令正被执行(分配了CPU)。 等待(Waiting),进成正等待某些事件的发生(如I/O的完成或一个信号量的接收)。 就绪(Ready),进程正等待备分配给处理器(万事具备只欠CPU)。 终止(Terminated),进程已经完成执行。 进程状态及转换 大学计算机基础——系统工具与环境
12
3.2 操作系统的功能模块 3.2.2 进程管理 3.进程调度 为什么?多个进程在竞争(主要是竞争CPU)
3.2 操作系统的功能模块 进程管理 3.进程调度 为什么?多个进程在竞争(主要是竞争CPU) 谁负责?操作系统的进程调度器(Process Scheduler):长期调度器或作业调度器与 短期调度器或CPU调度器 重点考虑CPU调度器的设计和优化,一方面就是让CPU不停地忙(做有用功),另一方面就是考虑进程的不同优先级别。 何时调度? 正在执行的进程退出了 正在执行的进程要等待I/O或事件 正在执行的进程被中断了 当就绪队列里有新到达的进程 大学计算机基础——系统工具与环境
13
3.2 操作系统的功能模块 3.2.2 进程管理 4.进程间通信 简单的说,有三方面的内容: 一个进程如何向另一个进程传送信息。
3.2 操作系统的功能模块 进程管理 4.进程间通信 简单的说,有三方面的内容: 一个进程如何向另一个进程传送信息。 必须保证两个或多个进程在涉及临界活动时不会彼此影响。 涉及存在依赖关系时进行适当的定序:如果进程A产生数据,进程B打印数据,则B在开始打印之前必须等到A产生了一些数据为止。 大学计算机基础——系统工具与环境
14
3.2 操作系统的功能模块 3.2.2 进程管理 4.进程间通信 进程之间传送信息
3.2 操作系统的功能模块 进程管理 4.进程间通信 进程之间传送信息 采用直接或间接、对称或非对称、显式缓存、通过拷贝发送或通过引用发送、定长或可变长消息等。 Linux操作系统采用的进程间通信的方法主要包括:半双工U n i x 管道、FIFO(命名管道)、SystemV 形式的消息队列、SystemV 形式的信号量集合、SystemV 形式的共享内存段、网络套接字( B e r k e l e y 形式)、全双工管道( S T R E A M S 管道)、远程过程调用等。 应用程序1 应用程序2 套接字(Berkeley Socket) 网络通信服务界面,如TCP/IP 操作系统内核 物理介质,如双绞线 套接字接口示意图 大学计算机基础——系统工具与环境
15
3.2 操作系统的功能模块 3.2.2 进程管理 4.进程间通信 临界区问题
3.2 操作系统的功能模块 进程管理 4.进程间通信 临界区问题 竞争条件(Race Condition),两个或多个进程读写某些共享资源,而最后的结果取决于进程运行的精确时序就称为竞争条件。 临界区或临界段(Critical Section),进程中对共享资源进行访问的程序片断 采用互斥(Mutex)手段避免竞争,使得两个进程不可能同时处于临界区 进程的互斥:两个并发的进程A、B,如果当A进行某个操作时,B不能做这一操作,进程间的这种限制条件称为进程互斥。 —— “你方唱罢我登场” 实现临界区互斥遵循的准则是: 有空让进,临界区空闲时,允许一个进程进入执行; 无空等待,有进程在临界区执行时,要进入的进程必须等待; 有限等待,不应该使进入临界区的进程无限期地等待在临界区之外。 大学计算机基础——系统工具与环境
16
3.2 操作系统的功能模块 3.2.2 进程管理 4.进程间通信 进程同步
3.2 操作系统的功能模块 进程管理 4.进程间通信 进程同步 进程的同步隐含了系统中并发进程之间存在的两种相互制约关系:竞争(互斥)与协作(同步)。 同步:进程间的必须互相合作的协同工作关系。两个协作的进程A、B,如果B的执行必须等到A发出了指定消息。 —— “没有天哪有地” 只要资源可以被多个进程同时使用,那么就可能出现两种状态:死锁(Deadlock)和饿死(Starvation)。 死锁发生的四个必要条件:互斥(一个资源只能被一个进程占有)、资源占有(尽管并不使用资源,但进程占有着该资源直到有其他可用的资源)、非剥夺(操作系统不能临时对资源重新分配)、循环等待。 大学计算机基础——系统工具与环境
17
3.2 操作系统的功能模块 3.2.3 存储管理 现代计算机是“存储程序”计算机,存储很关键 存储层次结构
3.2 操作系统的功能模块 存储管理 现代计算机是“存储程序”计算机,存储很关键 存储层次结构 操作系统的工作就是协调这些存储器的使用,跟踪哪些存储器正在被使用、哪些存储器空闲,在进程需要时为它分配存储器,使用完毕后释放存储器,并且在主存无法容纳所有进程时管理主存和磁盘之间的交换。 大学计算机基础——系统工具与环境
18
3.2 操作系统的功能模块 3.2.3 存储管理 1.存储管理分类
3.2 操作系统的功能模块 存储管理 1.存储管理分类 如何把有限的内存空间分配给多个运行的程序(包括操作系统本身),既要保证他们各自使用空间的私有性,又要保证想共享的能共享 单道程序 多道程序 大学计算机基础——系统工具与环境
19
3.2 操作系统的功能模块 3.2.3 存储管理 2.多道程序的实现 固定分区(Contiguous Allocation)
3.2 操作系统的功能模块 存储管理 2.多道程序的实现 固定分区(Contiguous Allocation) 分页(Paging) 分段(Segmentation) 段页式 分段存储 CPU产生的地址称为逻辑地址,内存中的地址称为物理地址。逻辑地址和物理地址之间的转换,借助硬件内存管理单元完成。在分页存储中,逻辑地址空间被划分成页的单位,在物理存储器中对应的单位为页框。页和页框总是同样大小 分页存储 大学计算机基础——系统工具与环境
20
3.2 操作系统的功能模块 3.2.3 存储管理 2.多道程序的实现- Intel Pentium的段页式存储体系结构
3.2 操作系统的功能模块 (a) 逻辑地址到物理地址的转换 存储管理 2.多道程序的实现- Intel Pentium的段页式存储体系结构 (a) 逻辑地址到物理地址的转换 (c) 分页单元,支持两级和一级分页 (b) 分段单元 CPU产生逻辑地址,经过分段单元转换为线性地址,线性地址经分页单元转换为物理地址 大学计算机基础——系统工具与环境
21
3.2 操作系统的功能模块 3.2.3 存储管理 3.交换与虚拟存储
交换系统操作示例 3.2 操作系统的功能模块 存储管理 3.交换与虚拟存储 没有足够的主存以容纳所有当前活动的进程,多出的进程必须被保存在磁盘上并动态地调入主存运行,两种策略: 交换(Swapping),它把进程完整地调入主存,运行一段时间后再放回到磁盘上。 虚拟存储器(Virtual Memory),它使进程在只有一部分在主存的情况下也能运行。 交换系统操作示例 大学计算机基础——系统工具与环境
22
3.2 操作系统的功能模块 3.2.3 存储管理 3.交换与虚拟存储
交换系统操作示例 3.2 操作系统的功能模块 存储管理 3.交换与虚拟存储 虚拟存储器的基本思想是程序、数据、堆栈的总的大小可以超过可用物理存储器的大小,操作系统把程序当前使用的那些部分保留在主存储器中,而把其他部分保存在磁盘上。 大部分虚拟存储器系统使用了一种称为分页的技术。由程序产生的地址称为虚地址(逻辑地址),它们构成虚拟地址空间,虚地址送到内存管理单元,它把虚地址映射为物理地址。内存和磁盘之间的传输总是以页为单位。操作系统负责页面的调入、替换、更新等。 操作系统虚拟存储器的管理采用一种“请求调页”(Demand Paging)机制:进程的页首先都是在外部存储器中(一般是硬盘),每个页在第一次被访问时都会产生“页失效” ,页失效的结果是通过陷阱陷入操作系统,由操作系统进行页失效处理 大学计算机基础——系统工具与环境
23
3.2 操作系统的功能模块 3.2.3 存储管理 3.交换与虚拟存储 页失效处理流程 大学计算机基础——系统工具与环境
图3.16 页失效处理流程 图3.16 页失效处理流程 交换系统操作示例 3.2 操作系统的功能模块 存储管理 3.交换与虚拟存储 页失效处理流程 大学计算机基础——系统工具与环境
24
3.2 操作系统的功能模块 3.2.3 存储管理 3.交换与虚拟存储 页替换 大学计算机基础——系统工具与环境 图3.16 页失效处理流程
交换系统操作示例 3.2 操作系统的功能模块 存储管理 3.交换与虚拟存储 页替换 大学计算机基础——系统工具与环境
25
3.2 操作系统的功能模块 3.2.3 存储管理 4.存储空间的保护
图3.16 页失效处理流程 图3.16 页失效处理流程 交换系统操作示例 3.2 操作系统的功能模块 存储管理 4.存储空间的保护 当进程试图访问不属于它自己的存储空间时,将通过陷阱陷入操作系统,操作系统进行存储访问错误处理。 在固定分区的存储管理中,每一个进程占用的地址空间由基址寄存器(给定了该进程在内存中的起始地址)和限址寄存器(给定了该进程占用连续内存空间的长度),进程只能访问[基址寄存器]到[基址寄存器+限址寄存器]之间的存储空间,超过了就会产生地址访问错误而陷入操作系统。 在分页管理中,只能访问页表中有效/无效位为“v”(有效页),如果该位为“i”,则会产生地址访问错误而陷入操作系统 在分段管理中,CPU产生的逻辑地址中,如果段偏移超过了分段表项中记录的该段的长度,则会产生地址访问错误而陷入操作系统。 大学计算机基础——系统工具与环境
26
图3.16 页失效处理流程 图3.16 页失效处理流程 交换系统操作示例 3.2 操作系统的功能模块 文件管理 所有的计算机应用程序都要存储信息和检索信息,对于这些信息往往希望能实现长期的信息存储和方便的检索。解决这个问题的常用方法是把信息以一种单元,即通常所说的文件的形式存储在磁盘或其他外部介质上,然后,在需要时进程可以读取这些信息或者写入新的信息。操作系统中处理文件的这部分就是文件管理器,文件管理器的职能: 管理文件的存储:怎样存储、存储在哪里等。 管理文件的创建、删除和修改。 控制对文件的访问。只有那些获得允许的才能够访问,访问的方式也可以不同。 可以给文件命名。 负责归档和备份。 大学计算机基础——系统工具与环境
27
图3.16 页失效处理流程 图3.16 页失效处理流程 交换系统操作示例 3.2 操作系统的功能模块 I/O管理 操作系统的主要功能之一是控制所有的输入/输出(I/O)设备,操作系统中负责I/O设备的部分为设备管理器,I/O管理器的职责: 不停地监视所有设备,以保证他们能够正常运行。同样也需要知道什么时候设备已经完成一个进程的服务,而且准备为队列中的下一个进程服务。 为每一个设备维护一个队列,或为类似的设备维护一个或多个队列。 可以用不同的方式来访问设备。 大学计算机基础——系统工具与环境
28
3.3 常用操作系统 常用操作系统简单分类: 根据应用领域,可分为嵌入式操作系统、桌面操作系统、服务器操作系统、大型机操作系统。
3.3 常用操作系统 常用操作系统简单分类: 根据应用领域,可分为嵌入式操作系统、桌面操作系统、服务器操作系统、大型机操作系统。 根据所支持的用户数目,可分为单用户、多用户系统。 根据源码开放程度,可分为开源操作系统和不开源操作系统。 根据硬件结构,可分为网络操作系统、分布式系统、多媒体系统。 根据操作系统的使用环境和对作业处理方式,可分为批处理系统、分时系统、实时系统。 根据操作系统的技术复杂程度,可分为简单操作系统、智能操作系统。 大学计算机基础——系统工具与环境
29
3.3 常用操作系统 常见操作系统: 大型机操作系统 服务器操作系统 多处理器操作系统 PC机操作系统
3.3 常用操作系统 常见操作系统: 大型机操作系统 系统需要同时处理大量作业,需要极其大量的I/O操作,典型提供三类服务:批处理、交易处理和分时共享。常见有OS/390、Linux等。 服务器操作系统 同时有多个用户通过网络进行访问,需要允许用户共享系统中的软、硬件资源。常用有Solaris、FreeBSD、Linux、Windows server 200x等。 多处理器操作系统 运行于多个CPU集成到一个系统中,通常是服务器操作系统的变种,典型代表有Windows、Linux等。 PC机操作系统 为单个用户服务,典型有MSDOS、OS/2、Windows、Macintosh OS、 Linux、FreeBSD等。 大学计算机基础——系统工具与环境
30
3.3 常用操作系统 常见操作系统: 手持终端操作系统 嵌入式操作系统 实时操作系统 云计算操作系统
3.3 常用操作系统 常见操作系统: 手持终端操作系统 主要提供通信、娱乐功能及有限的办公功能。典型的有iOS、Android、Windows Phone 7、Symbian、Palm、Linux等。 嵌入式操作系统 典型嵌入式操作系统有VxWorks、QNX、Linux、Windows CE等。 实时操作系统 引入了关键的时间参数,实时系统一般有硬实时和软实时。典型有e-Cos、RT Linux、VRTX、RTOS、RT WINDOWS等。 云计算操作系统 包含模块:大规模基础软硬件管理、虚拟计算管理、分布式文件系统、业务/资源调度管理、安全管理控制等。VMware的vSphere,浪潮的云海OS 大学计算机基础——系统工具与环境
31
3.4 小结 本章介绍操作系统。主要内容包括: (1)操作系统概念及其演化过程; (2)操作系统功能模块,内核和用户界面;
3.4 小结 本章介绍操作系统。主要内容包括: (1)操作系统概念及其演化过程; (2)操作系统功能模块,内核和用户界面; (3)进程与线程,进程的同步与互斥,死锁,进程管理; (4) 存储管理,文件管理,设备管理器; (5)常用操作系统的介绍。 大学计算机基础——系统工具与环境
Similar presentations