英文:学过os? computer network? Data structure?都是干什么的?
Big O和small O
Big O mean less than or equal to,small o mean less than。
Pcb: progress control block
算法:algorithm [ˈælɡəˌrɪðəm]
PCB: PCB(进程控制块process control block): 一个数据结构,进程存在的唯一标志. 系统通过PCB来了解进程的状态信息,以便控制和管理
事务:指一个单元的工作,要么全做,要么全不做,保证一组数据的修改要么全部执行,要么全部不执行
事务的特点: ACID: 原子性(要么都做,要么都不做),一致性(运行中发生故障,必须回滚),隔离性(一个事务不能被其他事务干扰),持续性(事务一旦提交,对数据库的改变应该是永久性的).原隔一尺(持)
多态: 接口的多种不同的实现方式. (允许将子类类型指针赋值给父类类型指针)
继承: 一个类继承另一个类的功能, 可以直接使用其属性和方法.并可以添加
Java单继承, c++可以多继承(多个爹)
封装: 隐藏对象的属性和细节, 仅对外提供公共访问方式.(控制属性的读和修改的访问级别)
虚函数:在某基类中声明为 virtual, 允许被一个或多个派生类中重写的成员函数,以实现多态。
Virtual 函数类型 函数名
纯虚函数:在基类中声明的虚函数,在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚数的方式是在函数原型后面加“=0”。
包含纯虚数的类是抽象类。
指令是内核态的多还是用户态的多?
内核态,CPU可以访问内存所有数据,用户态下是受限访问,只能访问自己空间中的内存。
指针加一:对指针增加该指针类型所占的内存的字节数。不同类型的指针加1后,增加的大小不同。
FAT: 文件配置表file allocation table: 分配给文件的所有盘块号都放在该表中,记录了文件所在位置。
文件系统:负责管理和存储文件信息的软件机构,由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性
文件系统类型: Windows中有FAT32,NTFS,Linus中有ext2,ext3,ext4
括号匹配:在很多字符串处理的场景中时常被用到,编译器编译时检查应该成对出现的括号是否符合要求等
栈应用 括号匹配
设置一个栈,每读入一个左括号,则将该括号压入栈内;如果读到右括号,则与栈顶的左括号进行匹配检验,若成功,则栈弹出一个元素,否则整个式子匹配失败,结束。
算法思想:设置一个栈,当读到左括号时,左括号进栈。当读到右括号时,则从栈中弹出一个元素,与读到的左括号进行匹配,若匹配成功,继续读入;否则匹配失败,返回FLASE。另外,在算法的开始和结束时,栈都应该是空的.所以匹配到最后还要判断栈是否为空,若非空,则说明匹配失败.
进程和线程(thread)的区别
线程是独立调度的基本单位, 本身没有资源, 进程是资源分配的基本单位, 同一进程中的线程共享进程的地址空间(放着各种资源: 进程代码段, 全局变量, 打开的文件), 但是, 一个线程的栈指针对其他线程透明(心里的客栈, 只对自己开放)
进程为什么是资源分配的基本单位?进程是一个程序对某个数据集的一次运行活动,创建进程的时候要分配CPU和内存等资源。
OSI/RM开放系统互连参考模型的全称
Open System Interconnection Reference Model.
OSI七层
物理层physical layer,数据链路层data link layer,网络层network layer,传输层transport layer,会话层session layer,表示层presentation layer,应用层application layer
二叉排序树转换成排序的双向链表
用递归的方法。二叉排序树特点一个结点的左子树比它小,右子树比它大,中序遍历得到一个递增的序列。
在中序遍历时,让指向左子树的指针变为链表中指向前一个结点的指针,指向右子树的指针变为链表中指向后一个结点的指针。
内存交换(对换)/对换(交换):多个进程之间
把处于等待状态的程序从内存中移出, 把准备好竞争CPU的程序移入内存
交换区。
提高并行:多道程序设计
中断:解决处理器速度和硬件速度不匹配,是多道程序设计的必要条件。每个中断都有自己的数字标识,当中断发生时,指令计数器PC和处理机状态字PSW中的内容自动压入处理器堆栈,同时新的PC和PSW的中断向量也装入各自的寄存器中。这时,PC中包含的是该中断的中断处理程序的入口地址,它控制程序转向相应的处理,当中断处理程序执行完毕,该程序的最后一条iret(中断返回),它控制着恢复调用程序的环境。
中断和系统调用的区别:
中断是由外设产生, 无意的, 被动的
系统调用是由应用程序请求操作系统提供服务产生, 有意的, 主动的。要从用户态通过中断进入内核态。(联系)
中断过程:中断请求 中断响应 断点保护 执行中断服务程序 断点恢复 中断返回
系统调用过程:应用程序在用户态执行时请求系统调用,中断,从用户态进入内核态,在内核态执行相应的内核代码。
中断之后保存什么?保存pc, psw, 通用寄存器。Pc程序计数器program count,存放下一条指令所在的单元的地址。Psw,program status word程序状态字,指处理器的状态。
二叉树:
先序二叉树:若二叉树为空,什么也不做,否则,访问根结点,然后先序遍历左子树,最后先序遍历右子树。
中序二叉树:若二叉树为空,什么也不做,否则,中序遍历左子树,然后访问根结点,最后中序遍历右子树。
后序二叉树: 若二叉树为空,什么也不做,否则,后序遍历左子树,后序遍历右子树,最后访问根结点。
先中后序,递归,用栈实现,因为每个结点都只访问一次,时间复杂度O(n),递归工作栈的深度恰好是树的深度,最坏情况下,n结点,n层,时间复杂度