01_计算机系统概述
计算机系统概述
操作系统的概念(定义)
概念:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;
他是计算机系统中最基本的系统软件。
操作系统的层次结构:
执行一个程序前需要将该程序放到内存中,才能被CPU处理。
系统资源的管理者:
- 处理器管理
- 存储器管理
- 文件管理
- 设备管理
操作系统的功能和目标——向上层提供方便易用的服务。
- 直接给用户使用的:
-
GUI:图形化用户接口。
-
联机命令接口 = 交互式命令接口
-
脱机命令接口 = 批处理命令接口
- 该软件/给程序员使用的:
- 程序接口:可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用。
- 操作系统的功能和目标——作为最接近硬件的层次
- 需要实现对硬件机器的拓展
- 没有任何软件支持的计算机称为裸机。
- 通常把覆盖了软件的机器称为扩充机器,又称之为虚拟机。
操作系统的特征
并发
并发:指两个或者多个时间在同一个时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
对照 并行:指两个或多个事件在同一时刻发生。
操作系统的并发性:计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行的,而微观上看是交替运行的。
注意:单核CPU同一时刻只能执行一个程序,各个程序只能并发的执行。
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行的执行。
共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
两种资源共享方式:
互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。
同时共享方式:系统中的某些资源,允许一个时间段内由多个进程“同时”对他们进行访问。eg:同时共享方式:使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘的。
并发和共享互为存在条件
虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物,物理实体上存在的,而逻辑上对应物是用户感受到的。
没有并发性就谈不上虚拟性。
异步
在多道程序环境下,允许多个进程并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
只有系统拥有并发性,才有可能导致异步行动。
操作系统的发展与分类
手工操作阶段
缺点:人机速度矛盾。
批处理阶段——单道批处理技术
引入脱机输入、输出技术,并由监督程序负责控制作业的输入输出。
优点是:环节人机速度矛盾。
缺点是:资源利用率依然很低。
批处理阶段——多道批处理技术
多道程序并发执行,共享计算机资源,资源利用率大幅度提升
但是没有人机交互功能。
分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务
优点是:提供人机交互功能。
但是不能优先处理一些紧急任务。
实时操作系统
优点是:能优先处理紧急任务
硬实时系统
必须在绝对严格的规定时间内完成处理。
软实时系统
能接受偶尔违反时间规定。
后面还有:网络操作系统 分布式操作系统 个人计算机操作系统
操作系统的运行机制
预备知识:程序是怎样运行的。
代码-> 编译器进行编译 -> 机器指令(二进制) 一条高级语言的代码翻译过来可能会对应多条机器指令。
程序运行的过程其实是CPU执行一条一条机器指令的过程。
指令:就是处理器CPU能够识别、执行的最基本的命令。
内核程序:
普通程序员写的程序就是“应用程序”;
应用程序:
由很多内核程序组成了“操作系统内核”,简称“内核”;
内核是操作系统最核心的部分,也是最接近硬件的部分。
特权指令
这些指令影响重大,只允许"管理者"——操作系统的内核来使用。
在CPU设计和生产的时候就划分了特权指令和非特权指令,因此CPU执行一条指令前就能判断出其类型。
内核态
处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令。
用户态
处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令。
CPU中有一个寄存器叫做程序状态字寄存器(PSW),其中有个二进制位,1表示“内核态”,0表示“用户态”。(或者相反)。
中断和异常
中断会使CPU由用户态变为内核态,使操作系统重新夺回对CPU的控制权。
内核态 -> 用户态 :执行一条特权指令——修改PSW的标志位为用户态。
用户态 -> 内核态 :由中断引发,硬件自动完成变态过程。
中断的作用:
- 让操作系统内核强行夺回CPU的控制权
- 使CPU从用户态变为内核态。
中断的分类
内中断(也称异常、例外)
- 陷阱、陷入(trap):由陷入指令引发,是应用程序故意引起的
- 故障(fault):由错误条件引起,可能被内核程序修复。内核程序修复故障后会把CPU的使用权还给应用程序,让他继续执行下去。如:缺页故障。
- 终止(abort):由致命错误引起,内核程序无法修复该错误,因此一般不再将CPU的使用权还给引发中止的应用程序,而是直接终止该应用程序。如:整数除0、非法使用特权指令。
外中断(也称“中断”)
与当前执行的指令无关,中断信号来自CPU外部。
- 时钟中断:
- I/O中断请求:
中断机制的基本实现原理
- 检查中断信号
-
- 内中断:CPU在执行指令时会检查是否有异常发生。
- 外中断:每个指令周期末尾,CPU都会检查是否有外中断信号需要处理。
- 找到相应的中断处理程序:通过"中断向量表"实现。
系统调用
什么是系统调用?
操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。
“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。
系统调用与库函数的区别
普通应用程序:可直接进行系统调用,也可使用库函数。有的库函数涉及系统调用,有的不涉及。
编程语言: 向上提供库函数,有时会将系统调用封装成库函数,以隐藏系统调用的一些细节,使程序员编程更加方便。
操作系统: 向上提供系统调用,使得上层程序能请求内核的服务。
不是所有的库函数都会用到系统调用,特权指令。例如“取绝对值”。
涉及到系统调用的库函数:“创建一个新文件夹”,需要用到系统调用,特权指令。
为什么系统调用是必须的
打印过程中,如果两个进程可以随意的、并发的共享打印机的资源,会发生什么情况?
结果使两篇要打印的论文的内容混杂在一起了
解决方法:由操作系统内核对共享资源进行统一的管理,并向上提供“系统调用”,用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统内核发出请求。内核会对各个请求进行协调处理。
什么功能要用系统调用
- 设备管理
- 文件管理
- 进程管理
- 进程通信
- 内存管理
应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由
系统调用的过程
操作系统的引导
详见实验一:操作系统的启动
操作系统引导(boot)—— 开机的时候,怎么让操作系统运行起来。
- CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)。
- 将磁盘的第一块一一主引导记录读入内存,执行磁盘引导程序,扫描分区表。
- 从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序。
- 从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作。
虚拟机
本文来自彬彬zhidao的博客,作者:彬彬zhidao,转载请注明原文链接:https://www.cnblogs.com/binbinzhidao/p/17697888.html