软考架构师教程笔记(二)计算机与网络基础
第二章都是计算机基础知识,软考教程对于这部分讲得很简单,我看完后稍微总结了下。以后如果做题发现这里讲得不够,我会补充。
一、操作系统基础
1. 处理机与进程管理
进程是资源分配和独立运行的基本单位。进程通常由程序、数据及进程控制块(PCB)组成。PCB描述了进程的基本情况,是进程存在的唯一标识。
1.1 进程状态转换与控制
进程的三态模型(就绪、运行、阻塞)、五态模型(新建、就绪、运行、阻塞、终止)。控制进程的是操作系统内核。
1.2 进程互斥与同步以及PV操作
1)进程控制原语:创建原语、撤销原语、挂起原语、激活原语、阻塞原语、唤醒原语。
2)临界区管理原则:有空即进、无空则等、有限等待、让权等待
3)信号量机制:1965年,荷兰学者Dijkstra提出信号量机制。(这个名字很熟悉?没错,就是他在1959年提出了Dijkstra算法,用来求最短路径,典型的贪心策略的应用)
4)整型信号量与PV操作
信号量是一个整型变量,根据控制对象的不同赋不同的值。信号量分为两类:公用信号量,实现进程间的互斥,初值=1或资源的数目;私有信号量,实现进程间的同步,初值=0或某个正整数。信号量的物理意义:S>=0表示某资源的可用数,S<0其绝对值表示阻塞队列中等待该资源的进程数。
PV操作是实现进程同步与互斥的常用方法。PV操作是低级通信原语,在执行期间不可分割。其中,P操作表示申请一个资源,S=S-1;V操作表示释放一个资源,S=S+1。
1.3 进程通信与管程
1)进程通信
2)管程
Brinsh Hansen 和 Hoare 提出了另一种同步机制----管程
管程是由一些共享数据、一组能为并发进程执行的作用在共享数据上的操作的集合、初始代码以及存取权组成的,也即共享数据及在其上操作的一组过程就构成了管程。进程可以在任何需要资源的时候调用管程,且在任一时刻最多只有一个进程能够真正地进入管程,其他的只能等待。管程提供了一种可以允许多进程安全有效地共享抽象数据类型的机制。
1.4 进程调度和死锁
死锁产生的4个必要条件:互斥条件、请求保持条件、不可剥夺条件、环路条件
解决死锁的策略:
- 鸵鸟策略(不理睬)
- 预防策略(破坏死锁的4个必要条件之一)
- 避免策略(精心地分配资源,动态地回避死锁)
- 检测与解除死锁
2. 存储管理
程序装入:绝对装入方式、可重定位装入方式、动态运行时装入
程序链接:静态链接、装入时动态链接、运行时动态链接
内存的分配:连续分配和离散分配(分页、分段、段页式)
什么是“抖动” ? 如果分配给进程的存储块数量小于进程所需要的最小值,进程的运行将频繁地产生缺页中断,这种频率非常高的页面置换现象称为抖动。
解决方案?优化置换算法。
3. 设备管理
3.1 设备管理主要技术
- 中断技术
- DMA技术(Direct Memory Access)
- 缓冲技术
- 虚设备与SPOOLING(simultaneous peripheral operations online,外围设备联机)
3.2 设备管理的软件
- 中断处理程序
- 设备驱动程序
- 与设备无关的系统软件
- 用户层I/O软件
3.3 数据传输控制方式
- 程序控制方式
- 中断方式
- 直接存储访问方式
- 通道方式
3.4 磁盘调度算法
磁盘是可供多个进程共享的设备。磁盘调度是使各个进程对磁盘的平均访问时间最小。常用的调度算法有:
- 先来先服务 FCFS
- 最短寻道时间优先 SSTF
- 扫描算法 SCAN
4. 文件管理
文件是具有符号名的、在逻辑上具有完整意义的一组相关项的集合。文件名的格式和长度因系统而异,操作系统根据文件名对其进行控制和管理。
文件控制块是系统为每个文件设置的用于描述和控制文件的数据结构,它是文件存在的唯一标志,简称FCB。FCB一般包含基本信息、位置信息、存取控制信息和使用信息。
文件目录是文件控制块的有序集合。常见的文件目录有一级目录结构、二级目录结构和多级目录结构。
5. 作业管理
5.1 作业管理和作业控制
作业是系统为完成一个用户的计算任务(或一次事务处理)所做的工作总和。它由程序、数据和作业说明书三部分组成。作业管理程序是操作系统中用来控制作业进入、执行和撤销的一组程序。
用户作业可以采用脱机和联机两种控制方式控制作业运行。作业控制块JCB是记录与该作业有关的各种信息的登记表。JCB是作业存在的唯一标识。包括用户名、作业名、状态标志等信息。在输入井中,通常将作业控制块排成一个或多个队列,称为作业后备队列,也就是说作业后备队列是由若干个JCB组成的。
5.2 作业状态及转换
提交、后备、执行、完成
5.3 作业调度及其常用调度算法
作业调度是完成从后背状态到执行状态的转变及从执行状态到完成状态的转变。常用的作业调度算法有先来先服务、短作业优先、相应比高优先、优先级调度算法和均衡调度算法。
在一个以批处理为主的系统中,通常用平均周转时间或平均带权周转时间来衡量作业调度算法的性能。
6. 常见操作系统简介
Unix是贝尔实验室发明的多用户、多任务的分时操作系统。1991年,芬兰赫尔辛基大学的学术Linux Torvalds利用互联网,发布了他在i386个人计算机上开发的Linux操作系统内核的源代码,创建了具有全部UNIX特征的Linux操作系统。(我辈楷模,这才是大学生该有的样子!)
公司常用的Linux有ubuntu、centos、suse...
二、数据库系统基础知识
数据库(DataBase)是指长期储存在计算机内的、有组织的、可共享的数据集合。
数据库系统(DataBase System)从广义上讲是由数据库、硬件、软件和人员组成,管理的对象是数据。
数据库管理系统(DataBase Management System,DBMS)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。主要功能有数据定义、数据库操作、数据库运行管理、数据组织、存储和管理、数据库的建立与维护及其他功能。
DBMS通常分为三类:
- 关系数据库系统(Relation DataBase Systems,RDBS)
- 面向对象的数据库系统(Objected-Oriented DataBase system,OODBS)
- 对象关系数据库系统(Object-Oriented Relation DataBase system,ORDBS)
1. 关系数据库基础
1.1 数据库的结构与模式
数据库结构的基础是数据模型,是用来描述数据的一组概念和定义。数据模型的三要素是数据结构、数据操作以及数据的约束条件。常用的数据模型有概念数据模型、基本数据模型以及面向对象模型。
三要素
常用的数据模型
1.2 实体-联系(E-R)模型
概念模型中最常用的方法为实体-联系法,简称E-R方法,主要概念有实体、联系和属性。该方法直接从现实世界中抽象出实体和实体间的联系。主要构件:矩形表示实体集,菱形表示联系集,椭圆表示属性。
特别需要指出的是,E-R模型强调的是语义,与现实世界的问题密切相关。扩充的E-R模型包括弱实体、特殊化、概括和聚集等。
1.3 数据的规范化
规范化理论研究的是关系模式中各属性之间的依赖关系及其对关系模式性能的影响。关系数据库设计理论的核心是数据间的函数依赖,衡量的标准是关心规范化的程度及分解的无损连接和保持函数依赖性。
数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间联系和约束的抽象,是数据内在的性质,是语义的体现。函数依赖则是一种最重要、最基本的数据依赖。包括函数依赖、非平凡函数依赖、平凡的函数依赖、完全函数依赖、部分函数依赖、传递依赖、码、主属性和非主属性、外码、值依赖定义、函数依赖的公理系统(Armstrong公理系统)。
范式是关系模型满足的确定约束条件。
第一范式:属性值都是不可分的原子值
第二范式:消除非主属性对候选键的部分依赖
第三范式:消除非主属性对候选键的传递依赖
BCNF:消除主属性对候选键的部分和传递依赖
第一范式是关系型数据库必须遵循的,越往后要求越高,冗余数据就越少、数据增删改出问题的情况也越少。有时候为了查询方便,我们可以适当的反范式设计。
1.4 事务管理
事务的4个特性:atomicity、consistency、isolation、durability 简称ACID
1.5 并发控制
并发操作带来的问题是数据的不一致,主要有更新丢失、不可重复读和读脏数据。主要原因是事务的并发操作破坏了事务的隔离性
1.6 数据库的备份与恢复
数据库的4类故障是事务故障、系统故障、介质故障及计算机病毒。
事务故障的恢复一般有两个操作:撤销事务(UNDO)和重做事务(REDO)。
三、计算机网络基础知识
注意:OSI模型中文开放系统互连参考模型,共7层。TCP/IP模型是4层。
扩展:nginx的负载均衡功能建立在反向代理之上,默认支持第7层(应用层)的负载均衡,想要支持第4层(传输层)负载均衡需要安装stream模块,nginx1.9.0以上版本默认包含。
四、多媒体技术及其应用
静态图像压缩编码的国际标准 JPEG
运动图像压缩标准 MPEG
多媒体数据压缩方法的分类:
- 无损压缩编码法,也称冗余压缩法或熵编码法;
- 有损压缩编码法,也称熵压缩法;
五、系统性能
性能指标计算的方法有定义法、公式法、程序检测法和仪器检测法。
Amdahl定律主要用于系统性能改进的计算中。Amdahl定律是指计算机系统中对某一部件采用某种更快的执行方式所获得的系统性能改变程度,取决于这种方式被使用的频率,或所占总执行时间的比例。
先这样吧,以后会根据做题涉及知识点做补充,祝大家都能通过今年下半年的软考。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构