操作系统概述

功能

操作系统是系统资源(软件和硬件)的管理者,向上层提供方便易用的服务,是最接近硬件的一层软件。

其功能和目标有:
1、提供处理机、存储器、文件和设备管理。
2、作为用户和应用程序与硬件交互的中介。

是封装思想的应用,提供了GUI图形化用户接口,命令接口和程序接口。
其中命令接口可分为一句一执行的联机接口,和批处理的脱机命令接口。程序接口是用户通过程序间接调用,也成为系统调用。

3、实现了对硬件机器的拓展。使CPU、内存等硬件合理组织,通过硬件间的相互配合实现更复杂的功能。

特征—并发、共享、虚拟、异步

并发

指多个事件在同一时间间隔发生,宏观上同时,微观上交替。其实就是因为cpu的时分复用,单核计算机也能处理多个进程。
与之相对应的是并行,指多个时间在同一时刻同时发生。
单核cpu是并发,多核可并行执行。

共享

系统中的资源可供内存中多个并发执行的进程共同使用,具体又可分为互斥共享和同时共享,互斥共享指一个时间段内只允许一个进程访问该资源,比如视频使用的摄像头;同时共享指某些资源允许一个时间段内多个进程同时访问,比如硬盘。

失去并发性,共享性将失去存在意义,失去共享性则并发性无法实现,二者互为存在条件。

虚拟

物理实体变为逻辑上的若干对应物,逻辑是指用户感受到的,比如单核cpu的使用,具体为虚拟处理器(时分复用)、虚拟存储器(空分复用)。

异步

多个程序并发执行,但资源有限,不能保证程序同时推进,程序间争抢资源,导致进度不同步。

操作系统的发展和分类

手工操作阶段

使用纸袋机输入输出,计算机计算速度快,时间都浪费在打纸袋上了,人机速度矛盾大。

批处理阶段

使用外围机将纸带数据输入磁带,计算机从磁带读取,可以实现多人同时使用计算机,用监督程序控制作业输入输出,CPU大量时间空闲等待输入输出完成,仍浪费性能。

多道批处理系统

支持多道程序并发运行,输入输出设备与计算过程分别工作,但是无人机交互功能,无法调试程序。

分时操作系统

计算机以时间片为单位,轮流为用户和作业服务,用户可通过终端与计算机交互,解决人机交互问题,但不能优先处理紧急任务。

实时操作系统

优先响应紧急任务,即使可靠,又可分为硬实时,如导弹控制和自动驾驶;和软实时,如12306。

其他

网络操作系统,分布式操作系统和个人操作系统。

运行机制

cpu指令与状态

cpu有指令并不统一,比如将内存全置为0,这种指令权限就该很高,故需要将其设置为特权指令。
操作系统内的程序分为内核程序,即可使用特权指令的程序,和应用程序,只能用非特权指令的程序。cpu在生产设计时划分好了特权指令,但其如何实现区分指令的来源呢?
cpu中有一个程序状态寄存器PSW用于区分内核态(管态)和用户态(目态)。

内核程序在让出cpu前会将PSW设置为用户态,当用户态下要使用特权指令时会引发中断信号,cpu变为内核态,停止当前程序,运行处理终端信号的内核程序,硬件自动完成状态转换,其他需要操作系统进入的时候都通过终端信号实现。

中断和异常

中断是让操作系统夺回cpu使用权的唯一途径。中断可分为内中断和外中断,内中断是中断信号来自于cpu内部,与当前执行的指令有关;外中断是中断信号来自于cpu外部,与当前执行的指令无关。

该机制也是实现虚拟化,各种复用的基础,时钟发出中断信号,让cpu切换程序执行。

基本执行原理为,不同的中断信号需要用不同的中断处理程序来处理,根据中断信号类型查询中断向量表,从而执行处理程序。

系统调用

应用程序通过系统调用请求获得操作系统内核的服务,编程语言有的库函数就是封装了系统调用。

操作系统内核对共享资源进行统一管理,向上提供了系统调用,使用共享资源时通过系统调用向操作系统内核发出请求,内核进行协调处理,保证了系统的稳定性和安全性。

调用过程为:先给CPU传参,执行陷入指令引发内中断,转入中断处理程序,将执行过程转入内核态。

体系结构

操作系统内部也分内核和非内核,分别在内核态和用户态运行。

分层结构

像洋葱一样的结构,内核分为多层,每层可调用低一层的接口,该结构便于调试验证,易扩充易维护,但边界难定义,可能需要的功能在底层,白白穿了好几层,效率低。

模块化结构

内核=主模块+可加载的内核模块
模块间逻辑清晰易于维护,支持动态加载新内核模块,模块间可相互调用,效率高,但模块间定义未必合理,模块相互依赖,难以调试。

宏内核结构

包含中断、原语和时钟包含进程管理,存储器管理和设备管理的大内核,大内核效率高,但内核模块太多,维护麻烦。

微内核结构

只包含中断、原语和时钟的小内核,小内核便于维护,但因为状态转换有成本,一有事就得转成内核态,效率低。

外核结构

内核只负责进程调度、进程通信,外核为用户分配未经抽象的硬件资源,且由外核负责保证资源使用安全,由于硬件资源未经抽象,进程使用更加灵活,减少虚拟硬件资源的映射层,提高了效率,但是降低了系统一致性,使系统变得复杂。

操作系统引导

磁盘内容

在盘符前有一个区域,主引导记录MBR,其中包含了分区表和磁盘引导程序,在程序盘C盘前部是引导记录PBR,然后才是根目录。

内存又可分为RAM和ROM,RAM就是我们通常说的主存,内部存储内容断电清空,ROM内部存储引导程序。

引导过程

1、通电执行ROM引导程序,进行自检,看是否有硬件缺失。
2、将主引导记录MBR读入RAM中,交由cpu执行。
3、根据分区表定位C盘信息,读入引导记录PBR,找到根目录下启动管理器。
4、执行启动管理器,进行初始化操作系统。

虚拟机

传统计算机在物理机上只能运行一个操作系统,现在的硬件发展已经到了比较高的程度,单个用户可能无法跑满性能,造成了硬件浪费,所以研究出了使用虚拟化技术,将一台物理机虚拟化为多台虚拟机,每个虚拟机都可以独立运行操作系统的方法,通过虚拟机管理程序VMM实现,具体可以分为两类。

一类是VMM直接运行在硬件上,上层操作系统运行在用户态,在操作系统要使用特权指令时,VMM进行截获并转换。

另一类是VMM运行在宿主操作系统上,VMM请求操作系统分配资源给上层,沟通实现需要通过宿主操作系统作为中介,故效率较低。

总结

计算机的使用中可以说一切通过操作系统,我们现在的程序员也都是面向操作系统编程,遇到点难题可能就用几个操作系统给的API,也确实发明伟大,给我们屏蔽了复杂的底层。
但是说这个东西真有这么难搞吗,学完概述感觉我也能写一个,无非是复杂墨迹了点,针对几个架构搞点方法就屏蔽了硬件区别,加点进程安全锁,开机关机过程等到,我们也是应该可以搞出来的,可能还是眼高手低吧,干起来就知道难点在哪了,到时候一步一个坑。

  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值