任务切换需要进行特殊的操作:
这个特殊的操作是将必要的现场信息先保存起来(现场信息,部分内存,寄存器)
然后将下一个要运行的程序现场信息恢复到寄存器和内存中,这种操作叫上下文切换。
正是这种特殊的操作实现了进程的切换,这也是编写一个调度器实现并发的关键所在。
现场信息保存在PCB;进程控制块,每一个进程都有自己的PCB,PCB还保存了进程的当前状态,(就绪,阻塞,运行等)、进程标识符PID,当前拥有的资源等
进程有由:PCB,程序段,数据段三者构成
PCb被组织在一张索引表或者链表等数据结构种
一、初始化系统栈和用户栈,进程切换的间隙由系统使用
二、初始化堆空间
三、初始化定时器,作为系统节拍
四、初始化系统进程并执行,PCB索引表
开始,先执行系统进程时间片,定时器中断 ,结束当前进程,进入到中断服务函数,后进入用户时间片
中断系统:
中断装置(硬件)
识别中断源,当有多个中断源时,按紧迫程度排队;
保存现场;
引出中断处理程序。
中断源
引起中断的事件
中断寄存器
保存与中断事件相关信息的寄存器
中断字
中断寄存器的内容
系统栈 中断优先级 中断屏蔽
中断向量:中断处理程序的运行环境与入口地址(PSW,PC)
每类中断事件有一个中断向量,
中断向量的存放位置是由硬件规定的,
中断向量的内容是OS在系统初始化时设置好的。
全文地址:
https://blog.csdn.net/liudongdong19/article/details/79836141
网友评论