*(长期更新)软考网络工程师学习笔记——Section 19 计算机软件基本知识

简介: *(长期更新)软考网络工程师学习笔记——Section 19 计算机软件基本知识

一、操作系统(OS)


操作系统(OS)是管理计算机硬件与软件资源的计算机程序,也是用户与计算机交互的桥梁,计算机上主要的流行操作系统有Windows、UNIX和Linux三种,同时它不仅只针对计算机,还有针对移动端开发的操作系统,例如Android、IOS、Harmony OS等等,其中Android是一种基于Linux的自由及开放源代码的操作系统,由低到高可分为Linux内核层、系统运行层、应用程序框架层和应用程序层;而IOS是基于Unix开发的。

1667223991962.jpg

以下主要介绍UNIX和Linux两种:

1、UNIX


UNIX是一个多用户、多任务操作系统的操作系统,它具有良好的安全性和网络功能,所以常用作网络操作系统,也被作为单机操作系统使用。

2、Linux


Linux是一个免费且开源(其源代码完全向用户免费公开)的类UNIX操作系统,继承UNIX的设计风格演变出来的多用户、多任务、支持多线程和多CPU的操作系统,对Linux操作系统感兴趣的可以了解博主之前的文章系列:Linux操作系统简介


二、进程


(一)进程的状态


操作系统中的进程有三种基本的状态,分别是就绪态、运行态和阻塞态,这三种状态在一定条件下可以转换。

1667224091911.jpg

1、就绪态

进程等待分配处理器进程,分配好后即可进入运行态,处于就绪状态的进程很多,可以按照一个优先级来划分队列,当一个进程是由于时间片用完后进入就绪状态时,则排入低优先级队列;而当进程是由I/O操作完成后进入就绪状态时,则排入高优先级队列。

2、运行态

处于运行态的进程占用处理器的资源,在系统中有很多在后台一直处于运行态的进程。

3、阻塞态

阻塞态的基础由于要等待某种条件,例如I/O操作或进程同步,条件满足后才可转为就绪态然后再转为运行态。


(二)进程的关系


进程之间有很多关系,例如并发、并行、互斥、协作等等,并发是指有两个或两个以上的程序同时处于运行且未结束的状态;并行是指一个进程的执行可能影响其他进程的执行,即它们关系是依赖关系,进程之间共享某些资源;进程之间互相竞争某一个资源称为进程的互斥;并发进程使用共享资源称为进程的同步,操作系统使用信号量机制来保证信号的同步和互斥。


1、互斥

对于进程之间的互斥,操作系统设置一个互斥信号量S,只要将临界区置于P(S)和V(S)之间,即可实现互斥,由于这个信号量与所有的并发进程都有关,称为公用信号量。

当想访问临界资源的进程想进入设置的临界区时,需先对信号量S执行P操作,若改资源未被访问则本次P操作成功,即可进入临界区;其他进程会执行操作失败而被阻塞,从而保证了互斥。

2、同步

对于进程之间的同步,同样操作系统也会设置一个信号量,称为私有信号量,它只与制约进程和被制约的进程有关。若进程之间同步,则各并发进程设置各自的私有信号量,并将其赋初值,然后根据PV原语和私有信号量来规定各个进程的执行顺序。


另外,除以上关系外,进程之间还有死锁关系,即各个进程之间相互等待对方的资源,在得到对方资源前不会释放自己的资源,从而造成一种相互等待的现象。


三、CMM和CMMI模型


1、CMM(能力成熟度模型)是一种用于评价软件承包能力并帮助其改善软件质量的方法,它侧重于软件开发的管理及工程能力的提高与评估,且它分为以下五个等级:

(1)初始级;

(2)可重复级;

(3)可定义级;

(4)可管理级;

(5)优化级。

2、CMMI(能力成熟度模型集成)是由CMM模型的最新版本,它也分为五个等级:

(1)完成级;

(2)管理级;

(3)定义级;

(4)量化管理级;

(5)优化级。


四、软件设计和软件测试


(一)软件设计


软件设计需要遵循抽象、模块块、信息屏蔽和模块独立原则,在划分软件系统模块时,应尽量做到高内聚、低耦合。


(二)动态测试和静态测试


软件开发过程中,需对软件进行测试,软件测试简单地可以分为动态测试和静态测试,它们的区别在于是否运行程序来进行测试,这里主要介绍动态测试。

其中,动态测试根据在软件开发过程中所处阶段和作用可分为以下测试:

