操作系统笔记

名词解释

*什么是操作系统
    操作系统为应用程序提供一个资源集的清晰抽象,并管理这些硬件资源,而不仅仅是一堆硬件。
    操作系统的任务是创建好的抽象,并实现和管理它所创建的抽象对象。
    操作系统的一个主要任务是隐藏硬件,呈现给程序(以及程序员)良好、清晰、优雅、一致的抽象。
    操作系统用来管理一个复杂系统的各个部分,在相互竞争的程序之间有序地控制对处理器、存储器以及其他I/O接口设备的分配。
    操作系统的主要任务是记录哪个程序在使用什么资源,对资源请求进行分配,评估使用代价,并且为不同的程序和用户调解互相冲突    的资源请求。
    为程序提供服务,对资源进行管理

*进程
    进程本质上是正在执行的一个程序,是容纳运行一个程序所需要所有信息的容器。
    一个进程就是一个正在执行程序的实例,包括程序的代码和数据、程序计数器、寄存器和变量的当前值、打开的文件等系统资源。
    进程控制块(PCB):操作系统管理控制进程运行所用的信息集合。操作系统用PCB来描述进程的基本情况以及运行变化的过程,    PCB是进程存在的唯一标志。
    同一状态的进程,其PCB组成一链表,多个状态对应多个不同的状态。或者使用索引表。
    进程只能自己让自己进入阻塞态,只能被别的进程或操作系统唤醒。

 

*IDT

  中断向量表\中断描述符表

  code ==> callback address  由中断号找到内核中相应的中断处理函数的(起始)地址

与每一I/O类关联的是中断向量,它位于靠近内存底部的固定区域,包含中断服务程序的入口地址。
假设当一个磁盘中断发生时,用户进程3正在运行,则中断硬件将程序计数器、程序状态字、有时还有一个或多个寄存器压入堆栈,计算机随即跳转到中断向量所指示的地址。接着中断服务程序就接管一切剩余的工作。,,,,,

 

* 超标量(super-scalar)

  如果处理器能达到比一个周期执行一条指令更快的执行速率,就称之为超标量处理器。

*进程和线程的区别和联系
    准并行的线程拥有共享同一个地址空间和所有可用数据的能力;不同的进程则具有不同的地址空间,(起码是可写内存)
    线程是轻量级的进程,线程可以比进程更容易(即更快)的创建和撤销
    一个进程中可以同时存在多个线程;各个线程可以并发地执行;各个线程可以共享地址空间和文件等资源;但是一个线程崩溃,会导        致其所属进程的所有线程崩溃。

 

问答


*内存不够怎么办---程序在内存和硬盘之间换入换出
    覆盖技术->交换技术->虚拟内存
    覆盖技术:由程序员把程序模块化,内存也有相应的分区,没有调用关系的模块可以分时地公用同一块内存分区
    交换技术:由操作系统负责把先不用的程序移出内存,以程序为单位,开销大
    虚拟内存:粒度更小,以内存页为单位,类似覆盖技术,但无需程序员操作

页表是如何初始化的?发生缺页异常时是如何根据逻辑地址找到所需的页在硬盘中的位置(地址)?操作系统通过查看分页表,得知被请求的页在内存里还是硬盘里

*为什么要有kernel?

  kernel向下管理硬件,向上提供系统调用(system call)

*保护模式?

  kernel能访问全部内存地址,“用户程序“不能访问内核所在的内存地址

posted @ 2020-08-24 14:19  荒Picasso  阅读(105)  评论(0)    收藏  举报