操作系统笔记
名词解释
*什么是操作系统
操作系统为应用程序提供一个资源集的清晰抽象,并管理这些硬件资源,而不仅仅是一堆硬件。
操作系统的任务是创建好的抽象,并实现和管理它所创建的抽象对象。
操作系统的一个主要任务是隐藏硬件,呈现给程序(以及程序员)良好、清晰、优雅、一致的抽象。
操作系统用来管理一个复杂系统的各个部分,在相互竞争的程序之间有序地控制对处理器、存储器以及其他I/O接口设备的分配。
操作系统的主要任务是记录哪个程序在使用什么资源,对资源请求进行分配,评估使用代价,并且为不同的程序和用户调解互相冲突 的资源请求。
为程序提供服务,对资源进行管理
*进程
进程本质上是正在执行的一个程序,是容纳运行一个程序所需要所有信息的容器。
一个进程就是一个正在执行程序的实例,包括程序的代码和数据、程序计数器、寄存器和变量的当前值、打开的文件等系统资源。
进程控制块(PCB):操作系统管理控制进程运行所用的信息集合。操作系统用PCB来描述进程的基本情况以及运行变化的过程, PCB是进程存在的唯一标志。
同一状态的进程,其PCB组成一链表,多个状态对应多个不同的状态。或者使用索引表。
进程只能自己让自己进入阻塞态,只能被别的进程或操作系统唤醒。
*IDT
中断向量表\中断描述符表
code ==> callback address 由中断号找到内核中相应的中断处理函数的(起始)地址
与每一I/O类关联的是中断向量,它位于靠近内存底部的固定区域,包含中断服务程序的入口地址。
假设当一个磁盘中断发生时,用户进程3正在运行,则中断硬件将程序计数器、程序状态字、有时还有一个或多个寄存器压入堆栈,计算机随即跳转到中断向量所指示的地址。接着中断服务程序就接管一切剩余的工作。,,,,,
* 超标量(super-scalar)
如果处理器能达到比一个周期执行一条指令更快的执行速率,就称之为超标量处理器。
*进程和线程的区别和联系
准并行的线程拥有共享同一个地址空间和所有可用数据的能力;不同的进程则具有不同的地址空间,(起码是可写内存)
线程是轻量级的进程,线程可以比进程更容易(即更快)的创建和撤销
一个进程中可以同时存在多个线程;各个线程可以并发地执行;各个线程可以共享地址空间和文件等资源;但是一个线程崩溃,会导 致其所属进程的所有线程崩溃。
问答
*内存不够怎么办---程序在内存和硬盘之间换入换出
覆盖技术->交换技术->虚拟内存
覆盖技术:由程序员把程序模块化,内存也有相应的分区,没有调用关系的模块可以分时地公用同一块内存分区
交换技术:由操作系统负责把先不用的程序移出内存,以程序为单位,开销大
虚拟内存:粒度更小,以内存页为单位,类似覆盖技术,但无需程序员操作
页表是如何初始化的?发生缺页异常时是如何根据逻辑地址找到所需的页在硬盘中的位置(地址)?操作系统通过查看分页表,得知被请求的页在内存里还是硬盘里
*为什么要有kernel?
kernel向下管理硬件,向上提供系统调用(system call)
*保护模式?
kernel能访问全部内存地址,“用户程序“不能访问内核所在的内存地址

浙公网安备 33010602011771号