计算机等级考试四级网络工程师
考试方式
备考建议
- 题库
- 课程视频(不太建议看,因为会睡着)
- 不需要买书,如果你非要当我没说
- 先看知识点边做题
- 多选题不能错太多(重点)
- 重复看记知识点并且刷题
- 这份资料是完整的覆盖计算机四级两个科目计算机操作系统原理和计算机网络,足以让你考过计算机四级题库,课程视频,知识点资料,如果你找不到那来找我就好了【微信公众号:方大熊】
考试题型及分值
上机考试时长 90 分钟,满分 100 分
- 1.操作系统原理—单选题(30 分)
- 2.操作系统原理—多选题(20 分)
- 3.计算机网络—单选题(30 分)
- 4.计算机网络—多选题(20 分)
获证条件
- 两门课程分别达到 30 分及以上,并已经(或同时)获得三级网络技术科目证书
- 2013 年 3月及以前获得的三级各科目证书,不区分科目,可以作为四级任一科目的获证条件
知识点目录大纲(数字限制)
操作系统原理
1.操作系统概论
批处理系统
- 优点:
- 作业流程自动化较高
- 资源利用率高
- 作业吞吐量大,提高整个系统效率
- 缺点:
- 用户不能直接与计算机交互
- 不合适调试程序
常见的操作系统体系结构:
- 整体结构
- 层次结构
- 微内核(客户机/服务器)结构
微内核(客户/服务器)结构的操作系统具有的优点:
- 高可靠性
- 高灵活性
- 合适分布式处理
分时操作系统具特点: 多路性,交互性,独占性,及时性
- 多路性:多个用户同时使用一台计算机
- 交互性:用户根据系统响应的结果提出下一个请求,方便调试程序
- 独占性:每个用户感觉不到计算机系统为其他人服务,好像整个系统为他管理所独占一样
- 及时性:系统能够对用户提出的请求作出及时的响应
实时操作系统特点:
- 在严格的时间范围内,
- 实时响应用户的请求
- 过载防护
- 高可靠性
批量操作系统特点
- 批量处理用户作业
- 系统资源利用率高
- 作业吞吐量高
缺点:
- 用户不能直接与计算机交互
设备分配算法中有4张表:
- 系统设备表SDT
- 设备控制表DCT
- 控制器控制表COCT
- 通信控制表CHCT
2. 操作系统运行机制
处理器一般包括两类寄存器:
- 用户可见寄存器
- 用户可见寄存器通常所有程序都是可用的,由机器语言直接使用
- 它一般包括数据寄存器(又称通用寄存器),地址寄存器以及条件码寄存器
- 可见寄存器有
- 数据寄存器
- 地址寄存器
- 条形码寄存器
- 控制和状态寄存器
- 不可见的寄存器是,程序计数器寄存器由特权指令代码使用
- 程序计数器
- 指令寄存器
- 程序状态字
- 可见寄存器有
中断
- 影响中断协议顺序的是:
- 中断优先级
- I/O中断分两大类
- I/O操作正常结束以及I/O异常
- 数据传送完毕,设备出错和键盘输入均产生I/O中断 (指令出错属于程序性中断.)
- 中断处理程序入口地址的储存区叫做中断向量表
- 外部I/O设备向处理器发出的中断信号又叫
- 中断请求
- 进程运行时状态发生转换的原因是发生中断,不希望被外部事件打扰只有设置程序状态寄存器(PSW)的IF的中断标志位,设置为0屏蔽中断
- 故障性中断
- 由掉电,存储器效验等硬件引起
- 时钟中断
- 处理器内部的计算器产生,允许操作系统以一定的规律执行函数,如时间片到时,硬件时钟到时
- 程序性中断
- 指令执行结果产生与当前运行的进程有关系
- 中断情况
- 中断是由外部事件引发
- 异常是指令引发的
中断的分类会引起什么原因中断事件,中断源引起中断的那些事件中断请求处理器请求发出信号中断响应处理器暂停当前程序转而处理中断的过程中断断点暂停正在运行的程序
中断是指CPU对系统中或系统外发生的异步事件响应.
- 中断是由外部事件引发的
- 异常是由正在执行的指令引发的
- 被零整除属于软件引起的异常
特权指令
- 输入指令
- 输出指令
- 停机指令
- 置程序计数器
- 清指令寄存器
- 清溢出标志
- 置位移方向标志位属于非特权指令 可以在内核态下运行又可以在用户态下运行
- 只有在监控程序才能执行特权指令,只能内核态下运行;用户只能执行一般指令,在用户下运行 只能在内核下运行
微信公众号(方大熊)
- 操作系统需要处理器从内核状态转为用户态时,修改程序状态字即可
- 中断是由外部事件引发的
- 异常是由正在执行的指令引发的
- 系统调用是操作系统提供给编程人员唯一接口
- 用户在编程写程序时,在屏幕上画一个红色的圆,是需要使用系统调用
- 诺用户数为100,为保证响应时间<=100ms ,则时间设置为100ms/100=1ms比较合适
- 系统调用是不能实现调用程序多次嵌套和递归
- open是多种语言的一种函数, C语言中Open()函数作用: 打开和创建文件,是文件操作系统调用
- 一个程序从运行状态转换为就绪状态的可能事件是分配给该进程的时间片用完
处理器的程序状态字(PSW)通常包括标志位
- 进位标志位(CF)
- 结果为零标志位(ZF)
- 符号标志位(SF)
- 溢出标志位(OF)
有时候四种标志位为标准条件:
- 陷阱标志位(TF)
- 中断使能(中断屏蔽)标志位(IF)
- 虚拟中断标志位(VIF)
- 虚拟中断待决标志位(VIP)
微内核结构的特点:
- 提高系统的可扩展性
- 增强了系统的可用性
- 可移植性
- 适用于对分布式处理的计算环境
- 融入了面向对象技术
系统调用:
- 进程控制类系统调用
- 这类系统调用数量较多,如创建和终止进程的系统调用,获得和设置进程属性的系统调用等.
- 文件操作类系统调用:
- 对文件进行操纵的系统调用数量较多,有创建文件,打开文件,关闭文件,读文件,写文件,创建一个目录,建立目录,移动文件的读/写指针,改变文件的属性等
- 进程通信类系统调用
- 该类系统调用被用在进程之间传递消息和信号
- 设备管理类系统调用
- 该类系统调用被用来请求和释放获得有关设备,以及启动设备间操作等
- 信息维护类系统调用
- 用户利用这类系统调用来获得当前时间和日期
- 系统调用传递参数3种
- 陷入指令自带
- 通用寄存器
- 专用堆栈
- 系统调用与一般程序调用的不同是:
- 调用程序运行在用户态,而被调用程序则运行在核心态
- 系统调用与一般过程调用是不同的,嵌套使用系统调用与一般过程调用都是允许的,过程调用和系统调用均可以嵌套使用
- 一般过程调用在被调用过程执行完后,直接返回到调用程序:
- 具有优先级,诺调用进程不具有高级优先级,则会引起重新调度以便让优先级最高的进程优先执行 系统调用扩充了机器指令,增强了系统管理,方便了用户使用
多道程序
- 提高CPU利用率
- 提高I/O设备的利用率
- 缩短作业的周转时间
- 提高计算机软硬资源的利用率
程序并发性
- 指两个OR两个以上程序在计算机系统中同处于已开始执行尚未结束的状态 特性:
- 并发程序在执行期间具有相互制约关系
- 程序与计算不在一一对应
- 并发程序执行结果不可再现
进程的"动态性'
- 指进程对应着程序的执行过程
- 其一:进程动态产生,动态消亡
- 其二:在进程生命周期内,其状态动态变化
- 处理器管理又称进程管理 主要内容进程控制,进程同步,进程通信,调度
处理器管理
- 又称进程管理
- 主要内容
- 进程控制
- 进程同步
- 进程通信,调度
进程控制块(PCB)
- 调度信息
- 调度信息包括进程名,进程号,储存信息,优先级,当前状态,资源清单,'家族'关系,消息队列指针,进程队列指针和当
- 开文件等
- 现场信息
- 只记录哪些可能会被其他进程改变的寄存器 如程序状态字,时钟,界地址寄存器等
- 现场信息
操作系统
- 交互式操作系统
- 指用户交互式地向系统提出命令请求,系统接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互式在终端上向上用户显示结果
- 多级反馈队列,时间片轮转和高优先级 适用于交互式操作系统
- 系统分三类环境
- 批量环境
- 交互式环境
- 实时环境
- 调度算法
- 批量处理系统
- 先来服务,最短作业优先,最短剩余时间优先响应比高者优先
- 分时系统
- 时间片轮转,多级反馈队列算法
- 交互式系统
- 响应时间越快越好,另一个是较均衡的性能
- 批量处理系统
3.进程线程模型
多道程序设计
- 微观
- 部分程序使用CPU部分程序使用外部设备
- 宏观
- CPU与外部设备始终可以并行工作,这样使CPU运行效率达到最大化,不空闲(多个进程同时运行)
线程
- 基本上不拥有系统资源
- 只拥有一点在运行中必不可少的资源 如程序计数器,组寄存器和和栈
进程和程序既有联系又有区别
- 程序是结构的组成部分之一
- 从静态角度看
- 进程由程序
- 数据
- 进程块(PCB)
- 3部分组成
程序是静态的,而进程是动态的
多道程序设计环境特点
- 独立性
- 随机性
- 资源共享性
可再入程序是有可重入代码组成的程序
- 纯代码,执行过程中不可修改
- 调用它的进程应该提供属于它自己的数据区
进程控制块(PCB)3种组织
- 线性方法
- 索引方法
- 链接方法
进程控制块:
- 现场信息
- 程序状态字
- 时钟
- 界地址寄存器
- 调度信息
- 进程名
- 进程号
- 存储信息
- 优先级
- 当前状态
- 资源清单
- '家族'关系,消息队列指针
进程的'并发性'
- 微观是:
- 不同的进程交替占用资源向前推进
- 宏观是:
- 不同的进程一起向前推进
方大熊(微信公众号)
- 函数fork()属于系统调用的进程控制类
- 进程控制块是用来内存唯一标识和管理进程活动的控制结构
- 进程从等待状态转换就绪状态时称唤醒
- 单核处理机的计算机系统中,处于运行状态的进程只能有一个.(最多1个,最少0个)
- 单核处理器堵塞状态会发生死锁,进程全部堵塞
- 处理器是几核的,处于运行状态最多就几个
- 运行状态最少是0
- 运行状态最多是核数
- 就绪状态最多进程减一
- 就绪状态最少是0
- fork()调用一次,返回两次
- 文件数据结构的指针存放在:进程控制快中
- 管程无法保证本身互斥
- 程序是有指令代码,数据组成
- 线程是进程中的一个实体
- 撤销进程的实质是撤销进程PCB ,过程是:找到要被撤销进程的PCB,将它所在的队列中除去,撤销属 于该进程的一切"子孙进程"释放被撤销进程所占用的全部资源,并消去被撤进程的PCB
- 进程控制块(简称PCB)是用来唯一标识每一个进程的,所以每个进程都有一个与之相对的PCB
- PCB是记录每个进程活动状态等信息的数据结构,必须常驻内存
- 一个进程的状态变化不一定会引起另一个进程的状态变化
- 信号量的处值一定大于等于零,这是因为信号量表示资源的剩余数,资源数目不会是负数
- 进程是资源分配的基本单位,线程是处理机调度的基本单位
- 进程被挂起后,它的状态可以为阻塞挂起状态,或为就绪挂起状态
- 操作系统中引入P,V操作主要为了实现进程的互斥与同步
进程具有
- 并发性
- 动态性
- 独立性
- 指一个进程是一个相对完整的只有分配单位
- 交往性
- 异步性
- 指每个进程按照各种独立的,不可预知的速度向前推进
Linux进程有5种状态
- 运行状态
- 中断状态
- 不可中断状态
- 僵尸状态
- 停止状态
进程堵塞
- 请求系统服务
- 启动某种操作
- 新数据尚未到达与无新工作可做
进程的3种状态模型
- 运行状态(Running)
- 就绪状态(Ready)
- 阻塞状态(等待状态,Blocked)
- 有可能状态转换是: 就绪态 -> 运行态 运行态 -> 阻塞态 阻塞态 -> 就绪态
- 当设备忙,进程会进入等待状态,等待该资源释放后才可以去使用
操作系统创建一个新进程的过程 ①申请空白PCB ②为新进程分配资源 ③初始化进程控制块 ④将新进程插入就绪队列
进程从堵塞转换为挂起状态:语句是suspend()
目前常用进程控制块的组织方式
- 线性表方式
- 素引表方式
- 链接表方式
进程程序控制的原语一般有
- 创建进程
- 撤销进程
- 挂起进程
- 激活进程
- 堵塞进程
- 唤醒进程
- 改变进程优先级
改变进程程序状态是控制原语实现
- Pthread_join的含义是等待一个特定的线程退出
- Pthread_yield表示线程让出CPU
- Pthread_create表示创建新线程的函数
- Pthread_exit表示结束一个线程
- Pthread_mutex_init()表示创建一个互斥量
- 进程从堵塞转换为挂起状态:语句是suspend()
引起进程调度的原因: ①正在执行的进程执行完毕 ②正在执行的进程调用堵塞语将自己堵塞起来进入等待状态 ③正在执行的进程调用了堵塞原语操作 ④时间片已经用完 ⑤就绪队列中的某个进程的优先级高于当前运行进程的优先级
在抢占式调度系统中,进程从运行状态转换为就绪状态的可能原因有
- 进程创建完成
- 时间片用完
- 和被调度程序占处理机
采用非抢占式调度的操作系统中.执行调度有以下几种情况:
- 正在执行的进程执行且完毕
- 正在执行的进程调用堵塞原语将自己堵塞起赖记录等待状态
- 正在执行的进程调用了堵塞原语操作,并且因为资源不足而被堵塞;
- 调用了唤醒原语操作激活了等待资源的进程,时间片用完
非抢占式调度策略的系统中,引起进程调度的因素有:
- 正在执行的进程执行完毕或因发生某事件而不能继续执行
- 执行中的进程因提出I/O请求而暂停执行
- 在进程通信或同步过程中执行了某种原语操作P操作,阻塞,挂起原语
- 此外,在可剥夺调度中,有比当前进程优先权更高的进程记录就绪队列
- 在时间片轮转中,时间片用完
操作系统中进程调度策略
- FCFS(先来先服务)最短作业优先
- 最短剩余时间优先
- 时间片轮转
- 多级反馈队列算法
- 最短进程优先
引起创建进程事件: ①用户登录 ②系统初始化 ③用户系统调用 ④初始化批量处理作业
引入线程的主要目的 A. 提高并发度 B. 减少通信开销 C. 线程之间的切换时间短 D. 每个线程可以拥有独立的栈
进程(线程)调度的主要功能有:
- 根据一定的调度算法选择被调度的进程(线程)
- 将CPU分配给选中的进程(线程)
- 将换下的进程(线程)的现场信息保存到进程进程控制块中
- 将选中的进程(线程)的现场信息送入到相应寄存器中
进程线程调度的时机有:
- 运行完毕
- 自我阻塞
- 时间片用完
- 所需资源没有准备好
- 出现错误
运行大量批处理作业的大型计算机中心
- 设计目的3个指标:
- 吞吐量
- 周转时间
- CPU利用率
线程描述记录的信息有
- 线程ID
- 指令地址寄存器
- 处理器寄存器
- 硬件设备寄存器
- 栈现场状态等少量线
- 程私有信息
线程实现方式3种
- 用户级线程
- 内核级线程
- 混合实现方式
程序并发执行与程序顺序执行相比较特征
- 并发性在执行期间具有互相制约关系
- 程序与计算不再一一对应
- 并发程序执行结果不可再现
实时系统调度算法设计目的
- 满足截止时间要求
- 满足可靠性要求
不同的进程由设计目标不同而具备不同的进程
- 两大类
- 计算密集型进程
- I/O密集型进程
4.并发与同步
进程同步
- 指多个进程中发生的事件存在某种时序关系
- 必须协同动作
- 互相配合
- 以共同完成一个任务
- 异步环境
- 一组并发进程因直接制约而互相发送消息
- 进行互相合作,互相等待使得各进程一点的速度执行的过程称为进程间的同步
方大熊 P , V 操作可以实现进程同步,进程互斥,进程的前趋关系 P ,V操作对共享资源的使用进行保护时,对该共享资源读写的代码段称:临时界 同步机制应该遵循的准则有如下4条:空闲则则入,忙则等待,有限等待,让权等待 临界资源是指每次仅允许一个进程访问的资源 p v 操作由p操作原语和V操作原语组成(原语是不可中断的过程)对信号量进行操作 操作系统一般只提供要共享的内存空间 程序开发人员的责任是互斥共享
设置缓冲区
- 缓解处理机
- 设备之间速度的矛盾
- 减少对CPU的I/O中断次数
- 提高资源利用率和系统效率
交互关系的竞争
- 两个相互不感知(完全不了解其进程是否存在)
相互感知程序
- 相互不感知(完全了解其他进程的存在)
- 间接感知(双方都与第三方交互,如共享资源)
- 直接感知(双方直接交互,如通信)
交互关系
- 竞争关系
- 通过共享进行协作
- 通过通信进行协作
一个进程对其他进程的影响
- 一个进程的操作对其他进程的结果无影响
- 一个进程的结果依赖于从其他进程获取的信息
- 一个进程的结果依赖从其他进程获取的信息
潜在的控制问题
- 互斥,死锁,(可释放资源,饥饿)
- 互斥,死锁(可释放资源),饥饿
- 死锁,饥饿
进程通信时
- 已满的邮件槽,发送进程不能再申请互斥锁
共享内存
- 最合适传送大量的信息
保证计算机中临界资源的正确使用
- 进程在对临界资源访问前,必须调用进入区代码
临界区
- 指进程中访问临界资源的一段代码
管程
- 由一个过程,变量,及数据结构等组成的集合
- 组成一个特殊的模块或软件包
- 进程可在任何需要的时候调用管程中的过程
- 不能在管程之外声明的过程中直接访问管程内的数据结构
- 管程4个部门组成
- 管程名称
- 共享数据的说明
- 对数据进行操作的一组过程
- 对共享数据赋初值的语句
不可抢占
- 最高优先级优先
生产者往缓冲区放产品
- 之前要使用P操作确保缓冲区有空槽
- 即信号量表示的资源还有空闲
共享内存
- Unix下的多进程之间的通信方法
- 通常用于一个程序的多进程间通信
- 实际上多个程序间也可以通过共享内存
- 不需要多份内容的拷贝来传递信息,
- 特点是可以高效的共享大量信息
直接通信方式中
- 系统提供的发送原语:send(receiver,message)
消息机制
- 实现进程之间信息交换的通信方式
共享内存
- 实现两组进程间信息交换的方式
- 要解决两个问题
- 一是怎么样提供共享内存:
- 二是公共内存中的读写互斥问题
- 说明
- 在相互通信的进程之间设一个公共区域
- 一组进程向该公共区域
- 另一个进程从公共区域读
- 通过这种方式实现两组进程间的信息交换
管道通信
- 实现进程间的数据通信的方式
- 优点
- 传送数据量大
- 缺点
- 通信速度较慢
管程的互斥
- 由管程本身性能实现的
- 管程中一次只能有一次进程可以在管程内活动
信息通信方式可以完成进程通信
- 优点
- 不必直接建立联系
- 没有处理时间上的限制
- 发送者可以在任何时间发信
- 接受者可以在任何时间收信
"消息缓存"通信方式
- 在内存中开辟诺干区域
- 发送进程申请一个区域
- 并将信息送入
- 插入到进程的相应队列中,之后通知接收进程
"信箱"通信方式
- 首先创建一个链接两个进程的通信机制
- 把信息送入该机制
- 发送进程和接受进程不直接建立关系
- 接受进程可以任何时刻从该机制中取走信息
"管道"通信方式
- 发送进程创建好链接两个进程的一个打开的共享文件
- 写入数据流
- 接收进程需要时可以从该共享文件读出数据
- 写入和读出数据的长度是可变的
进程运行时所产生的地址超出其地址空间
- 则发生了地址越界
静态重定位
- 把程序中的指令地址和数据地址全部转换成绝对地址
- 使得地址转换工作在程序开始执行前完成
- 在程序执行过程中无需再进行地址转换工作
P , V操作不足:
- 程序不易读
- 程序不利于修改和维修
- 正确性难以保证
消息缓冲通信机制
- 消息缓冲区
- 消息队列首地址
- 同步互斥信号量
- 同步互斥信号量
TS指令(Test&Set)实现互斥的算法
- 测试锁变量的值
- 如为1
- 重复执行本命令,不断重复测试变量的值
- 如为1
-
- 如为0
- 则立即将锁变量值置为1,进入临界区
- 如为0
-
- 测试并设置指令是一条完整的指令
- 而在一条指令的执行中间是不会被中断的
- 保证了锁的测试和关闭的连续性退出临界区时,将锁变量测试值设为0
管程管理的对象
- 共享的数据结构和一组操作过程
并发进程间存在的关系有:
- 直接感知:互相间直接交互, 如通信
- 间接感知:双方都与第三方交互 如共享资源
- 互相不感知:互相间不了解其他进程的存在
并发进程由于存在着互相制约关系会产生诺干问题:
- 同步问题
- 互斥问题
- 死锁问题
- 饥饿问题
操作系统中采用的进程同步机制应遵循以下几条准则:
- 空闲则入
- 忙则等待
- 有限等待
- 让权等待
解决进程互斥通常有两种再发:
- 一是由竞争各方平等协商
- 二是引入进程管理者
使用硬件方法实现进程互斥优点
- 优点
- 使用范围广
- 支持多个临界区
- 简单
- 缺点:
- 不能实现"让权等待"
- 导致"饥饿"
Peterson算法
- 是一个实现互斥锁的并发程序设计算法
Test-and-Set
- 简称TS
- 用于实现互斥访问临界资源
Swap或Exchange指令
- 是寄存器和储存内容交换的指令
- 可用于信号量操作
- 实现系统任务之间的同步或互斥
- 信号量机制是实现进程互斥的重要方法
分派器(Dispater)
- 是实时系统调度策略之一
- 不是进程互斥方法
信箱通信机制中接收原语Receive()操作功能是
- 从指定信箱中取出一封信,存放到指定的内存地址中
字数限制还剩下好多,完整版本PDF,公众号【方大熊】
完整版本覆盖计算机四级网络工程师等级考试两科的知识点
最后两节银行家算法包括多选题常考知识点(重点必看)
字数限制还剩下好多,完整版本PDF,微信公众号【方大熊】