操作系统概述
1. 常见的操作系统
2. 什么是操作系统?
2.1 操作系统的概念
-
定义
操作系统(简称OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基础的系统软件。也即管理计算机硬件与软件资源的程序。
- 操作系统向用户提供了一些访问方式,这些访问方式统称为接口
- 操作系统为应用程序也提供了对应的接口
-
操作系统的层次结构(从上到下)
- 用户
- 应用程序
- 操作系统(OS)
- 硬件(裸机)
-
与应用软件的区别
OS是一种系统软件,对下管理硬件,对上向用户和应用程序提供服务;应用软件则是安装在操作系统中,跟操作系统进行交互的。
- 与硬件交互
- 对硬件资源共享进行调度管理
- 解决并发操作处理中存在的协调问题
- 数据结构复杂,外部接口多样化,便于用户反复使用
-
操作系统所做的事情(主要作用)
- 管理与配置内存(硬件中最主要的资源)
- 决定系统资源供需的优先次序
- 控制输入设备与输出设备
- 操作网络与管理文件系统等基本事务
- 提供一个让用户与系统交互的操作界面
2.2 操作系统的目标和功能
2.2.1 操作系统的目标
2.2.2操作系统的功能
(1)作为计算机系统资源的管理者
管理软硬件资源、合理的组织、调度计算机的工作与资源的分配
1️⃣处理器(CPU)管理
- 在多道程序环境下,cpu 的分配和运行都以进程(或线程)为基本单位,因此对 cpu 的管理可理解为对进程的管理。进程管理的主要功能包括
进程控制、进程同步、进程通信、死锁处理、处理机调度
等。附上一张图理解对进程的管理。
2️⃣存储器管理
- 为多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率,主要包括
内存分配与回收、地址映射、内存保护与共享和内存扩充
等功能。
3️⃣文件管理
- 计算机中所有的信息都是以文件的形式存在的,操作系统中负责文件的管理的部分称为文件系统,文件管理包括
文件存储空间的管理、目录管理及文件读写管理和保护
等。
4️⃣设备管理
- 设备管理的主要任务是完成用户的 I/O 请求,方便用户使用各种设备,并提高设备的利用率,主要
包括缓存管理、设备分配、设备处理和虚拟设备
等功能。
- 以上4种管理功能都有操作系统负责,用户无需关注
(2)作为用户与计算机硬件系统之间的接口
- 为了让用户方便、快捷、可靠的操作计算机硬件并执行自己的程序,操作系统提供了用户接口
- 操作系统提供的接口分为两类:命令接口和程序接口
- 命令接口:用户可以直接使用的,利用这些操作命令来组织和控制作业的执行
- 程序接口:用户通过程序间接使用的,编程人员可以使用它们来请求操作系统服务
1️⃣命令接口
- 命令接口分为两类:联机命令接口和脱机命令接口,用户可以
直接
调用 联机命令接口
:又称交互式命令接口,适用于分时或实时系统的接口,由一组键盘操作命令组成。用户输入一条指令,操作系统就执行一条指令;
脱机命令接口
:又称批处理接口,使用于批处理系统,由一组作业控制命令组成。用户输入一堆指令,操作系统运行一堆指令。在操作系统运行这些命令时用户不可干预。
批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的扩展名为bat 。
2️⃣程序接口
- 程序接口:由一组系统调用(也称广义指令)组成
- 用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,只能通过用户程序间接调用
- 如使用各种外部设备、申请分配和回收内存及其它各种要求
动态链接库英文为DLL,是Dynamic Link Library的缩写。DLL是一个包含可由多个程序,同时使用的代码和数据的库。
- 比如常见的图形用户界面程序接口GUI
注意:应用程序访问操作系统的接口这个过程叫做系统调用。
(3)作为扩充机器(虚拟机)
- 没有任何软件支持的计算机称为
裸机
- 覆盖了软件的机器称为
扩充机器或虚拟机
2.3 操作系统的特征
OS的四个基本特征:并发、共享、虚拟、异步
- 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替执行的(分时交替执行)。常考易混概念–并行:指两个或多个事件在同一时刻同时发生。
- 操作系统的并发性指计算机系统中同时存在着多个运行着的程序。
并发量和并行量哪一个能够提高资源利用率或者吞吐量?
并行–有多少个处理机,它就能办多少事,有很明显的物理极限。
但是并发不一样,并发能力越强,在同一时刻内,它处理的业务就越多,吞吐量就越大,其资源利用率就越高。并发可以通过优化、调度等各种操作,去大大提高操作系统资源的利用率和它的吞吐量。
-
共享:即资源共享,是指操作系统中的资源可供内存中多个并发执行的进程共同使用。
- 互斥共享方式:也叫独占式,系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。
- 同时共享方式:系统中的某些资源,允许一个时间段内有多个进程“同时”对它们进行访问。
- “同时“只是宏观上,微观上,这些进程可能是交替地对该资源进行访问的(即分时共享)
生活实例:
互斥共享方式:使用QQ和微信视频。同一时间段内摄像头只能分配给其中一个进程。
同时共享方式:使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘的。
-
虚拟:使用某种技术把一个物理实体变成多个逻辑上的对应物。物理实体是实际存在的,而 逻辑上的对应物是用户感受到的。
-
时分复用技术(TMD,Time Division Multiplexing)
- 虚拟处理器技术:“四核八线程”:通过多道程序设计技术,采用让多道程序并发执行的方法,分时来使用一个CPU,实际物理上只有一个CPU,但是用户感觉到有多个CPU
- 虚拟设备技术:虚拟打印机
-
空分复用技术(SDM,Space Division Multiplexing)
- 虚拟磁盘技术:将一块硬盘虚拟出若干个卷
- 虚拟存储技术
举例:
背景知识:一个程序需要放入内存并给它分配CPU才能执行。
显然,如果失去了并发性,则一个时间段内系统只需运行一道程序,那么就失去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性。
-
-
异步:多道程序环境下,允许多个程序并发执行;单机处理环境下,多个程序分时交替执行。
举例:
比如A进程正在占用CPU计算,B进程这时也想占用CPU计算,B进程只有等,等A进程算完了,A进程去访问磁盘资源了,这时B进程再占用CPU进行计算,B进程还没计算完,A进程从磁盘取出资源了,A进程发现B这时在占用CPU,这时A进程就需要等待,等B算完后再继续到CPU中进行计算。由于每个进程占用资源的时间不固定,所以进程的执行以不可预知的速度前进。
3. 操作系统的发展(了解)
3.1 操作系统是怎么发展过来的?
手工操作
批处理
分时操作
实时操作
微机时代
其他操作系统
4. 操作系统的运行环境
4.1 操作系统的运行机制(重点)
操作系统是怎么区分用户态和核心态的呢?
程序状态字—(计算机组成原理中的一个概念)一般情况下,1表示用户态,0表示内核态。
4.1.1 时钟管理
时钟是计算机中非常重要的一个硬件设备。
作用:
- 计时:提供系统时间
- 时钟中断:比如进程切换
4.1.2 中断机制(重点)
思维导图:
为什么要使用时钟中断机制?
- 提高多道程序(并发)环境下CPU的利用率
概念:
发生中断,就意味着需要操作系统介入开展管理工作。CPU会立即进入核心态。
作用:
“中断”是CPU从用户态进入核心态的唯一途径。
分类:
- 外中断:中断信号来源于–>外部设备(被迫的)
-
内中断:中断信号来源于–>当前指令(自愿的),也叫异常/陷入/例外
内中断的三种情况:
1)陷阱/陷入(Trap):由应用程序主动引发,(不是产生)一般都是系统调用。
例如,该程序执行到指令3的时候,会调用一个系统服务:读文件,这时就会产生一个中断,然后CPU会产生一个陷入指令。这个指令执行完之后,CPU从用户态切换到内核态,执行一系列读文件的操作(特权指令)。
2)故障(fault):由错误条件引发
例如,该程序是一个大型游戏(几十G),游戏在运行的时候只加载核心程序进入到内存去执行,后面在执行的过程中若发现有些要执行的程序不存在,就会去磁盘上把这些程序文件加载进内存,这个过程就是由内存缺页中断来完成的。
3)终止(abort):由致命错误引发,比如地址越界,非法操作,算术溢出等
中断处理过程
注:PSWR 是计算就组成原理中的一个概念,指程序状态字寄存器。
4.1.3 原语
原语:是一个程序段,由若干条指令组成(“封装”),用来完成某个特定的功能,执行过程不会被中断(“原子性”)。
-
原语其实就是对一系列指令进行的封装,它的调用比较频繁,执行时间也比较短。
-
原语运行在内核空间。
-
原语的底层实现是靠关中断和开中断这两个操作来实现的。
4.1.4 系统数据结构(了解)
一般只涉及到对数据结构的操作,不涉及硬件。
- 进程管理:作业控制块、进程控制块
- 存储器管理:存储器分配与回收
- 设备管理:缓冲区、设备控制块
4.1.5 系统调用
思维导图:
基本概念
系统调用的处理运行在核心态
- 由操作系统实现,给应用程序调用
- 是一套接口的集合
- 应用程序访问内核服务的方式
陷入指令也叫访管指令,管指的是核心态。操作系统从用户态进入核心态就是通过中断来实现的。
系统调用和库函数的区别
系统调用的执行过程
4.2 操作系统的体系结构
思维导图:
4.2.1 传统的操作系统内核(大内核)
4.2.2 微内核结构
4.2.3 操作系统内核在计算机系统中的层次结构
4.3.3 操作系统体系结构类比
4.3.4 操作系统用户态和核心态的切换
注:以上内容参考自B站王道、马士兵操作系统课程