最新统考02326操作系统笔记资料.docx

上传人:b****3 文档编号:26669894 上传时间:2023-06-21 格式:DOCX 页数:63 大小:52.02KB
下载 相关 举报
最新统考02326操作系统笔记资料.docx_第1页
第1页 / 共63页
最新统考02326操作系统笔记资料.docx_第2页
第2页 / 共63页
最新统考02326操作系统笔记资料.docx_第3页
第3页 / 共63页
最新统考02326操作系统笔记资料.docx_第4页
第4页 / 共63页
最新统考02326操作系统笔记资料.docx_第5页
第5页 / 共63页
点击查看更多>>
下载资源
资源描述

最新统考02326操作系统笔记资料.docx

《最新统考02326操作系统笔记资料.docx》由会员分享,可在线阅读,更多相关《最新统考02326操作系统笔记资料.docx(63页珍藏版)》请在冰豆网上搜索。

最新统考02326操作系统笔记资料.docx

最新统考02326操作系统笔记资料

第一章引论

第一节什么是操作系统(识记)

1.计算机系统定义:

是按用户的要求接收和存储信息,自动进行数据处理并输出结果信心的系统

2.计算机系统构成:

硬件系统和软件系统

3.硬件系统组成:

中央处理器(CPU),主存储器,辅助存储器,各种输入/输出设备

二.操作系统

1.操作系统定义:

是一种管理计算机系统资源,控制程序执行,改善人机界面和为其它软件提供支持的系统软件操作系统的两个主要设计原则

2.能使得计算机系统使用方便.

3.能使得计算机高效的工作

第二节操作系统的形成

1.控制台:

早期,程序的装入,调试以及控制程序的运行都是程序员通过控制台上的开关来实现

2.原始汇编系统:

用汇编语言编写的程序称为源程序,它不能直接在机器上执行,只有通过汇编语言解释程序把源程序转换成用机器指令序列表示的目标程序后才能在计算机上运行.

3.设备驱动程序:

是最原始的操作系统.是一种控制设备工作的程序

4.管理程序:

是初级的操作系统.是一种能对计算机硬件和软件进行管理和调度的程序

5.操作系统:

采用了SPOOLING的处理形式

SPOOLING又称”斯普林”.从本质上说,SPOOLING是把磁盘作为一个巨大的缓冲器.在一个计算问题开始之前,把计算所需要的程序和数据从读卡机或其它输入设备上预先输入到磁盘上读取程序和数据,同样,对于计算的结果也是先在磁盘上缓冲存放,待计算完成后,再从打印机上打印出该计算问题的所有计算结果

第三节操作系统的基本类型

按照操作系统提供的服务进行分类,可分为批处理操作系统,分时操作系统,实时操作系统,网络操作系统,分布式操作系统,多机操作系统和嵌入式操作系统等.其中批处理操作系统,分时操作系统,实时操作系统是基本的操作系统

一批处理操作系统

1.定义:

用户为作业准备好程序和数据后,再写一份控制作业执行的说明书.然后把作业说明书连同相应的程序和数据一起交给操作员.操作员将收到一批作业的有关信息输入到计算机系统中等待处理,由操作系统选择作业,并按其操作说明书的要求自动控制作业的执行.采用这种批量化处理作业的操作系统称为批处理操作系统.

2.分类

●批处理单道系统:

一次只选择一个作业装入计算机系统的主存储器运行.

批处理多道系统:

允许多个作业同时装入主存储器,使中央处理器轮流的执行各个作业,各个作业可以同时使用各自所需要的外围设备

3.批处理多道系统优点

多道作业并行减少了处理器的空闲时间,既提高了处理器的利用率

作业调度可以按一定的组合选择装入主存储器的作业,只要搭配合理

作业执行过程中,不再访问低速的设备,而是直接从高速的磁盘上存取信息,从而缩短了作业执行时间,使单位时间内的处理能力得到提高

作业成批输入,自动选择和控制i作业执行,减少了人工操作时间和作业交接时间,有利于提高系统的吞吐率

●分时操作系统

1.定义:

能使用户通过与计算机相连的终端来使用计算机系统,允许多个用户同时与计算机系统进行①系列的交互,并使得每个用户感到好像自己独占一台支持自己请求服务的计算机系统.具有这种功能的操作系统称为分时操作系统,简称分时系统

