冯诺依曼体系结构:输入设备,输出设备,CPU(运算器+控制器),存储器(内存+外存)
简要描述CPU的工作原理(必须涉及指令的读取、指令的执行、时钟周期)
几乎所有的冯•诺伊曼型计算机的CPU,其工作都可以分为5个阶段:取指令、指令译码、执行指令、访存取数和结果写回。
- 取指令:CPU的控制器从内存读取一条指令并放入指令寄存器。指令的格式一般是【操作码+操作数地址】
操作码就是汇编语言里的mov,add,jmp等符号码;操作数地址说明该指令需要的操作数所在的地方,是在内存里还是在CPU的内部寄存器里。 - 指令译码:指令寄存器中的指令经过译码,决定该指令应进行何种操作(就是指令里的操作码)、操作数在哪里(操作数的地址)。
- 执行指令,分两个阶段“取操作数”和“进行运算”。
- 修改指令计数器,决定下一条指令的地址。
简要描述什么是进程调度(需要涉及时间片、上下文知识)
进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;
进程调度。又称为低级调度,其主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。进程调度是操作系统中最基本的一种调度,在一般操作系统中都必须配置进程调度。进程调度的频率很高,一般几十毫秒一次。
进程在系统中是如何被管理的?
管理=描述(PCB)+组织
描述(PCB):进程控制块,这是一个类/C语言的结构体。一个结构体对象就是一个进程
组织:使用一定的数据结构来组织,一种常见的做法就是使用双向链表。
查看进程列表,本质上就是遍历操作系统内核中的这个链表,并显示其中的属性。
创建一个进程,本质上就是创建一个PCB对象,加入到内核的链表中。
销毁一个进程,本质上就是把这个PCB对象从内核链表中删除掉。
PCB中大概有哪些属性?
- pid:一个进程的身份标识,一个机器同一时刻,不可能有两个进程的pid相同。
- 内存指针:描述了这个进程使用的内存空间是哪个范围(使用的内存空间为虚拟地址空间)
- 文件描述符表:描述了这个进程都打开了哪些文件。
- 进程的状态
- 进程的上下文
- 进程的记账信息
并发式执行与并行式执行
并发式执行:由于CPU的运行速度极快,虽然CPU一直在进行切换,但是用户是感受不到这个切换的过程的。
并行式执行:多个CPU,运行多个进程,CPU1运行进程1,CPU2运行进程2。