目录
操作系统:控制和管理真个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配,提供给客户和其他软件的接口和环境,是计算机系统之中最基本的系统软件
1.1操作系统的功能与目标
补充知识:进程是一个程序的执行过程。执行前需要将该程序放入内存当中,才能被CPU处理
1.1.1作为系统资源的管理者
例如:QQ和朋友聊天的过程:
1.在各个文件夹中找到QQ安装的位置(d:/Tencent/QQ/Bin)-----------------------------------------文件管理
2.双击打开QQ.exe-----------------------------------------------------------------------------------------存储器管理
3.QQ程序正常运行----------------------------------------------------------------------------------------处理机管理
4.开始和朋友视频聊天---------------------------------------------------------------------------------------设备管理
1.1.2作为用户和计算机硬件之间的接口
命令接口:允许用户直接使用
联机命令接口(交互式命令接口):用户输入一条,系统执行一条
脱机命令接口(批处理命令接口):用户输入一堆。系统执行一堆
程序接口(系统调用):允许用户通过程序间接使用
GUI:现代操作系统中最流行的图像用户接口
例如:Windows删除命令不需要输入命令,只需要拖拽文件进入回收站
1.1.3作为最接近硬件的层次
需要提供的功能与目标:实现对硬件机器的拓展
通常把覆盖了软件的机器成为扩充机器,又称为虚拟机
类比:
硬件:锤子,锯子,木头,钉子......
操作系统:优秀的工匠
操作系统对硬件的拓展,通过工匠,可以组织成房子,帆船等
1.2 操作系统的特征
操作系统有4个特征:并发、共享、虚拟、异步,其中并发和共享是最基本特征
1.2.1并发
并发:指两个或多个以上事件在同一时间间隔内发生,宏观上同时发生,微观上交替发生
并行:两个或多个以上事件在同一时刻同时发生
并发VS并行
一个单核CPU,同一时刻只能执行一个程序,操作系统此时就会负责协调多个程序交替进行
当今计算机,一般都是多核CPU,但是操作系统的并发性依然必不可少
1.2.2共享
共享:即资源共享,指系统中的资源可供内存中多个并发执行的进程共同使用
互斥共享:在一个时间段内,只允许一个进程使用该资源
(QQ视频和微信视频只能其中一个进程用摄像头)
同时共享:在一个时间段内,多个进程“同时”(宏观)对他们进行访问
(QQ和微信可以发同一个文件,共同传送该资源)
并发与共享互为存在条件
1.2.3虚拟
虚拟:把物理上的实体变为若干个逻辑上的对应物。
物理实体是实际上存在的,而逻辑上对应物是用户感受到的
举例1:游戏需求4GB内存,QQ要256M,网易云要256M,然后电脑只有4G内存,却依然能够在此电脑上同时运行,这就是虚拟存储器技术,实际上只有4GB内存用户看来却大于4GB (空分复用)
举例2:一个单核CPU计算机中为什么可以同时运行QQ,微信,网易云,这就是虚拟处理器技术,实际上只有一个单核CPU,在用户看来就好像有3个CPU (时分复用)
结论:没有并发性,就没有虚拟性的意义
1.2.4异步
异步:在多道程序环境下,允许各个程序并发执行,但是资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步
结论:只有系统有并发性,才可能有异步性
1.3 操作系统的发展与分类
按用户数目,分为单用户操作系统和多用户操作系统。其中,单用户操作系统又分为单任务操作系统和多任务操作系统;
按硬件结构,分为单CPU操作系统、多CPU操作系统、网络操作系统、分布式操作系统;
按使用环境,分为批处理操作系统、分时操作系统和实时操作系统;
按管理的机型,分个人计算机操作系统、服务器操作系统、大型计算机操作系统和嵌入式操作系 统; 按使用范围,分为通用操作系统和专用操作系统。前者可适应多种硬件平台,可安装在多个厂家生 产的计算机上,如Linux、Windows;后者只能在特定的系统上工作,如IBM OS/360;
按历史的发展,分为传统操作系统和现代操作系统。前者一般是指最初的单道操作系统、单处理机 操作系统等;后者是具有多道功能的、支持多处理机、网络的、分布式的操作系统。
1.4 操作系统的运行机制与体系
1.4.1两种指令,两种处理机状态,两种程序
两种指令:特权指令和非特权指令
两种处理机状态:用户态(目态:只能执行非特权)和核心态(管态:特权与非特权)
两种程序:内核程序(核心态)和应用程序(用户态)
1.4.2操作系统的内核
内核:计算机配置的底层软件,是操作系统最基本最核心的部分
实现操作系统内核功能的那些程序就是内核程序
内核功能
时间管理:实现计时功能
中断处理:负责实现中断机制
原语:一种特殊的程序;处于操作系统最底层,最接近硬件;有原子性;运行时间短,调用频繁
系统资源的管理:进程管理,存储器管理,设备管理
1.4.3操作系统的体系结构
大内核
将操作系统的主要功能模块都作为系统内核运行在核心态
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
微内核
把最基本的功能保留在内核
优点:内核功能少,结构清晰,方便维护
缺点:频繁切换核心态与用户态,性能低
类比:
内核比作企业的管理层,负责一些重要工作。只有管理层才能执行特权命令,普通员工只能执行非特权指令。用户态、核心态之间的切换相当于普通员工和管理层之间的工作交接。
大内核:小公司,管理层负责大部分事情,结构混乱,效率高
微内核:大公司,分工明确,结构清晰,效率低
1.5 中断和异常
中断
中断的诞生:为了实现多道程序并发执行而引入的一种技术
- 中断发生后,CPU立即进入核心态
- 中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
- 对于不同的中断信号,会进行不同的处理
中断可以使CPU从用户态转为核心态,使操作系统获得计算机的控制权
时间片轮转也是靠中断来实现,有了中断,才能使得多程序并发执行
用户态、核心态之间的转换怎么实现的?
答:用户-》核心,通过中断实现的,并且中断是唯一途径
核心-》用户,核心态本来就可以有切换的功能,所以只需要将程序状态字(PSW)标志位为用户态
1.5.1中断的分类
内中断(异常):信号来源CPU内部,又分自愿中断和强迫中断
外中断(中断):信号来源CPU外部,又分为外设请求和人工干预
1.5.2处理中断的过程
step1:执行完每个指令之后,CPU都要检查当前是否有外部中断信号
step2:如果检测到外部中断信号,则需要保护被中断进程的CPU环境(PSW,程序计数器PC等)
step3:根据中断信号类型转入相应的中断处理程序
step4:恢复原进程的CPU环境并且退出中断,返回原进程继续往下执行
1.6系统调用
操作系统作为用户和硬件之间的接口,需要向上提供一些简单易用的服务。
主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成,由核心态进行
功能:设备管理,文件管理,进程控制,进程通信,内存管理
系统调用和库函数的区别:
系统调用经过封装可以转为某些库函数
传递系统调用参数->执行陷入指令(用户态)->执行系统调用相应服务程序(核心态)->返回应用程序
陷入指令:唯一一个只能在用户态下执行,而不可以在核心态执行的指令。
作用是引发内中断,从而让CPU进入核心态
总结:系统调用请求在用户态,系统调用执行在核心态