ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

操作系统复习资料

2022-01-21 18:34:11  阅读:537  来源: 互联网

标签:操作系统 R2 R3 复习资料 算法 进程 资源 R1


题型分布与分值

1.选择题  25*1=25分

2.判断题  5*1=5分

3.简答题  5*5=25分

4.分析题  45分

英译中

 

分析题:

  1. 调度算法:先来先服务FCFS、短作业优先SJF、优先级调度算法PSA、时间片轮转调度RR、高响应比HRRN,平均周转时间,平均带权周转时间等

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

带权周转时间=周转时间÷运行时间

例1 假定在单CPU条件下,有A,B,C,D四个作业依次到达(后面的作业依次比前一作业迟到一个时间单位)。四个作业分别需要运行11,6,2和1个时间单位,如果系统采用FCFS的调度算法,请计算:

(1)各作业的周转时间

(2)系统此时的平均周转时间;

(3)各作业的带权周转时间;

(4)系统此时的平均带权周转时间

 作业      作业到达时间    运行时间    完成时间     周转时间       带权周转时间

 A                   0                    11               11                 11                     1

B                   1                     6                17                 16                   2.67

C                   2                     2                19                 17                   8.5

D                   3                     1                20                 17                   17

平均周转时间T=15.25

平均带权周转时间W=7.29

例2  有5个待执行的作业,分别是A,B,C,D,E,各自估计的运行时间是9、6、3、5、x。试问采用哪种运行次序使平均周转时间最短,其平均周转时间是多少?短作业优先调度算法具有最短的平均周转时间。

解:当0<x<3时,作业的运行次序为E,C,D,B,A:则平均周转时间=(x+(x+3)+(x+3+5)+(x+3+5+6)+(x+3+5+6+9))/5=(5x+48)/5。

当3≤x<5时,作业的运行次序为C,E,D,B,A:则平均周转时间=(3+(3+x)+(3+x+5)+(3+x+5+6)+(3+x+5+6+9))/5=(4x+51)/5。

当5≤x<6时,作业的运行次序为

