小伙伴们好,今天卑微小涛给大家整理的是计算机四级——操作系统部分的高频考点
操作系统部分,考试题型:
单选题30题,一分一题
多选题10题,二分一题
这个是计算机四级数据库工程师——数据库原理部分的高频考点链接:https://blog.csdn.net/weixin_45238761/article/details/111336805
第一章 操作系统概论
- 硬件——操作系统——支撑系统——应用系统
- 五大功能——进程管理、文件管理、存储管理、设备管理、作业管理
- 操作系统特征——并发性、共享性、随机性、虚拟性
- 操作系统的任务:组织和管理计算机系统中的硬件及软件资源
- 在操作系统中~可以由系统动态更新
- 操作系统作为系统软件集中了两类主要的功能:资源管理、控制程序执行
- 共享性:在一定策略下,按照不同资源类型共同占有使用
- 操作系统研究者以及对应的研究观点(常考):应用角度——工具软件,一般用户——人机交互接口,软件开发者——软件开发基础,计算机安全保护——第一道安全防线(注意~是第一道,不是最后一道),计算机系统——虚拟机和扩展机
- 批处理系统优点:吞吐量大、CPU资源使用率高、周转时间短、不具有较快的响应时间;缺点——缺乏交互性
- 处理器(CPU)工作状态:管态(其中为特权态和系统态)、普通态(也称用户态)
- 第10点注意,这个不等于进程的三态哦
- 微内核(C/S结构,用户机/服务器)特点:可靠、灵活、适合分布式处理
- 没有工业操作系统
- 中央处理单元是共享设备,可以被抢占。打印机、扫码仪、磁带机是独占资源(也称为临界资源),无法被抢占,但是可以共享
- 实时系统设计目标:满足截止时间的要求,满足可靠性要求
- 关系操作——集合操作
第二章 操作系统运行机制
- 中断源(被外部事件影响):引起中断的那些事件
- 为系统软件集中了(功能)资源管理和控制程序执行
- 中断的作用:为发挥处理器使用效率、提高系统实时能力
- 中断:时钟中断、I/O中断、控制台中断
- 异常(是正在执行的指令):程序性中断(例如:算术溢出、被零除、缺页)、访管指令异常
- 系统调用:能够动态请求和释放系统资源
- 系统调用:不能直接调用
- 一般过程调用:能直接调用
- 系统调用和一般过程调用的区别:一般过程调用的调用与被调用程序运行在相同的状态,不涉及系统状态的转换;系统调用的调用程序在用户态,被调用程序在系统态,需要通过软件中断(陷入机制)实现用户态到核心态的转换。 两者都可以嵌套调用。
- 参数传递:被陷入指令自带参数、 通用寄存器、堆栈区
- 用户可见寄存器:数据寄存器、地址寄存器、条件码寄存器
第三章 进程线程模型
- 顺序执行(独占CPU,也称为单道程序)特点:顺序性、封闭性、确定性、可再现性
- 多道程序设计环境特点:独立性、随机性、资源共享性
- 并发执行特点:相互制约、不再一一对应、不可再现
- 进程:由程序、数据和进程控制块(PCB)组成,分为系统进程和用户进程
- 程序也可以称为代码
- PCB是进程控制块的唯一标志
- 运行态->就绪态:时间片用完、程序执行结束、被调度程序抢占
- 运行->等待:等待某事件发生
- 等待->就绪:等待某事件已发生
- 阻塞状态、挂起状态
- PCB:调度信息(进程名、进程号、优先级、当前状态、指针)、现场信息:(程序状态字、时钟、界地址寄存器、页表地址和长度)、不存放进程页表和动态链接库
- PCB组织方式:线性、索引、链接
- 进程控制通过原语来实现状态转换
- 进程创建:系统初始化、被调用的进程创建系统调用、创建新进程、批处理作业初始化、用户登录时
- frok函数的使用:调用一次则一分为二,父子进程(两次则,三次则为8)
- frok函数:做题时,如出现一次fork(),即进行2的1次方,第二次出现fork(),即进行2的1次方+1
- 线程:用户级、内核级、混合实现方式
- 线程表:程序计数器、堆栈指针、寄存器、状态
- Pthread_join(等待一个特定的线程退出)
- Pthread_yield(释放CPU来运行另外一个线程)
- Pthad_create() —— 创建线程,四个参数,分别对应(1、线程标识符地址,2、设置线程属性,3、线程入口函数的起始地址,4、入口函数的参数)
- 进程调度:CPU密集型(计算密集型)、I/O密集型(CPU与I/O优先级相同)
- 非抢占式调度算法:先来先服务、最短作业优先
- 与时间相关调度:先来先服务、短作业优先、最高响应比优先、时间片轮转
- 线程的实现机制三种途径:用户线程、内核线程、混合线程
- 体现公平性:先来先服、时间片轮转法
- 作业调度算法:先来先服务、高响应比优先、高优先级优先
第四章 并发与同步
- 进程三态的转换(运行、就绪、阻塞)
- 进程准则:有空即进、忙则等待、有限等待、让权等待
- 信号量机制:实现临界资源访问、P/V成对使用、实现进程同步(前驱关系)、在初始化时只能执行P/V操作
- 运行->就绪:进程创建完成、时间片用完、被调度程序抢占处理机
- Pthread_mutex_init_(创建一个互斥量)
- yield(释放CPU来运行另外一个线程)
- 共享内存:设有一个公共内存区(多进程间通信、共享大量信息、系统不产生多份拷贝)
- 共享内存进行程序通信需要解决的两个问题:1、怎么共享内存(由操作系统提高) 2、公共内存之间的互斥问题(由程序员来完成)
- 管道通信:连接两个进程之间的一个打开的共享文件、基础是文件系统、要求同步、传送数据量大但通信速度慢
第五章 内存管理
- 静态重定位:装入程序时将地址全部转换为绝对地址~提前分配好空间
- 动态重定位:装入程序不执行转换,执行一条指令时,将逻辑地址转换成绝对地址
- 地址重定位:将逻辑地址转换为物理地址
- 内存管理方式:分区、分页、分段、段页式分配
- 最佳适应算法:每次均从头开始寻找最合适的
- 下次适应算法:从某个地址开始往后寻找最合适的
- 首次适应算法:从头开始满足即可
- 最差适应算法:先找空间最大的分区
- 回收分区上邻分区空闲:空闲区起始地址+长度=分区起始地址
- 回收分区下分邻区空闲:分区起始地址+长度=空闲区起始地址
- 覆盖即使:若干程序员共享某一个存储空间
- 逻辑地址:页号+页内地址
- 物理地址:内存块号*块长+页内地址
- 快表:联想寄存器(高速缓存寄存器)、动态更新、与内存页表并行查找
- 页面调度策略:预调页、请求调页
- 页面置换算法:全局置换、局部置换
- 先进先出算法(FIFO):总是选择在主存(内存条)中停留时间最长的一页置换,先进入内存的页,先退出内存
- 最近最少使用页面置换算法(LRU):最少使用~访问次数最大的那个
- 最近最不常用页面置换算法(LFU):出现频率最小的那个
- 理想页面置换算法(OTP) : 以后均不出现
- 管理空闲物理内存:空闲块链表、位示图、空闲页面表
第六章 文件管理
- 信息项:文件内容的基本单位
- 文件控制块(FCB):文件名、文件大小、文件创建时间、磁盘块起始地址(无文件目录、文件描述符)
- 用户角度:文件系统实现按名存取和存取控制
- 文件途径:系统文件、用户文件、库函数文件
- 文件逻辑结构:流式文件、记录式文件
- 文件存在的标志:文件控制块(FCB),其中不包含文件访问控制列表
- 文件存储管理方法:空闲块表、空闲块链表、位示图成组链接法
- UNIX权限:【读、写、执行】,分布对应三位二进制 主、同组用户组、其他用户
- 在UNIX系统中,所有文件->流式文件
- 删文件:查找文件->检查合法性->收回资源->收回存储空间
- UNIX对文件系统中空闲区的管理通常采用成组链接法
- SCAN算法:也称为“电梯算法”
- 循环扫描算法:单向扫描
第七章 I/O设备管理
- 设备管理任务:缓冲技术、中断技术、虚拟技术
- DMA方式(直接访问内存):CPU仅在初始化和结束时参与(磁盘),数据交换不经过CPU,直接在内存与IO设备之间进行
- 通道控制方式:实现需要通道控制器、地址总线、数据总线、设备控制器、通道程序代码(不用寄存器)
- 虚拟设备(SPOOLing)~也称为假脱机系统:共享设备模拟、独占设备、提高系统效率和设备使用率
- SPOOLing构成:a、输入井和输出井 b、输入缓冲区和输出缓冲区 c、输入进程和输出进程 d、井管理程序
- 设备控制传递途径:应用层->独立层->驱动层->硬件
- I/O系统硬件结构:适配器及其接口、设备控制器、设备硬件
第八章 死锁
- 活锁:进程消耗时间片却也没有进展也没有阻塞
- 饥饿:考虑优先级,没有阻塞,但被无限延后
- (K-1)*n+1=M 有M个资源就不会产生“死锁”了
- 鸵鸟算法:忽视死锁
- 死锁预防:破坏“互斥条件”(十字路口设立立交桥)、“不可剥夺”、“请求和保持”(十字路口设置红绿灯)、“循环等待”(十字路口只能单向行驶)其中一个不成了就可以了
- 死锁避免:银行家算法
- CAP理论(即分布对应一致性、可用性、分区容忍性):只能最多满足其中两个条件
- 死锁检测:允许发生死锁、检查死锁是否真的发生
- 死锁解除:剥夺资源、撤销进程、重启系统
- 安全状态:是指不发生死锁
- 不安全状态:一定导致死锁,但该状态下不一定是死锁
- 若资源分配图不可化简则发生死锁了
补充
- 重定位:把程序中的指令地址和数据地址全部转换成为绝对地址
- 虚拟页式:修改内存块号、驻留位、访问位
- 操作系统提供共享的内存空间
- 程序员提供进程间的互斥关系
- write()指令打印输出
- 进程长期得不到满足,则操作系统应将它挂起
- 进程是资源分配的基本单位;线程是处理器调度的基本单位;线程依赖于进程
- 汇集型构造器:集合、列表、数组、字典、包
- 索引结构放在磁盘上更好哦
- 关系模式设计不当,会产生数据冗余、更新、插入、删除异常等
欢迎各位小伙伴们在下方评论区留言讨论哦~