2.分时技术:

既把CPU时间划分成许多时间片,每个终端用户每次可以使用一个由时间片规定的CPU时间.这样,多个用户就轮流的使用CPU时间,如果某个用户在规定的一个时间片内还没有完成它的全部工作,这时也要把CPU让给其他用户,等待下一轮再使用一个时间片的时间,循环轮转,直至结束.

3.分时系统主要特点:

同时性.允许多个终端用户同时使用一个计算机系统

独立性:

用户在各自的终端上请求系统服务,彼此独立,互不干扰

及时性:

对用户的请求能在较短的时间内给出应答

交互性:

采用人机对话的方式工作

●实时操作系统

定义:

能使计算机系统接受到外部信息后及时处理,并且在严格的规定时间内处理结束,再给出反馈信号的操作系统称为实时操作系统,简称为实时系统

1.设计实时系统注意点

要及时响应,快速处理

实时系统要求高可靠性和安全性,不强求系统资源的利用率

第四节操作系统的发展

1.单用户微机操作系统:

是指早期的微型计算机上运行的操作系统每次只允许一个用户使用计算机

2.网络操作系统:

为计算机网络配置的操作系统称为网络操作系统.网络操作系统把计算机网络中各台计算机系统有机的联合起来,为用户提供一种统一,经济而有效的使用各台计算机系统的方法,可使各台计算机系统相互间传送数据,实现各台计算机系统之间的通信以及网络中各种资源的共享

3.分布式操作系统:

为分布式计算机系统配置的操作系统称为分布式操作系统.分布式操作系统能使系统中若干计算机相互协作完成一个共同的任务,或者说把一个计算问题可以分成若干个子计算,每个子计算可以在计算机系统中的各计算机上并行执行

4.多机操作系统:

为多处理器系统配置的操作系统称为多机操作系统

5.嵌入式操作系统:

是指运行在嵌入式系统中对各种部件,装置等资源进行统一协调,处理和控制的系统软件(主要特点是微型化和实时性)

第五节Unix操作系统简介

1.诞生

Unix的第一个版本version1是AT&TTA公司下属的Bell实验室里两位程序员KenThompson和DennisRitchie凭兴趣和爱好1969年在一台闲置的PDP-7上开发的.

2.特点

Unix是一个交互式的分时操作系统

Unix系统的源代码公开

第六节操作系统的功能

1.操作系统的功能:

(从资源管理的角度来分)]

处理器管理:

对CPU进行管理

存储管理:

对主存储器进行管理

文件管理:

通过对磁盘进行管理,实现对软件资源进行管理

设备管理:

对各类输入.输出设备进行管理

2.操作系统为用户提供的使用接口

程序员接口:

通过”系统调用使用操作系统功能(开发者)

操作员接口:

通过操作控制命令提出控制要求.

第二章计算机系统结构简介

第一节计算机系统结构

一层次结构

1.计算机系统构成:

硬件系统和软件系统

硬件系统构成:

中央处理器(cpu),存储器,输入,输出控制系统和各种输入/输出设备

软件系统组成:

系统软件,支撑软件,应用软件

2.层次结构:

最内层是硬件系统,最外层是使用计算机系统的人,人与硬件系统之间是软件系统.软件系统又依次为系统软件-支撑软件应用软件

二.系统工作框架

1.引导程序:

进行系统初始化,把操作系统中的核心程序装入主存储器,并让操作系统的核心程序占用处理器执行.

2.操作系统核心程序:

完成自身的初始工作后开始等待用户从键盘或鼠标输入命令,每接受一条命令就对该命令进行处理

第二节硬件环境

一.CPU与外设的并行工作

在现代的通用计算机系统中,为提高计算机的工作效率,均允许中央处理器和外设并行工作.当执行到一条启动外设的指令时,就按指令中给定的参数启动指定的设备,并把控制移交给输入/输出控制系统,由输入/输出控制系统控制外围设备与主存储器之间的信息传送,外围设备独立工作,不再需要中央处理器干预,于是中央处理器可继续执行其它程序

二.存储体系

1.寄存器:

是处理器的组成部分,用来存放处理器的工作信息.存取速度快,但造价高.

●通用寄存器:

存放参加运算的操作数.指令的运算结构等

