第一章 操作系统引论
思考以下问题:
- 什么是OS(Operating System)
- OS的形成和发展过程(类型和特点)
- 现代OS的特征和服务
- 现代OS的功能
- OS的层次结构模型
- Linux概述
本文章参考此书:
计算机系统的组成:
- 用户
- 应用程序
- 操作系统(OS):对上管理应用程序,对下管理硬件。
- 硬件(裸机)
1.1、操作系统的目标和作用
- 操作系统是运行在计算机裸机系统上的最基本的系统软件(裸机就是对于一台完全无软件的计算机系统)
- 操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充(操作系统是一种系统软件)
- 什么是操作系统:操作系统是管理计算机硬件和软件资源的计算机程序。也就是说,操作系统实际上是一个计算机程序,功能是管理计算机硬件和软件资源(重点)。
设计现代OS的主要目标是(重点):
(1)方便性:一个未配置OS的计算机系统是极难使用的。用户如果想直接在计算机硬件(裸机)上运行自己所编写的程序,就必须使用机器语言书写程序。但如果在计算机硬件上配置了OSS,系统便可以使用编译命令将用户采用高级语言书写的程序翻译成机械代码,或者直接通过OS所提供的各种命令操纵计算机系统,极大地方便了用户,使计算机变得易学易用。
(2)有效性:有效性所包含的第一层含义是提高系统资源的利用率。另一层含义是提高系统的吞吐量。
(3)可扩充性:为适应计算机硬件、体系结构以及计算机应用发展的要求,OS必须具有很好的可扩充性。
(4)开放性:指系统能遵循世界标准规范,特别是遵循开放系统互连OSI国际标准。
1.2、操作系统的发展过程
操作系统发展的三个阶段:
(1)无操作系统阶段:
在这个阶段,计算机都是人工的去操作的,并且操作的时候,每个用户都会独占这台计算机,而且计算机的。PU是等待人工去操作的,当用户进行输入和输出的时候,内存和CPU都是空闲的。因此,在没有操作系统的时代,计算机资源的利用率很低。
- 人工操作方式
- 用户独占主机
- CPU等待人工操作
- 脱机输入/输出方式
- 解决了人机矛盾
- 减少了CPU的空闲时间
- 提高了I/O速度
- 一次只能执行一个程序
(2)批处理系统阶段:
在这个阶段,计算机就无须再等待人工的输入了。因为这个时候用户会批量的导入任务,这样,用户在导入任务之后就可以离开,计算机就可以自动的去工作。所以,在这个阶段,计算机的利用率大幅度的提升,同时,在这个阶段还提出了一个非常重要的设计,叫多道程序设计。这个设计也是后来影响到我们所有的操作系统。
- 单道批处理系统
- 自动性
- 顺序性
- 单道性
- 内存中只有一道程序
- CPU需要等待I/O完成
- 多道批处理系统(此时还是串行,没有处理器高速跳转)
批处理系统最主要的问题就是无人机交互功能。
- 提高CPU的利用率
- 可提高内存和I/O设备利用率
- 增加系统吞吐量(吞和吐)
- 平均周转时间长
- 无人机交互
单道批处理系统和多道批处理系统对比:
- 单道批处理系统:主要解决CPU、内存和I/O设备利用率不足的问题
- 多道批处理系统:主要解决I/O操作是CPU闲置问题
(3)分时系统阶段:
在这个阶段,最重要的设计就是人机交互的设计,因为在前边两个阶段,程序在执行的过程中,人是没有办法去干预的,在分时系统阶段,人机就可以进行交互了。一台主机连接多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。
- 为什么需要分时系统
- 人机交互
- 共享主机
- 便于用户上网
- 关键问题
- 及时接收
- 及时处理(作业提前进入内存,并能够与用户交互)
- 分时系统的特征
- 多路性:事件片轮转机制
- 独立性:用户彼此独立
- 及时性:用户能在短时间内获得响应(及时性而不是实时性,实时性是实时系统的功能)
- 交互性:用户可以请求多种服务
- 分时系统的缺点
作业/用户优先级相同,不能优先处理紧急任务
(4)实时系统阶段: 所谓“实时”,是表示“及时”,而“实时计算”,则可以定义为这样一类计算:系统的正确性,不仅由计算的逻辑结果来确定,而且还取决于产生结果的时间。事实上实时系统最主要的特征,是将时间作为关键参数,它必须对所接受到的某些信号做出“及时”或“实时”的反应。 由此得知,实时系统是指系统能及时响应外部事件的请求,在规定时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
- 应用需求
- 实时控制
- 实时信息处理
- 实时任务
- 周期/非周期实时任务(根据周期性)
- 硬/软实时任务(根据截止时间)
- 与分时操作系统比较
- 多路性
- 独立性
- 及时性:以用户能接受的等待时间为准(实际就是实时性,与分时系统最大的区别,实时系统比分时系统对及时性要求更高)
- 交互性
- 可靠性:多级容错,保障系统和数据的安全
(5)网络操作系统和分布式计算机系统(其他操作系统)
- 网络操作系统
- 资源共享
- 远程通信
- 分布式操作系统(多台计算机完成,无上下级,相当于一个大任务分布成多个小任务)
- 分布性
- 并行性(并行不是并发)
(6)个人计算机操作系统
(7)推动操作系统发展的主要动力
- 不断提高计算机资源利用率 在计算机初期,计算机系统特别昂贵,推动计算机系统中的各种资源的利用率,这是OS最初发展的推动力。
- 方便用户 用户在上机、调试程序时的不方便便成了主要矛盾,这又成为了继续推动OS发展的主要因素。
- 器件的不断更新换代 微机芯片的不断更新换代,使得计算机的性能快速提高,从而推动了OS的功能和性能增强和提高。
- 计算机体系结构的不断发展 计算机体系结构的发展,也不断推动着OS的发展,并产生新的OS类型。
- 不断提出新的应用需求 操作系统能如此迅速发展的另一个重要原因是,人们不断提出新的应用需求。
1.3、操作系统的基本特性
操作系统具有哪些基本特征:
(1)并发性(两个重要概念):
- 并发:两个或多个事件在同一时间间隔内发生。(注意区别 并行:两个或多个事件在同一时刻发生。)
- 宏观上,处理机同时执行多道程序
- 微观上,处理机在多道程序间高速切换(分时交替执行)
- 关注单个处理机同一时间内处理任务数量的能力(比如早上起床后洗了脸、刷了牙、吃了饭,还刷了抖音)
- 并发能力越强,意味着在同一个时刻内,它处理的业务越多。系统的吞吐量越大,资源利用率也更高。并行是有几个处理机就干几件事,关注有多少个CPU可以同时执行任务的能力。
(2)共享性:在OS环境下的资源共享或称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。
- 同时访问方式:同一时间段允许多个程序同时访问共享资源。
- 互斥共享方式:也叫独占式,允许多个程序在同一个共享资源上独立而互不干扰的工作(比如一个厕所,但是有多个人等待)
- 共享打印机、音频设备、视频设备
(3)虚拟性:在OS中,把通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能称为“虚拟”。
- 时分复用技术(TDM,Time Division Multiplexing)
- 虚拟处理机技术:“四核八线程”
- 虚拟设备技术:“虚拟打印机”
- 控分复用技术(SDM,Space Division Multiplexing)
- 虚拟磁盘技术:将一个硬盘虚拟出若干个卷(电脑中的C盘,D盘)
- 虚拟存储器技术
(4)异步性:在多道程序环境下,系统允许多个进程并发执行。(注意1.3节 并行和并发概念); 单处理机环境下,多个程序分时交替执行。
- 程序执行的不可预见性
- 获得运行的时机
- 因何暂停
- 每道程序需要多少时机(由调度算法决定)
- 不同程序的性能,比如计算多少,I/O多少
- 宏观上“一气呵成”,微观上“走走停停”(高速切换,每一个应用程序执行时机很短,几乎感觉不到)
并发和共享互为前提条件:
- 共享性要求OS中同时运行着多道程序
- 若只有单道程序正在运行,则不存在共享的可能
- 并发性难以避免地导致多道程序同时访问同一个资源
- 若多道程序无法共享部分资源(比如磁盘),则无法开发(磁盘可以划分为很多快,但处理机不能,它只能在不同程序中进行高速切换)
1.4 操作系统的主要功能
操作系统的几大主要功能是:
(1)处理机管理:
- 进程控制
- 进程同步
- 进程通信
- 调度
(2)存储器管理:
- 内存分配
- 内存保护
- 地址映射
- 内存扩充
(3)设备管理:
- 缓冲管理
- 设备分配
- 设备处理
(4)文件管理:
- 文件存储空间的管理
- 目录管理
- 文件的读/写管理和保护
(5)操作系统与用户之间接口:
- 程序接口
- 命令接口
- GUI(Graphical User Interface)图形用户接口
1.5 OS结构设计
(1)传统操作系统结构
(2)客户/服务器(C/S)模式简介
(3)面向对象的程序设计技术简介
(4)微内核OS结构
- 什么是OS(Operating System)
操作系统是管理计算机硬件和软件资源的计算机程序
- OS的形成和发展过程(类型和特点)
书上四个过程: 1. 无操作系统 2. 批处理系统 3. 分时操作系统 4. 实时操作系统
- 现代OS的特征和服务
- 特征:并发、共享、虚拟、异步
- 服务:
- 操作系统的公共服务类型:程序执行、I/O操作、文件系统操作、通信和差错检测1
- 系统调用:进程控制、文件操作、设备管理、通信和信息维护
- 现代OS的功能
- 处理机管理
- 存储器管理
- 设备管理
- 文件管理
- 用户接口
- OS的层次结构模型
-
Linux概述
- Linux操作系统的发展过程
- Linux操作系统的特点
- 一个多用户、多任务的操作系统
- 支持多种文件系统
- 符合POSIX 1003.1标准
- 具有较好的可移植性
- 支持多平台和多处理器
- 全面支持TCP/IP网络协议
- Linux的体系结构
- Linux内核
小霖第一次写文章,如果有错误的地方,希望大家能不吝赐教,不要骂我(可怜表情)