写在前面
本文用于记录最近遇到的易考且易忘记的知识点,用于个人复习,考研没几天了冲冲冲
硬件相关
中断隐指令:关中断->保存断点->识别中断源->引出中断服务程序地址
cache miss:cache缺失,通过硬件从主存中取数据,例如80386通过内存控制器取主存中取数据
发生中断或异常时CPU从用户态(目态)->核心态(管态):设置特殊寄存器的值 0(用户态) -> 1(核心态)
操作系统概述
特权指令:
IO指令、置中断、设置系统时间、存取用于内存保护的寄存器、内存清理、修改权限、进程切换、文件分配与回收、
设备分配与回收、进程间消息传递或信号传递、中断返回指令
非特权指令:读写内存,算术运算、命令解释程序 // 命令解释程序 = shell 在用户态执行,但会请求系统服务
广义指令=系统调用
访管指令:由用户态->核心态,使用访管指令,产生访管中断,访管指令不是特权指令
线程相关
线程的实现:
1.用户级线程
特点:内核意识不到线程的存在,线程管理(创建、撤销和切换等)在应用程序中完成
优点:
(1)线程切换不需要到内核空间
(2)进程可根据自身线程需要选择不同的调度算法
(3)用户级线程实现与os无关,对线程的管理代码属于用户程序的一部分
缺点:
(1)进程阻塞,所有线程阻塞
(2)内核分配进程CPU,仅有一个线程能执行,不能发挥多处理机优势
2.内核级线程
优点:当有多个处理机时,一个进程的多个线程可以同时执行。
缺点:由内核进行调度。
1.内核支持线程是OS内核可感知的,而用户级线程是OS内核不可感知的。
2.用户级线程的创建、撤消和调度不需要OS内核的支持,是在语言(如Java)这一级处理的;而内核支持线程的创建、撤消和调度都需OS内核提供支持,而且与进程的创建、撤消和调度大体是相同的。
3.用户级线程执行系统调用指令时将导致其所属进程被中断,而内核支持线程执行系统调用指令时,只导致该线程被中断。
4.在只有用户级线程的系统内,CPU调度还是以进程为单位,处于运行状态的进程中的多个线程,由用户程序控制线程的轮换运行;在有内核支持线程的系统内,CPU调度则以线程为单位,由OS的线程调度程序负责线程的调度。
5.用户级线程的程序实体是运行在用户态下的程序,而内核支持线程的程序实体则是可以运行在任何状态下的程序。
中断向量表
当操作系统未初始化时,中断向量表位于ROM的前1K字节中,即ROM前1KB的内容存放中断向量表,初始化操作系统时,将数据重ROM中拷贝到主存SRAM中,同样也是存放到前1KB的位置中。
中断向量表是我们的总称,实际上是这块区域用于存放中断向量,由于空间连续,所以我们称之为中断向量表。每个中断向量存放用于中断去往相应中断处理程序的地址偏移。
未完待续