0.操作系统概论
1.操作系统四大特性:并发性(所有程序在宏观上并发执行),共享性(操作系统与多个用户共享系统中所有资源),异步性(操作系统运行轨迹是随机的),虚拟性(虚拟CPU,虚拟存储,虚拟设备)。
2.硬件环境*
(1)绝对时钟与间隔时钟
间隔时钟每隔一段时间就会发生时钟中断。
利用间隔时钟可以实现逻辑时钟:如设置50ms的逻辑时钟。
(2)堆与栈*
堆:属于用户空间,保存动态变量。例如:new
用户栈:属于用户空间,功能:1.用户函数调用时局部变量 2.传送调用操作系统时传给操作系统的参数。
系统栈:又叫核心栈,属于系统空间,功能:1.操作系统程序时的局部变量 2.保存中断嵌套时的中断现场。3.保存目态运行产生中断时的现场。
(3)寄存器
PSW(与微机系统的标志寄存器联系):程序状态字,表示当前程序的运行环境,有一位可表示当前CPU的运行状态(管态还是目态)。
(4)特权指令和非特权指令
(5)处理器状态
1.进程
1.什么是进程?进程是程序的一次执行。
2.进程的组成:PCB,程序(代码加数据)。
3.进程控制块:PCB,标志进程存在的唯一标志。
4.引起进程创建的事件*:用户登录,作业调度,提供服务,应用请求。
5.引起进程撤销的事件:正常结束,异常结束,外界干预。
注意:
1.进程没有运行进程则一定没有就绪进程。
2.系统中没有就绪和运行进程,但可以有阻塞进程(死锁)。
3.进程的封闭性是指进程执行的结果只取决于自身,不受外界影响。
4.全局变量在正文段,局部变量在数据堆栈段。
5.进程自身决定由运行态->就绪态(主动),而由阻塞态->就绪态需要协助进程帮助。(被动)
6.
线程:
1.用户级线程,当线程执行一个系统调用时,进程内所有线程阻塞。
2.内核级线程,线程调度和管理由内核实现。
进程与线程区别:
1.进程是分配单位,线程是执行单位。
2.引入线程后,进程只作为除CPU外的系统资源的分配单元。
3.调度:线程是资源调度的基本单位。
4.并发性:同一进程之间的线程可并发执行,不同进程之间的线程也可并发执行。线程切换不一定有进程切换。
5.拥有资源:进程是系统中拥有资源的独立单位,而线程不拥有系统资源。同一进程内的线程具有相同的地址空间。
6.独立性:同一进程的线程共享进程地址空间和资源。
7.系统开销:线程切换系统开销小,并且同一进程内的线程进行同步与通信甚至无需操作系统干预。
父进程与子进程区别:
1.父进程与子进程可并发执行
2.父进程与子进程拥有不同的进程控制块
3.父进程与子进程不能共享虚拟地址空间。
4.fork()系统调用,对于父进程返回子进程PID,对于子进程,若创建成功返回0,失败返回-1.
进程间通信:共享内存,消息传递,管道。
2.中断处理全过程(包含中断续元)
操作 | 状态转换 | 具体动作 |
创建进程 | 无->就绪 | 初始化PCB(地址映射寄存器,PSW为目态) |
首次调度选中 | 就绪->核心运行 | 将下降进程现场压入PCB,使用上升进程PCB恢复现场 |
首次返回目态 | 核心运行->目态运行 | 置PSW,PC |
目态发生中断(等待某事件) | 目态运行->核心运行 | 将目态现场压入系统栈 |
等待某事件 | 核心运行->等待态 | 将核心运行现场保存到PCB中,PCB进入等待队列。 |
事件发生 | 等待态->就绪态 | PCB进入就绪队列 |
再次调度选中 | 就绪态->核心运行 | 使用PCB恢复现场 |
非嵌套返回 | 核心运行->目态运行 | 由系统栈恢复现场,置PSW,PC. |
目态发生中断 | 目态运行->核心运行 | 将目态现场压入系统栈 |
中断嵌套 | 核心运行->核心运行 | 将中断现场压入系统栈 |
中断嵌套返回 | 核心运行->核心运行 | 由系统栈恢复现场 |
非中断嵌套返回 | 核心运行->目态运行 | 由系统栈恢复现场 |
进程结束 | 核心运行->终止 | 回收内存资源,撤销PCB |
中断续元,用户自行处理中断过程:
1.目态运行发生溢出中断
2.硬件PSW,PC压入系统栈
3.与中断源对应的中断向量送入PSW,PC
4.进行中断处理程序
5.访问用户的中断续元表,假定是
6.系统栈中的信息转移至用户栈
7.中断续元运行环境及入口送入PSW,PC
8.控制权转交给中断续元
9.执行,遇到ret指令后由用户栈弹出现场信息送入PSW,PC
10.中断返回
3.处理器调度(调度谁,什么时候调度,具体怎么调度)
一些概念:
周转时间=完成时间-就绪时间。
响应时间=等待时
1.先到先服务算法
2.短作业优先算法(平均周转时间最短)
3.最短剩余作业优先算法(可剥夺)
4.最高响应比优先算法:最高响应比=1+等待时间/运行时间
5.最高优先数优先算法
6.循环轮转算法(分时系统)
7.分类排队算法
8.反馈队列算法
4.实时调度
开始截止期:最迟开始时间
完成截止期:最晚完成时间
发生周期:每隔多长时间发生一次,发生周期性实时任务的间隔时间
Ci=运行时间
Ti=发生周期
EDF:可调度的必要条件,可剥夺,以完成截止期作为选择标准。
RMS:可调度条件:,不可剥夺,以发生周期作为标志,选择发生周期最小的。
进程切换时:为何PSW,PC要用一条指令恢复?