• 软考高级系统架构设计师系列之:计算机与网络基础知识汇总


    一、操作系统基础知识

    1.操作系统OS

    • 操作系统是计算机系统中的核心系统软件。
    • 负责管理和控制计算机系统中硬件和软件资源。

    2.操作系统的特征

    • 并发性
    • 共享性
    • 虚拟性
    • 不确定性

    3.操作系统的功能

    • 进程管理
    • 文件管理
    • 存储管理
    • 设备管理
    • 作业管理

    4.典型的操作系统

    • 批处理操作系统
    • 分时操作系统
    • 实时操作系统
    • 网络操作系统‘
    • 分布式操作系统

    5.进程概述

    • 进程是程序的一次执行,是一个动态的概念
    • 程序是静态的概念,是指令的集合,具有动态性和并发性
    • 从静态看,进程由程序、数据和进程控制块组成
    • 从动态看,进程是计算机状态的一个有序集合
    • 进程控制块PCB是进程存在的唯一标志,描述了进程的调度信息、执行信息
    • 进程状态划分:三态模型和五态模型。

    三态模型:

    • 运行态:占有处理器正在运行
    • 就绪态:具备运行条件,等待系统分配处理器以便运行
    • 等待态(阻塞态):不具备运行条件,正在等待某个事件的完成。

    状态之间的转换:

    • 运行态->等待态:等待使用资源
    • 等待态->就绪态:进程运行所需资源得到满足
    • 运行态->就绪态:运行时间片结束,或者出现更高优先权的进程
    • 就绪态->运行态:CPU空闲时选择一个就绪进程

    五态模型:

    • 运行
    • 活跃就绪
    • 静止就绪
    • 静止阻塞
    • 活跃阻塞

    6.信号量与PV操作

    在操作系统中,进程之间经常会存在互斥和同步两种关系。

    信号量:

    • 是一种特殊的变量,表现形式是一个整型S和一个队列。
    • P操作:S=S-1,若S<0,表示当前没有资源分配给该进程,进程暂停执行,进入等待队列。
    • V操作:S=S+1,若S<=0,表示阻塞队列中有等待该资源的进程,唤醒等待队列中的第一个进程。

    PV操作的理解:

    • 信号量与PV操作是用来解决并发问题的,而在并发问题中最重要的是互斥与同步两个关系,在解题时,应该先从寻找互斥与同步关系开始。
    • 通常一个互斥或一个同步关系可以使用一个信号量来解决。
    • 信号量的初值通常就是表示资源的可用数。通常对于初始为0的信号量,会先做V操作。
    • 在资源使用之前,将会使用P操作。在资源用完之后,将会使用V操作。在互斥关系中,PV操作是在一个进程中成对出现的。而在同步关系中,PV操作一定是在两个进程甚至是多个进程中成对出现的。

    利用PV操作实现进程的互斥控制:

    • 阻止多个进程同时进入访问这些资源的代码段。这个代码段称为临界区。这种一次只允许一个进程访问的资源称为临界资源。
    • 只允许一个进程进入,信号量S的初始值应为1。S的值表示可以允许进入的进程数,当S<0时,其绝对值就是等待使用临界资源的进程数,也就是等待队列中的进程数。
    • 当一个进程从临界区出来时,执行V操作(S=S+1)
    • 如果等待队列中还有进程(S<=0),调入一个新的进程进入(唤醒)

    7.管程和线程

    管程:

    • 管程由管程名、局部子管程的变量说明、使用共享资源并在数据集上进行操作的若干过程,以及对变量赋初值的语句4个基本部分组成。
    • 执行过程:每一个管程管理一个临界资源。

    线程:

    • 线程是进程的活动成分,是处理器分配资源的最小单位,可以共享进程的资源与地址空间,通过线程的活动,进程可以提供多种服务(对于服务器进程而言)或实现子任务并行(对用户进程而言)。采用线程机制的最大优点是节省开销、创建时间短。

    多线程系统:

    • 在多线程系统中,一个进程可以由一个活多个线程构成,每一线程可以独立运行,一个进程的线程共享这个进程的地址空间。
    • 核心级线程和用户级线程以及二者的组合方式都可以实现多线程系统。
    • 多线程实现的并行避免了进程间并行的缺点:创建线程的开销要比创建进程小,同一进程的线程共享进程的地址空间,所以线程切换(处理器调度)比进程切换快。

    8.死锁问题

    定义:

    • 死锁是指多个进程之间互相等待对方的资源,而在得到对方资源之前又不释放自己的资源,造成循环等待的一种现象。
    • 如果一个进程在等待一个不可能发生的事件,则进程就死锁了,
    • 如果一个或多个进程产生死锁,就会造成系统死锁。

    发生的必要条件:

    • 互斥条件:一个资源每次只能被一个进程使用
    • 请求保持条件:有一个进程已获得了一些资源,但因请求其他资源被阻塞时,对已获得的资源保持不放。
    • 不可剥夺条件:有些系统资源是不可抢占的,当某个进程已获得这种资源后,系统不能强行回收,只能由进程使用完时自己释放。
    • 环路条件:若干个进程形成环形链,每个都占用对方要申请的下一个资源。

    死锁的4个条件只要打破任何一个,都不会产生死锁。

    银行家算法:

    • 银行家算法是指在分配资源之前先看清楚资源分配后是否会导致系统死锁。如果会死锁,则不分配。否则就分配。

    按照银行家算法的思想,当进程请求资源时,系统将按如下原则分配资源:

    • 当一个进程对资源的最大需求量不超过系统中的资源数时,可以接纳该进程
    • 进程可以分期请求资源,但请求的总数不能超过最大需求量
    • 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源。
    • 当系统现有的资源能满足进程尚需资源数时,必须测试系统现存的资源能否满足该进程尚需的最大资源数。若能满足则按当前的申请量分配资源。否则也要推迟分配。

    9.存储管理

    • 存储管理对象:内存
    • 逻辑地址和物理地址:用户编程所用的地址称为逻辑地址(虚地址),实际内存地址则称为物理地址(实地址),每次访问内存时都要进行逻辑地址到物理地址的转换。这种转换是由硬件完成的,而内存和外存间的信息动态调度是硬件和操作系统两者配合完成的。
    • 地址重定位:程序的逻辑地址被转换成主存的物理地址的过程。地址重定位有两种方式:静态重定位和动态重定位。
    • 最常见的虚存组织有分段技术、分页技术、段页技术三种。

    二、数据库系统基础知识

    1.数据库结构

    数据库系统分为外模式、概念模式和内模式三个层次。

    • 概念模式是数据库的中心与关键。
    • 内模式依赖于概念模式,独立于外模式和存储设备
    • 外模式面向具体的应用,独立于内模式和存储设备。
    • 应用程序依赖于外模式,独立于概念模式和内模式。

    数据库的结构:

    • 基础是数据模型,用来描述数据的一组概念和定义
    • 数据模型的三要素:数据结构、数据操作、数据的约束条件

    2.范式

    范式:

    • 第一范式(1NF):关系模式R的每个关系r的属性都是不可分的原子值,称R是第一范式的模式。
    • 第二范式(2NF):关系模式R是1NF,且每个非主属性完全函数依赖于候选键,称R是2NF模式。
    • 第三范式(3NF):关系模式R是1NF,且每个非主属性都不依赖于R的候选码,称R是3NF模式。
    • BC范式(BCNF):关系模式R是1NF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF模式。

    3.事务的四个特性

    事务的四个特性:

    • 原子性:事务的所有操作在数据库中要么全做,要么全都不做
    • 一致性:事务的执行使数据库从一个一致性状态变成另一个一致性状态
    • 隔离性:一个事务的执行不能被其他事务干扰
    • 持续性:指一个事务一旦提交,碓数据库的改变必须是永久的,即便系统出现故障时也是如此。

    4.并发控制

    并发控制:

    • 并发控制的主要技术是封锁,分别是X封锁和S封锁。
    • 排他型封锁(X封锁):事物T对数据A实现了X封锁,那么只允许事物T读取和修改数据A,其他事物要等事物T解除X封锁以后,才能对数据A实现任何类型的封锁。可见X封锁只允许一个事务独锁某个数据,具有排他性。
    • 共享型封锁(S封锁):事务T对数据A实现了S封锁,允许事务T读取数据A,但不能修改数据A,在所有S封锁解除之前决不允许任何事务对数据A实现X封锁。

    4.OLTP和OLAP

    OLTP和OLAP的比较:

    • OLTP:联机事务处理,关系数据库的基础
    • OLAP:联机分析处理,是数据仓库的核心部分

    三、计算机网络基础知识

    OSI七层协议:

    • 应用层:处理网络应用
    • 表示层:数据表示
    • 会话层:互联主机通信
    • 传输层:端到端连接
    • 网络层:分组传输和路由选择
    • 数据链路层:传送以帧为单位的信息
    • 物理层:二进制位传输

    四、系统性能

    操作系统性能指标:

    • 系统的可靠性
    • 系统的吞吐量
    • 系统的响应时间
    • 系统资源利用率
    • 可移植性
  • 相关阅读:
    JDK、JRE、JVM
    《自己动手写CPU》学习记录(1)——第1章
    【C++关键字 cast】【C/C++数据类型转换】
    JAVA学习-java基础讲义01
    python + urllib + BeautifulSoup 获取百度首页标题
    【docker命令】
    【无标题】
    SwiftUI教程之如何在 Xcode 14 中创建曲线导航栏动画
    《HTML+CSS+JavaScript》之第9章 表单
    RabbitMQ基础
  • 原文地址:https://blog.csdn.net/zhengzaifeidelushang/article/details/125453070