操作系统笔记一操作系统的定义及作用
操作系统笔记(一)——操作系统的定义及作用
操作系统的定义及作用
操作系统的定义和作用
定义 :一、以尽量有效合理的方式组织和管理计算机的各种硬件资源(CPU、内存、磁盘等)。
二、合理组织计算机的工作流程,控制程序的执行,并在程序执行的过程中向程序提供各种各样的服务功能。
三、运用某些方式使得用户能灵活、方便的使用计算机,且能够使计算机高效地运行。
作用 :一、操作系统是资源的管理者。
二、向用户提供各种服务(通过命令接口、编程接口等接口)。
三、屏蔽硬件细节,为用户提供一个扩展的虚拟机器。
操作系统介于应用程序和硬件之间,他通过对硬件的 复用 、 虚拟 和 抽象 ,为应用程序提供方便快捷的接口。向下操作系统利用某些方式调度计算机硬件,使得计算机能够合理充分且高效的运行。
复用 :空分复用共享和时分复用共享。
a.空分复用共享(space-multiplexed sharing):将资源从“空间”上分割成更小的单位供不同的进程使用。在计算机系统中,内存和外存(磁盘)等是空分复用共享的。
b.时分复用共享(time-multiplexed sharing):将资源从“时间”上分割成更小的单位供不同的进程使用。在计算机系统中,处理器和磁盘机等是时分复用共享的。
虚拟 :对资源进行转化、模拟或整合,把一个物理资源转变成多个逻辑上对应物(也可以把多个物理资源转变成单个逻辑上的对应物),即创建无须共享的独占资源的假象,或创建多余实际物理资源的虚拟资源的假象,以达到多用户共享一套计算机物理资源的目的。
虚拟技术可用于外部设备(外部设备同时联机操作,如:SPOOLing技术)、存储资源(虚拟内存)和文件系统(虚拟文件系统,如:Virtual File System,VFS)中。
复用VS虚拟:复用是对实际物理资源的分割,虚拟则是实现假想的物理资源。虚拟技术解决某类物理资源不足的问题,提供易用的虚拟资源和更好的运行环境。
抽象 :通过创建接口来屏蔽硬件资源的物理特性和实现细节,简化对资源的操作、控制和使用。
抽象主要用于处理系统复杂性,重点解决资源易用性问题。
操作系统的主要特征
操作系统是一个软件。
操 作 系 统 主 要 特 征 : { 并 发 : 在 一 定 时 间 间 隔 内 同 时 处 理 多 个 活 动 共 享 : 操 作 系 统 允 许 多 个 用 户 的 程 序 共 同 使 用 计 算 机 中 的 资 源 虚 拟 : 把 一 个 物 理 实 体 映 射 或 转 换 为 若 干 个 对 应 的 逻 辑 实 体 随 机 : 对 以 不 可 预 测 的 次 序 发 生 的 事 进 行 响 应 并 处 理 操作系统主要特征: \begin{cases}并发:在一定时间间隔内同时处理多个活动 \ 共享:操作系统允许多个用户的程序共同使用计算机中的资源 \ 虚拟:把一个物理实体映射或转换为若干个对应的逻辑实体 \ 随机:对以不可预测的次序发生的事进行响应并处理 \end{cases}
操
作
系
统
主
要
特
征
:
⎩
⎪
⎪
⎪
⎨
⎪
⎪
⎪
⎧
并
发
:
在
一
定
时
间
间
隔
内
同
时
处
理
多
个
活
动
共
享
:
操
作
系
统
允
许
多
个
用
户
的
程
序
共
同
使
用
计
算
机
中
的
资
源
虚
拟
:
把
一
个
物
理
实
体
映
射
或
转
换
为
若
干
个
对
应
的
逻
辑
实
体
随
机
:
对
以
不
可
预
测
的
次
序
发
生
的
事
进
行
响
应
并
处
理
典型操作系统的架构
经典操作系统的构架:
Windows 系统
应用程序
系统调用
操作系统扩展层
硬件
UNIX 系统
命令和库
操作系统内核
LINUX 系统
用户应用程序
内核
系统调用: 为给应用程序的运行提供良好环境,内核提供了 一系列具有预定功能的服务例程 ,通过一组成为**系统调用(System Call)**的接口呈现给用户,系统调用把应用程序的请求传递给内核,调用相应的服务例程完成所需处理,并将处理结果返回给应用程序。
注:系统调用的编号称为功能号。
- 系统调用是应用程序获得操作系统服务的唯一途径。
系统调用执行过程:当 CPU 执行程序中的 访问指令 [ supervisor,也称陷阱指令(TRAP 指令)或中断指令(interrupt)]实现的系统调用时会产生异常信号,用过陷阱机制[ 也称异常处理机制,当异常或中断发生时,处理器捕捉到一个执行线程,并将控制权转移到操作系统中某一个固定地址的机制],处理器的状态由 用户态 [^user mode,又称目态或普通态]转变为 核心态 [^kernel mode,又称管态或内核态],进入操作系统并执行相应服务例程,以获得操作系统服务。当系统调用执行完毕时,处理器切换回用户态,控制返回至发出系统调用的程序。
系统调用的作用:
1.内核可以基于权限和规则对资源访问进行裁决,保证系统的安全性。
2.系统调用对资源进行抽象,提供一致性接口,避免用户在使用资源时发生错误,且编程效率大大提高。
系统调用与函数调用的区别:
1.调用形式和实现方式不同。功能号 VS 地址;用户态转换到内核态 VS 用户态。
2.被调用代码的位置不同。动态调用+操作系统 VS 静态调用+用户程序。
3.提供方式不同。操作系统 VS 编程语言。
内核 :一组作为可信软件来提供支持进程并发执行的基本功能和基本操作的程序模块。通常处于内核空间,运行于内核态,具有直接访问硬件设备和所有内存空间的权限,是唯一可以执行特权指令的程序。
内核是操作系统对计算机硬件的第一次抽象,内核和硬件构成了第一层虚拟机,进程在虚拟机上运行。
操作系统的分类
传统分类、Tenenbaum 的分类:
批处理操作系统
工作方式:
1.用户将作业交给系统操作员。
2.系统操作员将许多用户的作业组成一批作业,输入到计算机系统中,在系统中形成一个自动转接的连续作业流。
3.启动操作系统。
4.系统自动、依次执行每个作业。
5.由操作员将作业结果交给用户。
追求目标:
提高资源利用率,增加作业处理吞吐量。
批处理的作业:
👉 用户程序
👉 数据
👉 作业说明书(用作业控制语言编写)
问题:
慢速的输入输出处理直接由主机来完成,输入输出时,CPU 处于等待状态。
解决方案:
卫星机:通过增加计算机(处理能力较弱的计算机),由这些卫星机完成面向用户的输入输出(纸带或卡片),中间结果暂存在磁带或磁盘上。
**单道批处理系统(simple batch processing, uniprogramming):**主计算机(非卫星机)一次只能处理单个作业。
**多道批处理系统(multiprogramming system):**主计算机(非卫星机)一次能处理多个作业。
SPOOLing 技术[^Simultaneous Peripheral Operation On-Line(同时的外围设备联机操作,又称假脱机技术)]:
工作原理:
- 用户作业加载到磁盘上的输入井
- 按某种调度策略选择几个搭配得当的作业,调入内存
- 作业运行的结果输出到磁盘上的输出井
- 运行结果从磁盘上的输出井送到打印机
这些过程并发的执行,因此叫假脱机技术。
输入井和输出井都是磁盘中的两块存储区域(模拟缓冲区)。
分时操作系统(TIME-SHARING SYSTEM)
时间片:
操作系统将 CPU 的时间划分成若干个片段,称为时间片。
👉 操作系统以时间片为单位,轮流为每个终端用户服务,每次服务时间为一个时间片
👉 其特点是利用人的错觉,使用户感受不到计算机在服务他人
追求目标:
及时响应(依据是响应时间)
响应时间:
从终端发出命令到系统给与答复所经历的时间
分时系统与批处理操作系统结合(通用操作系统)
原则:分时优先,批处理在后(为了尽可能快的响应用户)
“前台”:需要频繁交互的作业 → 分时系统处理
“后台”:对时间性要求不强的作业 → 批处理系统处理
实时操作系统
- 使计算机能及时响应外部事件的请求,在规定时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致的工作
分类:
第一类:实时过程控制
工业控制、航空、军事控制……
第二类:实时通信(信息)处理
电讯(自动交换机)、银行、飞机订票、股市行情……
- 追求目标:
- 对外部请求在 严格时间范围内 做出响应
- 高可靠性
- 硬实时系统:某个任务必须在规定的时刻或时间范围内完成
- 软实时系统:接受偶尔违反最终时限
个人计算机操作系统
计算机在某一时间内为单用户服务
追求目标:
界面友好、使用方便、丰富的应用软件
网络操作系统
基于计算机网络
在各种计算机操作系统上
按网络体系结构协议标准开发软件
功能:
网络管理、通信、安全、资源共享和各种网络应用
追求目标:
相互通信,资源共享。
分布式操作系统
分布式系统 :以计算机网络或多处理器为基础,基本特征是处理能力分布在不同计算机上
分布式操作系统 :是一个统一的操作系统,允许若干个计算机相互协作共同完成一项任务。操作系统可将各种系统任务在分布式系统中任何处理器上运行,自动实现全系统范围内的任务分配、自动调度、均衡各处理机的工作负载。
特点:处理能力增强、速度更快、可靠性增强、具有透明性(对用户)
嵌入式操作系统
嵌入式系统:
- 在各种设备、装置和系统中,完成特定功能的软硬件系统
- 是一个大设备、装置或系统(通常不是“计算机”)中的一部分
- 通常工作在反应式或对处理时间有较严格要求的环境中
嵌入式操作系统(Embedded Operation System):
运行在嵌入式系统环境中,对整个嵌入式系统及它所操作、控制的各种部件装置等资源进行统一的协调、调度、指挥和控制的系统软件。
操作系统的另一种分类——TANENBAUM
- 大型机操作系统
- 服务器操作系统
- 多处理机操作系统
- 个人计算机操作系统
- 掌上计算机操作系统
- 嵌入式操作系统
- 传感器节点操作系统
- 实时操作系统
- 智能卡操作系统