●指令寄存器:

存放当前从主存储器读出的指令

●控制寄存器:

存放控制信息以保证程序的正确执行和系统的安全

Ø程序状态字寄存器:

存放当前程序执行时的状态.

Ø中断字寄存器:

记录出现的事件

Ø基址寄存器:

设定程序执行时可访问的主存空间的开始地址

Ø限长寄存器:

设定程序执行时可访问的主存空间的长度

2.主存储器:

以字节为单位进行编址.主存储器容量较大,能被处理器直接访问,但断电会丢失数据.

3.高速缓冲存储器:

也称cache,位于处理器和主存储器之间起到缩短存储时间和缓冲存储的作用

4.辅助存储器:

最常用的辅助存储器有磁盘和磁带.优点是容量大且能永久保存信息,但不能被中央处理器直接访问.

三.保护措施

一般是硬件提供保护手段和保护装置,操作系统利用这些设施配合硬件实现保护

1.指令分类

●特权指令:

不允许用户程序中直接执行的指令.如:

启动i/o,设置时钟,设置控制器等

●非特权指令:

允许用户程序中直接执行的指令

2.cpu工作状态

●管态:

可执行包括特权指令在内的一切机器指令.一般是操作系统程序占用中央处理器时,cpu处于管态

●目态:

不允许执行特权指令.一般是用户程序占用中央处理器时,CPU处于目态.

3.存储保护:

不同的存储管理方式有不同的实现保护方法,如可变分区存储管理方式中:

基址寄存器的值<=访问地址<=基址寄存器的值+限长寄存器的值

第三节操作系统结构

一设计目标

●正确性:

能充分估计和把握各种不确定的情况,使操作系统不仅能保证正确性,且易于验证其正确性

●高效性:

减少操作系统的开销从而提高计算机系统的效率,尤其对常驻主存储器的核心程序部分更要精心设计

●维护性:

当系统发现错误或为提高效率而对算法进行调整等工作时,应使操作系统容易维护

●移植性:

移植性是指能否方便的把操作系统从一个硬件环境移植到另一个新的硬件环境之中.在结构设计时,应尽量减少与硬件直接有关的程序量,且将其独立封装.

二.操作系统的层级结构

1.设计方法:

无序模块法,内核扩充法,层次结构法,管理设计法等

2.层次结构法:

最大特点是把整体问题局部化.一个大型复杂的操作系统被分解成若干单向依赖的层次,由各层的正确性来保证整个操作系统的正确性.采用层次结构不仅结构清晰,而且便于调试,有利于功能的增加,删减和修改

3.操作系统层次结构:

处理器管理要对中断事件进行处理,要为程序合理的分配中央处理器的工作事件,它是操作系统的核心程序,是与硬件直接有关的部分,因而把它放在最内层.以后的各层依次存放的是存储管理,设备管理和文件管理.即:

硬件-处理器管理-存储管理-设备管理-文件管理

Ø主要优点:

有利于系统的设计和调试

Ø主要困难:

层次的划分和安排

三.Unix系统的结构

1.Unix层次结构:

内核层和外壳层

●内核层:

是unix操作系统的核心.它具有存储管理,文件管理,设备管理,进程管理以及为外壳层提供服务的系统调用等功能

●外壳层:

为用户提供各种操作命令和程序设计环境

2.外壳层组成:

由shell解释程序,支持程序设计的各种语言,编译程序,解释程序,使用程序和系统库等组成.其中其它模块归shell解释程序调用,shell解释程序用来接收用户输入的命令并进行执行.

3.内核层组成:

内核程序用C语言和汇编语言编写.按编译方式可分为:

汇编语言文件,C语言文件和C语言全局变量文件.

4.程序运行环境:

用户态和核心态.外壳层的程序在用户态运行,内核层的程序在核心态运行.用户态运行的程序称为用户程序,核心态运行的程序称为系统程序(外壳层的用户程序在执行时可通过系统调用来请求内核层的支持)

第四节操作系统与用户的接口

一.操作控制命令

●联机用户:

操作控制命令

●批处理系统用户:

作业控制语言,用来编制作业控制说明书

二.系统调用

1.系统调用定义:

既系统功能调用程序,是指操作系统编制的许多不同功能的供程序执行中调用的子程序.

2.执行模式:

