前言
综合统计一下之前做过的习题,加以更加细致的解析,来更好的理解知识点
一、虚拟存储器管理
- 在整个缺页处理中,没有越界错误;需要操作系统做的置换页面以及为内存的分配。
- 在请求分页存储管理时,整体的步骤应该为,首先给出逻辑地址,将逻辑地址分为两部分(页号+页内偏移量),将页号拿出来首先与页表寄存器中的页长进行比较,看会不会发生越界;然后与块表(TLB)中的信息比较,如果有相应的页号和物理块号的对应关系,那么修改对应页面的修改位和访问位,物理块号和页内偏移量形成物理地址(2);否则,需要去访问页表,如果页面在内存中,重复上述操作及可;否则需要CPU发出缺页中断,保护CPU现场,从外存中找到相应的缺页,再查看内存是否已满,那么调用页面置换算法选择一个页面换出,再看换出的页面是否修改,如果已修改,需要重新写回外存中去;然后操作系统将缺页从外存中读入内存,修改页表,在重复操作(2)。
- 综合计算时间(CPU)和IO时间的比例,应该将计算时间占比少的进程优先处理,这样可以使I/O设备最快可以使用,提高资源利用率,所以优先级应该设置为P3>P2>P1.
- 导致用户进程从用户态转换到内核态有三种情况:1.发生外部中断,I/O设备完成了一个进程的请求之后,会向CPU发送中断请求,CPU接受之后就会停止执行下一条指令,转去执行中断请求对应的进程;2.系统调用,用户态进程主动请求使用操作系统的相应服务程序,最经典的是fork函数执行的创建新进程的系统调用;3.异常,发生异常之后,进程就会转到处理异常情况的对应的特定内核态区域。
- 由此可以知道整数除零操作(会发生中断)和read系统调用会导致该操作;而sin()函数调用在用户态就可以完成
- 这里属于一个小常识,操作系统在开机之后会被加载到内存中——RAM
- 补充一下计算机开机之后的所有操作:首先要了解的有两 个(一个是DISK(硬盘)存放OS,还有一部分存放Bootloader;另一个是BIOS:基本I/O处理系统);开机之后先激发POST(加电自检):检查显卡和执行BIOS。BIOS的作用是将Bootloader加载到内存中去,Bootloader存放在硬盘的第一个主引导扇区,占512byte;将Bootloader加载内存中后,由Bootloader掌权,将OS的数据和程序加载到内存中,之后操作系统掌权。