例如:初识操作系统
在初次学习操作系统的时候是在2018年,最近有粉丝投稿问能否出几期关于408的文章,盲猜也是在准备考研。恰好今年计蒙也打算考,就当三刷复习了。可能编写的速度比较忙,还请理解。如有不懂可留言。
提供的功能:处理机管理,存储器管理,文件管理,设备管理
目标:安全,高效
小提:执行一个程序前需要将程序放到内存中,才能被CPU处理
封装的思想:将一些简单的硬件功能封装成简单易用的服务,方便用户使用,相对于用户而言,无需关心底层硬件的原理,只需向操作系统发出命令即可。
用户使用
软件/程序员用:
通常把覆盖了软件的机器称为扩展机器,又称为虚拟机。
需要实现对硬件机器的拓展(让各种硬件能够相互协调配合,实现更多更复杂的功能)
并发,共享为两个最基本的特征,二者互为存在条件,没有并发和共享,就谈不上虚拟和异步
两个或者多个事件在同一时间间隔内发生,宏观上同时发生,微观上交替发生。
资源共享,是指系统中的资源可供多个并发执行的进程共同使用
两种资源共享方式
进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性(时分复用技术)
把一个物理上的实体变为若干个逻辑上的对应物。前者是实际存在的,后者是用户感受到的(空分复用技术)
用户独占全机,人机速度矛盾导致资源利用率极低
- 单道批处理系统
引入脱机输入/输出技术(用外围机+磁带完成)并由监督程序负责控制作业的输入,输出
优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升
缺点:内存中仅能有一道程序运行。CPU有大量时间是在空闲等待I/O完成
- 多道批处理系统
每次往内存中读入多道程序(操作系统正式诞生,用于支持多道程序并发运行)
优点:并发执行,共享计算机资源,资源利用率大幅提升,CPU保持忙碌,系统吞吐量增大。
缺点:用户响应时间长,没有人机交互功能,无法调试程序/无法在程序运行过程中输入一些参数
计算机以时间片为单位为各个用户/作业服务,各个用户可以通过终端与计算机进行交互
优点:用户请求可以被即时响应,解决了人机交互问题,可以多用户同时使用一台计算机
缺点:不能优先处理一些紧急任务
能够优先响应一些紧急任务,某些任务不需时间片排队
要在严格的时间限制内处理完事件。主要特点:及时性,可靠性
细分:
硬实时系统:必须在绝对严格的时间内完成
软实时系统:能接受偶尔违反时间规定
实现网络中各种资源的共享(如文件共享)和各台计算机之间进行通信
分布性和并行性,系统中各计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行,协同完成这个任务
如 windows XP
CPU执行一条条的机器指令的过程,二进制的机器指令
普通程序员:应用程序
操作系统的开发:内核程序,很多内核程序合在一起称为操作系统内核,简称“内核”(内核是最接近硬件的部分---管理者)
CPU能判断指令的类型,CPU有两种状态"内核态"和"用户态"
内核态(核心态,管态):此时运行的是内核程序,此时可以执行的是特权指令
用户态(目态):运行的是应用程序,只能执行非特权指令
小提:CPU中有个程序状态寄存器(PSW),其中有个二进制位,1表示”内核态“,0表示”用户态“。
内–用
执行一条特权指令
修改PSW标志位为”用户态“
操作系统主动让出CPU使用权
用–内
由”中断“引发
硬件自动完成变态的过程
触发中断信号意味着操作系统强夺回CPU使用权
但凡需要操作系统介入的地方都会触发
是让操作系统内核夺回CPU使用权的唯一途径,如果没有中断,CPU就会一直执行这个程序.就不需要并发这个概念了
内中断
与执行的指令有关,中断信号来源于CPU内部
也称:异常,例外
类型:陷阱,陷入,故障,终止
举例:
应用想请求操作系统内核的服务,会执行一条特殊的指令--陷入指令(并不是特权指令),此指令会触发一个内部中断信号
外中断
与执行的指令无关,中断信号来源于CPU外部
也称:中断
举例:
时钟中断
由时钟部件发来的中断信号
时钟部件每隔一段时间就会给CPU发一次
I/O中断
由输入/输出设备发来的中断信号
当输入输出任务完成时,向CPU发
CPU的设定
每一条指令执行结束时,CPU都会例行检测是否有外中断信号
不同的中断信号,需要用不同的中断处理程序来处理
大概流程
1. 当CPU检测到中断信号
2. 中断信号分类
内中断:CPU在执行指令时会检测是否有异常
外中断:每个指令周期末尾,CPU会检查是否有中断信号需要处理
3. 根据中断信号类型去查询“中断向量表”, 找到相应的中断处理程序
操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和一些程序接口。其中,程序接口是由一组系统调用组成
系统调用是操作系统提供给应用程序使用的接口,应用程序可以通过系统调用来请求获得操作系统内核的服务。
系统调用比库函数更加底层,且有些库函数不涉及系统调用
设备管理,文件管理,进程控制,进程通信,内存管理,记忆:凡是与共享资源有关的操作,需保证系统的稳定性和安全性
1.传递系统调用参数
2.执行陷入指令(用户态),又叫:trap指令,访管指令
3.执行相应的内请求核程序处理调用(核心态)
4.返回
- 内核是操作系统最根本,最核心的部分,实现操作系统的那些内核功能的那些程序就是内核程序
- 必须放在内核中的模块
时钟管理:实现计时功能
中断处理:负责实现中断机制
原语:是一种特殊的程序,处于操作系统的最底层,是最接近硬件的部分,此程序运行具有原子性,只能一气呵成,运行时间较短,调用频繁。
- 不直接涉及硬件的部分:进程,储存器,设备管理等
所以有些操作系统不将此部分放入内核
大内核:以上全部包括
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
微内核:不纳入一些不涉及硬件的部分
优点:方便维护
缺点:性能较低