系统调用在管态下运行,用户程序在目态下运行,用户程序可以通过”访管指令:

实现用户程序与系统调用程序之间的转换.(访管指令本身是一条在目态下执行的指令)

3.系统调用分类:

文件操作类,资源申请类,控制类,信息维护类.

第五节Unix的用户接口

一.shell命令

1.注册和注销

●注册:

用户可通过login输入用户名和通过password输入口令,系统注册成功后在shell解释程序控制下,出现提示符(采用Cshell提示符:

%)以交互方式为用户服务.

●注销:

输入logout或同时按下crtl+D键

2.常见的shell命令

ØMkdir:

请求系统建立一个新的文件目录

ØRmdir:

请求系统删除一个空目录

ØCd:

切换当前的工作目录

ØPwd:

显示用户的当前目录

ØLs:

显示用户一个目录中的文件名.

ØCp:

复制一个文件

ØMv:

对文件重新命名

ØRm:

删除一个指定的文件

ØCat:

显示用ascll码编写的文本文件

ØMore:

分屏显示文件内容,按空格键显示下一屏

3.后台执行的shll命令

Ø方法:

在请求后台执行的命令末尾输入字符”&”.

Ø特点:

Unix把一个程序转入后台执行后,不等该程序执行完就显示可以输入新命令的提示符.因此,允许多个任务在后台执行,也允许后台任务和前台任务同时执行

4.shell文件

●定义:

用shell命令编辑成的文件称为shell文件

●执行shell文件:

cshshell文件名

●把shell文件改成可执行文件:

chmod+xshell文件名-以后就可直接在提示符后面直接输入文件名就可执行

二Unix系统调用

1.常用的系统调用

●有关文件操作的系统调用

Create:

建立文件open:

打开文件

Read:

读文件write:

写文件

Close:

关闭文件link:

链接一个文件

Unlink:

解除文件的链接lseek:

设定文件的读写位置

Chmod:

改变对文件的访问权限rename:

更改文件名

●有关控制类的系统调用

Fork:

创建一个子进程wait:

父进程等待子进程终止

Exit:

终止子进程的执行exec:

启动执行一个指定文件

●有关信号与时间的系统调用:

Unix把出现的异常情况或异步事件以传送信号的方式进行

Kill:

把信号传送给一个或几个相关的进程

Sigaction:

声明准备接收信号的类型

Sigreturn:

从信号返回,继续执行被信号中断的操作

Stime:

设置日历时间time:

获取日历时间

Times:

获取执行所花费的时间

2.trap指令:

是unix系统中的访管指令

3.系统调用程序入口表

●作用:

实现对系统功能调用程序的统一管理和调度

●构成:

系统调用编号,系统调用所带参数个数,系统调用处理程序入口地址,系统调用名称.

4.系统调用实现过程

●步骤一:

当处理器执行到trap指令时便形成一个中断事件.此时将暂停当前用户程序的执行,而由unix系统内核的”trap处理子程序来处理这个中断事件

●步骤二:

trap处理子程序根据trap指令中的系统调用编号查系统调用程序入口表,得到该系统调用所带的参数个数和相应的处理程序的入口地址.然后,把参数传送到内核的系统工作区,再按处理程序入口地址转向该系统调用的处理程序执行

●步骤三:

当系统调用程序完成处理后,仍需返回到trap处理子程序,由trap处理子程序对被暂停的用户程序进行状态恢复等后续处理,再返回用户程序执行.

第三章处理器管理

一.什么是多道程序设计

1.定义:

让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种程序设计称为多道程序设计.这种计算机系统称为多道程序设计系统.

2.注意事项

●存储保护:

必须提供必要的手段使得在主存储器中的各道程序只能访问自己的区域,避免相互干扰

●程序浮动:

是指程序可以随机的从主存储器的一个区域移动到另一个区域,程序被移动后,仍丝毫不影响它的执行(可集中分散的空闲区,提高主存空间的利用率)

●资源的分配和调度:

多道程序竞争使用处理器和各种资源时,多道程序设计的系统必须对各种资源按一定的策略进行分配和调度.

二.为什么要采用多道程序设计

1.程序的顺序执行:

处理器和外围设备,外围设备之间都得不到高效利用

2.程序的并行执行:

让程序的各个模块可独立执行,并行工作,从而发挥外围设备之间的并行能力

