yanchang
yanchang
发布于 2025-03-15 / 14 阅读
0
0

复试准备3.15

1.操作系统的组成

组成部分

类比

内核

工厂核心调度中心

驱动程序

工人和机器说明书

文件系统

仓库货架系统

系统调用

点菜菜单

Shell

服务员/点菜系统

用户界面

餐厅的装修与菜单板

系统服务

后厨、洗碗工、仓库管理员等

2.操作系统都用到了哪些数据结构

数据结构

用在哪儿了?

举个例子

数组(Array)

表格式快速访问

页表、进程表、文件描述符表(fd 表)

链表(Linked List)

动态添加删除方便

就绪队列、阻塞队列、内存空闲块链表

栈(Stack)

后进先出操作(LIFO)

函数调用栈、内核栈、用户栈

队列(Queue)

排队调度

任务队列、进程调度队列、打印队列

树(Tree)

层级/快速查找

文件系统目录树、页表多级结构(如多级页表)

哈希表(Hash Table)

快速查找、映射关系

文件索引、页框映射(如反向页表)

位图(Bitmap)

空间高效的资源管理

空闲内存页管理、磁盘块分配管理

堆(Heap)

优先级处理、动态内存分配

最小/最大优先队列、malloc/free 内存管理

红黑树 / AVL 树

平衡搜索树,查找效率高

Linux 内核中的进程调度、虚拟内存区域管理(vm_area_struct)

B+树 / B 树

大规模数据块高效索引

文件系统(如ext4)、数据库系统

3.简述操作系统中系统调用过程

系统调用提供了用户程序和操作系统之间的接口,应用程序通过系统调用实现其余 OS 的通信,并取得它

的服务。系统调用不仅可供所有的应用程序使用,而且也可供 OS 本身的其它部分,如命令处理程序。

系统调用的处理步骤(三步):

首先,将处理机状态由用户态转为系统态;然后由硬件和内核程序进行系统调用的一般性处理,即首先保

护被中断进程的 CPU 环境,将处理机状态字 PSW、程序计数器 PC、系统调用号、用户栈指针以及通用寄

存器内容等压入堆栈;再然后将用户定义的参数传送到指定的地址保存起来。

其次,分析系统调用类型,转入相应的系统调用处理子程序。

(通过查找系统调用入口表,找到相应处理子

程序的入口地址转而去执行它。)

最后,在系统调用处理子程序执行完后,应恢复被中断的货设置新进程的 CPU 现场,然后返回被中断进程

或新进程,继续往下执行

4.什么是堆?有什么作用?

堆是一种数据结构,可以把堆看成一个完全二叉树,并且这个完全二叉树满足:

任何一个非叶节点的值都不大于(或不小于)其左右子树的结点的值。若父亲大孩子小,则为大顶堆,若

父亲肖孩子大,则为小顶堆。

作用:应用于堆排序

5.图的相关概念

图:由结点的有穷集合 V 和边的集合 E 组成。

类别:有向图和无向图。

顶点的度:出度和入度。

有向完全图和无向完全图: 若有向图有 n 个顶点,则最多有 n(n-1)条边,则称为有向完全图;

若无向图有 n 个顶点,则最多有 n(n-1)/2 条边,则称为无向完全图。

路径:相邻顶点序偶所构成的序列。

简单路径:序列中的顶点和路径不重复出现的路径。

回路:路径中第一个顶点和最后一个顶点相同的路径。

连通: 无向图中,如果 Vi 到 Vj 有路径,则称这两个顶点连通。如果图中任意两个顶点之间都连通,则

称改图为连通图。

有向图中,如果 Vi 到 Vj 有路径,则称这两个顶点连通。如果图中每一对顶点 Vi 和 Vj,从 Vi 到

Vj 和 Vj 到 Vi 都有路径,则称改图为强连通图。


评论