阅读更多
1 操作系统做了什么
我们以一个简单的hello world程序为例,简单阐述一下运行该程序时,操作系统做了哪些事情
1 |
|
运行该程序的步骤如下
- 用户告诉操作系统执行helloworld程序(如何告知?)
- 操作系统:找到helloworld程序的相关信息,检查其类型是否是可执行文件;并通过程序首部信息,确定代码和数据在可执行文件中的位置并计算出对应的磁盘块地址(文件格式?)
- 操作系统:创建一个新的进程,并将helloworld可执行文件映射到该进程结构,表示由该进程执行helloworld程序
- 操作系统:为helloworld程序设置CPU上下文环境,并跳到程序开始处(假设调度程序选中hello程序)
- 执行helloworld程序的第一条指令,发生缺页异常
- 操作系统:分配一页物理内存,并将代码从磁盘读入内存,然后继续执行helloworld程序
- helloworld程序执行puts函数(系统调用),在显示器上写一字符串
- 操作系统:找到要将字符串送往的显示设备,通常设备是由一个进程控制的,所以,操作系统将要写的字符串送给该进程
- 操作系统:控制设备的进程告诉设备的窗口系统它要显示字符串,窗口系统确定这是一个合法的操作,然后将字符串转换成像素,将像素写入设备的存储映像区
- 视频硬件将像素转换成显示器可接收的一组控制/数据信号
- 显示器解释信号,激发液晶屏
- OK!!!我们在屏幕上看到了“hello world”
从用户进程角度看程序的执行过程,如下图
从操作系统角度看程序的执行过程,如下图
2 操作系统的定义与作用
操作系统是计算机系统中的一个系统软件,是一些程序模块的集合
- 它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源
- 合理地组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能
- 使得用户能够灵活、方便地使用计算机,使整个计算机系统高效率运行
操作系统的三个作用
- 资源的管理者 → 有效
- 向用户提供各种服务 → 方便使用
- 对硬件机器的扩展 → 扩展能力
2.1 资源的管理者
操作系统是资源的管理者
- 硬件资源:
CPU
、内存、设备(I/O
设备、磁盘、时钟、网络卡等) - 软件资源:磁盘上的文件、各类管理信息等
管理资源,要考虑以下几个方面
- 跟踪记录资源的使用状况。如:哪些资源空闲,分配给谁使用,允许使用多长时间等
- 确定资源分配策略——算法
- 静态分配策略
- 动态分配策略
- 实施资源的分配和回收
- 提高资源利用率
- 保护资源的使用
- 协调多个进程对资源请求的冲突
操作系统五大基本功能
- 进程/线程管理(CPU管理)
- 进程线程状态、控制、同步互斥、通信、调度…
- 存储管理
- 分配/回收、地址转换、存储保护、内存扩充…
- 文件管理
- 文件目录、文件操作、磁盘空间、文件存取控制…
- 设备管理
- 设备驱动、分配回收、缓冲技术…
- 用户接口
- 系统命令、编程接口…
2.2 向用户提供各种服务
OS是各种系统服务的提供者。在操作系统之上,从用户角度来看:操作系统为用户提供了一组功能强大、方便易用的命令或系统调用,包括
- 进程的创建、执行
- 文件和目录的操作
- I/O设备的使用
- 各类统计信息
2.3 对硬件机器的扩展
操作系统在应用程序与硬件之间建立了一个等价的扩展机器(虚拟机)。对硬件抽象,提高可移植性;比底层硬件更容易编程
3 操作系统的主要特征
操作系统的主要特征有以下四个
- 并发
- 共享
- 虚拟
- 随机
3.1 并发
两个容易混淆的名词
- 并发(concurrency):指处理多个同时性活动的能力
- 并行(parallel):与并发相似,但多指不同程序同时在多个硬件部件上执行
并发将会引发很多的问题
- 活动切换、保护、相互依赖的活动间的同步
- 在计算机系统中同时存在多个程序运行,单CPU上
- 宏观上:这些程序同时在执行
- 微观上:任何时刻只有一个程序真正在执行,即这些程序在CPU上是轮流执行的
3.2 共享
共享(sharing):操作系统与多个用户的程序共同使用计算机系统中的资源(共享有限的系统资源)
- 操作系统要对系统资源进行合理分配和使用
- 资源在一个时间段内交替被多个进程所用
共享可细分为两种
- 互斥共享(如打印机)
- 同时共享(如可重入代码、磁盘文件)
问题:资源分配难以达到最优化,如何保护资源
3.3 虚拟
虚拟(Virtual):
- 一个物理实体映射为若干个对应的逻辑实体--分时或分空间
- 虚拟是操作系统管理系统资源的重要手段,可提高资源利用率
可细分为
- CPU--每个进程的"虚处理机"
- 存储器--每个进程都有独立的虚拟地址空间(代码+数据+堆栈)
- 显示设备--多窗口或虚拟终端
3.4 随机
随机:操作系统必须随时对以不可预测的次序发生的事件进行响应并处理
- 进程的运行速度不可预知:多个进程并发执行,“走走停停”,无法预知每个进程的运行推进的快慢
- 难以重现系统在某个时刻的状态(包括重现运行中的错误)
4 典型操作系统的架构
4.1 Windows
4.2 Unix
4.3 Linux
4.4 Android
5 操作系统的分类
操作系统发展是随着计算机硬件技术、应用需求的发展、软件新技术的出现而发展的。其目标是
- 充分利用硬件
- 提供更好的服务
传统操作系统的分类
- 批处理操作系统
- 分时系统
- 实时操作系统
- 个人计算机操作系统
- 网络操作系统
- 分布式操作系统
- 嵌入式操作系统
5.1 批处理操作系统
工作方式
- 用户将作业交给系统操作员
- 系统操作员将许多用户的作业组成一批作业,输入到计算机系统中,在系统中形成一个自动转接的连续的作业流
- 启动操作系统
- 系统自动、依次执行每个作业
- 由操作员将作业结果交给用户
追求目标
- 提高资源利用率,增加作业处理吞吐量
批处理系统中的作业包括:
- 用户程序
- 数据
- 作业说明书(用作业控制语言编写)
成批:通常由若干个作业组成,用户提交作业后只能等待处理结果,不能干预自己作业的执行
批作业处理:对一批作业中的每个作业进行相同的处理:从磁带读入用户作业和编译链接程序,编译链接用户作业以生成可执行程序;启动执行;执行并输出结果
问题:慢速的输入输出处理直接由主机来完成,输入输出时,CPU处于等待状态
5.2 SPOOLING系统(技术)
SPOOLING技术的核心思想是:利用磁盘作缓冲,将输入、计算、输出分别组织成独立的任务流,使I/O和计算真正并行
SPOOLING系统工作原理
- 用户作业加载到磁盘上的输入井
- 按某种调度策略选择几个搭配得当的作业,调入内存
- 作业运行的结果输出到磁盘上的输出井
- 运行结果从磁盘上的输出井送到打印机
现代计算机系统的打印过程通常采用的是SPOOLing技术,如下图所示
5.3 分时操作系统(TIME-SHARING SYSTEM)
分时操作系统中最重要的概念就是时间片:操作系统将CPU的时间划分成若干个片段,称为时间片
- 操作系统以时间片为单位,轮流为每个终端用户服务,每次服务一个时间片
- 其特点是利用人的错觉,使用户感觉不到计算机在服务他人
分时操作系统追求的目标是:及时响应,依据的是响应时间
- 响应时间:从终端发出命令到系统给予回答所经历的时间
5.4 通用操作系统
通用操作系统是分时系统与批处理系统的结合
原则:分时优先,批处理在后
- 前台:需要频繁交互的作业
- 后台:时间性要求不强的作业
5.5 实时操作系统
是指使计算机能及时响应外部事件的请求,在规定的严格时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作
可细分为两类
- 第一类:实时过程控制
- 工业控制、航空、军事控制…
- 第二类:实时通信(信息)处理
- 电讯(自动交换机)、银行、飞机订票、股市行情…
实时操作系统追求的目标有
- 对外部请求在严格时间范围内作出响应
- 高可靠性
5.6 个人计算机操作系统
个人计算机在某一时间内为单用户服务
个人计算机追求的目标:
- 界面友好,使用方便
- 丰富的应用软件
5.7 网络操作系统
网络操作系统基于计算机网络
- 在各种计算机操作系统上
- 按网络体系结构协议标准开发的软件
网络操作系统的功能:网络管理,通信,安全,资源共享和各种网络应用
网络操作系统追求目标:相互通信,资源共享
5.8 分布式操作系统
分布式系统:或以计算机网络为基础,或以多处理机为基础,基本特征是处理分布在不同计算机上
分布式操作系统:是一个统一的操作系统,允许若干个计算机可相互协作共同完成一项任务。操作系统可将各种系统任务在分布式系统中任何处理机上运行,自动实现全系统范围内的任务分配、自动调度、均衡各处理机的工作负载
分布式操作系统处理能力增强、速度更快、可靠性增强、具有透明性
5.9 嵌入式操作系统
嵌入式系统
- 在各种设备、装置或系统中,完成特定功能的软硬件系统。例如汽车、手机、电视机、MP3播放器
- 它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是“计算机”
- 通常工作在反应式或对处理时间有较严格要求环境中
嵌入式操作系统(Embedded Operating System)
- 运行在嵌入式系统环境中,对整个嵌入式系统以及它所操作、控制的各种部件装置等等资源进行统一协调、调度、指挥和控制的系统软件
6 参考
- 《MOOC-操作系统原理-陈向群》