一、操作系统的概念,功能和目标
学习思路
1.操作系统的概念
2.操作系统的功能和目标
(1)、作为系统资源的管理者
第一步体现了功能中的文件管理
第二步体现了功能中的存储器管理
第三步体现了功能中的处理机管理
第一步体现了功能中的设备管理
(2)、作为用户和计算机硬件之间的接口
红色框里的是重点考点
联机命令接口例子:
用户说一句,操作系统做一句
脱机命令接口例子:
相当于把很多命令打包在一个文件里,然后操作系统一条一条执行;就是用户说一堆,操作系统做一堆。
程序接口例子:
只能通过程序间接使用,用户没办法直接使用
GUI:
(3)、作为最接近硬件的层次
二、操作系统的四个特征
1.并发
2.共享
并发和共享的关系
3.虚拟
4.异步
当前一个人把心占用了之后,后一个就要阻塞等待
三、操作系统的发展与分类
学习思路
1.手工操作阶段
需要人工换纸袋机,换一次执行一次程序,换的时候就会浪费大量时间
2.批处理阶段
2.1单道批处理
将纸袋机的程序存入了磁带,计算机一次读一道程序,避免了换纸袋机浪费时间
2.2多道批处理
假设输入需要一秒,计算一秒,输出一秒,用单道批处理完成三个作业就需要9秒,并且输入设备,CPU,输出设备是串行的,在进行输入时候CPU和输出设备都处于空闲状态,很浪费资源。
多道批处理的时候,在第一个作业输入完成,进行计算的时候,输入设备处于空闲,那么就可以继续进行第二个作业的输入,三种系统资源开始并行的工作了,也就是说系统资源空闲时间大幅度减少了,大部分时间处于忙碌的状态,所以说多道批处理系统能够使资源利用率大幅提升。
4.分时操作系统
为了解决分时操作系统的缺点,又发明了实时操作系统
5.实时操作系统
导弹响应处理不及时可能会射到别的地方
火车订票需要及时告诉别人还剩下多少张票
6.其他几种操作系统
四、操作系统的运行机制与体系结构
学习思路
1.什么是指令
2.运行机制
2.1两种指令
2.2两种处理器状态
2.3两种程序
小结
特权指令需要在处理器的核心态下才可以执行,非特权指令可以在核心态下执行也可以在用户态下执行。需要使用特权指令执行的程序叫做内核程序,不需要使用特权指令执行的程序叫做应用程序。内核程序由于需要使用特权指令,所以执行在核心态下
操作系统中的哪些功能应该由内核程序实现?
这个问题引出要学习的操作系统内核
3.操作系统内核
在操作系统中并不是所有都是必不可少的
最接近硬件的部分被叫做操作系统内核,其中包含很多和硬件紧密相关的功能
所有的进程切换和进程调度的管理工作都是需要计时才可以实现的,所以时钟管理是非常重要的。
3.操作系统的体系结构
把进程管理、存储器管理这些都算在内核里的话就叫做大内核
只把时钟管理这些基本功能保留在内核的话就叫做微内核
小结
五、中断和异常
学习思路
1.中断机制的诞生
在计算机的内存当中,同一时刻最多只能有一道程序,这种方式会使系统的资源利用率特别的低
引入中断机制之后就可以把多道程序同时放入到内存,各个程序并发的执行
比如说第一道程序或者说进程在用户态下运行,运行了一段时间之后,CPU可能会收到计时部件(用于计时的一个硬件设备)发出的中断信号,通知CPU时间已经过了一个时间片了,当CPU收到这个信号之后,就意味着需要操作系统介入开展管理工作,因此CPU会立即切换到核心态
在完成一系列的管理工作之后,操作系统会把CPU的使用权交还给用户进程,接下来进程二就会在用户态下继续执行
当进程二执行了一段时间之后,可能会发出系统调用的内中断信号,为了保证系统的安全性,像输入输出操作那些指令是属于特权指令,不允许用户进程直接使用,因此用户进程这些普通的应用程序,只能通过系统调用的方式(内中断信号的方式)来主动的要求操作系统介入工作,让操作系统代他完成请求输出工作。
接下来CPU同样会;立即进入核心态
然后操作系统二接管进程二提出的系统调用的请求
之后操作系统会按照进程二的请求按照要求,要求打印机这个输出设备开始工作
然后进程二由于要等待I/O设备的工作完成,所以会让进程二暂停运行。然后换进程三运行。
完成这一些列操作之后操作系统会把CPU的使用权还给用户进程,然后进程三开始工作
并且输出设备在操作系统的要求下会并行的工作,当他工作结束之后,会向CPU发出一个I/O完成的中断信号,当CPU接收到这个中断信号之后,他就知道现在又应该用操作由操作系统介入,进行后续的管理工作
所以接下来把CPU的使用权还给用户进程,然后进程二重新投入运行,开始后续的工作
2.中断的概念和作用
通过上述中断机制的诞生得出中断的概念和作用
3.中断的分类
比如上述打印机完成了输出工作之后向CPU发出一个外部中断信号,这就属于外部中断
软件中断: 比如当前执行的指令是一个除法指令,并且这个指令进行了一个整数除0的非法操作,这种情况下就会抛出一个异常,或者说内中断,由于这个内中断的产生和当前正在执行的除法指令有关,所以中断信号来源是CPU内部
4.外中断的处理过程
CPU在用户态下运行一个用户程序相关的指令,那么CPU会按顺序一次执行这些指令
如果没有外部中断信号需要处理就执行下一个指令
知道有一天指令执行完之后,检查到有一个外部中断信号需要处理,那么接下来就需要操作系统介入来处理字符外部中断信号,因此用户程序需要暂停运行,由于需要暂停运行,所以要保护被暂停的用户进程的CPU环境。类似于玩游戏玩到一半,需要游戏进行存档,处理完别的事情再回来玩的时候再接着存档玩就行
小结
六、系统调用
write()这个函数使用了系统调用
左边是在Linux系统中int输入的数字对应的操作