精华内容
下载资源
问答
  • 操作系统知识点整理(完整版)

    万次阅读 多人点赞 2017-12-26 22:34:05
    第一章 操作系统概述 1)一个完整的计算机系统是由硬件系统和软件系统两大部分组成 2)计算机软件是指程序和与程序相关的文档的集合 3)按功能可把软件分为“系统软件”和“应用软件”两部分 系统软件:操作系统语言...

    第一章 操作系统概述

    1)一个完整的计算机系统是由硬件系统和软件系统两大部分组成

    2)计算机软件是指程序和与程序相关的文档的集合

    3)按功能可把软件分为“系统软件”和“应用软件”两部分

    系统软件:操作系统语言处理程序,数据库管理系统

    应用软件:各种管理软件,用于工程计算的软件包,辅助设计软件

    4)通常把未配置任何软件的计算机称为“裸机”

    5)操作系统可以被看作是计算机系统的核心,统管整个系统资源,制定各种资源的分配策略,调度系统中运行的用户程序,协调它们对资源的需求,从而使整个系统在高效、有序的环境里工作。

    6)发展的动力:

    (1) 提高计算机资源的利用率的需要

    (2) 方便用户使用计算机的需要

    (3) 硬件技术不断发展的需要

    (4) 计算机体系结构发展的需要

    7)操作系统是在“裸机”上加载的第一层软件,是对计算机硬件系统功能的首次扩充

    8)操作系统的定义:

    操作系统是控制和管理计算机硬件和软件资源,合理地组织计算机工作流程,以及方便用户使用计算机的一个大型程序

    9)操作系统的功能:

    Ø 处理机管理:进程控制,进程同步,进程通信、调度、实施CPU分配

    Ø 存储器管理:内存分配,内存保护,地址映射,内存扩充

    Ø 设备管理:缓冲管理,设备分配,设备管理

    Ø 文件管理:存储空间管理,目录管理,读写管理和保护

    Ø 与用户有关的接口:用户接口,程序接口,人机交互

    10)操作系统另一种定义:操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合

    操作系统的种类:

    1) 单道批处理系统

    特点:单路性、独占性、自动性、封闭性、顺序性

    缺点:系统的资源得不到充分的利用

    2) 多道批处理系统

    特点:多路性、共享性、自动型、封闭性、无序性、调度性

    好处:

    ü 提高CPU的利用率

    ü 提高内存和I/O设备的利用率

    ü 增加系统吞吐量

    缺点:平均周转时间长,无交互能力

    3) 分时系统

    分时系统是指在一台主机上连接了多个配有显示器和键盘的终端,由此所组成的系统,该系统允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。

    采用了“时间片轮转”的处理机调度策略

    4) 实时系统

    实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行

    第二章 处理机管理

    1) 进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令,数据和堆栈等组成的,是一个能独立运行的活动实体,多个进程可以并发执行和交换信息

    2) 程序是一个在时间上严格有序的指令集合

    3) 在单道程序设计下,系统具有的特点

    a. 资源的独占性

    b. 执行的顺序性

    c. 结果的再现性

    在多道程序设计环境下,系统具有:

    a. 执行的并发性

    b. 相互的制约性

    c. 状态的多变性(不可再现性)

    5) 并发、并行、串行

    a. 从宏观上看是并行,同时在内存的多个程序都在执行着,互不影响

    b. 从微观上看是串行,由于CPU在任何时刻只能执行一个程序,因此这些程序轮流占用CPU,交替执行着

    c. 我们把“逻辑上相互独立的程序,在执行时间上相互重叠,一个程序的执行还没有结束,另一个程序的执行已经开始”的这种特性称为程序执行的并发性

    6) 对进程的描述

    a. 进程是程序的一次执行过程

    b. 进程的运行活动是建立在某个数据集合上的

    c. 进程是在获得资源的基础上从事自己的运行活动

    7) 进程的特征

    结构特征、动态性、并发性、独立性、异步性

    进程是一个动态的概念

    不同进程可以执行同一个程序

    每一个进程都有自己的生命周期

    进程之间具有并发性,进程间会相互制约

    8) 程序和进程的区别

    a. 程序是指令的有序集合,是静态的,进程是程序在处理机上的一次执行过程,是动态的。程序的存在时永久的,而进程是有生命周期的,它因创建而产生,因调度而运行,因撤销而消亡

    b. 进程是程序的一次执行过程,程序是进程赖以存在的基础

    c. 进程具有并发性,而程序并发执行会失去可再现性

    d. 进程是系统分配和调度的独立单位,进程由程序、数据集合和进程控制块组成

    9) 系统进程的使用级别高于用户进程

    10) 进程的状态

    创建、就绪、运行、阻塞

    a. 一个进程从运行状态变为就绪状态,一定会引起另一个进程从就绪变为运行

    b. 一个进程从运行状态变为阻塞状态,一定会引起另一个进程从运行状态变为就绪状态;这种因果变迁绝对不可能发生,因为一个CPU不可能真正同时运行两个进程

    c. 一个进程从阻塞状态变为就绪状态,不一定会引起另一个进程从就绪状态变为运行状态

    11) 进程的三个组成部分:程序、数据集合、进程控制块(PCB)

    12) 进程控制块是进程存在的唯一标示

    a. 作用:通过PCB,是原来不能独立运行的程序,成为一个可以独立运行的基本单位,一个能够并发执行的进程

    b. 其中的信息:进程标识符、处理机状态、进程调度信息、进程控制信息

    13) 操作系统中把做出“决定把CPU分配给谁用”的程序称为“进程调度程序”

    14) 常用的进程调度算法:

    a. 先来先服务调度算法

    b. 时间片轮转调度算法:为就绪队列中的每一个进程分配一个称为“时间片”的时间段,它是允许该进程占用CPU的最长时间长度

    c. 优先数调度算法:优先数高的先调度,若相同则先来先服务

    d. 多级队列调度算法:时间片调度和优先数调度算法的结合

    15) 进程调度程序的主要功能

    a. 记录系统中所有进程的有关情况,比如进程的当前状态,优先数等

    b. 确定分配处理机的算法

    c. 完成处理机的分配

    d. 完成处理机的回收

    16) 把处理剂分配给进程后,还有一个允许它占用多长时间的问题,有两种处理方式,一种是不可剥夺方式,另一种是剥夺方式

    17) 为了对进程进行有效的管理和控制,操作系统要提供若干基本的操作以便能创建进程、撤销进程、阻塞进程、唤醒进程,把具有这种特性的程序称为“原语”,原语的不可分割性,通常利用屏蔽中断的方法

    18) 程序接口:操作系统在程序一级给予用户的支持

    命令接口:操作系统在控制一级给予用户的支持

    19) CPU指令系统中的指令分为两类

    a. 操作系统和用户都能使用的指令,非特权指令

    b. 只能由操作系统使用的指令,特权指令

    20) CPU的两种工作状态:管态、目态

    a. 当CPU处于管态时,可以执行包括特权指令在内的一切机器指令

    b. 当CPU处于目态时,禁止使用特权指令

    21) 访管指令

    系统调用命令的程序属于操作系统,它应该在管态下执行

    用户程序只有通过计算机系统提供的访管指令才能实现由目态转为管态,进而调用这些功能程序的目的

    访管指令属于非特权指令,功能是执行它就会产生一个软中断,促使中央处理机由目态转为管态,进入操作系统并处理该中断

    22) 从功能上看,可以把系统调用命令分为五大类:

    a. 一是关于进程管理和控制的

    b. 二是关于外部设备输入/输出的

    c. 三是关于磁盘文件管理的

    d. 四是关于访问系统信息的

    e. 五是关于存储申请与释放的

    23) 从形式上看,操作系统提供的系统调用与一般的过程调用(子程序调用)相似,但它们有着明显 的区别

    作业管理:

    1) 把一个作业提交给系统时,系统要开辟一个作业控制块JCB,以便随时记录作业的信息

    2) 被系统接纳的作业,在没有投入运行之前,称为后备作业。这些作业存放在辅助存储器中,并由他们的JCB连接在一起,形成所谓的后备作业队列

    3) 作业调度:按照某种规则,从后备作业队列中挑选作业进入内存,参与处理机的竞争,这个过程称为作业调度

    4) 作业的状态:

    a. 提交状态:进入辅助存储器,作业的信息还没有全部进入系统,系统也没有为它建立JCB,感知不到它的存在

    b. 后备状态:建立起了JCB,并将JCB排到后备作业队列中

    c. 运行状态:(阻塞、运行、就绪)都属于运行状态

    d. 完成状态:也是一个暂时性的状态

    5) 作业的调度算法:

    a. 先来先服务:以作业进入后备作业队列的先后次序

    周转时间=完成时间-到达时间

    注:若分配一定的内存,且不允许作业在内存中移动时,要考虑所占内存大小

    b. 短作业优先:从后备作业队列中挑选所需CPU时间最少且资源能够得到满足的作业

    注:如果所有作业“同时”到达后备作业队列,那么采用短作业优先的作业调度算法总会获得最小的平均周转时间

    c. 响应比高着优先:先调度响应比高着   

    响应比=已等待时间/所需CPU时间

    6) 在确定作业调度算法时应注意的问题:

    a. 公平对待后备作业队列中的每一个作业,避免无故或无限期的延迟一个作业的执行,使各类用户感到满意

    b. 使进入内存的多个作业,能均衡地使用系统中的资源,避免出现有的资源没有作业使用,有的资源却被多个作业争抢的“忙闲”不均的情况

    c. 力争在单位时间内为尽可能多的作业提供服务,提高整个系统的吞吐能力

    第三章 存储管理

    1)  计算机操作系统的存储器:CPU寄存器,主存,辅存

    2) 在考虑计算机存储器的设计时,必须顾及

    a. 价格、容量、访问时间

    b. 存取时间越快,价格越高,容量越小

    3) 高速缓存:介于寄存器和存储器之间的存储器,主要用于备份主存中较常用的数据,以减少处理机对主存储器的访问次数,提高程序执行速度

    高速缓存容量远大于寄存器,比内存约小两到三个数量级左右

    为了缓和内存与处理机(CPU)速度的不匹配

    4) 字(字长):一次传送数据的长度{16、32、64…}依系统而定

    (主)内存储器和高速缓存之间是以“块”为单位传递数据的

    高速缓存与CPU之间则以“字”为单位传递数据

    5) 存储器管理的功能:

    a. 内存的分配与回收

    b. 存储的保护和共享

    c. 地址定位

    d. 存储扩充

    6) 内存储器由一个个存储单元组成,一个存储单元可存放若干个二进制的位(bit),8个二进制位被称为一个字节(byte)

    7) 在操作系统中,把用户程序指令中的相对地址变为所在绝对地址空间中的绝对地址的这个过程,称为地址重定位

    8) 地址的定位方式:

    a. 绝对定位方式:是在程序装入内存之前,程序指令中的地址就已经是绝对地址,已经正确地反映了它将要进入的存储区的位置,不适用于多道程序设计环境

    b. 静态重定位(多道程序环境下)

    根据内存的具体情况将装入模块装入到内存的适当位置,会使装入模块中的所有逻辑地址与实际装入内存后的物理地址不同。

    这种地址重定位是在程序执行前完成的

    c. 动态重定位

    将地址重定位的时间推迟到程序执行时再进行

    所以装入内存的所有地址都仍是逻辑地址

    连续分配存储方式 :

    1) 单一连续分配(静态重定位)

    a. 单道程序环境下,总体上把内存储器分为两个分区:系统区和用户区

    b. 系统总是把整个用户区分配给一个用户使用,把分配给了用户但未被使用的区域称为“内部碎片”

    c. 单一连续分区存储管理的缺点:

    a) 由于每次只能有一个进入内存,故它不适用于多道程序设计,工作效率不高,资源利用率低

    b) 只要作业比用户区小,在用户区里就会形成碎片,造成资源浪费

    c) 大作业无法在小内存中运行

    d. 为缓解大作业小内存的情况提出覆盖技术和对换技术

    a) 覆盖技术:允许一个作业的若干个程序段使用同一个存储区

    b) 对换技术:以辅助存储器作为内存的后援(硬盘)

    2) 固定分区存储管理(静态):分区数目、大小固定

    a. 预先把内存储器中可供分配的用户区划分成若干个连续分区,每个分区的尺寸可以相同,可以不同。每个分区中只允许装入一个作业运行,系统可以为每一个分区设置一个后备作业队列,一个作业到达时,总是进入到“能容纳该作业的最小分区”的那个后备队列中去排队

    b. 分区的分配与释放方案:

    a) 在队列中挑选出第一个可容纳的作业进入

    i. 优点:选择效率高

    ii. 缺点:小作业->大内存

    b) 在这个队列中进行搜索,找到这个分区能够容纳的最大的那个作业,让它进入运行

    i. 优点:存储空间利用率高,产生内部碎片尽可能的小

    ii. 缺点:选择效率低

    c) 在系统中至少保留一个小的分区,以避免因为运行小作业而被迫分配打分去的发生

    d) 为具体管理各个分区,并建立一个“分区分配表”,其中包括每个分区的起始位置大小及状态

    c. 特点

    a) 它是最简单的,具有“多道”色彩的存储管理方案,提高资源利用率

    b) 当把一个分区分配给某个作业时,该作业的程序将一次性的全部装入到分配给他的连续分区里

    c) 静态重定位,在分区内的程序不能随意移动

    d. 缺点

    a) 进入分区的作业尺寸不见得与分区的长度相吻合,势必产生内部碎片,引起资源的浪费

    b) 如果到达作业的尺寸比任何一个分区的长度都大,它就无法运行

    3) 可变分区存储管理:

    分区的边界划分随作业的需求可变,分区的数目随着进入作业的多少可变,消灭了内部碎片(可能会产生内部碎片)。

    外部碎片是指无法分配给用户使用的存储区

    a. 基本思想:在作业要求装入内存储器时,如果当时内存储器中有足够的存储空间满足该作业的需求,就划分出一个与作业相对地址空间同样大小的分区,并分配给它

    b. 要解决的问题

    a) 采用一种新的地址重定位技术,动态地址重定位,以便程序能够在内存储器中随意移动,为空闲区的合并提供保证

    b) 记住系统中各个分区的使用情况

    c) 给出分区分配算法

    c. 地址动态重定位过程(在程序执行时动态完成)

    a) 为实施地址动态重定位,硬件要增加一个地址转换机构,这个机构一般由地址转换线路和一个定位寄存器(基址寄存器)组成

    b) 地址的静态重定位和动态重定位的比较

    i. 地址转换时刻:静态重定位是在程序运行之前完成地址转换的,而动态重定位是在程序执行时完成

    ii. 谁来完成任务:静态重定位是由软件完成地址转换工作的,而动态重定位则是由一套硬件提供的地址转换机构来完成

    iii. 完成的形式:静态重定位是在装入时一次性集中地把程序指令中所有要转换的地址加以转换;而动态重定位则是每执行一条执行时,就对其地址加以转换

    iv. 完成的结果:实施静态重定位,原来的指令地址部分被修改了,而动态重定位只是按照所形成的地址去执行这条指令,并不对指令本身做任何修改

    d. 空闲区的合并

    e. 分区的管理

    a) 表格法:一张已分配表,一张空闲表(分区号,分区大小,分区起始地址、状态)

    b) 单链表法:一个存放该分区的长度,另一个存放它下一个空闲分区的起始地址

    c) 双链表法:还存放上一个空闲区起始地址

    f. 空闲分区的分配算法

    a) 最先适应算法:要求空闲分区链以地址递增的次序链接(对大作业不利)

    b) 最佳适应算法:每次为作业分配内存时,总是把能满足要求,又是最小的空闲分区分配给作业,避免“大材小用” 按其容量

    c) 最坏适应算法:挑选一个最大的空闲区,从中分割一部分存储空间给作者使用,以至于存储器中缺乏大的空闲分区,照顾中小作业的需求

    d) 循环首次适应算法:从上次分配的位置之后开始查找

    g. 可变分区存储管理的特点

    a) 作业一次性的全部装入到一个连续的存储分区中

    b) 分区是按照作业对存储的需求划分的,所以不会出现内部碎片

    c) 为了确保作业能够在内存中移动,要有硬件的支持,实行指令地址的动态重定位

    h. 缺点:

    a) 仍然没有解决小内存裕兴大作业的问题,只要作业的存储需求大于系统提供的整个用户区,该作业就无法投入运行

    b) 虽然避免了内部碎片,但有可能出现极小的翻去暂时分配不出去的情形,引起了外部碎片,

    c) 为了形成大的分区,可变分区存储管理通过移动程序来达到分区合并的目的,然而程序的移动是很花费时间的,增加了系统在这方面的投入与开销

    4) 分页式存储管理:

    需要两次访问内存,目的是提高内存利用率

    a. 分页式储存管理是将固定分区方法与动态重定位技术结合在一起,需要硬件支持

    基本思想:首先把整个内存储器划分成大小相等的许多分区,每个分区称为“一块”

    b. 在分页式存储管理中,块是存储分配的单位

    a) 用户作业仍然是相对于“0”进行编址,形成一个连续的相对地址空间

    b) 用户程序相对地址空间中的每一个分区被称为“页”,用户相对地址空间中的每一个相对地址,都可以用(页号,页内位移)这样的数对来表示

    i. 物理地址=页的大小*页号+页内位移

    ii. 页号=相对地址/块尺寸

    iii. 页内位移=相对地址%块尺寸

    c. 页与块对应关系表称为“页表”

    a) 快速寄存器组单独起名为“相联寄存器”,简称“快表”

    b) 快表与页表联合工作,先查找快表,若无再查找页表并把数据写入快表

    c) (访问页表时间+访问一次内存时间)*命中率+访问快表时间*命中率=平均内存存取时间

    d) 页面尺寸大多选在512byte到64kb之间

    d. 特点:

    a) 内存储器实现被划分成相等尺寸的块,它是进行存储分配的单元

    b) 用户作业的相对地址空间按照块的尺寸划分成页,这是在系统内部进行的,用户感觉不到

    c) 相对地址空间中的页可以进入内存中的任何一个空闲块,并且分页式存储管理实行的是动态重定位,因此它打破了一个作业必须占据连续的存储空间的限制,作业在不连续的存储区里,也能够得到正确的运行

    e. 缺点:

    a) 平均每一个作业要浪费半页大小的存储块,会产生内部碎片

    b) 作业虽然可以不占据连续的存储区,但是每次仍然要求一次全部进入内存。因此,如果作业很大,其存储需求大于内存,仍然存在小内存不能运行大作业的问题

    5) 分段式存储管理:

    a. 目的:方便用户使用编程,存储共享,存储保护,动态增长,动态链接

    b. 要求用户将自己的整个作业程序以多个相互独立的称为“段”的地址空间提交给系统,每个段都是一个从“0”开始的一维地址空间,长度不一,操作系统按照段长为作业分配内存空间

    c. 段表:段号、段长、该段在内存的基址(起始地址){段号,段内位移}

    a) 物理地址=段的起始地址+段内地址

    b) 逻辑地址=段号+段内地址

    d. 分段与分页的区别:

    a) 页是信息的物理单位,段是信息的逻辑单位

    i. 分页提高内存的利用率,仅仅是系统管理上的需要,用户不可见。段是信息的逻辑单位,它通常包括的是一组意义相对完整的信息,分段段的目的主要在于能更好地满足用户的需要

    b) 页的尺寸由系统决定,段的尺寸因段而异

    i. 段的长度取决于用户编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分

    c) 页的地址空间是一维的,段的地址空间是二维的

    i. 分页:用户必须通过链接编辑程序,把各程序段链接成一个相对于0编址的线性空间,程序中是通过地址编号来确定空间中的位置的。因此用户向系统提供的是一个一维的逻辑地址空间。

    ii. 分段:用户不把各程序段链接成一个相对于0进行编制的一维线性空间,各程序段之间是通过{段号,段内位移}进行访问的。因此,用户向系统提供的是一个二维的逻辑地址空间

    6) 段页式存储管理:(三次访问内存)

    a. 基本原理:分段和分页原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。

    a) 作业地址空间结构:主程序段,子程序段,数据段

    b) 地址结构:段号,段内页号,页内地址

    b. 系统设置了位示图、段表和页表,记录主存的使用情况和作业分配情况

    a) 逻辑地址=段号+页号+页内位置

    b) 块号*块长+页内地址

    c. 虚拟存储器:是具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统,其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度。

    a) 特征:多次性、对换性、虚拟性、离散性

    d. 请求分页式存储管理(需要硬件支持)

    a) 是基于分页式存储管理的一种虚拟存储器

    “请求分页式”是指当程序运行中需要某一页时,再把它从辅助存储器里调入内存使用,解决了小内存与大作业的矛盾,但会产生内部碎片

    b) 缺页中断是指在指令执行期间,若发现所要访问的指令或数据不在内存时,便立即产生和处理缺页中断信号,以便能及时将所缺之页面调入内存

    e. 缺页中断与一般中断的区别 {缺页中断率=缺页次数/页面总数}

    a) 缺页中断是在执行一条指令中间时产生的中断,并立即去处理,一般中断则是一条指令执行完毕后,当发现有中断请求时,才去响应和处理

    b) 缺页中断处理完成后,仍返回到原指令去执行,因为那条指令并未执行;而一般中断则是到下一条指令去执行,因为上一条指令已经执行完毕了

    f. 影响缺页中断次数的因素:

    a) 分配给作业的内存块数

    b) 页面尺寸

    c) 程序的实现

    7) 页面淘汰(置换)算法:

    页面淘汰是由缺页中断引起的,但缺页中断不见得一定引起页面淘汰

    a. 先进先出页面淘汰(置换)算法(FIFO)

    淘汰最先进入内存的页面 (3个内存块都为空,3次缺页中断)

    b. 最近最久未用页面淘汰(置换)算法(LRU)

    总是把最长时间未被访问过的页面淘汰出去 (需要寄存器和栈)

    c. 最近最少用页面淘汰(置换)算法(LFU)

    总是把当前使用的最少的页面淘汰出去

    为每个内存中的页面设置一个计数器(移位寄存器) 加1

    d. 最优(最佳)页面淘汰(置换)算法(OPT)

    把以后不再使用的或最长时间内不会用到的页面淘汰出去(理论上,不会实现)

    注:对于FIFO页面淘汰算法,有时增加分配给作业的可用内存块数,它的缺页次数反而上升,通常称为异常现象

    第四章 设备管理

    1.“设备”泛指计算机系统中的各种外部设备,外设(即主机以外的其他所有设备)在众多的I/O设备中,并不是所有的设备都是可以共享的,可以借助于磁盘,把只能独享的设备变为共享,这就是所谓的“虚拟设备” {SPOOLing技术}

    2.设备是指计算机中用以在机器之间进行传送和接收信息,完成用户输入/输出(I/O)操作的那些部件。比如磁盘、磁带、打印机、显示器、鼠标、键盘······

    3.计算机I/O系统的组织结构:

    (1)底层是具体的设备和硬件接口

    (2)中间是系统软件(与设备相关软件、与设备无关软件)

    (3)用户程序

    4.I/O设备一般是由执行I/O操作的机械部分和执行控制I/O的电子部件组成

    (1)执行I/O操作的机械部分就是一般的I/O设备

    (2)执行控制I/O的电子部件称为设备控制器或适配器

    ① 为了能够使CPU设备控制器中的各个寄存器进行通信,通常采用“单独的I/O空间”和“内存映射I/O”两种方法

    ② 设备控制器是CPU与外围设备之间的接口,是一个可编址设备,每一个地址对应一个设备

    功能:

    Ø 接收和识别命令

    Ø 数据交换

    Ø 标识和报告设备的状态

    Ø 地址识别

    Ø 数据缓冲区

    Ø 差错控制

    组成:

    Ø 设备控制器与处理机(CPU)的接口

    Ø 设备控制器与设备的接口

    Ø I/O逻辑:用于实现对设备的控制

    5.设备驱动程序:

    6.设备处理方式:

    (1)为每一类设备设置一个进程,专门用于执行这类设备的I/O操作

    (2)在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作

    (3)不设置专门的设备处理进程,而只为各类设置相应的设备驱动程序,供用户或系统进程调用

    7.设备驱动程序的处理过程

    (1)将抽象要求转换为具体要求

    (2)对服务请求进行校验,即检查I/O请求的合法性

    (3)检查设备的状态

    (4)传送必要的参数

    (5)启动I/O设备

    (6)工作方式的设置

    I/O接口程序:是操作系统中与设备无关的软件,它从上层接收用户对设备提出的I/O请求,然后负责吧I/O请求转变成所需要的I/O命令,调用具体的设备驱动程序去执行

    系统都是用主设备号和次设备号组成“逻辑设备名”

    操作系统提供的设备无关性的优点:

    ü 方便用户

    ü 提高设备的利用率

    8.计算机设备的分类

    (1)基于设备的从属关系

    a. 系统设备(键盘、显示器、打印机、磁盘驱动)

    b. 用户设备

    (2)基于设备的分配特性

    a. 独享设备(打印机)

    b. 共享设备

    c. 虚拟设备(SPOOLing技术)

    (3)基于设备的工作特性

    a. 输入/输出设备(字符设备)

    b. 存储设备(块设备) 磁盘、磁带

    (4)按信息交换的单位

    a. 块设备:用于存储信息,属于结构设备。磁盘、磁带(以块为单位传送信息)

    b. 字符设备:以单个字符为单位来传送信息。 键盘

    9.设备管理的目标

    a. 提高外部设备的利用率

    b. 为用户提供便利、统一的使用界面

    10.设备管理的功能

    a. 提供一组I/O命令

    b. 进行设备的分配和回收

    c. 对缓冲区进行管理

    d. 实现真正的I/O操作

    11.输入输出管理步骤

    (1)用户在程序中使用系统提供的输入/输出命令发出I/O请求

    (2)输入输出管理程序接受这个请求

    (3)“设备驱动程序”来具体完成所要求的的I/O操作

    (4)实现设备中断处理程序来处理这个请求

    设备的输入输出管理程序由3块内容组成:接受用户的I/O请求,组织管理输入输出进行,输入输出的善后处理

    设备控制:

    1) 设备控制块DCB中存放的是一台具体设备的有关信息,找到一个设备的DCB,就得到了该设备的特性,各种参数,使用情况等,所以DCB是设备管理中最重要的一条数据结构

    2) 独享设备中具有排他性,只能采取“静态分配”的策略

    a. 静态分配:用户作业开始之前,由系统一次分配给该作业所需的设备,控制器和通道,不会发生死锁

    b. 动态分配:在进程执行过程中进行的设备分配,可能造成死锁

    对独享设备采用的分配算法:

    v 先来先服务

    v 优先级高者先服务

    3) 共享磁盘的调度

    磁盘是一种典型的共享存储设备,允许多个作业进程同时使用,而不是让一个作业在整个运行期间独占。“同时使用”是指当一个作业进程暂时不用时,其他作业进程就可以使用。每一个时刻只有一个作业用

    4) 调度算法

    a. “先来先服务”调度算法(并不理想)(移臂调度,减少查找时间)

    以I/O请求到达的先后次序作为磁盘调度的顺序

    b. “最短查找时间”调度算法

    把距离磁头当前位置最近的I/O请求作为下一次调度的对象

    c. “电梯”调度算法(SCAN)

    总是沿着此案移动臂的移动方向选择距离磁头当前位置最近的I/O请求,作为下一次调度的对象

    d. “单向扫描”调度算法(循环扫描 CSCAN)

    总是从0号柱面开始往里移动移动臂,遇到有I/O请求就进行处理,直到到达最后一个请求柱面,然后移动臂立即带动磁头不做任何服务地快速返回到0号柱面,开始下一次扫描

    对I/O设备的控制方式(数据传输方式)

    1) 程序循环测试方式(程序查询式)

    是指用户进程使用start指令启动设备后,不断地执行test指令,去测试所启动设备的状态寄存器。只有在状态寄存器出现了所需要的状态后,才停止测试工作,完成输入/输出。

    数据寄存器:用来存放传输的数据

    状态寄存器:用来记录设备当前所处状态

    2) 中断方式

    所谓“中断”是一种使CPU暂时中止正在执行的程序而转去处理特殊时间的操作。

    引起中断的时间称为中断源。

    程序中产生的中断,由CPU的某些错误结果(如,计算机溢出)产生的中断称为“内中断”,由外部设备控制器引起的中断称为“外中断”

    3) 直接存储器存取方式(DMA方式)

    特点:能使I/O设备直接和内存储器进行成批数据的快速传输。(单位:块数据)

    DMA控制器包括四个寄存器:数据寄存器,状态寄存器,地址寄存器,字节计数器

    DMA控制器的组成:主机与DMA控制器的接口;DMA控制器与块设备的接口;I/O控制逻辑

    4) 通道方式

    通道方式能够使CPU彻底从I/O中解放出来。CPU进行善后处理和启动。

    通道是一个独立于CPU的,专门用来管理输入/输出操作的处理机。

    通道是通过执行通道程序并与设备控制器共同实现对I/O设备的控制的。

    它规定了设备应该执行的各种操作的顺序。由一系列通道指令所构成,CPU对I/O请求只去做启动和善后处理工作,输入/输出的管理以及数据传输等事宜,全部由通道独立完成。

    缓冲:

    1) 原因:

    a. 缓和CPU与I/O设备间速度不匹配的矛盾

    b. 减少对CPU的中断频率,放宽对CPU中断响应时间的限制

    c. 解决数据粒度不匹配的问题

    d. 提高CPU和I/O设备之间的并行性

    2) 缓冲的实现

    a. 采用专门的硬件寄存器,比如设备控制器里的数据寄存器,“硬件缓冲”

    b. 在内存储器中开辟出n个单元,作为专用的I/O缓冲区,以便存放输入/输出的数据,这种缓冲区就是“软件缓冲”

    c. 根据缓冲区的个数:单缓冲区、双缓冲区、多缓冲区、缓冲池

    3) 虚拟设备

    a. 通过多道程序技术可将一台物理CPU虚拟为多台逻辑CPU,需要硬件的支持。作为后援的硬盘(大容量),具有设备与CPU并行工作的能力

    4) SPOOLing技术

    a. 在主机的直接控制下,实现以前的脱机输入/输出功能,此时的外围操作与CPU对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作的技术称为SPOOLing技术,或假脱机技术

    b. SPOOLing技术是对脱机输入/输出系统的模拟。SPOOLing系统建立在通道技术和多道程序技术的基础上,以高速随机外存(通常为磁盘)为后援存储器

    5) 设备无关性:

    应用程序中所用的设备,不局限于使用某个具体的物理设备。为每个设备所配置的设备驱动程序是与硬件紧密相关的软件。为了实现设备独立性,必须再在设备驱动程序上设置一层软件,称为与设备无关的I/O软件或设备独立性软件

    6) 操作系统中实现虚拟设备的软件功能模块由3部分组成

    a. 预输入程序

    b. 缓输出程序

    c. 井管理程序

    7) SPOOLing系统由四部分组成

    a. 输入井和输出井

    在磁盘上开辟出来的两个存储区域,输入数据,输出数据

    b. 输入缓冲区和输出缓冲区

    在内存中开辟的两个缓冲区

    c. 输入进程和输出进程

    模拟外围控制机

    d. 井管理程序

    特点:

    Ø 提高了I/O的速度

    Ø 将独占设备改造为共享设备

    Ø 实现了虚拟设备的功能

    第五章 文件管理

    1) 目标:提高外存储空间的利用率

    主要任务:对用户文件和系统文件进行管理,方便用户使用,并保证文件的安全性

    文件存储设备是以块为单位进行管理的

    2) 所谓“文件”是指具有完整逻辑意义的一组相关信息的集合,它是在磁盘上保存信息,而且能方便以后读取的方法,文件用符号名加以标识,这个符号名就被称为“文件名”

    3) 文件是指由创建者所定义的,具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件两种。在有结构的文件中,文件由若干个相关记录组成而无结构文件则被看成是一个字符流。文件在文件系统中是一个最大的数据单位,它描述了对象集

    文件属性:文件类型、文件长度、文件的物理位置、文件的建立时间(最后一次的修改时间)

    4) 文件名:在不同的系统之间,对文件名的规定是不同的。一个文件名是在创建该文件时由用户给出的,操作系统将向用户提供组成文件名的命名规则

    5) 很多操作系统采用句点‘.’隔开成两部分的文件名形式,句点之前的部分称为文件名,句点后面的部分称为文件的“扩展名”。又称后缀名,用于指示文件的类型

    .bak 备份文件 .bas ABSIC源程序 .bin 可执行的二进制文件

    .c C源程序 .dat 数据文件 .doc 文档文件

    .hlp 帮助文件 .obj 目标文件 .pas Pascal文件

    .txt 一般文本文件 .tmp 临时文件

    1) 文件被存在大容量的辅助存储器(外存)中,当用户需要使用时,就通过文件名把相应的文件读到内存

    2) “文件系统”是指操作系统中与文件管理有关的那部分软件,被管理的文件,以及管理文件所需要的数据结构(目录、索引表······)的总体

    3) 对文件的分类

    a. 按文件的性质和用途:系统文件、用户文件、库文件

    b. 按文件中数据的形式:源文件、目标文件、可执行文件

    c. 按存取控制属性分类:只执行文件、只读文件、读写文件

    d. 按文件的保护性质:只读文件、读写文件、可执行文件、不保护文件

    e. 按文件的保护期限:临时文件、档案文件、永久文件

    f. 按文件的存取方式:顺序存取文件、随机存取文件

    g. 按设备的类型:磁盘文件、磁带文件、打印文件

    h. 按文件的物理结构:连续文件、链接文件、索引文件

    i. 按文件的内容(组织形式和处理方式):普通文件、目录文件、特殊文件

    j. 按文件的逻辑结构:流式文件、记录式文件

    4) 文件的逻辑结构

    a. 从用户使用的角度出发组织的文件,被称为是文件的逻辑结构,一类是有结构的文件,这是指由一个以上的记录构成的文件,故又称为记录式文件

    b. 从文件的组织方式来分,可以分为顺序文件,索引文件,索引顺序文件

    c. UNIX操作系统总是以流失作为文件的逻辑结构

    5) 文件的物理结构

    a. 文件按不同的组织方式在辅存上存放,就会得到不同的物理结构,文件的物理结构有时也称为文件的“存储结构”

    b. 文件在辅存(外存)上可以有3种不同的存放方式:连续存放、链接块存放以及索引表存放

    c. 对应地文件就有3种物理结构,分别叫做顺序结构,链接结构和索引结构,也叫作连续文件,串联文件,索引文件

    6) 存放方式

    a. 连续存放—连续文件

    不足之处:

    v 必须预先知道文件的最大长度

    v 会造成磁盘碎片

    b. 链接块存放—串联文件

    不会因为磁盘碎片而浪费存储空间,但使用的指针要占去一些字节,每个磁盘块存储数据的字节数不再是2的幂,从而降低了系统的运行效率

    c. 索引表存放—索引文件

    7) 文件的存取

    a. 顺序存取

    b. 随机存取

    8) 磁盘空间的管理

    a. 磁盘是以块为单位进行分配的

    b. 磁盘与内存之间是以磁盘块为信息传输的单位

    c. 选定了块的大小,还要对它们进行管理,即要记住哪些已经分配,哪些仍然空闲。

    d. 常采用的磁盘存储空间管理方案有:位示图,空闲块表,空闲块链

    9) 文件的操作:

    创建文件、删除文件、打开文件、关闭文件、读文件、写文件

    10) 系统是通过文件的目录来管理文件的

    文件目录也是一种数据结构,用于标识系统中的文件及其物理地址

    11) 为每一个文件开辟一个存储区,在它的里面记录着该文件的有关信息。

    我们把该存储区称为“文件控制块”(FCB) 也是一个目录项

    随系统的不同,一个文件的FCB中所包含的内容及大小也不尽相同

    包含内容:

    Ø 文件名称

    Ø 文件在辅存中存放的物理位置

    Ø 文件的逻辑结构

    Ø 文件的物理结构

    Ø 文件的存取控制信息

    Ø 文件管理信息

    12) 目录的层次结构

    如果把所有文件的FCB都登记在一个文件目录中,这样由文件名查文件目录项,直接就能够找到所需要的文件,那么就成这种文件目录为一级目录结构

    a) 优点:

    i. 简单,能实现目录管理中最基本的功能—按名存取

    b) 缺点:

    i. 查找速度慢,不允许重名,不便于实现文件共享

    二级目录结构:

    由“主目录”与“用户目录”二级构成,在主目录(根目录)中,每个目录项的内容只是给出文件主名以及它的目录所在的磁盘地址。在一个个用户目录中,才是由问价的呢FCB组成的目录,用户目录,实际上就是一级目录

    1) 两级目录结构的优点:

    a. 提高了检索目录的速度

    b. 在不同的文件目录中,可以使用相同的文件名

    c. 不同用户还可使用不同的文件名访问系统中的同一个共享文件

    2) 缺点:

    a. 若一个用户可以拥有很多文件,则查找时间仍然很长

    b. 用户无法对自己的文件进行再分类安排

    3) 树型目录结构

    允许每个用户可以拥有多个目录,即在用户目录的下面可以再分子目录,子目录的下面还可以再有子目录。但每个文件目录中,只能有一个根目录,每个文件和每个目录都只能有一个父目录

    4) 从根目录出发到具体文件所经过的各层名字,就构成了文件的“路径名”,从根目录出发的这个路径名,也称为文件的“绝对路径名”。

    文件的绝对路径名必须从根目录出发,且是唯一的,从分隔符开头

    在UNIX系统中,路径名各部分之间是用“/”分隔

    在MS-DOS系统中,路径各部分是用“\”分隔

    在MVLTICS系统中,路径各部分之间是用“>”分隔

    在当前目录下的文件的路径名,称为文件的相对路径名

    5) 文件的“共享”是指一个文件可以被多个授权用户共同使用

    分两种:

    Ø 任何时刻只允许一个用户使用共享文件

    Ø 允许多个用户同时使用同一个共享文件,只进行读操作

    第六章 进程间的制约关系

    1) 在多道程序设计环境下,进程程序的执行具有并发性,在相同的前提条件下,两次执行的结果有可能不相同,使得一个进程对另一个进程的影响无法预测,在操作系统里把这种由于时间因素的影响而产生的错误称为:“与时间有关的错误”

    2) 进程间具有两种制约关系:互斥和同步

    a. 由于对共享资源的争夺,导致进程之间出现互斥关系

    b. 由于对任务的协调工作,导致进城之间出现同步关系

    3) 把那些可以共享的资源(文件、队列、缓冲区、表格、变量······)统称为共享变量或临界资源

    与一个共享变量(或共享资源)交往的多个进程,为了保证它们各自运行结果的正确性,当其中的一个进程正在对该变量(临界资源)进行操作时,就不允许其他进程同时对它操作。进程的这种制约关系被称为“互斥”

    4) 注意(互斥进程)

    a. 作为具有互斥关系的进程,它的一部分程序可能用于内部的计算以及内部的数据处理等,那么只有设计共享变量的那一部分程序,才真正需要保证互斥地执行,把进程程序中“真正需要保证互斥执行”的那一段程序(或在每个进程中访问临界资源的那段代码)称为该进程的临界区(临界段)

    b. 具有互斥关系的进程,并不关心对方的存在,即使对方不存在,自己也能够正确地运行

    c. 具有互斥关系的那些进程程序中的临界区,虽然都是针对同一个共享变量的程序,但在其上执行的操作可以相同也可以不同

    d. 进程的临界区是相对于某个共享变量而言的,不同共享变量的临界区之间,不存在互斥关系

    信号量及其定义在信号量上的P、V操作:

    1) 如何来保证进程在临界区执行的互斥性,由信号量及其定义在信号量上的P、V操作具体完成,但遵循如下规则

    a. 如果有若干个进程希望进入临界区时,至少应该允许一个进入,而不能谁也进不去

    b. 每次只允许一个进程进入临界区

    c. 进入临界区的进程不能无限期地把持临界区

    2) 同步

    a. 需要在某些点上协调相互的动作,谁先到达谁后到达是有顺序要求的

    b. 这些进程都应该了解对方的工作,对方如果不存在,或任何一方单独运行,就会出现差错

    c. 一方或双方的运行会直接地依赖于对方所产生的的信息,或发出的消息

    3) 一个进程运行到某一点时,除非合作进程已经完成了某种操作或发来了信息,否则就必须暂时等待那些操作的完成或信息的到来。

    进程间的这种关系被称为“同步”,暂停以取得同步的那一点称为“同步点”,需要等待一个进程完成的操作或发送的信息,称为“同步条件”

    4) 一个信号量的建立必须经过说明,即应该准确说明S的意义和初值(不能为负)

    每个信号量都有相应的队列,在建立信号量时,队列为空

    可进行原子操作 P(wait)、V(signal)操作

    5) 信号量S上的P操作

    ① Vs = Vs-1,把当前信号量S的取值减1

    ② 若Vs >= 0,则调用进程继续运行,若Vs < 0,则调用进程由运行状态变为阻塞状态,到与该信号量有关的队列Vq上排队等待,直到其他进程在S上执行V操作将其释放为止

    6) 信号量S上的V操作

    ① Vs = Vs + 1,把当前信号量S的取值加1

    ② 若Vs > 0,则调用进程继续执行,若Vs <= 0,则先从与该信号量有关的队列Vq上摘下一个等待进程,让它从阻塞状态变为就绪状态,到就绪队列里排队,然后调用进程继续执行

    注意:

    a. 设置的信号量初值一定是一个非负的整数。而运行过程中,信号量的取值就不再受“非负”所限了

    b. 只要进入了P(S)或V(S),这两个动作就必须顺序地做完,中间不能被打断,为保证执行时的不可分割性,常采用关、开中断的方法来具体实现信号量上的P、V操作

    c. 如果一个进程在做P操作后被阻塞,到关于信号量的队列上去排队等待,其含义是让进程的PCB到此队列上排队

    7) 用P、V操作实现资源分配

    做P操作即是申请一个资源,做V操作即是释放一个用完的资源

    P操作后,若Vs > 0时,Vs的值就是这种资源的剩余数

     若Vs < 0时,表示现在已经没有资源可以分配,申请资源的进程只能被阻塞到申请队列Vq上去排队等待,Vs的绝对值表示提出资源请求,但没有分配到资源的进程个数

    V操作后,若Vs <= 0,表示申请资源的等待队列上有进程在等待该资源(表示V操作之前Vs <= -1,即至少有一个进程在队列上等待使用该资源),所以将该队列上的一个进程摘下,让它到就绪队列中排队

     若Vs > 0,表示V操作之前Vs >= 0,即资源等待队列上没有进程在等待,只是收回了一个资源

    1) 死锁:多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程将无法向前推进

    2) 定义:即指系统中若存在一组(至少两个或以上)进程,它们中的每一个都占用了某种资源而又都在等待其中另一个所占用的资源,这种等待永远不会结束,这就是死锁

    3) 产生死锁的4个必要条件

    a. 互斥条件:进程对所分配的资源进行排它性使用,即在一段时间内,某资源只能被一个进程占用

    b. 部分分配条件(占用并等待):进程由于申请不到所需要的资源而等待时,仍然占据着已经分配到的资源

    c. 非剥夺条件:已经分配给进程的资源,别的进程不能强行夺取资源,只能被占用它的进程自己释放

    d. 循环等待条件:在多个进程之间,由于资源的占有和请求关系,从而形成了一个循环等待的态势

    4) 处理死锁的方法:

    a. 预防死锁:破坏产生死锁的4个必要条件之一,使系统不具备产生思索的条件

    b. 忽略死锁:任凭死锁出现,当系统中出现死锁时,就将系统重新启动

    c. 避免死锁:在资源的动态分配过程中,用某种方法防止系统进入不安全状态,从而可以避免死锁

    d. 检测死锁并恢复:在死锁发生后,采取相应措施加以恢复。如:撤销一些进程,回收它们的资源,将它们分配给已处于阻塞状态的进程,使其继续执行

    5) 预防死锁:

    a. 互斥条件是非共享设备所必须的,不仅不能改变,还应加以保证

    b. 破坏占用并等待条件:所有进程在开始运行之前,必须一次性地申请其在整个过程中所需要的全部资源,一次性分配

    c. 破坏“分剥夺条件”:当进程提出新的资源请求得不到满足时,它必须释放已经保持的所有资源,待以后需要时再重新申请

    d. 破坏循环等待条件:将系统中的所有资源进行统一编号,进程按编号的顺序,由小到大提出对资源使用的申请

    6) 在信号量上的P、V操作,可以看作是进程间的一种通信方式,这种通信并不在进程间真正交换信息,而只是双方事先的一种约定。因此,用P、V操作实现的通信,称为进程间的一种低级通信

    为了使进程间能够真正交换数据,操作系统备有高级通信命令,提供给用户在程序一级使用

    高级进程通信分为直接通信和间接通信两种方式

    间接通信是指通过信箱来传递消息

    展开全文
  • 操作系统知识点整理(持续更新)

    千次阅读 多人点赞 2017-11-06 10:58:35
    操作系统的四个特性 1. 并发: 同一时间间隔内支持执行多个任务, 对于一个核则是交替执行; 2. 共享: 硬件资源或数据资源支持多个进程共享; 3. 异步: 并发情况下, 一个程序会陆陆续续被执行,完成时间不可预知; 4....

    基础概念

    • 操作系统的四个特性
    1. 并发: 同一时间间隔内支持执行多个任务, 对于一个核则是交替执行;
    2. 共享: 硬件资源或数据资源支持多个进程共享;
    3. 异步: 并发情况下, 一个程序会陆陆续续被执行,完成时间不可预知;
    4. 虚拟: 物理实体转化为逻辑实体,如虚拟内存。
    • 操作系统的基本功能
    1. CPU管理, 作业调度
    2. 存储管理, 数据存取
    3. 设备管理, 与外围设备交互
    4. 接口管理, 向应用程序/用户提供交互接口
    • 软中断与硬中断
    系统在执行某个任务程序时收到中断信号, 需要让出当前CPU来执行中断处理。中断处理完成后,CPU再继续执行之前的任务程序。
    1. 软中断:
    >当前运行的程序产生的中断信号,通常是I/O请求;
    >不会直接中断CPU,需要内核去为当前进程完成一些类似I/O的请求;
    >中断过程: 进程->内核设备驱动程序。
    2. 硬中断:
    >由硬件产生,比如磁盘,网卡,时钟,键盘等;
    >直接中断CPU,通常一个中断只中断一个CPU;
    >中断过程: 硬件->CPU->内核设备驱动程序。
    3. 中断优先级:
    硬件错误>时钟>磁盘>网络设备>其他终端设备>软件中断
    • 动态链接及静态链接
    动态链接: 在程序运行期间, 所依赖的模块来自于程序外部,在内存中动态加载/卸载,按需加载可节省内存;
    静态链接: 在程序运行期间, 所依赖的模块来自于程序内部,即编译时已打包好,程序启动时便会载入内存。

    进程管理

    • 进程的状态类型与转换
      5个状态模型:
      process_state
    • 进程与线程的区别
    概念区别:
    1. 进程: 一个程序的动态执行过程, 分配资源的基本单位;
    2. 线程: 一个进程内调度的基本单位,一个进程包含一个或多个线程。
    执行区别:
    1. 进程:拥有独立内存空间,支持内部多个线程共享;
    2. 线程:必须依赖于进程来运行,每个线程有独立入口/执行序列/出口。
    应用意义区别:
    一个应用运行时对应一个或多个进程, 而线程在进程的基础上提供了可以执行不同调度逻辑的入口,易于实现任务的并发执行。
    • 进程间通信的几种方式
    1. 管道pipe
    管道是独立的文件系统,有自己的数据结构。实际上是只存在于内存中的文件,需要通过两个打开的文件句柄来进行操作,他们分别表示管道的两端。管道分为无名管道和有名管道。
    2. 共享内存
    共享内存由一个进程创建, 能被其他进程访问, 最快的IPC方式。
    3. 消息队列
    消息的链表, 存放于内核并由队列标识符标识;克服了缓冲区大小受限,信号信息有限,管道无格式字节流等缺点。
    4. 信号
    用于通知某个进程某个事件已经发生,可触发进程已注册的处理函数。
    5. 信号量
    一种计数器,用来控制多个进程对共享资源的访问, 通常作为一种锁机制, 常应用于进程间或进程内多个线程的同步。
    6. Socket
    通过套接字通信,也可用于不同host之间的进程见通信。
    • 进程同步,线程同步的几种方式
    1. 临界区(CriticalSection)(进程内线程同步)
    一次只能被一个进程所占用的资源为临界资源;进程内访问临界资源的代码就是临界区。
    进入区/临界区/退出区/剩余区
    2. 事件
    基于事件机制, 一个进程/线程主动唤醒另一个进程/线程;比如监听通信端口A。
    3. 互斥量(Mutex)
    类似临界区,但是能在进程间使用。Futex由一块能被多个进程共享的内存空间(对齐后的整型变量)组成, 保存在用户空间的共享内存中,通过原子操作进行操作。操作基本在用户空间内进行(需要仲裁时使用系统内核调用), 减少了系统调用次数, 提供系统性能。
    4. 信号量(Semphore)
    信号量建立在原子操作上,使用信号量可以用来限制共享资源的线程数目。
    • 线程的实现方式
    用户级线程(也可看作协程):进程内的线程切换不用切换到内核进行, 内核并没有感知进程内的线程存在, 所以即使多线程并不能利用多核来进行操作。一个线程如果调用了阻塞系统调用, 那整个进程都会被阻塞。
    内核级线程(通常所说的线程):也即内核管理的所有线程, 内核头既包含进程表, 也包含线程表。多线程可以利用到多核,多核下微观和宏观下都能做到并行。
    混合模式: 内核线程可以在用户空间完成创建,应用的多个用户级线程可以被映射到内核线程中,提高并发效率。
    • 用户态与内核态的区别
    用户态:执行用户级别的代码,权限受限,由CPU标志flag来控制;
    内核态:执行内核模块代码,比如执行磁盘IO,网络IO处理等。
    应用进程可通过系统调用由用户态进入内核态,在缺页错误或中断发生时进入内核态。
    • 用户栈与内核栈的区别
    用户栈: 进程在用户空间时创建的栈,比如函数调用时压栈出栈, 保存了函数互相调用的参数/返回值等;
    内核栈: 中断进入内核态时,用内核栈来保存用户态进程的状态信息,返回用户钛再将这些信息出栈;内核栈位置在内核的一块固定区域,保存中断现场,进程调用数据等。
    • 内存池,进程池,线程池
    所谓池的概念, 一般是指应用提前向内核批量申请资源,用于接下来的使用和回收再利用, 减少资源的初始化和销毁次数等开销, 以达到提高系统性能的目标。
    内存池:真正使用前申请一片内存区域,有新需求时取出其中一部分使用,不够用时再重新申请新内存。
    进程池:
    >应用预先创建一组子进程,所有子进程运行相同代码,拥有相同属性,比如PGID和优先级等;
    >常见两种工作方式:
    1. 主进程通过随机或round robin算法来选择子进程作为新任务的服务进程;
    2. 通过一个共享队列来进行同步,所有子进程从该队列中获取任务,不过同时只能有一个子进程能成功获得新任务处理权。
    线程池:
    主要应用于任务小而多,处理时间短的场景,比如简单网页请求等。
    • 死锁的概念,产生条件及处理策略
    死锁:一组竞争同一系统资源或通信的进程由于互相等待而造成的永久阻塞。
    产生死锁的四个条件:
    1. 互斥: 一次只能有一个进程使用一个资源。
    2. 占有并等待: 一个进程等待另一个资源的同时占有一个已分配的资源。
    3. 不可抢占: 一个已被某个进程占有的资源不可被其他进程抢夺。
    4. 循环等待: 在一个封闭进程链中,每个进程至少占有下一个进程所等待的资源。
    处理死锁几种方式:预防/避免/检测,比如一次性申请所需资源,银行家算法。
    • 进程调度算法
    调度种类:
    1. 高级调度: 作业调度,决定把后备作业调入内存运行;
    2. 中级调度: 内存,外存交换区进行进程对换;
    3. 低级调度: 进程调度,决定把就绪状态的进程获得CPU。
    CPU任务种类: 交互式任务和批处理任务。
    调度算法:
    1. FIFO(FCFS): 公平简单,不利于交互式,不利于IO密集型作业;
    2. SJF:短作业优先调度,可以保证整体的最小等待时间,但不利于长作业;
    3. 优先权调度:拥有高优先权的作业优先处理, 有可能出现优先权低的任务“饥饿”情况;
    4. Round-Robin:按时间片进行轮转调度,让每个任务定时有响应但是上下文切换次数可能会过多。
    5. 多级优先级队列:按不同规则创建多个进程队列,不同队列拥有不同的优先级以及可以分配不同的时间片/调度策略。但是也存在”饥饿“可能性。
    6. 多级反馈队列:在多级优先级队列基础上,长期得不到运行的队列优先级会被提高。

    内存管理

    • 内存管理的技术发展
    1. 固定分区:系统初始化阶段,内存被固定划分成多个静态分区,进程可以一次性被装载到大于或等于自身空间的分区;
    2. 动态分区:动态创建分区,进程可以被装载到与自身相等大小的分区中;
    3. 虚拟内存分页:系统初始化阶段,内存被划分为多个大小一致的页框;每个进程被划分成多个与页框相等的页;根据实时需要加载一定数量的页。
    4. 虚拟内存分段:每个进程维护一个段表,系统维护一个空闲的块表,按需加载段。
    5. 段页式: 单按页加载的调度粒度太细,单按段加载的调度粒度太粗, 结合使用可有效提高系统性能。应用地址空间可划分成多个段,每个段又划分为多个固定大小的页,段偏移量在系统角度可看作是指定段中的一个页好和页偏移。
    • 物理内存与虚拟内存
    物理地址:实际物理内存中的存储地址;
    虚拟地址: 编码时将代码或数据分成若干段,每条代码或数据对应的地址由段号加段内偏移地址构成。
    MMU: 实现将虚拟地址映射到物理地址的CPU中的硬件电路。
    • 几种页面置换算法
    FIFIO: 淘汰最早调入的页面;
    OPT: 理想化的最佳置换算法,将标记为下次最迟才会被访问的页面淘汰;
    LRU: 将最近一段时间内最久没有被使用的页置换出去。
    • DMA定义及工作流程
    DMA指外部设备不经过CPU而直接与内存交换数据的技术。
    主要通过DMA控制器来实现: 控制器向CPU请求系统总线并获得控制权后, 与存储器直接进行数据交换, 完成后向CPU发送结束信号并交还控制权。
    • 外存分配的几种方式
    外存:CPU缓存及内存以外的存储器, 如硬盘/光盘等。
    分配方式:
    1. 连续分配:创建文件时,分配一组连续的块, FAT中每个文件只需要一项,用以说明起始块及文件大小。
    2. 链式分配: 文件存放在若干不连续的物理块,各块之间通过指针连接。
    3. 索引分配: 每个文件在FAT中有一个一级索引, 包含文件各个分区的入口;这个索引信息保存在单独个一个块当中, 作为文件的访问入口。
    • CPU中的缓存及OS中的缓存
    CPU缓存: 介于CPU与内存之间的临时存储器, 有一级/二级/三级缓存之分;
    系统缓存: 如块表,用于存放当前访问最频繁的少量活动页,提高数据存取速度。通过需要存取的数据所在逻辑地址,在块表中找到其对应的内存块地址, 结合其页偏移地址获得物理地址;如果块表中没有该逻辑页号,则通过查询空闲块来更新块空闲区信息;如果块表没有空闲区,则通过算法来淘汰块表中某一行,并填入新的空闲区。
    展开全文
  • 计算机操作系统核心知识点总结&面试笔试要点

    万次阅读 多人点赞 2019-08-14 22:00:41
    操作系统之基础篇 一、 操作系统概述  1. 操作系统的演进   无操作系统:人工操作,用户独占,CPU等待人工操作,资源利用率很低。   批处理系统:批量输入任务,无需等待人工操作,资源利用率提升,提出多道...

    操作系统之基础篇

    一、 操作系统概述

    1. 操作系统的演进
      无操作系统:人工操作,用户独占,CPU等待人工操作,资源利用率很低。
      批处理系统:批量输入任务,无需等待人工操作,资源利用率提升,提出多道程序设计。
      分时系统:人-机交互,多用户共享,资源利用率提升,及时调试程序。
      关于多道程序设计:是指在计算机内存中同时存放多个程序,多道程序在计算机的管理程序之下相互穿插运行。
    2. 操作系统的定义与目标
      定义:管理硬件,提供用户交互的软件系统。
      目标:方便性,有效性(提高系统资源的利用率、提高系统的吞吐量),可扩充性,开放性。
    3. 操作系统的基本功能
       统一管理计算机资源:处理器资源,IO设备资源,存储器资源,文件资源…
      实现了对计算机资源的抽象:IO设备管理软件提供读写接口,文件管理软件提供操作文件接口…
      提供了用户与计算机之间的接口:图像窗口形式,命令形式,系统调用形式…
    (6-2-1154)
     4. 操作系统的基本特性
      a.并发性
       并行:指两个或多个事件可以在
    同一个时刻
    发生;
       并发:指两个或多个事件可以在同一个时间间隔发生。
    (6-2-1619)
      b.共享性:操作系统的中资源可供多个并发的程序共同使用,这种形式称之为资源共享
       互斥共享:当资源被程序占用时,其它想使用的程序只能等待。
       同时访问:某种资源并发的被多个程序访问。
       c.虚拟性:表现为把一个物理实体转变为若干个逻辑实体
       时分复用技术:资源在时间上进行复用,不同程序并发使用,多道程序分时使用计算机的硬件资源,提高资源的利用率。
       空分复用技术:用来实现虚拟磁盘(物理磁盘虚拟为逻辑磁盘,电脑上的C盘、D盘等)、虚拟内存(在逻辑上扩大程序的存储容量)等,提高资源的利用率,提高编程效率。
      d.异步性:在多道程序环境下,允许多个进程并发执行,但由于资源等因素的限制,使进程的执行以“停停走走”的方式运行,而且每个进程执行的情况(运行、暂停、速度、完成)也是未知的。
    二、进程管理
    1. 进程实体
      a.为什么需要进程
       ·进程是系统进行资源分配和调度的基本单位;
       ·进程作为程序独立运行的载体保障程序正常执行;
       ·进程的存在使得操作系统资源的利用率大幅提升。
      b.进程控制块(PCB):用于描述和控制进程运行的通用数据结构,记录进程当前状态和控制进程运行的全部信息。
      c.进程(Process)与线程(Thread):
       线程:操作系统进行运行调度的最小单位。
       进程:系统进行资源分配和调度的基本单位。
       区别与联系:一个进程可以有一个或多个线程;线程包含在进程之中,是进程中实际运行工作的单位;进程的线程共享进程资源;一个进程可以并发多个线程,每个线程执行不同的任务。
    (6-3-1300)
    2. 进程的五状态模型
      就绪状态:其它资源(进程控制块、内存、栈空间、堆空间等)都准备好、只差CPU的状态。
      执行状态:进程获得CPU,其程序正在执行。
      阻塞状态:进程因某种原因放弃CPU的状态。
      创建状态:创建进程时拥有PCB但其它资源尚未就绪。
      终止状态:进程结束由系统清理或者归还PCB的状态。
    (6-4-0839)
    3.进程同步
      a.生产者-消费者问题:有一群生产者进程在生产产品,并将这些产品提供给消费者进程进行消费,生产者进程和消费者进程可以并发执行,在两者之间设置了一个具有n个缓冲区的缓冲池,生产者进程需要将所生产的产品放到缓冲区中(+1操作),消费者进程可以从缓冲区取走产品消费(-1操作)。
    (6-5-0207)
       产生问题:当两者并发执行时可能出差错,如下图:
    (6-5-0627)
       当执行生产者+1和消费者-1操作之后,缓冲区的值从10变为了11
       程序实例–>https://blog.csdn.net/huanglei305/article/details/99621301
      b.哲学家进餐问题:有5个哲学家,他们的生活方式是交替的思考和进餐,哲学家们共同使用一张圆桌,分别坐在5张椅子上,圆桌上有5只碗和5只筷子。平时哲学家们只进行思考,饥饿时则试图取靠近他们的左右两只筷子,只有两只筷子都被拿到的时候才能进餐,否则等待,进餐完毕后,放下左右筷子进行思考。
    (6-5-1110)
       产生问题:(6-5-1238)
      c.进程同步的作用对竞争资源在多进程间进行使用次序的协调,使得并发执行的多个进程之间可以有效使用资源和相互合作。
      d.进程间同步的四原则
       空闲让进:资源无占用,允许使用;
       忙则等待:资源被占用,请求进程等待;
       有限等待:保证有限等待时间能够使用资源;
       让权等待:等待时,进程需要让出CPU。
      e.进程同步的方法(重要,后面详细讲解):消息队列,共享存储,信号量
      f.线程同步的方法(重要,后面详细讲解):互斥量,读写锁,自旋锁,条件变量
    4. Linux的进程管理
      a.进程的类型
       前台进程:具有终端,可以和用户交互;
       后台进程:基本不和用户交互,优先级比前台进程低;
       守护进程:特殊的后台进程,在系统引导时启动,一直运行直到系统关闭,如crond、sshd、httpd、mysqld…
      b.进程的标记
       进程ID:非负整数,进程的唯一标记,每个进程拥有不同的ID;
       进程的状态标记:R表示进程处于运行状态,S表示进程处于睡眠状态…
      c.操作Linux进程的相关命令
       ps命令:列出当前的进程,结合-aux可以打印进程的详细信息(ps -aux);
       top命令:查看所有进程的状态;
       kill命令:给进程发送信号。
    三、作业管理
    1.进程调度
      定义:指计算机通过决策决定哪个就绪进程可以获得CPU使用权
      方法:
       非抢占式调度:处理器一旦分配给某个进程,就让该进程一直使用下去,直到进程完成工作或IO阻塞才会让出处理器。
       抢占式调度:允许调度程序以一定的策略暂停当前运行地进程
    (6-7-0636)
      步骤:
       保留旧进程的运行信息,请出旧进程(收拾包袱);
       选择新进程,准备运行环境并分配CPU。
      a.三个重要的机制:
       就绪队列的排队机制:为了提高进程调度的效率,将就绪进程按照一定的方式排成队列,以便调度程序可以最快找到就绪进程。
       选择运行进程的委派机制:调度程序以一定的策略,选择就绪进程,将CPU资源分配给它。
       新老进程的上下文切换机制:保存当前进程的上下文信息,装入被委派执行进程的运行上下文。
      b.进程调度算法
       先来先服务算法:按照在就绪队列中的先后顺序执行。
       短进程优先调度算法:优先选择就绪队列中估计运行时间最短的进程,不利于长作业进程的执行
       高优先权优先调度算法:进程附带优先权,优先选择权重高的进程,可以使得紧迫的任务优先处理
       时间片轮转调度算法:按照FIFO的原则排列就绪进程,每次从队列头部取出待执行进程,分配一个时间片执行,是相对公平的调度算法,但是不能保证就是响应用户
    2.死锁:是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。 此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
      a.死锁的产生:竞争资源(共享资源数量不满足各进程需求)、进程调度顺序不当,如下图,当调度顺序为A->B->C->D时会产生死锁,但改为A->D->B->C则不会产生。
    (6-8-0519)
      b.死锁的四个必要条件:
       互斥条件:进程对资源的使用是排他性使用,某资源只能由一个进程使用,其它进程需要使用只能等待。
       请求保持条件:进程至少保持一个资源,又提出新的资源请求,新资源被占用,请求被阻塞,被阻塞的进程不释放自己保持的资源。
       不可剥夺条件:进程获得的资源在未完成使用前不能被剥夺(包括OS),只能由进程自身释放。
       环路等待条件:发生死锁时,必然存在进程-资源环形链.
      c.死锁的处理
       预防死锁的方法:破坏四个必要条件的中一个或多个。
        破坏请求保持条件:系统规定进程运行之前,一次性申请所有需要的资源。
        破坏不可剥夺条件:当一个进程请求新的资源得不到满足时,必须释放占有的资源。
        破坏环路等待条件:可用资源线性排序,申请必须按照需要递增申请。
      银行家算法:客户申请的贷款是有限的,每次申请需要申明最大资金量,银行家在能够满足贷款时,都应该给用户贷款,客户在使用贷款后,能够及时归还贷款。
      具体请移步–>https://blog.csdn.net/huanglei305/article/details/99637605
    四、存储管理
    1.内存分配与回收
      内存分配的过程:单一连续分配、固定分区分配、动态分区分配(根据实际需要,动态的分配内存)。
      动态分区分配算法:
       首次适应算法:分配内存时,从开始顺序查找适合内存区,若无合适内存区,则分配失败。
       最佳适应算法:要求空闲区链表按照容量大小排序,遍历以找到最佳适合的空闲区。
       快速适应算法:要求有多个空闲区链表,每个空闲区链表存储一种容量的空闲区。
      内存回收的过程:

    2.段页式存储管理
      页式存储管理:将进程逻辑空间等分成若干大小的页面,相应的把物理内存空间分成与页面大小的物理块,以页面为单位把进程空间装进物理内存中分散的物理块。
      段式存储管理:将进程逻辑空间分成若干段(不等分),段的长度由连续逻辑的长度决定。
      两者相比:(6-10-1022)
      段页式存储管理:现将逻辑空间按照段式管理分成若干段,再将内存空间按照页式管理分成若干页,分页可以有效提高内存利用率分段可以更好的满足用户需求
      三者分配内存之后的对比:
    在这里插入图片描述
    3.虚拟内存
      概述:实际是对物理内存的扩充,速度接近于内存,成本接近于辅存。
      局部性原理:指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中
      虚拟内存的置换算法:先进先出(FIFO)、最不经常使用(LFU)、最近最少使用(LRU)
    4.Linux的存储管理
      Buddy内存管理算法:为解决内存外碎片的问题,算法基于计算机处理二进制的优势具有极高的效率。
      Linux交换空间:交换空间(Swap)是磁盘的一个分区,Linux内存满时,会把一些内存交换至Swap空间,Swap空间是初始化系统时配置的。
      Swap空间与虚拟内存的对比:(6-12-1533)
    五、文件管理
    1.文件管理概述
      a.文件的逻辑结构:
       逻辑结构的文件类型:有结构文件(文本文件,文档,媒体文件)、无结构文件(二进制文件、链接库)。
       顺序文件:按顺序放在存储介质中的文件,在逻辑文件当中存储效率最高,但不适合存储可变长文件。
       索引文件:为解决可变长文件存储而发明,需要配合索引表存储。
      b.辅存的存储空间分配:
       辅存的分配方式:连续分配(读取文件容易,速度快)、链接分配(隐式链接和显式链接)、索引分配
       辅存的存储空间管理:
      c.目录管理:
       目录树:使得任何文件或目录都有唯一的路径。
    2.Linux文件的基本操作
      a.Linux目录:Linux一切皆文件。
    (6-14-0415)
    (6-14-0504)
      b.Linux文件常用操作:
       (目录/文件)创建、删除、读取、写入
      c.Linux文件类型:
    在这里插入图片描述
    3.Linux的文件系统
       文件系统概览:FAT、NTFS(对FAT进行改进)、EXT2/3/4(扩展文件系统,Linux的文件系统)
       EXt文件系统:(6-15-0455)
    六、设备管理
    1.广义的IO设备:
       按照使用特性分类:存储设备(内存、磁盘、U盘)和交互IO设备(键盘、显示器、鼠标)
       按照信息交换分类:块设备(磁盘、SD卡)和字符设备(打印机、shell终端)
       按照设备共享属性分类:独占设备,共享设备,虚拟设备
       按照传输速率分类:低速设备,高速设备
    2.IO设备的缓冲区:减少CPU处理IO请求的频率,提高CPU与IO设备之间的并行性。
    3.SPOOLing技术:虚拟设备技术,利用高速共享设备将低速的独享设备模拟为高速的共享设备,逻辑上,系统为每一个用户都分配了一台独立的高速独享设备。

    操作系统之提升篇(重点)

    一、线程同步的方法
    1.互斥锁
      互斥锁是最简单的线程同步的方法,也称为互斥量,处于两态之一的变量:解锁和加锁,两个状态可以保证资源访问的串行。
    (7-2-0103)
      原子性:指一系列操作不可被中断的特性,要么全部执行完成,要么全部没有执行。
    2.自旋锁
      自旋锁是一种多线程同步的变量,使用自旋锁的线程会反复检查锁变量是否可用,自旋锁不会让出CPU,是一种忙等待状态,即死循环等待锁被释放
      特点:避免了进程或者线程上下文切换的开销,但是不适合在单核CPU使用
    (7-3-0126)
    3.读写锁
      是一种特殊的自旋锁,允许多个读操作同时访问资源以提高读性能,但是对写操作是互斥的,即对多读少写的操作效率提升很显著。
    (7-4-0355)
    4.条件变量
      是一种相对比较复杂的线程同步方法,条件变量允许线程睡眠,直到满足某种条件,当满足条件时,可以给该线程信号通知唤醒
      例如,在生产者-消费者问题当中,规定当缓冲区小于等于时,不允许消费者消费,消费者必须等待;缓冲区满时,不允许生产者往缓冲区生产,生产者必须等待;即当生产者生产一个产品时,唤醒可能等待的消费者,当消费者消费一个产品时,唤醒可能等待的生产者。
    5.线程同步方法总结
      4种线程同步方法对比:
    在这里插入图片描述
    二、进程同步
    1.使用fork系统调用创建进程
      使用fork系统调用无参数,fork会返回两次,分别返回子进程id和0,返回子进程id的是父进程,返回0的是子进程。
    2.共享内存
      在某种程度上,多进程是共同使用物理内存的,但是由于操作系统的进程管理,进程间的内存空间是独立的,因此进程默认是不能访问进程空间之外的内存空间的
      共享存储允许不相关的进程访问同一片物理内存,共享内存是两个进程之间共享和传递数据最快的方式,但是共享内存未提供同步机制,所以需要借助其它机制管理访问。即共享内存是高性能后台开发中最常用的进程同步方式。
    (7-8-0259)
    3.Unix域套接字
      域套接字是一种高级的进程间通信的方法,可以用于同一机器进程间通信。
      套接字(socket):为网络通信中使用的术语。
      Unix系统提供的域套接字提供了网络套接字类似的功能,如Nfinx、uWSGI等。
      服务端和客户端分别使用Unix域套接字的过程:
    (7-9-0247)

    操作系统之实践篇

    实现支持异步任务的线程池
    关于线程池
     线程池:线程池是存放多个线程的容器,CPU调度线程执行后不会销毁线程,将线程放回线程池重新利用。
    使用线程池的原因:
      1.线程是稀缺资源 ,不应该频繁创建和销毁;
      2.架构解耦,业务创建和业务处理解耦,更加优雅;
      3.线程池是使用线程的最佳实践。
    1.实现线程安全的队列Queue
     队列:用于存放多个元素,是存放各种元素的“池”。
     实现的基本功能:获取当前队列元素数量,往队列放入元素,往队列取出元素。
     注意:队列可能有多个线程同时操作,因此需要保证线程安全,如下两种情况:
    在这里插入图片描述
     具体实现:https://blog.csdn.net/huanglei305/article/details/99701518
    2.实现基本任务对象Task
     任务处理逻辑:
      实现的基本功能:任务参数,任务唯一标记(UUID),任务具体的执行逻辑
     具体实现:https://blog.csdn.net/huanglei305/article/details/99701991
    4.实现任务处理线程ProcessThread
     任务处理线程需要不断地从任务队列里取任务执行,任务处理线程需要有一个标记,标记线程什么时候应该停止。
     实现的基本功能:基本属性(任务队列、标记),线程执行的逻辑(run),线程停止(stop)。
    5.实现任务处理线程池Pool
     存放多个任务处理线程,负责多个线程的启停,管理向线程池的提交任务,下发给线程去执行。
     实现的基本过程:基本属性,提交任务(put,batch_put),线程启停(start,join),线程池大小(size)。
     具体实现:https://blog.csdn.net/huanglei305/article/details/99702434
    6.实现异步任务处理AsyncTask
     给任务添加一个标记,任务完成后,则标记为完成;任务完成时可直接获取任务运行结果;任务未完成时,获取任务结果,会阻塞获取线程。
     主要实现的两个函数:设置运行结果(set_result),获取运行结果(get_result)
     具体实现:https://blog.csdn.net/huanglei305/article/details/99703371

    展开全文
  • U盘安装系统必要知识点 当我们用U盘安装Windows系统时,必要了解区分它的启动方式,否则将发生安装失败或启动不了的情况,启动方式详见下表(红色标识为重要): 引导启动方式 Legacy ...

                                          U盘安装系统必要知识点

     

            当我们用U盘安装Windows系统时,必要了解区分它的启动方式,否则将发生安装失败或启动不了的情况,启动方式详见下表(红色标识为重要):

     

    引导启动方式

    Legacy

    UEFI

    支持分区表格式

    MBR

    GPT

    可识别容量大小

    2T

    无限制

    支持主分区数量

    4

    128

    支持系统(Windows)

    无限制

    Win8/10

    支持系统位数

    32&64

    64

    支持系统镜像

    GHO&ISO

    ISO

    支持U盘格式

    NTFS&FAT32

    FAT32

    新旧机器支持

    新旧机器都支持

    新机器支持

    优点

    稳定兼容

    启动速度快

     

    现在新机器都支持Legacy和UEFI两种启动方式,但是为了提高启动速度,新机器默认只开启UEFI启动,如需U盘安装Legacy启动系统(大部分是用Legacy方式安装系统),启动U盘将识别不出,需要在BIOS中设置以下几点:

    OS Optimized Defaults(系统默认优化设置)设置为Disable(关闭);

    //关闭系统默认设置//

    CSM(兼容模块)设置为Enable(打开);

    //允许兼容LegacyUEFI两种方式//

    Secure Boot(安全启动)设置为Disable(关闭);

    //安全启动为UEFI专有,Legacy无需设置,CSM相冲突,二者只能开启一个//

    Boot Mode(启动方式)设置为Legacy only(Legscy);

    //设置启动方式为Legacy启动//

    展开全文
  • 《数据库系统》期末复习知识点总结(全)

    万次阅读 多人点赞 2020-12-15 21:05:54
    目录 1. 数据库系统基础 1.1 数据库系统概述 基本概念 数据独立性 1.2 概念模型 ...数据库系统:数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Ad...
  •   项目管理本质上是知识,包括各种技术,例如工作分解结构(WBS)、关键路径分析和挣值管理,所以第二节是项目管理知识体系构成,如下图所示:   IPMP/PMP和PRINCE2是知识认证。也就是第三节和第四节的内容。  ...
  • 操作系统知识点——文件系统

    千次阅读 2018-07-09 14:51:17
    一、文件的基本概念(一)文件的概念文件是具有文件名的一组相关元素集合,在文件系统中是一个最大的数据单位,它描述了一个对象集,每个文件都有一个文件名,用户通过文件名来访问文件。文件表示的范围很广,系统或...
  • 计算机操作系统知识点汇总(一)

    千次阅读 2018-01-21 20:28:14
    1、计算机系统是一个复杂系统,其包括硬件资源(中央处理器、主存储器、各种外围设备)和软件资源(程序、数据)。 2、计算机系统的硬件主要是中央处理器(CPU)、存储器、输入输出控制系统和各种输入输出设备组成...
  • 系统分析与设计知识点总结

    千次阅读 多人点赞 2016-06-19 14:06:07
    系统开发与分析复习资料——大连理工大学
  • 《计算机操作系统(第四版)》知识点归纳

    万次阅读 多人点赞 2016-11-06 19:52:34
    《计算机操作系统(第四版)》的前7章知识点归纳
  • 写这篇文章的目的是想总结一下自己这么多年来使用Java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能...
  • 嵌入式系统启动过程

    千次阅读 2014-09-11 16:23:22
    由前面知识可知,通常嵌入式系统由两种启动方式:硬盘启动、ROM启动。S3C2440内核支持上述两种启动方式。 (1)S3C2440的Nandflash启动系统选择从Nandflash启动之后,硬件自动将0x0地址映射到Stepping ...
  • 操作系统知识点——设备管理

    万次阅读 2018-07-10 21:16:40
    整个系统只有一张系统设备表,记录了已经连接到系统中的所有物理设备的情况,每个设备占有一个表目。 (二) 设备分配策略 (1) 设备是使用性质 1、独享设备。 2、共享设备。 3、虚拟设备。 (2) 设备分配算法 1、...
  • 1、熟记九大管理系统。所谓的“九五至尊”,横向是九大管理体系;纵向是5大过程组。 1)横向——九大管理体系记忆方法:狗子整范进,成人风采。 狗=沟通; 子=质量; 整=整体; 范=范围; 成=成本; 成=成本...
  • 这里可以跳转到教程。” 推荐系统的UserCF算法和ItemCF算法都是以拥有大量用户行为数据为先决条件,并以此对物品或者用户进行自动聚类。但是对于一个刚刚开始运行推荐系统的应用的网站来说,如何在没有大量用户...
  • 计算机操作基础知识点总结

    万次阅读 多人点赞 2019-02-21 16:09:17
    10.操作系统 二、CPU型号: 1.INTEL 1)主频:2.8-3.7GHZ 2)核心:双核、四核、八核、十核 3)高速总缓冲:2-20MB 4)优点:发热性小,稳定,兼容性好 2.AMD 1)主频:3.0-4.0GHZ 2)核心:双核、四核、八核 3)高速总缓冲...
  • 计算机操作系统第四版第一章知识点归纳总结

    千次阅读 多人点赞 2018-06-27 09:59:36
    第一章、操作系统引论一、操作系统基础1、操作系统的定义:操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配,以提供给用户和其他软件...
  • 网络工程师考试知识点

    千次阅读 多人点赞 2019-05-30 10:45:08
    网络工程师考试知识点 1、常用的虚拟存储器由主存-辅存两级存储器组成 2、中断向量可提供中断程序的入口地址 3、DMA工作方式下,在主存与外设之间建立直接的数据通信。 4、PERT不能清晰描述各个任务之间的并行...
  • Linux是一个多用户多任务的操作...Linux使用标准的目录结构——树型结构,无论操作系统管理几个磁盘分区,这样的目录树只有一个,树根为/ (斜杠:/ slash, 反斜杠:\ backslash)。 Linux的目录树 v /bin 
  • Android群英传知识点回顾——第一章:Android体系与系统架构 知识点回顾 Google生态系统 Android系统架构
  • 计算机网络核心知识点总结&面试笔试要点

    万次阅读 多人点赞 2019-08-21 22:22:23
      拥塞控制的方法:慢启动算法+拥塞避免算法,如下图,纵坐标表示每一次发送数据报文的数量,横坐标表示发送的次数:  8.TCP连接的三次握手   如图所示,具体标记详见上面3.TCP标记的含义与作用:   问:为...
  • 一、系统启动顺序 启动第一步--加载BIOS,获取硬盘、内存、cpu等硬件信息; 启动第二步--读取MBR,获取MBR内容,将其复制到0×7c00地址所在的物理内存中,即 BootLoader(grub 等) 启动第三步--执行Boot...
  • JAVA重要知识点梳理(一)

    千次阅读 2018-05-04 11:25:25
    1、Struts2和SpringMVC的...(2)集中访问不同:都属于前端控制器,用于接收请求、处理请求和生成响应,但集中访问不同,前者为Filter,后者为Servlet;(3)请求处理粒度不同:前者一个Action对应一个请求上...
  • 运维知识点回顾

    千次阅读 2019-02-28 09:40:02
    ps -aux | grep mysql && kill -9 10478(先杀掉跳过授权表的进程) && kill -9 10624(mysql服务启动后的进程) systemctl start mariadb  2. 创建用户和删除用户: create user terry@localhost ...
  • 微机原理与接口技术知识点整理复习--纯手打

    万次阅读 多人点赞 2018-07-03 20:22:01
    明天就要考试了,来一波知识点整理。都会了,期末考试你不过你来找我! 第一章 1.按微处理器的字节分类 4 位微处理器 8 位微处理器 16位微处理器 32位微处理器 2.这个必须背,不是简答就是简答,肯定出...
  • Java知识点全面汇总

    万次阅读 多人点赞 2018-05-27 10:57:14
    在四种引用类型中已经做了解释,这里简单说明一下即可:  虽然 WeakReference 与 SoftReference 都有利于提高 GC 和 内存的效率,但是 WeakReference ,一旦失去最后一个强引用,就会被 GC 回收,而软引用虽然不...
  • Linux知识点总结(思维导图,建议收藏)

    万次阅读 多人点赞 2021-05-26 14:47:51
    八、磁盘分区、逻辑卷和启动修复 九、Shell篇认识BASH 十、Shell篇基础命令 十、文本操作篇 一、基础篇 二、帮助命令 三、文件与目录管理(一) 四、文件与目录管理(二) 五、权限管理 六、Vim文本编辑器 六...
  • 计算机组成原理核心知识点总结&面试笔试要点

    万次阅读 多人点赞 2019-08-13 14:04:07
    作为一名计算机专业的学生,计算机组成原理、计算机网络、操作系统这三门课程可以说是专业核心基础课,是至...而且很多互联网公司在笔试和面试中都会涉及到这三门课程的知识点,因此我通过视频学习对这三门课程就行...
  • O32系统知识点积累

    千次阅读 2020-07-16 17:14:56
    O32系统知识点积累 刷新数据按钮点击之后可以打开导出内存表界面
  • 浅谈操作系统-启动过程

    万次阅读 多人点赞 2017-12-23 13:41:45
    前言时光匆碌,不知不觉都大三了,在众多的专业课的学习中也算是找到了一些乐趣,纸上得来终觉浅,所以决定完整的回顾一下整个操作系统知识,为了理论与实践相结合,以学校实验室的EOS操作系统为例进行实践操作,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 285,876
精华内容 114,350
关键字:

启动系统知识点

友情链接: ezusb_lib.rar