3.多道并行执行:

在一个程序各个模块并行工作的基础上,允许多道程序并行执行,进一步提高处理器与外围设备之间的并行工作能力,具体表项在:

●提高了处理器的利用率

●充分利用外围设备资源.

●发挥了处理器与外围设备之间的并行能力

三.采用多道程序设计应注意的问题

1.可能延长程序执行时间:

多道程序设计能提高资源使用效率,增加单位时间的算题量.但是对每个计算问题来说,从算题开始到全部完成所需的计算时间可能要延长

2.并行工作道数与系统效率不成正比;并不是并行工作的道数越多,系统的效率就越高,而要根据系统配置的资源和用户对资源的要求而定

⏹主存储器空间的大小限制了可同时装入的程序数量

⏹外围设备的数量也是一个制约条件

⏹多个程序同时要求使用同一资源的情况也会经常发生

第二节进程概述

一.进程的定义

1.程序:

具有独立功能的一组指令或一组语句的集合,或者说是指出处理器执行操作的步骤

2.进程:

是指一个程序在一个数据集上的一次执行

3.程序和进程的区别:

程序是静态的文本,进程动态的过程.进程包括程序和数据集.

二.为什么要引入进程

1.提高资源的利用率:

一个程序被分成若干个可独立执行的程序模块,每个可独立执行的程序模块的一次执行都可看作一个进程,通过进程的同步可提高资源的利用率.

2.正确描述程序的执行情况:

可以方便描述一个程序被执行多次时,各自的执行进度.

三.进程的属性

1.进程的基本属性

●进程的动态性

●多个不同的进程可以包含相同的程序

●进程可以并发执行

●进程的三种基本状态等待态就绪态运行态

2.进程的状态变化:

运行态-等待态等待态-就绪态运行态--就绪态就绪态-运行态

3.进程特性:

动态性,并发性,异步性

第三节进程队列

一.进程控制块

1.进程控制块作用:

既PCB,是进程存在的标识

2.进程控制块构成

⏹标识信息:

用来标识进程的存在和区分各个进程.进程名

⏹说明信息:

用于说明本进程的情况.包括:

进程状态,等待原因,进程程序存放位置,进程数据存放位置

⏹现场信息:

用来当进程由于某种原因让出处理器时,记录与处理器有关的各种现场信息,包括:

通用寄存器内容,控制寄存器内容,程序状态字寄存器内容

⏹管理信息:

用来对进程进行管理和调度的信息.包括进程优先级,队列指针

二.进程的创建和撤销

1.进程创建:

当系统为一个程序分配一个工作区(存放程序处理的数据集)和建立一个进程控制块后就创建了一个进程,刚创建的进程其状态为就绪状态(若执行过程中还缺少资源可以再将其转为等待状态).

2.进程的撤销:

当一个进程完成了特定的任务后,系统收回这个进程所占的工作区和取消该进程控制块,就撤销了该进程.

3.原语:

是操作系统设计用来完成特定功能且不可中断的过程,包括创建原语,撤销原语,阻塞原语,唤醒原语.

三.进程队列的链接

1.进程队列概念:

为了管理方便,进程把处于相同状态的进程链接在一起,称为进程队列

2.进程队列分类

⏹就绪队列:

把若干个等待运行的进程(就绪)进程按一定的次序链接起来的队列.

⏹等待队列:

是指把若干个的等待资源或等待某些事件的进程按一定的次序链接起来的队列.

等待队列:

是把若干个等待资源或等待某些事件的进程按一定的额次序链接起来的队列

3.对列实现方法:

只需将状态相同的进程控制块链接起来就可以.链接的方式包括单向链接和双向链接.

4.队列管理:

是指系统中负责进程入队和出队的工作

⏹入队:

是指一个进程进入到指定的队列

Ø从队首入队成为新的队首进程

Ø从队尾入队成为新的队尾进程

Ø插入到队列中某两个进程之间

⏹出队:

是指一个进程从所在的队列中退出,也存在三种情况

第四节unix系统中的进程

一.unix进程的特点

Unix中的进程执行用户程序时在用户态执行,执行操作系统程序时在核心态执行.在用户态执行的进程请求系统功能调用时,便转换到核心态执行操作系统程序,当一次系统调用结束时,该进程从核心态的执行返回到用户态执行用户程序

