一、计算机系统概述
1.1操作系统的概念
1.负责管理协调硬件、软件等计算机资源的工作
2.为上层用户、应用程序提供简单易用的服务
3.是一种系统软件
1.1.1功能
1.资源管理者
处理机管理
存储器管理
文件管理
设备管理
2.向上提供服务
普通用户:GUI用户图形界面、命令接口:
联机命令接口 (用户每输入完一条命令,系统控制就转入命令解释程序(如Shell等),命令解释程序解释执行输入的命令,完成指定的功能。随后,控制又转回到控制台或终端,等待用户输入下一条命令) 和
脱机命令接口 (脱机用户不能直接干预作业运行,他们只能事先用相应的作业控制命令写成一份作业说明书,连同作业一起提交给系统。当系统调度到该作业时,由系统中的命令解释程序对作业说明书上的命令或作业控制语句逐条解释执行)
软件、程序员:提供程序接口(系统调用)
question:试比较脱机I/O和联机I/O
- 脱机I/O是为了解决人机矛盾及CPU与 I/O设备之间速度不匹配而提出的。它减少了CPU的空闲等待时间,提高了I/O速度,具体方法是将用户程序和数据在一台外围机的控制下,预先从低速输入设备输入到磁带上,当CPU需要这些程序和数据时再直接从磁带机高速输入到内存,从而大大加快了程序和数据的输入过程,减少了CPU等待输入的时间,这就是脱机输入技术;当程序运行完毕或者告一段落,CPU需要输出时,无需直接把计算结果送至低速输出设备,而是把结果高速地输出到磁带上,然后再外围机的控制下,把磁带上的计算结果由相应的输出设备输出,这就是脱机输出技术。
- 若这种输入/输出操作在主机(非外围机)控制下进行则称为联机输入/输出方式。
3.对硬件机器的扩展
1.1.2特征
1.并发(宏观上是同时发生的,但其实是交替运行的,如我都在晚上完成作业,但我六点做数学,七点做英语)
区别于并行:同时执行
单核cpu:同一时间只能执行一个程序,各个程序之间是并发的
多核cpu:同一时间可以执行多个程序,各个程序之间是并行的
2.共享
参考:1.1.2 操作系统的特征(并发、共享、虚拟、异步)_并发进程可以共享允许共享的系统资源-优快云博客
1.互斥共享方式(一个时间段只允许一个进程访问该资源)
- 临界资源(独占资源):在一段时间内只允许一个进程访问的资源,计算机中大多数物理设备及某些软件中的栈、变量和表格都属于临界资源,它们被要求互斥共享
- 举个例子:比如QQ和微信视频。同一段时间内摄像头只能分配给其中一个进程
2.同时共享方式(允许一个时间段多个进程“同时”对他们进行访问)
- 同时共享通常要求一个请求分为几个时间片段间隔的完成,即交替进行,“分时共享”
- 这里的
同时
指在宏观上是同时的,在微观上是交替进行访问的,只是cpu处理速度很快,我们感觉不到,在宏观上感觉是在同时进行
- 举个例子:比如QQ在发送文件A,微信在发送文件B,宏观上两个进程A和B都在访问磁盘,在我们看来是同时进行的,但是在微观上两个进程A和B是交替进行访问磁盘的,只是时间太短,cpu处理速度太快,我们感觉不到。
3.虚拟
- 时分复用技术:如处理器的分时共享
- 空间复用技术:如虚拟存储器
4.异步
多道程序环境允许多个程序并发执行,但由于资源有限,如cpu只有一个,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进。
比如A进程正在占用CPU计算,B进程这时也想占用CPU计算,B进程只有等,等A进程算完了,A进程去访问磁盘资源了,这时B进程再占用CPU进行计算,B进程还没计算完,A进程从磁盘取出资源了,A进程发现B这时在占用CPU,这时A进程就需要等待,等B算完后再继续到CPU中进行计算。由于每个进程占用资源的时间不固定,所以进程的执行以不可预知的速度前进
1.2操作系统的发展与分类
1.2.1批处理系统
手工操作阶段(人机速度矛盾)——>批处理阶段
1.单道批处理系统(优点:缓解人机矛盾 缺点:资源利用率还是很低)
2.多道批处理系统(优点:多道程序并发执行,资源利用率高 缺点:不提供人机交互功能)
1.2.2分时、实时操作系统
分时:提供人机交互功能,但是不能优先处理紧急任务
实时:(及时性和可靠性)
硬实时系统——在绝对严格时间内完成处理
软实时系统——偶尔可以违反时间规定
能优先处理紧急任务,某些紧急任务不需时间片排队
例子:导弹控制系统、自动驾驶系统、购票系统
1.3操作系统的运行环境
1.3.1 OS的运行机制和体系结构
1.两类程序:内核程序、应用程序
2.两类指令:特权指令、非特权指令
3.两种处理器状态:内核态(管态)、用户态(目态)
4.转换处理器状态
内核态——>用户态(一条修改PSW的特权指令)
用户态——>内核态(由中断(详细往后看)引起,硬件自动完成)
1.3.2 操作系统的体系结构
1.大内核(将操作系统的主要模块都作为系统内核,运行在核心态)
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
2.微内核(只把最基本的功能保留在内核)
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁的在核心态和用户态之间切换
1.3.3 中断和异常
1.作用:操作系统内核强行夺回CPU的控制权,CPU从用户态转为内核态(没有中断机制就不可能实现程序并发)
2.终端的分类:
(1)内中断(异常):陷入(trap)由陷入指令引发,是应用系统故意引发的 故障 由错误条件引起的,修复故障后会把CPU使用权还给应用程序继续执行 如缺页故障 终止 致命错误引起的,不会将使用权还给应用程序继续执行,直接终止 如整数除0和非法使用特权指令
(2)外中断(中断 中断信号来自于CPU外部):时钟终止、IO中断请求
3.基本实现原理
检查中断信号:
内中断:CPU在执行指令检查是否有异常发生
外中断:每个指令周期末尾,CPU检查是否有外中断信号处理
找到相应的中断处理程序:通过“中断向量表”实现
4.系统调用
应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/0操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
体验一下过程(王道ppt):
1.用户态正常读取指令
2.读到陷入中断,转为内核态
3.读取后会回去应用程序继续读其他指令
传递系统调用参数→执行陷入指令(用户态)→执行相应的内请求核程序处理系统调用(核心态)→返回应用程序
注意: 1.陷入指令(访管指令)是在用户态执行的,执行陷入指令之后立即引发一个内中断,使CPU进入核心态
2.发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行
——————————————————持续更新————————————————