名称 含义
单元测试 对软件的基本组成单位进行测试,如一个模块、一个过程等等,从而验证软件基本组成单位的正确性。
集成测试 对一个应用系统各个部件的联合测试,验证共同工作时是否有冲突。
系统测试 系统实际运行环境下进行测试,除了包括要测试的软件,还包括软件所依赖的硬件、外设、数据、支持软件以及接口等等。
验收测试 验收测试是部署软件之前的最后一个测试,其目的是确保软件准备就绪,且让最终用户通过执行该文件实现既定功能和任务


1、单元测试

既然是单元,即对软件中的基本组成单位进行测试,检验其正确性,也可以说是对软件中的最小可测试单元进行检查和验证,不同编程语言编写的软件所针对的的基本单元不同。(这里可以比如像组装一台手机,要对其基本元件进行测试其功能的完整性和正确性等等)

2、集成测试

集成测试是在单元测试完成的基础上,将所有的模块按照设计要求组装成为子系统或系统进行测试,从而测试其是否冲突,即对多个单元进行组合从而进行测试。

3、系统测试

系统测试是更加系统化地进行测试,所以它不仅包括要测试的软件,还有包括软件所依赖的外设、硬件等等,即将软件与其所要依赖的环境资源进行结合从而在系统的实际运行环境下进行测试。

4、验收测试

验收测试是部署软件之前的最后一个测试操作,其目的是确保软件准备就绪,且可以让最终用户通过执行该软件实现软件的相关要求,这里用户和软件开发组织(或独立的测试小组)一起进行执行验收测试。

另外验收测试也分为以下几种策略:

名称 解释
正式验收 通常是系统测试的延续,不过比系统测试更加周密和详细
非正式验收 相较于正式验收不是那么严格,测试内容由各测试员决定,主观性较大
α测试 由一个用户在开发环境下的测试或在模拟实际操作环境下的测试,它最终用户或其他人员完成的测试,不能由程序员或测试员完成
β测试 由软件的用户在一个或者多个用户的实际使用环境下的测试,也是一样它不能由程序员或测试员完成


5、回归测试

另外还有一种测试是回归测试,它指软件经过修改后重新测试,从而来保证修改的正确性,例如确认以前出现过的错误不再出现。


例如,一个项目为了修正一个错误而进行了变更,当错误被修正后,却引起以前可以正确运行的代码出错,为了避免这种错误,所以回归测试最可能发现这一问题。


(三)黑盒测试和白盒测试


黑盒测试和白盒测试的区别在于是否能测试软件产品的内部结构和处理过程,在白盒测试中,内部是可视的,其内部结构和处理过程是主要测试的,而不侧重于关注软件产品的功能,测试的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试,其主要方法有逻辑驱动、基路测试等。

黑盒测试又称为功能测试或数据驱动测试,此时把软件看作一个不可打开的盒子,通过各种输入和对应的输出结果来测试。


五、数据库


(一)数据和数据库


数据(Data)是事物的符号表示,它可以是数字、文字、图像等等;数据库(DataBase,简称DB)是以特定的组织结构存放在计算机的存储介质中的相互关联的数据集合,这些数据集合是有组织的、可共享的、且有较高的独立性。


(二)数据库管理系统


数据库管理系统(DBMS)是位于用户和操作系统之间的一个数据管理软件,它是数据库应用系统的核心组成部分。

其中事务是DBMS的基本工作单位,它是由用户定义的一个操作序列,事务的特点又称为ACID准则,以下:

名称 含义
原子性 要么都做,要么都不做
一致性 初始状态和结束状态对外可见,但中间状态对外不可见
隔离性 多事务互不干扰
持久性 事务结束前所有数据改动必须保存到物理存储中


(三)数据库系统


数据库系统(DBS)是由数据库、操作系统、数据库管理系统、应用程序、用户、数据库管理员组成的用于存储、管理、处理和维护数据的系统,一般数据库系统分为客户-服务器模式(C/S)和三层客户-服务器模式(B/S)。

1、客户-服务器模式

C/S模式中,应用程序直接跟用户交互,而数据库管理系统不直接与用户,即此时应用程序称为前台,而数据库管理系统称为后台,其中应用程序先数据库管理系统提出服务请求,而数据库管理系统向应用程序提供服务,如下图:

1667224345833.jpg

2、三层客户-服务器模式

基本Web的数据库应用采用三层客户-服务器模式(B/S),其中第一层为浏览器,第二层为Web服务器,第三层为数据库服务器,如下图:

1667224358037.jpg


六、软件知识产权