二.Unix进程的组成

1.进程控制块:

⏹进程基本控制块:

用来记录进程调度时必须使用的一些信息,常驻主存储器.把进程基本控制块的数据结构称为proc结构

Ø标识信息:

包括用户标识(分为实际用户标识号和设置用户标识号)和进程标识.

Ø有关进程非常驻主存部分的信息:

用来建立信息在主存与磁盘之间传送.包括:

非常驻主存部分的=所在的地址,长度和一些必要的指针.

Ø有关进程调度的信息:

包括:

进程状态,标志,优先数以及调度有关的其他信息.

Ø其它信息:

用于管理和控制的信息,如进程扩充控制块的地址,进程共享正文段和共享主存段的管理信息,进程接收的信号.

⏹进程扩充控制块:

随用户程序和数据装入主存储器或调出主存储器.把进程扩充控制块的数据结构称为user结构.包括:

标识,现场保护,主存管理,文件读写,系统调用,进程控制与管理等.

2,正文段:

是指Unix中可供多个进程共享的程序.系统中设置了一张正文表TEXT[],用来指正该正文段在主存和磁盘上的位置,段的大小和调用该正文段的进程数等钱情况

3.数据段:

包括进程执行的非共享程序和程序执行时用到的数据.

⏹用户zhai区:

是进程在用户态执行时的工作区,主要用于函数调用的参数传递,现场保护,存放返回地址,存放局部变量等.

⏹用户数据区:

存放进程执行中的非共享程序和用户工作数据.

⏹系统工作区:

Ø核心zhai:

是进程在核心态执行时的工作区,主要用于函数调用的参数传递,现场保护,存返回地址,存放局部变量等

Øuser区:

存放进程扩充控制块.

三.Unix进程的状态

运行状态,就绪状态,睡眠状态,创建状态,僵死状态.

四.unix进程的创建和终止

1.unix的进程树:

0号进程(也称交换进程,是系统启动后unixde核心程序完成初始化后创建的第一个进程,在核心态运行.用来进行进程调度和让进程在主存与磁盘上进行交换-1号进程(页称初始化进程,由0号进程创建,在用户态运行,用来为终端用户请求注册时创建login进程-login进程(用来处理用户的登录过程,登录成功后创建shell进程-shell进程(等待用户输入命令).

2.进程的创建:

在unix中,除了0号进程和1号进程外,其他的进程总是使用系统调用fork来创建新进程,形成父子进程.子进程时父进程的一个印像,除了进程的状态,标识和时间有关的控制项外,全部复制父进程的

proc,user,zhai,和数据区

⏹Fork的主要工作

⏹实现子进程可与父进程执行不同的程序段

3.进程的终止

⏹系统调用exit的主要任务时把终止进程自被创建以来所占用的系统资源退还给系统.关闭该进程所有打开的文件,释放它对正文段的使用权,把它的user结构换出到磁盘对换区后收回时间段占用的主存空间,此后,把终止进程的状态改为”僵死状态”,向父进程发出信号,由父进程作善后处理.

⏹系统调用wait要对用exit请求终止的进程作善后处理,当进程用系统调用wait等待其子进程终止时,wait的任务是先查找处于僵死状态的子进程,若子进程尚未僵死,则让该进程等待,直到子进程成为僵死状态后被释放.进程被释放后,wait继续执行,再从磁盘对换区把该子进程的user结构读入主存缓冲区,释放该user再对换区所占的空间,然后,把保存在user中的子进程的时间信息加入到本进程的user结构中,在释放主存缓冲区,把子进程在proc[]中的表项清除.

五.unix进程的换进换出

在unix中经常要发生进程在主存与磁盘之间的转换,我们把这项工作称为进程的换进换出,次项工作由交换进程(0号进程)执行sched程序来完成,标志runout和runin是交换进程的睡眠标志,当磁盘对换区中没有要换进的进程时,标志runout置为1.交换进程睡眠,直到对换区有要换进的进程时被唤醒,当磁盘对换区有就绪进程要换进,但没有足够的主存空间,也没有可换出的进程,则标志runin置为1,交换进程睡眠,直到主存有进程可换出时被唤醒.

六unix进程的睡眠与唤醒

⏹进程的睡眠:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1