操作系统各章复习.docx
- 文档编号:8454372
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:24
- 大小:924.63KB
操作系统各章复习.docx
《操作系统各章复习.docx》由会员分享,可在线阅读,更多相关《操作系统各章复习.docx(24页珍藏版)》请在冰豆网上搜索。
操作系统各章复习
操作系统各章复习
第一章:
操作系统概论
1从功能以及程序涉设计的角度说明计算机系统中软件系统是如何构成的?
答:
分为系统软件,支撑软件和应用软件三层。
2什么是操作系统?
请举例说明操作系统在计算机系统中的重要地位。
答:
操作系统是计算机系统中的一个系统软件,是一些程序模块的集合。
它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能
使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能安全高效地运行。
操作系统是硬件基础上的第一层扩充,是其它软件和硬件的接口。
3操作系统的基本特征是什么?
说明他们之间的关系。
答:
1.并发性:
计算机系统中存在多个程序同时向前推进。
2.共享性:
3.随机性:
不能对运行的程序的行为以及硬件设备的情况作出任何假定。
操作系统正处于生么样的状态之中是无法确切知道的。
4什么是批处理系统
将许多用户的作业组成一批作业,输入到计算机中,在系统中形成一个自动转接、的连续的作业流,操作系统自动、依次执行每个作业。
得到结果。
作业:
程序、数据、作业说明书
特点:
成批处理
优点:
自动化较高、资源利用率高
缺点:
无法交互
多道的含义:
允许存中同时存在多个程序,CPU切换的方式为之服务。
5SPOOLing系统特点
作业进入到磁盘上的输入井,系统按某种调度策略选择几个搭配得当的作业,调入存。
作业运行的结果输出到磁盘上的输出井,之后再从磁盘上的输出井将结果送到打印机。
用磁盘设备模拟输出设备,为虚拟机打下基础。
6什么是分时系统
一台主机连接多个终端,用户交互式的向系统提出命令请求,系统采用时间片轮转的方式处理服务请求,并通过交互方式在终端上显示结果,用户根据结果发出下道命令。
特征:
多路性:
宏观上看是多个人同时使用一个CPU
交互性:
独占性:
用户感觉CPU是只给自己服务的
及时性:
追求目标:
及时响应
7什么是实时操作系统
对外部请求在严格时间围作出响应的系统
及时性、高可靠性
分为:
实时过程控制,实时信息处理。
8个人计算机操作系统
计算机在同一时间为单用户服务
追求:
界面友好、使用方便。
9引入多道程序设计技术的起因和目的是什么?
多道程序系统的特征是什么?
多道程序设计特征:
允许多个程序同时存在于主存之中,由中央处理器以切换的方式服务,使得多个程序可以同时执行。
目的:
计算机资源“串行”被占有效率低。
10航天航空,核变研究(嵌入式操作系统),民航订票系统(批处理系统)
11网络操作系统
目的:
相互通信、资源共享
12分布式操作系统
与网络操作系统相比的特点:
统一的操作系统(共同完成一个任务)、资源进一步共享(所有资源共享),透明性(一台主机,屏蔽了地理位置的差异),自治性(主机地位平等)
13操作系统的设计
(1)设计目标:
可靠性、高效性(目态下运行时间+管态下为用户工作时间/总时间)、易维护性、可移植性、安全性、可适应性、简明性。
(2)体系结构
●整体式结构:
有点结构紧密、接口简单、效率高;各模块互相牵连(形成循环),转接随便,限制了并发性。
●层次式结构:
各层之间的模块只能单向依赖或者单向调用
●微核结构(客户、服务器结构):
优点可靠、灵活、适宜分布计算,缺点:
信息传递效率低
第二章:
操作系统的硬件环境
1层次化存储系统提升系统效能的关键是什么?
程序访问的局部性原理:
在短时间,程序使用的代码和数据比较稳定的保持在一个存储器的局部区域中。
2什么是中断,中断的作用是什么?
中断处理的主要步骤是什么?
多个中断同时发生时,系统如何处理?
中断定义:
CPU对系统中或系统外发⽣的异步事件作出的响应。
中断作用:
1)最初是设备向处理器报告“已完成操作”的手段
2)解决了处理器和外设并行工作的问题,避免CPU不断查询等待,提高处理器使用效率
3)提高系统的实时能力
中断系统:
中断装置(硬件)、中断处理程序
中断处理的主要步骤:
1.硬件设备产生中断信号
2.处理器执行完当前指令后响应中断(在中断未屏蔽的前提下)
3.处理器发送中断应答信号
4.保护现场
暂停当前程序运行。
硬件将中断点的现场信息(PSW,PC,寄存器信息)保存到核心栈。
5.处理器切换到管态
6.按照中断源查询中断向量表,PC置为中断处理程序入口地址
7.转向中断/异常事件的处理程序
8.恢复现场
发现多个中断源时:
1.处理一个中断时禁止中断。
中断期间发生的中断将挂起,处理器再次允许中断时,这个中断信号被检测并处理。
中断严格按照发生的顺序被处理。
2.按照中断优先度分级,高优先级允许嵌套,低优先级延后处理。
3中断和异常有什么区别?
中断(异步中断):
是由现行指令无关的中断信号触发的。
异常(同步中断):
由处理器正在执行的现行指令引起的。
包括出错和陷入,出错保存指向触发异常的那条指令,而陷入指向触发异常的下一条。
因此当返回时,出错会重新执行那条指令,陷入会执行下一条指令。
异常处理中可能发生中断,反之不会。
4什么是系统调用,什么时候发生系统调用,系统调用的过程是什么?
系统调用:
用户在程序中调用操作系统提供的子功能,是操作系统提供给编成人员的唯一接口。
发生:
用户在程序中调用操作系统提供的子功能
系统调用的过程:
1.用户使用操作系统调用
2.处理机执行该指令时发生相应的中断切换到管态,通知陷入机构(异常处理机构)接手。
3.陷入处理机构保存中断点的程序执行上下文环境(PSW,PC和其他的一些寄存器),取系统调用功能号,并找到程序入口。
4.执行系统子程序
5.返回陷入处理机构,恢复中断处上下文,切换到目态,继续执行。
5什么是存储保护?
有何作用?
操作系统与硬件如何配合来实现存储保护?
存储保护:
对存中的信息加以严格保护,使操作系统核及其他程序不被破坏的机制。
作用:
保证在同一台机器上运行的多个程序互不侵犯。
防止一个用户程序去访问其他用户程序的数据。
保护操作系统免受用户程序的破坏。
如何:
界限寄存器,在CPU中设置一对界限寄存器来存放该用户作业在存中的界限,每当CPU访问存就比较判断越界,越界产生越界中断。
存储键,每个存储块,附上一个存储保护键,当一个用户作业被允许进入存的时候,操作系统分给它一个唯一的存储键号。
当程序在CPU上运行时,将其存储键号写入PSW,每当CPU访问存是,豆浆该存块的存储键与PSW中的钥匙进行比较,如果匹配则允许访问。
6常用的I/O控制技术有哪些?
各有什么特点?
程序控制:
I/O设备设置I/O状态寄存器,处理器定期轮询,直到处理完毕
中断驱动:
I/O准备好与进行交互的时候发送中断请求通知处理器
DMA(直接存储器访问):
开始传送时CPU告知DMA传送的具体信息,DMA控制器接管总线,完成数据的传送,再通过中断的方式告知CPU。
DMA受处理器控制。
通道:
是独立于中央处理器的、专门负责数据I/O传输工作的处理单元,对外设进行统一管理。
使CPU与外设并行工作。
7为什么要采用缓冲技术?
常用的缓冲技术有哪些?
它是如何工作的?
缓冲区:
硬件设备之间传输数据时专门用来暂存这些数据的一个存储区域。
缓冲区特点:
保持工作区不被长时间占用,与设备联系而非用户,可供多个用户访问。
为什么使用:
解决部件之间速度不匹配。
常用技术:
Cache技术
工作方式:
8虚拟设备:
第四章进程管理
1什么是程序?
程序:
时间上按严格次序前后相继的指令或语句序列,体现了某种算法,所有程序是都是顺序的。
2程序的运行环境
3什么是进程?
进程由什么组成?
进程:
具有某个独立功能的程序关于某个数据集合上的一次动态执行过程,是系统进行资源分配和调度的单位。
组成:
数据+程旭+进程控制块
特性:
并发性、独立性(CPU调度的基本单位)、异步性、动态性
4进程的创建与撤销
一。
进程创建原语
进程创建要完成以下工作:
1。
创建一个PCB(找一个空PCB)
2。
为进程分配存等必要资源。
3。
填写PCB中各项目
4。
把其插入进程就绪队列。
二。
进程撤消原语
1。
收回进程所占有的资源。
2。
撤消该进程的PCB。
5什么是PCB?
PCB:
为了管理进程设置的专门的数据结构,记录着进程的外部特征(调度星系),描述进程动态的运动变化过程(现场信息)。
是构成进程的三要素:
程序+数据+PCB
6五状态和七状态进程模型
新增了那些状态?
是如何转换的?
五状态模型:
转换条件
新状态-》就绪态:
系统完成创建进程的必要操作。
运行-》退出态
七状态模型:
7进程通信的方式,并说明它们的原理
共享存:
相互通信的进程之间设有共享存,一组进程向该公共存中写,另一组进程从公共存中读,通过这种方式实现两组组进程间的信息交换。
消息机制:
消息缓冲通信:
根据“生产者-消费者”原理,利用存中公用消息缓冲区实现进程之间的信息交换。
信箱通信:
设立一个连接两个进程的通信机构—信箱,以发送、接受回答信件作为通信的基本方式。
管道通信:
在两个进程之间打开一个专用于进程之间通信的共享文件,发送进程从一端写入,接收进程从另一端读出。
8消息缓冲区通信机制
包含:
(1)消息缓冲区(数据结构)
(2)消息队列首指针
(3)互斥信号量m-mutex,互斥访问消息缓冲区
(4)同步信号量m-syn,用于告知是否有消息
(5)发送消息原语:
(6)接收消息原语
PV操作题:
9进程的调度算法有哪些?
先入先出算法
时间片轮转
最高优先级算法:
可抢占的,不可抢占的
多级队列(优先分级+先入先出)
第五章:
存储管理
1存储管理的功能有哪些?
解释地址映射
(1)存的分配、管理、回收:
记录每个存储区域的状态,实施分配,回收。
(分配:
动态分配和静态分配)
(2)存共享:
包括代码共享(要求为纯代码)和数据共享
(3)存储保护
(4)“扩充”存容量:
将存和外存结合起来使用
(5)地址映射(重定位):
将用户程序中的逻辑地址转换为物理地址
用户编译时-》符号名空间中的符号地址映射为指令可使用的数字地址(,分静态和动态(在程序装入时才))
编译后的目标代码-》相对地址(逻辑地址)
2什么是逻辑地址和物理地址?
逻辑地址:
用户的程序经过编译后形成的部标代码中,将首地址定为0,其余地址相对于首地址的偏移量成为其逻辑地址。
物理地址:
存中存储单元的实际地址,可由机器直接寻址。
3可变分区的管理
(1)基本思想
在装入程序的时候才划分分区,为程序分配的分区大小正好等于该程序的需求量。
(2)数据结构
已分配区表,空闲区表
(3)分配策略
1)首先适应算法:
找到第一个满足申请长度的空闲区
2)最佳适应:
第一个能满足申请长度的最小空闲区
3)最坏适应:
第一个能满足要求的最大空闲区
(4)优缺点
1)优点:
易实现,额外开销少,保护措施简单
2)缺点:
存使用不充分,碎片,拼接耗时;不能“扩充”
4在可变分区的管理方式下,什么是碎片?
如何解决碎片的问题?
碎片:
由于程序长度的随机性和程序进入、离开的任意性,在存中产生的一些小空闲空间。
他们每一个都很小不足以满足分配要求,但其总和可以满足分配要求。
解决方法:
拼接技术:
适时进行碎片整理,通过在存移动程序,把空闲碎片合并成一个连续的大空闲区
5页式存储管理
(1)基本思想:
一个程序的逻辑地址空间可以分布在若干离散的存块上。
存空间划分为等长区域(物理页面)
物理页面从0开始编号,称为块号,页号
物理页面从0开始编址,称为页地址
程序地址空间分为同样的等长区域,逻辑页面,逻辑页号,页地址
分配给用户相邻逻辑页面的物理页面不一定相邻
(2)数据结构
页表:
记录程序逻辑页面和物理页面的对应关系。
(逻辑页面号、对应的物理页面号。
只用存物理页面号4B就行了)
多级页表(存的是入口地址)
存分配表:
位示图+空闲块数
块号=字号(0开始)*字长+位号(0开始)
字号=[块号/字长];位号=块号Mod字长
(3)硬件支持:
页表始址寄存器,页表长度寄存器,快表(小容量相连存储器,由高速缓存器组成,比找存快)
(4)快表:
原因:
一次访问数据要访问两次存,时间长。
功能:
存储当前访问最频繁的少数活动页面的页号,特征位(是否为空)和访问位(是否被访问过)
(5)存储保护:
锁钥,扩充页表功能,增加存取控制项
(6)优点:
减少碎片,碎片大小小于一个页面,提高存利用率
非连续存储,为存中动态存储反复执行或即将执行的程序和数据打下基础
(7)缺点
最后一页,共享、保护、动态增长不自然
(8)地址映射过程
1)地址映射机制把CPU给出的逻辑地址分为两部分:
页号P和页地址D
并行发生以下过程
过程A:
2)将逻辑页号P和页表长度寄存器容比较,如果P大于等于页表长度L则产生越界中断
3)根据页表始址寄存器的容B得到页表在存的首地址,根据页号P找到对应的块号P’并将页号和块号写入快表空闲单元,如有必要还需淘汰一行以填充新容。
过程B:
4)在快表中查找逻辑页号P,如果找到则找到对应的块号P’,并停止过程A。
5)得到块号P’后,都将其与页地址D拼接起来形成访问存的地址。
(9)存的分配与回收
1)根据进程申请存容量计算一个作业所需要的总块数N。
2)查位示图,看看是否还有N个空闲块。
3)如果有相应空闲块,则页表长度为N,可填入PCB中。
(申请页表区,把页表始址填入PCB)。
4)分配N个空闲块,将块号和页号填入页表(页表号实际不用填写)。
5)修改位示图。
6)若没有足够空闲块,则本次请求无法满足。
6段式存储管理
(1)基本思想
用户程序按照逻辑上有意义的段划分。
每段对应于一个过程、一个程序模块、一个数据集合。
为每一个逻辑段分配一个连续的物理段,逻辑上连续的段存中不一定连续存放。
(2)与分区的不同:
为程序的每一个段分配一个连续存区。
(减小了最小分配空间的大小,也就减少了碎片)
(3)数据结构
段表:
(逻辑段号、物理段起始地址、物理段长度)
(4)硬件支持
段表始址寄存器,段表长度寄存器
(5)与页表地址映射过程比较:
段地址需要多一次和段表中段长度的比较。
(6)段式存储管理是二维编址:
二维:
以段为单位划分和连续存放,段间不一定是连续编址的。
(7)优点:
接近用户观点,可以充分实现共享和保护,段的动态增长。
(8)缺点
碎片问题,拼接耗时
7段页式存储管理
(1)基本思想:
段中分页
(2)数据结构:
段号、页号、页地址。
每个程序分为若干段,建段表,每个段建页表。
存分配表(位示图)
(3)硬件支持:
段表始址寄存器,段表长度寄存器
(4)缺点:
增加了访问的时间代价。
增加了额外的空间消耗。
8为何说段页式管理时虚拟地址仍是二维的?
因为程序仍是先按照逻辑上有意义的段划分。
之后各个逻辑段的容再进行非逻辑性编址。
所以还是二维的。
9程序的局部性原理
时间局部性:
被执行了的指令可能很快会再被执行
空间局部性:
某一存储单元被使用那么与该存储单元相邻的单元可能也会被立即使用。
10为何要引入虚拟存储器?
叙述虚拟段页式管理方案的基本思想
原因:
1.程序有可能大于存可用空间;
2.由于程序的局部特性,一个进程在任一阶段只需使用所占存储空间的一部分,未用到的存区域被浪费。
3.希望利用大容量的外存来扩充存,以便能够有效地支持多道程序系统的实现和大型程序运行的需要。
虚拟段页式管理方案的基本思想:
●在进程开始运行之前,不是装入全部页面,而是装入一个逻辑段中的一个或者0个页面,之后根据进程运行的需要,动态装入其它页面。
如果存空间已满,而有需要装入新的页面时,则根据某种算法淘汰某个页面,以便装入新页面。
●新的数据结构:
页表包含:
驻留位,访问位,修改位,存块号、外存地址。
11叙述缺页中断的处理流程
在地址映射的过程中,若在页表中发现所要访问的页面不在存,则产生缺页中断。
当发生缺页中断时,首先保留当前的进程现场,进入缺页中断处理程序。
检查存中是否有空闲页面:
如果有空闲页面,则调入所需页面,调整页表及存分配表,恢复被中断的进程现场。
如果没有空闲页面,则按照某种算法选择一页进行置换,如果该页被修改过还需把该页写回外存。
12页面置换算法
(1)OPT:
置换距离下次访问最久的
(2)LRU:
(最近最少使用)记录页面自上次被访问以来所经历的时间,每被访问一次都清0,每次页面置换后全部计时标志清0,相同的先来者先出。
(3)LFU(最不频繁使用)为每个数据项设计一个访问频次,当数据项被命中时,访问频次自增,在淘汰的时候淘汰访问频次最少的数据。
缺页中断时清空所有计数器。
13Belady异常现象是什么
使用FIFO算法时,四个页匡时的缺页数比三个页框时多
14影响缺页次数的因素
15抖动:
调度页面所需要的时间比程序实际运行的时间还多,系统效率急剧下降,崩溃。
第六章:
文件管理
1文件与文件系统的基本概念
文件:
带标识的(文件名)、在逻辑上有完整意义的信息项序列。
是一种抽象机制,提供了将信息保存在存储介质上,便于以后存取的方法。
文件系统:
操作系统中统一管理信息资源的一种软件。
(系统角度)在操作系统中存储、使用文件的接口(用户角度)
功能:
(1)存储空间的分配与回收
(2)文件从名字空间到地址空间的映射(检索)
(3)文件的共享与保护
(4)向用户和I/O提供接口
(5)保持系统的执行效率(!
文件系统在操作系统接口中占得比例最大)
2文件扩展名:
不大于3个字符
3文件目录:
把所有的FCB组织在一起,就构成了文件目录(是文件控制块的有序集合)。
以文件的形式存在外存构成目录文件
4UNIX中文件的分类
普通文件:
无结构的字符的集合
特殊文件:
设备文件,字符特殊文件,块特殊文件
目录文件:
文件的目录项组成的文件
5I节点
即UNIX中文件存在的标志、文件控制块FCB,是文件存在的标志。
命令接口和程序接口
核心,大部分功能
文件、目录、存储空间
6文件的逻辑结构
文件系统提供给用户的文件结构形式,它独立于物理存储结构。
分类:
✧无结构的字符流式文件(主流):
管理简单,含义由使用该文件的程序理解
✧记录式文件(定长和不定长):
格式有限、对用户限制大
Ø简单:
每一行作为一个记录
Ø复杂:
树形
存取方式:
顺序、随机(按记录键)、按键
7文件的物理结构
✧顺序结构
原理:
逻辑上连续的文件信息存放在连续编号的物理块中
特点:
存取速度快;文件不能动态增长,空间碎片
✧结构
原理:
逻辑上连续的文件存放在若干不连续的物理块中,每个物理块都有一个指针(不被用户所知,不被计入逻辑块长)指向后续物理块。
优点:
有利于文件动态扩充
缺点:
不适于随机存取(存取速度慢);磁头移动多效率低;存在可靠性问题;指针占用空间
✧索引结构
原理:
逻辑上连续的文件存放在不连续的物理块中,将指向每一个物理块的指针放在存的索引表中。
优点:
支持随机存取;文件可以动态增长
缺点:
磁头移动多;索引表本身空间开销
多重索引:
降低了文件的存取速度;索引表可以动态增加,可以随机存取。
8UNIX中的I节点
I节点是类似于FCB的数据结构,其中存放有文件物理结构的信息。
其中有若干盘块地址指针(假设15个)
1-12:
直接盘块
13:
一重间接盘块
14:
二重间接盘块
15:
三重间接盘块
9MS-DOS的FAT系统
盘区上有文件分配表,每个文件所对应的目录条目(在文件自己的FCB上)中包括文件的首块号,该首块在文件分配表中有对应行,对应行里包括该文件的第二快的块号。
如此链式下去。
文件分配表:
优点:
支持随机存取(找到文件的第I个块),也支持动态增长
10文件的保护与
保护:
防止因误操作而破坏文件
:
防止XX的用户访问文件
实现:
存取控制(检查权限、检查操作合法性)、口令密码
11存储设备的组成
组成:
驱动部分
存储介质(卷):
分类:
●顺序存取设备:
磁带
●随机存取设备(存取时间不依赖于位置):
磁盘
Ø磁盘特点:
磁道-》扇区(物理块,最小寻址单位和存取单位)
Ø访盘时间:
寻道时间、旋转定位时间、数据传输时间
Ø物理地址:
磁头号、柱面号、磁道号、扇区号
12
答:
首先认为根目录是常驻于存的。
由题,一个目录文件最多占4块。
如果要找A\D\G\H\K,首先要找到其FCB,最好的情况是就是次读取目录描述信息的时候都在第一块找到下级目录或者文件。
最坏情况就是每次读取目录描述信息的时候都在最后一个块找到下级的目录或者文件。
1.找到K的第一块的最好情况的过程:
读取目录文件A,在其第一块中找到目录文件D,在D目录文件中找到第一块G,在G目录文件中找到第一块H,在目录文件H中第一块找到K,访问K的FCB,其第一块即在一级链表中,通过链表找到第一块即可。
总共访问硬盘6次。
2.找到K最后一块的最好情况的过程:
读取目录文件A,在其第一块中找到目录文件D,在D目录文件中找到第一块G,在G目录文件中找到第一块H,在目录文件H中第一块找到K,K只有不多于10块,可以在一级链表访问到。
总共访问硬盘过程6次。
3.找到K第一块的最坏情况:
访问A需要找根目录的四块,访问D需要找A的四块,访问H需要找G的四块,访问K需要找H的四块。
访问K的第一块需要访问在其FCB中找到第一个磁盘地址,再访问这个地址。
故总共需要访问4*4+1+1=18次
4.找到K最后一块的最坏情况过程:
每次读取目录描述信息的时候都在最后一个块找到下级的目录或者文件。
所以访问A需要找根目录的四块,访问D需要找A的四块,访问H需要找G的四块,访问K需要找H的四块。
访问K的最后一块需要在FCB中找到二级链表块,二级链表中找到三级链表块,三级链表中找到其最后一块的,最后访问K的最后一块。
故总共需要访问4*4+5=21次
第七章:
设备管理
1SPOOLing技术
原理:
虚设备技术(在一类设备上模拟另一类设备的技术),用硬盘模拟输入输出设备
目的:
解决独占设备数量少,速度慢,不能满足多进程同时使用的要求,提升其效率
虚拟设备:
在一台共享设备上模拟若干台独享设备的操作,把独占设备变成逻辑上的共享设备,这种技术叫做虚拟设备技术。
关键技术是SPOOLing技术
2任务:
选择和分配I/O设备(包括多道程序竞争使用时的分配)
控制I/O设备与存之间的数据交换。
用户提供使用外部设备的方便接口
提高CPU与设备,外部设备与设备之间的并行工作能力
3设备的独立性
理解:
用户能独立于具体物理设备的特性而方便的使用设备。
如何实现:
为了实现设备的独立性,应引入逻辑设备和物理设备两个概念。
在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统执行时,是使用物理设备名称。
鉴于驱动程序是一个与硬件(或设备)紧密相关的软件,必须在驱动程序之上设置一层软件,称为设备独立性软件,以执行所有设备的公有操作、完成逻辑设备名到物理设备名的转换(为此应设置一逻辑设备表)并向用户层(或文件层)软件提供统一接口,从而实现设备的独立性。
采用层次化的设备管理软件结构。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 各章 复习
![提示](https://static.bdocx.com/images/bang_tan.gif)