C,D,E,B,A:则平均周转时间=(3+((3+5)+(3+5+x)+(3+5+x+6)+(3+5+x+6+9))/5=(3x+56)/5。

当6≤x<9时,作业的运行次序为C,D,B,E,A:则平均周转时间=(3+((3+5)+ (3+5+6)+(3+5+6+x)+(3+5+6+x+9))/5=(2x+62)/5。

当x≥9时,作业的运行次序为C、D、B、A、E:则平均周转时间=(3+((3+5)+(3+5+6)+(3+5+6+9)+(3+5+6+9+x))/5=(x+71)/5。

例3  假定在单CPU条件下有下列要执行的作业:

作业

运行时间

优先级

1

10

2

2

4

3

3

3

5

 作业到来的时间是按作业编号顺序进行的(即后面作业依次比前一个作业迟到一个时间单位)。

(1)用一个执行时间图描述在采用非抢占式优先级算法时执行这些作业的情况。

(2)对于上述算法,各个作业的周转时间是多少?平均周转时间是多少?

(3)对于上述算法,各个作业的带权周转时间是多少?平均带权周转时间是多少?

解:(1) 非抢占式优先级算法(3分)

(2) 和(3)

作业

到达时间

运行时间

完成时间

周转时间

带权周转时间

1

0

10

10

10

1.0

2

1

4

17

16

4.0

3

2

3

13

11

3.7

平均周转时间

12.3

平均带权周转时间

2.9

2.磁盘的调度算法:先来先服务FCFS、最短寻道时间优先SSTF、扫描算法SCAN

某磁盘组共有200个柱面,由外至内依次编号为0,…,199。I/O请求以10,100,191,31,20,150,32的次序到达,假定引臂当前位于柱面98处,对FCFS,SSTF,SCAN调度算法分别给出寻道示意图,并计算总移动量。对SCAN假定引臂当前移动方向由外向内。

FCFS

 

总移动量=(98-10)+(100-0)+(191-100)+(191-31)+(31-20)+(150-20)+(150-32)=88十90十91+160十11十130十118=688

SSTF

 

总移动量=(100-98)+(150-100)+(191-150)+(191-32)+(32-31)+(31-20)+(20-10)=2十50+41+159+1十11+10=274

SCAN

总移动量=(100-98)+(150-100)+(191-150)+(199-191)+(199-32)+(32-31)十(31-20)+(20-10)=2十50+41+8+167+1+11+10=290

3.逻辑地址转换相应的物理地址

某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:

页号

物理块号

0

3

1

7

2

11

3

8

则逻辑地址0A5C(H)所对应的物理地址是什么?要求:写出主要计算过程(十进制或十六进制均可)。

A5CH=0000 1010 0101 1100 B

由于每页为1K,所以十位前为页号,后十位为页内位移。

页号=000010B =2    

页内位移=10 0101 1100 B

根据页表,2页在11块=001011B

与页内位移拼接,物理地址=0010 1110 0101 1100 B =2E5C (H)

方法二:

0A5C(H) =2652 D

页号=2652 div 1024 =2

页内位移=2652 mod 1024 =604

块号=f(2)=11

物理地址=1024×11+604=11868

4.银行家算法、安全序列、安全状态,过程写清楚

例1   假定系统中有4个进程P1、P2、P3、P4,三种类型的资源R1、R2、R3,数量分别为9、3、6,在T0时刻的资源分配情况如下表所示。

(1)T0时刻是否安全?

(2)在T0时刻,若进程P2发出资源请求Request2(1,0,2),系统能否将资源分配给它?

解:(1)安全性检查

   资源 进程

Need

Allocation

Work

Work+Allocation

Finish

R1  R2  R3

R1  R2  R3

R1   R2   R3

R1   R2   R3

P2

1  0   2

4   1   1

2    1    2

6    2    3

T

P1

2  1   3

1   0   0

6    2    3

7    2    3

T

P3

1  0   3

2   1   1

7    2    3

9    3    4

T

P4

4  2   0

0   0   2

9    3    4

9    3    6

T

     可以找到安全序列(P2,P1,P3,P4),所以T0时刻系统是安全的。

  (2)P2提出资源请求Request2(1,0,2)

   Request2(1,0,2)<= Need2(1,0,2)

Request2(1,0,2)<= Available(2,1,2)

试分配,分配后的资源情况是

Available(1,1,0)    Need2(0,0,0)   Allocaltion2(5,1,3)

  分配后的安全性

   资源 进程

Need

Allocation

Work

Work+Allocation

Finish

R1  R2  R3

R1  R2  R3

R1   R2   R3

R1   R2   R3

P2

0  0   0

5   1   3

1    1    0

6    2    3

T

P1

2  1   3

1   0   0

6    2    3

7    2    3

T

P3

1  0   3

2   1   1

7    2    3

9    3    4

T

P4

4  2   0

0   0   2

9    3    4

9    3    6

T

     可以找到安全序列,分配后系统是安全的,所以系统可以将资源分配给它。

例2  系统有R1、R2和R3共3种资源,在T0时刻P1、P2、P3和P4这4个进程对资源的占用和需求情况如下表所示,此时系统的可用资源向量为(2,1,2)。试问:

(1)将系统中各种资源总数和此刻各进程对各资源的需求个数用向量或矩阵表示出来。

(2)如果此时P1和P2均发出资源请求向量Request(1,0,1),为了保证系统的安全性,应该如何分配资源给这两个进程?说明你所采用策略的原因。

(3)如果(2)中两个请求立即得到满足后,系统此刻是否处于死锁状态?

T0时刻4个进程对资源的占用和需求情况

进程

最大资源需求量

已分配资源数量

R1

R2

R3

R1

R2

R3

P1

3

2

2

1

0

0

P2

6

1

3

4

1

1

P3

3

1

4

2

1

1

P4

4

2

2

0

0

2

解:(1)系统中资源总量为某时刻系统中可用资源量与各进程已分配资源量之和,即:

(2,1,2)+(1,0,0)+(4,1,1)+(2,1,1)+(0,0,2)=(9,3,6)

各进程对资源的需求量为各进程对资源的最大需求量与进程已分配资源量之差,即:

(2)若此时P1发出资源请求Request1(1,0,1)按银行家算法进行检查:

·Request1(1,0,1)≤Need1(2,2,2)

·Request1(1,0,1)≤Available(2,1,2)

试分配并修改相应的数据,由此形成的资源分配情况如下表所示。

P1请求资源后的资源分配表

进程

Allocation

Need

Available

R1    R2    R3

R1     R2     R3

R1     R2     R3

P1

2      0     1

1      2      1

1      1      1

P2

4      1     1

2      0      2

P3

2      1     1

1      0      3

P4

0      0     2

4      2      0

再利用安全性算法检查系统是否安全,可用资源Available(1,1,1)已不能满足任何进程,系统进入不安全状态,此时系统不能将资源分配给P1。

若此时P2发出资源请求Request2(1,0,1),按银行家算法进行检查:

·Request2(1,0,1)≤Need2(2,0,2)

·Request2(1,0,1)≤Available(2,1,2)

试分配并修改相应的数据结构,由此形成的资源分配情况如下表所示。再利用安全性算法检查系统是否安全,可得到如下表所示的安全性检测情况,从该表中可以看出,此时存在一个安全序列{ P2,P1,P3,P4},故该状态是安全的,可以立即将P2所申请的资源分配给它。(安全序列不唯一)

P2请求资源后的资源分配表

进程

Allocation

Need

Available

R1     R2    R3

R1     R2     R3

R1     R2     R3

P1

1      0     0

2      2      2

1      1      1

P2

5      1     2

1      0      1

P3

2      1     1

1      0      3

P4

0      0     2

4      2      0

P2请求资源后的安全性检测表

进程

Work

Need

Allocation

Work+Allocation

Finish

R1   R2   R3

R1   R2   R3

R1   R2   R3

R1    R2    R3

P2

1   1   1

1   0   1

5   1   2

6    2    3

true

P1

6   2   3

2   2   2

1   0   0

7    2    3

true

P3

7   2   3

1   0   3

2   1   1

9    3    4

true

P4

9   3   4

4   2   0

0   0   2

9    3    6

true

(3)如果(2)中两个请求立即得到满足,此刻系统并没有立即进入死锁状态,因为这时所有进程没有提出新的资源申请,全部进程均没有因资源请求没得到满足而进入阻塞状态。只有当进程提出资源申请且全部进程都进入阻塞状态时,系统才处于死锁状态。

5.页面置换算法:先进先出算法FIFO、最近最久未使用算法LRU,缺页率等

例  在某个请求分页系统中,某程序在一个时间段内有如下的存储器引用:12、351、190、90、430、30、550(以上数字为虚存的逻辑地址)。假定内存中每块的大小为100B,系统分配给该作业的内存块数为3块。回答如下问题:

(1)对于以上的存储器引用序列,给出其页面走向。

(2)设程序开始运行时,已装入第0页。在先进先出页面置换算法和最久未使用页面置换算法(LRU算法)下,分别画出每次访问时该程序的内存页面情况;并计算出缺页中断次数和缺页率。

解:采用先进先出页面置换算法时页面置换情况如下表所示,从中看到,其缺页中断次数为5,其缺页率=5/7(0页不缺页!!)

采用LRU页面置换算法时页面置换情况如下表所示,从中看到,缺页中断次数为4,其缺页率=4/7

采用FIFO置换算法时页面置换情况

页面走向

0

3

1

0

4

0

5

物理块0

0

0

0

4

4

4

物理块1

3

3

3

0

0

物理块2

1

1

1

5

缺页否

采用LRU置换算法时页面置换情况

页面走向

0

3

1

0

4

0

5

物理块0

0

0

0

0

0

物理块1

3

3

4

4

物理块2

1

1

5

缺页否

6.P、V操作(wait、signal)

7.动态分区分配算法:首次适应算法、最佳适应算法、最坏适应算法等。

例  给定内存空闲分区,按地址从小到大为:100K、500K、200K、300K和600K。现有用户进程依次分别为212K、417K、112K和426K。回答以下问题:

(1)分别用首次适应算法、最佳适应算法和最坏适应算法将它们装入到内存的哪个分区?

(2)哪些算法能适合该进程序列?

解:设这5个内存空闲分区编号分别为1~5。

(1)首次适应算法:

 最佳适应算法:

 最坏适应算法的分配过程:

(2)采用首次适应算法和最坏适应算法,还剩需426KB的用户进程无分区能满足,应该等待。而最佳适应算法所有进程都能分配,所以最佳适应算法能适合该进程序列。

简答题:

1.操作系统的定义是什么?它的五大主要功能是什么?有什么基本特征?

答:(1)定义:操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。

(2)功能:存储器管理,处理机管理,设备管理,文件管理以及用户接口管理。

(3)基本特征:并发、共享、虚拟、异步。

2.什么是临界资源和临界区?一个进程进入临界区的调度原则是什么?

答:(1)临界资源:一次仅允许一个进程使用的资源。

临界区:把在每个进程中访问临界资源的那段代码称为临界区。

(2)原则:

  • 空闲让进。当无进程处于临界区时,表明临界资源处于空闲状态,应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。
  • 忙则等待。当已有进程进入临界区时,表明临界资源正在被访问,因而其它试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。
  • 有限等待。对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态。
  • 让权等待。当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。

3.什么是进程的互斥与同步?

答:(1)互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。

(2)同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。

4.为什么要引入进程的概念?它与程序的区别和联系是怎样的?

答:(1)在操作系统中,由于多道程序并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现走走停停的新状态。这些都是在程序的动态过程中发生的。用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。为此,人们引入进程这一概念来描述程序动态执行过程的性质。

(2)进程与程序的主要区别是:

  • 进程是动态的;程序是静态的。
  • 进程有独立性,能并发执行;程序不能并发执行。
  • 进程异步运行,会相互制约;程序不具备此特征。

(3)进程与程序的联系:进程不能脱离具体程序而虚设,程序规定了相应进程所要完成的动作。

5.批处理、分时和实时操作系统各有什么特点?

答:(1)批处理操作系统的主要特点是:脱机、多道和成批处理。脱机是指用户脱机使用计算机,即用户提交作业之后直到获得结果之前几乎不再和计算机打交道;多道是指多道程序运行,即按多道程序设计的调度原则,从一批后备作业中选取多道作业调入内存并组织它们运行;成批处理是指操作员把用户提交的作业组织成一批,由操作系统负责每批作业间的自动调度。

(2)分时操作系统的主要特点是:多路性、交互性、独占性和及时性。多路性是指一台计算机与若干台终端相连接,终端上的这些用户可以同时或基本同时使用计算机;交互性是指用户的操作方式是联机方式,即用户通过终端采用人-机会话的方式直接控制程序运行,同程序进行交互;独占性是指由于系统采用时间片轮转的办法使一台计算机同时为许多终端用户服务,因此客观效果是这些用户彼此之间都感觉不到别人也在使用这台计算机,好像只有自己独占计算机一样;及时性是指用户请求能在很短时间内获得响应。

(3)实时操作系统的主要特点是及时性和高可靠性。及时性是指系统能及时响应外部事件的请求,并在规定的时间内完成对该事件的处理;高可靠性是指系统本身要安全可靠,因为像生产过程的实时控制、航空订票等实时事务系统中,信息处理的延误或丢失往往会带来不堪设想的后果。

6.什么是死锁?产生死锁的原因和必要条件是什么?解决死锁问题常采用哪几种措施?

答:(1)如果一组进程中的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件,那么该组进程是死锁的。

(2)产生死锁的必要条件:

  • 互斥条件。指在一段时间内某资源仅为一个进程所占有。
  • 不剥夺条件。指进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,而只能由该进程自己释放。
  • 部分分配条件。指进程每次申请它所需要的一部分资源,在等待分配新资源的同时,进程继续占有已分配到的资源。
  • 环路等待条件。指存在一种进程资源的循环等待链,链中每一个进程已获得的资源同时被链中下一个进程所请求。

(3)措施:

  • 死锁的预防。通过破坏死锁产生必要条件中的后三条之一来预防死锁的发生。
  • 死锁的避免。在资源动态分配过程中,用某种方法防止系统进入不安全状态,从而避免死锁。
  • 死锁的检测及解除。通过系统的检测机构及时地检测出死锁的发生,然后采取某种措施解除死锁。

7.简述信号量的定义和作用。P,V操作原语是如何定义?

答:(1)信号量的定义:信号量是一个仅能由同步原语进行操作的整型变量,用来实现进程之间的互斥和同步。

信号量的作用:信号量通常可以简单反应出相应资源的使用情况,它与p、v操作原语一起使用可实现进程的同步和互斥。(信号量值为0时,说明没有资源可用,为正整数n表示有n个同类资源可用,为负整数m则表示有|m|个进程被堵塞在该临界资源外。)

(2)P、V操作原语:

p(s):顺序执行下述两个动作:

  • 信号量的值减1,即s=s-1;
  • 如果s>=0,则该进程继续执行;

 如果s<0,则把该进程的状态设置为阻塞态,把相应的PCB连入该信号量队列的末尾,并放弃处理机,进入等待。

 v(s):顺序执行下述两个动作:

  • 信号量的值加1,即s=s+1;
  • 如果s>0,则该进程继续执行;

 如果s<=0,则释放信号量队列的第一个PCB(既信号量指针项所指向的PCB)所对应的进程(把阻塞态改为就绪态),执行V操作的进程继续运行。

8.什么是请求页式管理?能满足用户那些需要?

答:(1)请求页式管理的基本原理是将逻辑地址空间分成大小相同的页,将存储地址空间分块,页和块的大小相等,通过页表进行管理。把内存和用户逻辑地址空间都分成同样大小的块分别称为实页和虚页,利用页表建立起虚页和实页的联系,通过地址变换将虚页的逻辑地址转换成实页的物理地址。页式系统的逻辑地址分为页号和页内位移量。页表包括页号和块号数据项,它们一一对应。根据逻辑空间的页号,查找页表对应项找到对应的块号,块号乘以块长,加上位移量就形成存储空间的物理地址。每个作业的逻辑地址空间是连续的,重定位到内存空间后就不一定连续了。此外,页表中还包括特征位(指示该页面是否在内存中)外存地址、修改位(该页的内容在内存中是否修改过)等。页式存储管理在动态地址转换过程中需要确定某一页是否已经调入主存。若调入主存,则可直接将虚地址转换为实地址,如果该页未调入主存,则产生缺页中断,以装入所需的页。

(2)能满足用户扩大内存的需求,动态页式管理提供了内存与外存统一管理的虚存实现方式;内存利用率高;不要求作业连续存放,有效解决“碎片问题”。

9.在分页式存储管理中,什么叫快表,简单说明其工作原理。

答:(1)快表:将页表放在高速缓存中,可以在地址变换机构中增设一个具有并行查找能力。

(2)工作原理:当CPU给出逻辑地址后,地址变换机构自动地将逻辑地址分为页号和页内位移两部分,并将页号与快表和页表并行比较,若在快表中找到页号,则取出该页对应的块号,与页内地址拼接形成物理地址。若快表中找不到页号,则再在页表中找到对应块号,与页内位移拼接形成物理地址。

10.什么是虚拟存储器?它有哪些基本特征?为什么从逻辑上说采用虚拟存储器能扩大内存存储空间?

答:(1)虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。

(2)特征:多次性、对换性、虚拟性。

  • 多次性。一个作业中的程序和数据无需一次性全部装入内存,可分多次调入内存。多次性是虚拟存储器最重要的特征,是其它存储管理方式所不具有的。
  • 对换性。换进、换出。
  • 虚拟性。虚拟性是指能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。

(3)采用虚拟存储技术时,操作系统根据程序执行的情况,随机对每个程序进行换入、换出,用户却没有察觉,得到了一个比真实内存空间大得多的地址空间。所以从逻辑上说采用虚拟存储器能扩大内存空间。

11.简述I/O系统的层次模型、各层都负责什么工作?

答: I/O系统由用户层软件、设备独立性软件、设备驱动程序和中断处理程序组成。

  • 用户层软件使用系统调用接口来与I/O设备通信。内核的设备独立性软件接受这些I/O请求,然后它又通过设备驱动程序与I/O设备实现数据传输,在数据传输过程中调用相关的中断处理程序。
  • 设备独立性软件为用户提供一个对所有设备一致的接口。
  • 设备驱动程序接受上一层的请求,并将逻辑I/O的调用转换为对具体设备驱动程序的调用。设备驱动程序具体负责与设备有关的所有交互操作。
  • 中断处理程序用于进程上下文切换、读取设备的状态等。

12.简述设备驱动程序的处理过程。

答:(1)将逻辑设备转换为物理设备。

(2)检查I/O请求的合法性。

(3)检查设备的状态。

(4)传送必要的参数。

(5)启动I/O设备。

13.说明SPOOLing系统的组成。

答:SPOOLing 系统由输入井和输出井﹑输入缓冲区和输出缓冲区、输入进程SPi和输出进程SPo三部分组成。

14.什么是缓冲池? 设计一个数据结构来管理缓冲池。

答:(1)缓冲池:将系统内所有的缓冲区统一管理起来,就形成了能用于输入/输出的缓冲池。缓冲池通常由若干大小相同的缓冲区组成,任何进程都可以申请使用缓冲池。

(2)OS要对缓冲池进行管理,必须有相应的数据结构,即设计缓冲池有三个队列和四个工作缓冲区。

缓冲池中的三个缓冲队列如下:

(1)空缓冲队列:由系统中的空闲缓冲区组成;

(2)输入队列:由装满输入数据的缓冲区组成,输入设备已将这些缓冲区中装满了输入数据,等待CPU处理;

(3)输出队列:由装满输出数据的缓冲区组成,这些数据等待输出设备输出。

缓冲池中的四类工作缓冲区如下:

(1)收容输入工作缓冲区--用于收容来自输入设备的数据;

(2)提取输入工作缓冲区--供CPU从中提取输入数据进行计算;

(3)收容输出工作缓冲区--用于收容CPU要输出的计算结果;

(4)提取输出工作缓冲区--供输出设备从中提取数据进行输出。

15.有哪几种I/O控制方式?各适用于何种场合?

答:I/O控制方式有四种,即程序直接控制方式、中断控制方式、DMA方式和通道控制方式。

(1)程序直接控制方式只适用于那些CPU执行速度较慢且外设较少的系统。

(2)中断控制方式适用于有中断机构的计算机系统中。

(3)DMA方式适用于具有DMA控制器的计算机系统中。

(4)通道控制方式适用于具有通道程序的计算机系统中。

16.文件有哪几种逻辑结构?哪几种物理结构?

答:(1)逻辑结构:

  • 无结构文件(流式文件);
  • 有结构文件(记录式文件)。

(2)物理结构:

  • 连续结构(顺序结构):支持顺序存取和随机存取,顺序存取速度快,不利于文件的动态增长、插入、删除,存在外部碎片问题。
  • 链接结构:存取速度慢,不利于随机存取,提高了磁盘空间利用率,不存在外部碎片问题。
  • 索引结构:支持随机存取、顺序存取,充分利用外存空间,较多的寻道次数和寻道时间。

标签:操作系统,R2,R3,复习资料,算法,进程,资源,R1
来源: https://blog.csdn.net/qq_45854377/article/details/122625587

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有