计算机系统概述
计算机系统:
硬件系统:
运算器、控制器(CPU)
存储器(内存、外存)
输入、输出设备(I/O设备)
软件系统:
系统软件
应用软件
操作系统特征:并发、共享、虚拟、异步
用户态和核心态的转换:
用户–>核心 通过中断实现
核心–>用户 通过执行一个特权指令,将程序状态字PSW的标志位设置为用户态。
中断和异常:
中断分类:内中断(信号源在CPU内部,与当前执行指令有关)、外中断(信号源外部,与当前指令无关)
中断来由:为了实现多道程序并发执行的一种技术,提高资源利用率
中断处理过程(9步):关中断–保存断点–中断服务程序寻址–保存现场和屏蔽字–开中断–执行中断服务程序–关中断–恢复现场和屏蔽字–开中断、中断返回
系统调用:
系统调用发生在用户态,对系统调用的处理发生在核心态,执行陷入指令会产生内中断、使处理器进入核心态
其中,陷入指令是唯一一个只能在用户态执行,而不在核心态执行的指令
进程管理
进程组成:
程序段、数据段、PCB(进程控制块)。PCB是进程存在的唯一标志
进程特征:
动态性(基本特征)、并发性、独立性(进程是资源分配、接受调度的基本单位)、异步性、结构性
进程状态:
运行态、就绪态、阻塞态、创建态(创建PCB)、终止态(撤销PCB)
进程转换:(进程控制)
进程被调度:就绪–运行
时间片到:运行–就绪
等待系统资源分配或等待某事件发生,即IO请求:运行–阻塞
资源分配完成,即IO完成:阻塞–就绪
进程原语:
创建、终止、唤醒、阻塞、切换
线程:
轻量级进程,线程是一个基本的CPU执行单元,也是程序执行流的最小单位。
线程实现方式:
用户级线程:所有线程管理工作由应用程序负责,线程切花在用户态下完成
内核级线程:线程管理工作由操作系统内核完成,线程切换在核心态下完成
多线程模型:
多对一、一对一、多对多
处理机调度:
高级调度(作业调度) 按照某种规则从后备队列中选择合适的作业调入内存并创建进程
中级调度(内存调度) 按照某种规则从挂起队列中选择合适的进程将数据调回内存
低级调度(进程调度) 按照某种规则从就绪队列中选择一个进程为其分配处理机
调度算法:
FCFS先来先服务 实现简单、对短作业不利
SJF短作业优先 对长作业不利,可能导致饥饿
HRRN高响应比优先【响应比=(等待时间+要求服务时间)/要求服务时间 】 折中算法
RR时间片轮转
优先级调度
多级反馈队列调度
进程同步:
在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。为了协调进程之间的相互制约关系,如等待、传递信息等,引入了进程同步的概念。进程同步是为了解决进程的异步问题。
四个原则:空闲让进、忙则等待、有限等待、让权等待。
同步方法:互斥锁、自旋锁、读写锁、条件变量
进程互斥:
进程互斥指当一个进程访问某临界资源时,另一个想要访问该临界资源的进程必须等待。当前访问临界资源的进程访问结束,释放该资源之后,另一个进程才能去访问临界资源。
进程互斥的软件实现方法:
单标志法、双标志先检查法、双标志后检查法、Peterson算法
进程互斥的硬件实现方法:
中断屏蔽法、TSL指令、Swap指令
信号量机制:
用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作从而实现进程互斥、进程同步。
一对原语:wait(S)、signal(S),简写P(S) V(S)
管程:
解决信号量机制的缺点
类似Java中synchronized
死锁:
各进程互相等待对方资源,导致进程阻塞
死锁必要条件(同时满足):
互斥、占有并等待、非抢占、循环等待
[操作系统常见面试题总结(上) | JavaGuide]()
内存管理
内存管理概念:
1.内存空间的分配与回收
2.内存空间的扩充:覆盖技术、交换技术、虚拟内存技术
3.地址转换(逻辑地址与物理地址转换)
4.存储保护
内存空间的分配与回收
1.连续分配管理
单一连续分配、固定分区分配、动态分区分配
其中动态分区分配包含四算法(首次适应算法、最佳适应算法、最坏适应算法、邻近适应算法)
2.非连续分配管理
基本分页存储管理、基本分段存储管理、段页式存储管理
虚拟内存的实现
请求分页存储管理、请求分段存储管理、请求段页式存储管理
页面置换算法
最佳置换算法OPT
先进先出置换算法FIFO
最近最久未使用置换算法LRU
时钟置换算法CLOCK
改进型的始终置换算法
页面分配策略
固定分配局部置换、可变分配全局置换、可变分配局部置换
文件管理
文件的逻辑结构
无结构文件(流式文件)
有结构文件(记录式文件):
顺序文件、索引文件、索引顺序文件
文件物理结构(文件分配方式)
连续分配、链接分配(隐式、显示)、索引分配
文件目录
一个文件对应一个FCB,一个FCB就是一个目录项,多个FCB组成文件目录
目录结构:单机目录结构、两级目录结构、多级(树形)目录结构、无环图目录结构
文件存储空间管理方式
空闲表法、空闲链表法、位示图法、成组链接法
文件共享
硬链接:基于索引结点的共享方式
软链接:基于符号链的共享方式
文件保护
口号保护、加密保护、访问控制
磁盘调度算法
先来先服务、最短寻找时间优先、扫描算法、循环扫描算法
I/O管理
IO设备
将数据输入输出到计算机的外部设备
IO控制器
接受和识别cpu发出的命令;向CPU报告设备状态;数据交换;地址识别
IO控制方式
程序直接控制;中断驱动;DMA方式(直接存储器存取);通道控制
设备分配数据结构
设备控制表DCT:系统为每个设备配置一张DCT,用于记录设备情况
控制器控制表COCT:每个设备控制器都会对应一张COCT,系统根据COCT的信息对控制器进行操作和管理
通道控制表CHCT:每个通道都会对应一张CHCT,系统根据CHCT的信息对通道进行操作和管理
系统设备表SDT:记录了系统中全部设备的情况,每个设备对应一个表目
缓冲区作用
缓和CPU与IO设备之间速度不匹配的矛盾
减少对CPU的中断频率,放宽对CPU中断响应时间的限制
解决数据粒度不匹配的问题
提高CPU与IO设备之间的并行性