接口向上层提供的服务:
- GUI
- 联机接口:交互式接口
- 脱机接口:执行批处理文件
- 程序接口:系统调用
操作系统四大特征:
- 并发性
- 共享性【资源共享:系统中的资源可供内存中多个并发执行的进程共同使用】
- 互斥共享:比如手机只有一个摄像头,当你视频的时候就不能拍照
- 同时共享:QQ和微信同时发送文件,都需要访问硬盘资源,这时就是交替访问;比如游戏声音+音乐声音
- 虚拟
- 时分复用:在单核CPU上,能够跑多个软件,就用到了时分复用技术,物理上一个CPU,逻辑上多个
- 空分复用:虚拟存储技术,虚拟地址空间,每个进程都有自己独立的虚拟地址空间,空间总量可能会超过本机,但是本机存储的只有正在使用到的,这就不会出问题,MTU 将虚拟地址映射为实际地址
- 异步:操作系统的随机调度性
操作系统发展历程
- 手工操作阶段:纸袋机【人工在纸袋上写好东西,然后喂给计算机,然后计算机执行输出对应结果,程序员再去取出】 - 缺点:用户独占、计算机利用率低
- 单道批处理:引入了脱机输入输出技术【引入了外围机 + 磁带完成】,外围机可将执行程序存到磁带上,然后有个监督程序从磁带进行读取【加快了输入输出速度】,最后执行完成在输出到另一个磁带上【提高了资源利用率】,但是仅能执行一个程序,资源利用率还是很低,CPU有大量的时间在等待着I/O完成【计算时,输入输出设备全都空闲等待,能不能让程序在执行时,输入设备读取下一个程序】
- 多道批处理【操作系统诞生,并发出现,只会在当前并发任务下进行随即调度;新添加的任务不会】 - 极大的提高了CPU的利用率,缺点:无人机交互,无法进行人为干预
- 分时操作系统:时间片轮转,解决了人机交互,用户请求可以及时被响应;缺点:不能优先处理紧急任务
- 实时操作系统:可以优先处理一些紧急任务,及时、可靠
- 硬实时操作系统:自动驾驶
- 软实习操作系统:12306购票
操作系统运行机制
- 只有CPU处于内核态,才是操作内核程序,可以执行特权指令
- 若CPU处于用户态,那么只能够操作应用程序执行非特权指令
- CPU如何知道自己所处的状态:PSW 寄存器
- CPU如何进行状态切换的
- 电脑开机,CPU需要执行初始化程序,此时处于内核态
- 当一个应用程序要上CPU的时候,操作系统会在允许的情况下,使用一条特权指令释放内核程序的使用权【修改PSW寄存器的值】
- 此时应用程序就运行在用户态了
- 如果此时,黑客写了一条特权指令,交给CPU运行
- CPU会发现该指令是特权指令,然后自己又处于用户态,那么会发生一个中断信号,把CPU的使用权交给内核程序
- 内核程序针对该中断信号指令也会有对应的处理机制,处理完成后再交给应用程序
中断
作用
- 为了保护操作系统
- 实现并发【操作系统对线程的调度中断是前提,中断是操作系统夺回应用程序CPU执行权的唯一途径】
类型
- 内中断:由当前执行的指令触发的,再CPU内部触发【终止、陷入、故障三大类】
- 应用程序执行特权指令 - 终止
- 代码中的运行时异常【比如 /0】 - 终止
- 陷入指令【非特权指令】 - 比如 printf 打印【用户态】,而代码底层需要执行 write 指令操作硬件的【内核态操作硬件】,就会使用一个陷入指令让CPU状态切换
- 程序运行中发生故障,但是操作系统能给修复,比如:缺页故障,操作系统自身发生的异常 故障
- 外中断:可能由硬件进行触发,不管CPU啥事【每执行一条指令,就需要检查是否由外中断发生】
- 时钟中断:相当于分时,到时间了就自动触发状态切换,然后随机调度上CPU【并发】
- 硬件中断:比如操作系统调用了打印机打印,然后CPU还在运行其他的程序,当打印机完成工作后,需要通知一下操作系统,然后操作系统从等待打印机的资源中挑选一个上打印机打印
实现原理
每种中断都有类型的,每种类型对应的处理机制再一张表中都有存储
系统调用
凡是涉及到共享资源的使用,都会涉及到系统调用,系统调用的目的就是:如果某个线程访问了共享资源,而该共享资源需要互斥进行访问,这时需要操作系统来进行分配,比如:【创建文件、使用打印机等】
分类
- 设备管理 - 打印机
- 文件管理 - 创建文件
- 进程控制 - 创建、阻塞、唤醒
- 进程通信 - 一个主机上,多个程序间的通信
- 内存管理 - 分配回收内存资源
执行过程
先会传递该系统调用所需要的参数到寄存器,传递完成后进行陷入指令的中断处理,然后根据参数执行不同类型的中断程序
体系结构
大内核与微内核