1、⟪计算机软件保护条例⟫中规定对软件著作权的保护包括目标程序、源程序、软件文档,但不包括算法。

2、软件经过登记后,软件著作权人即享有发表权、开发者身份权、使用权、使用许可权和获取报酬权。

3、如果征得软件作品著作人的同意,因修改和改善新增加的部分,创作者应享有著作权。

4、对是职务作品的计算机软件,参与开发的人员离开原单位后,如其对原单位享有著作权的软件进行修改、提高,应经过原单位的许可,否则构成侵权。

5、公民发表权及其他权利保护期为作者终身及其死亡后50年,截止于作者死亡后第50年的12月31日;由法人或其他组织享有的职务作品,其发表权及其他权利保护期截止于作品首次发表后第50年的12月31日。

6、对职务作品的计算机软件,参与开发的人员离开原单位后,如其对原单位享有著作权的软件修改、提高,应经过原单位许可,否则构成侵权。

7、发明专利权的期限为20年,实用新型专利权、外观设计权的期限为10年,另外注册商标的有效期为10年。


相关文章
|
4天前
|
监控 安全 数据可视化
如何使用这些上网行为管理软件一键管控员工网络
使用WorkWin、Hubstaff和Veriato等上网行为管理软件,企业可以有效监控和提升员工工作效率。这些工具提供实时员工监控、时间统计、移动部署、权限控制、远程管理及安全监控等功能,确保工作安全,优化时间分配,防止数据泄露,并通过任务追踪促进项目进展。通过生成报告和分析,企业能识别生产力瓶颈和安全风险,从而制定改进策略。
25 3
|
5天前
|
监控 算法
使用Lua实现上网行为管理软件的网络速度限制器
本文介绍了如何使用Lua编程语言实现简单的网络速度限制器,适用于公共场所和企业网络。通过Lua代码示例展示了设置网络速度限制、监控网络流量以及自动将监控数据提交到网站的功能。该方法有助于管理员有效管理网络资源,提高效率。实际应用中可进一步扩展和优化以适应不同环境和需求。
39 6
|
6天前
|
监控 Java 数据库连接
【后台开发】TinyWebser学习笔记(1)网络编程基础知识
【后台开发】TinyWebser学习笔记(1)网络编程基础知识
18 3
|
6天前
|
网络协议 网络架构 数据格式
计算机网络学习笔记(一)
OSI七层网络模型旨在支持异构网络互联,从下到上分别为物理层(传输比特流)、数据链路层(帧传输,如交换机)、网络层(IP数据包路由,如路由器)、传输层(TCP/UDP,端到端通信)、会话层(管理会话)、表示层(数据格式转换)和应用层(用户接口,如FTP, SMTP)。每一层负责不同的通信功能,并通过协议如PPP, IP, TCP等协同工作。
|
6天前
|
缓存 网络协议 开发者
计算机网络学习笔记(三)
TCP的异常终止使用reset报文,用于强制关闭连接,不等待正常四次挥手。RST标志位设置时,发送方直接丢弃缓存,接收方无需确认。常见情况包括:尝试连接服务器未开放的端口、一方异常崩溃、收到不属于现有连接的报文、超时未收到确认报文或应用开发者优化效率。reset报文帮助释放资源,防止连接挂起。
|
6天前
|
安全 数据安全/隐私保护
计算机网络学习笔记(四)
HTTPS流程涉及服务器的公钥/私钥和客户端随机密钥。首先,客户端向服务器443端口发起请求,服务器发送公钥给客户端。客户端验证公钥后生成随机密钥(client key),用公钥加密后发送回服务器。服务器用私钥解密获取client key,然后用它加密数据成密文传回客户端。客户端用client key解密完成安全传输。
|
6天前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化|数据分享
R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化|数据分享
|
6天前
|
存储 缓存 监控
网络安全基础之计算机硬件介绍(上
本文是关于计算机硬件的基础知识,包括计算机的发展、主要硬件组件(CPU、硬盘、内存和主板)的介绍和选购指南。强调了冯·诺依曼在计算机发展中的重要性,并分别详细解释了CPU的作用、不同类型硬盘的特点、内存的作用以及显卡的基本概念。文章还提到了各个硬件的选购指标,如CPU的主频和缓存、硬盘的容量和读写速度、内存的大小和频率、显卡的位宽等,并指出硬件故障可能导致的电脑性能下降。最后,作者分享了自己的学习感悟,鼓励读者深入理解计算机硬件之间的相互作用。
|
6天前
|
存储 网络协议 算法
|
6天前
|
Kubernetes API 调度

热门文章

最新文章