- 操作系统的功能和目标:用户和硬件之间的接口
- 覆盖了软件的机器也叫作虚拟机
- 操作系统的特点:共享和虚拟和异步。
- 共享分为互斥共享和同时共享(同时是宏观上的,微观上可能还是分时共享)。
- 互斥共享:同时用qq和微信视频,摄像头只能给一个进程。
- 同时共享:用qq聊天和用微信发送文件。两个进程并发的访问硬盘资源,微观上还是交替的。
- 虚拟是把一个物理上的实体变成若干个逻辑上的对应物(空分复用技术(4g的运行内存,同时运行的程序需要的内存远大于4g)和时分复用技术(时间片,让用户感觉同时有n个cpu在工作))。
- 异步是指允许多个程序并发执行时,因为资源有限,进程没有一次执行到底,而是已不可预知的速度前进。
- 中断会让cpu进入核心态,有操作系统内核进行中断处理。
- 中断可以让CPU从用户态进入核心态,是操作系统获得计算机控制权。
- 中断是cpu进入核心态的唯一途径。
- 中断:内中断(异常)(来自程序)
- 1.陷入:系统调用。。。。
- 2.故障:缺页。。。。。
- 3.终止:不可恢复的致命错误,终止处理程序不会把结果返回出错的程序。
- 外中断:I/O中断请求,人为中断。(来自外部)
- 系统调用:向上提供简单服务,由命令接口和程序接口组成。
- 命令接口:允许用户直接使用。
- 程序接口:用户要通过程序间接调用,由一组系统调用组成。
- 系统调用涉及对进程等功能的控制,所以需要在核心态执行。
- 按功能:设备管理,文件管理,进程控制、进程通信、内存管理。
- 库函数和系统调用的区别:1.核心态和用户态;2.库函数会把一些系统调用封装成库函数。
- 例如:取绝对值函数不涉及系统调用,文件创建涉及系统调用。
系统调用功能实例:打印机的使用。
用户无法直接使用打印机,而是需要通过系统调用。因为打印机是共享资源(临界资源)。
进程的三种基本状态:
运行:占有cpu并已经在运行。(最大同时运行数等于内核数)
就绪:具有运行条件(没有被阻塞),但是没有空闲cpu,不能运行。(万事俱备,只差cpu)
阻塞(等待):因为外部事件无法运行。(等待操作系统分配打印机,等待读磁盘等事件)。
知识总结:
进程的定义和组成:
知识点整理:
进程间通信:消息传递、管道通讯、共享存储
基于数据结构的共享限制了数据的类型,基于存储区的共享优势是进程之间数据的存储形式和位置选择不需要经过操作系统,因此速度更快。
进程的创建,阻塞,切换 ,唤醒,终止都是通过原语完成的。
知识点梳理:
撤消原语需要释放PCB内存空间和这个线程占用的CPU资源,同时终止子进程。
和终止对应,创建会创建(分配)PCB空间给这个进程,同时加入就绪队列等待CPU分配时间片。
PCB是CPU用来监控进程状态的工具,是进程的标志。虽然进程被调出内存,但PCB保存在内存的挂起队列中, 状态设定为挂起。
知识点梳理:
线程的引入:
线程的实现(对应)方式:
低交互性的线程调度方式:
例题:
进程什么时候能调度?
交互式调度算法:
![]()
进程同步、互斥:
进程同步:直接制约关系,一个进程的执行不需依靠与另一个进程执行的结果。
进程互斥:间接制约关系。
进程互斥的软件实现方法:
![]()
1.找到进入区。
2.对于两个进程同步执行的时候去判断不同的交替执行顺序,看会发生什么问题。
进程同步的硬件实现方法:
对于多处理机,只是屏蔽了一个处理机的中断,如果另一个处理机访问中断之间的临界资源,就会产生同时访问的问题。
硬件实现的时候,是把原来的lock存到一个寄存器中,然后修改lock的值,通过返回原来的lock来判断是否能够执行。
忙等:之前的双标志检查法也有,即已经知道当前进程不能执行,仍然不释放,而是占用处理及资源。
信号量机制:
1.系统通过信号量这个变量来表示系统可用资源数量
2.通过PV操作来操作信号量。