网络操作系统体系结构.ppt
《网络操作系统体系结构.ppt》由会员分享,可在线阅读,更多相关《网络操作系统体系结构.ppt(202页珍藏版)》请在三一办公上搜索。
1、网络操作系统体系结构,Network Operating System,2,2023/11/16,1、对等(Peer to Peer)模式对等式局域网操作系统的特点是网络上的所有连接站点地位平等,因此又称为同类网。,对等网络的规划一般都比较简单,通常采用如图所示的两种结构,2.1 体系结构工作模式,3,2023/11/16,2、文件服务器模式文件服务器模式如上图所示,在这种模式中,应用程序和数据都存放在一台指定的计算机中,这台计算机称之为文件服务器,一般均由专业服务器或性能较高的微机担任。文件服务器模式的优点:文件服务器与工作站之间分工明确,使工作站从网络管理中解脱出来,信息处理能力明显增强;
2、数据保密性好,可根据不同需求给用户不同的权限,资源共享性好;文件安全管理较好,可靠性高。,2.1 体系结构工作模式,4,2023/11/16,3 客户机与服务器客户和服务器都运行于相同的微内核中,让用户和服务器都以用户进程的方式运行,一台机器可以运行单个进程、多个客户、多个服务器或二者的混合。(其主要目的是为了避免面向连接的协议加复杂的报文头)。C/S模式常常以简单的请求/应答协议为基础。,2.1 体系结构工作模式,5,2023/11/16,客户机与服务器,2.1 体系结构工作模式,6,2023/11/16,客户机与服务器上图的优点“简单”,客户发送一个请求,得到一个应答,在使用前无须建立连接
3、也不用释放连接,应答的消息同时也是对请求的确认。有效性,协议栈比较短,因而也更有效。网络接口层(或OSI中的数据链路层和物理层)处理发送到服务器的数据和返回的数据,这些由硬件完成。,2.1 体系结构工作模式,7,2023/11/16,客户机与服务器因此这种简单的结构可以简化为系统通过微内核提供的两个调用:send(dest,&mptr)负责发送报文receive(addr,&mptr)负责接收报文,2.1 体系结构工作模式,8,2023/11/16,客户机与服务器Send函数将要发送的消息用指针mptr传给进程,用dest标记目的地,然后阻塞调用者,直到发送完毕为止。receive进程阻塞调用
4、者直到消息被接收为止,当调用结束时将消息拷贝到mptr指向的缓冲区,同时调用这不再被阻塞,addr参数正在监听接收的地址。,2.1 体系结构工作模式,9,2023/11/16,客户机和服务器模式的实现 寻址。客户为了发送信息给服务器,它必需知道服务器的地址。在Unix系统中采用32位地址指定具体的机器,采用16位的id号来表示本地ID字段,即采用machine.process(机器.进程)的方式。,2.1 体系结构工作模式,10,2023/11/16,客户机和服务器模式的实现 阻塞和非阻塞原语当一个进程调用send原语,它指定了目的地及发送到该目的地的缓冲区数据。消息传送时,发送的进程被阻塞(
5、挂起)。直到消息传递完毕,其后的指令才能继续执行。同样调用receive时,直到一条消息被实际接收并放入缓冲区时才返回控制权,在一条消息到达前调用receive的进程一直挂起。,2.1 体系结构工作模式,11,2023/11/16,客户机和服务器模式的实现 阻塞和非阻塞原语在有些系统中,接收者可以指明希望从哪个发送者接收消息,这种情况下它保持阻塞直到该发送者发送的消息到达。和阻塞原语对应的是非阻塞原语(有时候也叫异步原语)。,2.1 体系结构工作模式,12,2023/11/16,客户机和服务器模式的实现 阻塞和非阻塞原语这种方法的优点是:调用发送进程可以和消息传送并行,而不是让处理器空闲(假设
6、没有其它进程可运行),阻塞原语和非阻塞原语的选择一般取决于系统设计者。,2.1 体系结构工作模式,13,2023/11/16,客户机和服务器模式的实现,2.1 体系结构工作模式,14,2023/11/16,客户机和服务器模式的实现 有缓冲和无缓冲原语像系统设计者可以选择阻塞和非阻塞原语一样,他们也可以选择优缓冲和无缓冲原语,上面描述的基本上是无缓冲原语,意味着一个地址指定给一个特定的进程。如果调用receive(addr,&m),告诉运行的机器内核,调用的进程正在监听地址addr,并且准备接收发送到那个地址的消息。m指出了一个消息缓冲区用于保存传送来的消息。当消息到来,调用接收原语的内核将消息
7、拷贝到缓冲区,并解除该进程的阻塞。,2.1 体系结构工作模式,15,2023/11/16,客户机和服务器模式的实现,2.1 体系结构工作模式,16,2023/11/16,客户机和服务器模式的实现 有缓冲和无缓冲原语只要服务器在服务器在客户机上调用send原语之前调用receive原语,就能运行良好。receive调用只是这样一种机制,它告诉服务器内核服务器正在使用的地址以及存放到来消息的位置,当发送比接收先发上就会产生问题。,2.1 体系结构工作模式,17,2023/11/16,2.1 体系结构系统内核,内核模块 以Linux为例介绍内核及其组件的基本结构,讲述那些重要的内核领域,譬如不同内核
8、的活动形式、存储管理、设备驱动程序、定时器及模块等。主要目标是介绍Linux网络体系结构的运行框架。下列所有领域负责阐明首要网络服务所需要的基本功能。因此,了解这些功能就是理解Linux联网体系结构实现的基本前提。,18,2023/11/16,2.1 体系结构系统内核,内核模块 下图给出了Linux内核体系结构。Linux内核可以划分为6个不同的部分;每一部分负责处理一项明确的功能,同时又向其它内核组件提供这项功能。这种体系结构反映到内核的源码上这6个部分都形成了各自的子树。,19,2023/11/16,2.1 体系结构系统内核,内核模块,20,2023/11/16,2.1 体系结构系统内核,
9、内核模块 进程管理进程管理部分负责进程及其它内核活动(如软件中断等)的创建和终止。另外,进程间通信(如信号、管道等)也处在这一部分。调度程序是进程管理的主要组件。调度程序负责处理所有的活动进程、等待进程及阻塞进程,它还负责保证所有的应用程序进程都能公平的分享到处理器的计算时间。,21,2023/11/16,2.1 体系结构系统内核,内核模块 内存管理计算机的存储器是最重要的资源之一。计算机的性能十分依赖于它所配置的内存。另外,内存管理还要负责为每条进程分配各自的存储区,并且保护这些存储区不配其它进程访问。,22,2023/11/16,2.1 体系结构系统内核,内核模块 文件系统在Linux系统
10、中,文件系统是个中心角色。和其它操作系统(如windows NT)不同,Linux内核中几乎所有的项目都是以文件系统接口加以处理,例如,设备驱动程序可以表现成一些文件,Proc文件系统则允许访问内核中的数据和参数。,23,2023/11/16,2.1 体系结构系统内核,内核模块 设备驱动程序设备驱动程序是从各种操作系统中的底层的硬件抽象出来的,从而允许访问这些硬件。尽管Linux是一种整体式内核,但Linux的模块化概念也具备一种运行时添加或删除设备的手段。,24,2023/11/16,2.1 体系结构系统内核,内核模块 网络子系统由于某些网络操作无法分派给某个特定进程(譬如传入分组处理),因
11、此所有的网络操作都必须交由操作系统处理。传入分组是异步事件。在进程处理它们之间,就必须先收集、标识及转发这些分组。因此,才会由内核负责处理跨程序、跨网络接口的分组。,25,2023/11/16,2.1 体系结构系统内核,内核模块 在内核中,明确驱动的接口有助于新功能的设计。例如,假设有个接口指向虚拟文件系统,则该接口即可用于添加新的文件系统。Linux可以支持数十种文件系统,这也明确展现了接口确实是Linux开发人员做出的一项优秀设计决策因为还没有其它操作系统能支持如此之多的文件系统。Linux网络体系结构中还包含了很多支持动态添加协议及网络及网络驱动程序接口。,26,2023/11/16,2
12、.1 体系结构系统内核,内核中的活动 Linux是一种多任务系统。意味着多条应用程序可以同是处于活动状态,也意味着可以同时使用多个应用程序或进程。不过进程并不是Linux系统中唯一可以执行的活动形式。,27,2023/11/16,2.1 体系结构系统内核,内核中的活动 进程和系统调用进程(process)通常是一些启动已运行的某种特定应用程序的活动,它们会随着应用程序的结束而终止。进程的创建、控制和销毁等任务都由操作系统内核负责处理。进程互斥地运行在处理器的用户地址空间(即出于未保护的模式下);进程从这里只能访问分配给自己的存储区。,28,2023/11/16,2.1 体系结构系统内核,内核中
13、的活动 进程和系统调用尝试访问其它进程的存储区或内核地址空间都会带来异常,该异常必须由内核进行处理。不过进程如果希望访问设备或使用操作系统内核的某项功能,则必须利用系统调用来做得到这一点。系统调用会让处理器变为受保护模式,而对内核地址空间的访问则是系统调用的一项功能。在受保护模式下可以访问所有设备及存储区,但只有时用内核方法才能做到这一点。,29,2023/11/16,2.1 体系结构系统内核,内核中的活动 进程和系统调用进程和系统调用的工作可以被其它活动打断。这时它们当前的状态会保存下来;如果这个被中断的进程或系统调用重新工作起来,则会恢复那些被保存下来的状态。,30,2023/11/16,
14、2.1 体系结构系统内核,内核中的活动 进程和系统调用进程和系统调用可以自愿停止,也可以是非自愿停止。前一种情况下它们会自愿放弃处理例如,进城和系统调用等待某项系统资源(外部设备)而出于睡眠状态,直至得到这项资源为止。非自愿放弃处理是由中断造成的,中断告诉内核一项重要行动一项内河必须处理活动,中断可以是一种关于早期繁忙资源重新可用的通知。,31,2023/11/16,2.1 体系结构系统内核,内核中的活动 除了正常进程和系统调用的进程外,我们还要区分Linux内核中的其它活动形式。这些活动形式对Linux网络体系结构的重要向具有决定的意义因为网络功能正是在内核中进行处理的。这些活动形式包括:,
15、32,2023/11/16,2.1 体系结构系统内核,内核中的活动 中断(硬中断)外设利用硬件中断(hardware interrupt,HW IRQ)向操作系统通知一些重要的事件(如鼠标移动、键盘按下等)硬件中断打断了处理器正在处理的当前活动,然后去执行相关的中断处理例程。,33,2023/11/16,2.1 体系结构系统内核,内核中的活动 中断(硬中断)request_irq()函数可以在运行时注册特定的中断处理例程。free_irq()可以用于释放中断的处理例程,这样就不会再执行它。,34,2023/11/16,2.1 体系结构系统内核,内核中的活动 中断(硬中断)Linux内核中需要区
16、分两种中断:一种是快速中断,它的特征是拥有非常小的中断处理例程,只会很短暂的打断当前的活动,并且在执行期间锁定本地CPU的所有其它中断,在该中断例程执行的过程中是不可以被打断。另一种是慢速中断,在执行的过程中可以被打断,中断处理例程一般较长,因此它们占用处理器的时间一般也较长。,35,2023/11/16,2.1 体系结构系统内核,内核中的活动 软件中断(software interrupt,soft IRQ)实际上是一种不同于真正的中断的、调度后才执行的活动。硬件中断和软件中的主要差别在于,硬件中断会主动打断另一种活动;触发硬件中断会导致打断正在运行的活动。相反软件中断要由一种内核活动来调度
17、它的执行,并不会打断当前正在运行的活动。在Linux系统中定义了32种软件中断。,36,2023/11/16,2.1 体系结构系统内核,内核中的活动 任务蕾(tasklet)是可以并行可执行的软件中断和旧下半区的一种混和体。,37,2023/11/16,2.1 体系结构系统内核,内核中的活动 下半区(bottom half)一旦出发中断会执行中断处理例程,从而短暂地打断了当前的活动。但并非所有的任务都只用几条语句就可以完成的。例如,若要处理网络适配器收到的分组,则需要数千个时钟嘀嗒标记,然后才能将这个分组传递给用户地址空间的相关进程。,38,2023/11/16,2.1 体系结构系统内核,内核
18、中的活动 下半区(bottom half)尽管中断出发了这项任务,但该任务并非在中断处理例程中执行的。为了保持中断处理的尽可能的小,这种耗时的任务被划分成了两个部分:上半区(top half)下半区(bottom half)。,39,2023/11/16,2.1 体系结构系统内核,内核中的活动 下半区(bottom half)上半区负责在出发中断之后单纯地运行那些重要的任务,上半区对应着中断处理例程。例如:网络适配器的中断处理例程只负责将接收到的分组复制到内核中,在内核中该分组会被缓存在一个挂起的队列中,其详细的处理由对应的协议实体负责。,40,2023/11/16,2.1 体系结构系统内核,
19、内核中的活动 下半区(bottom half)下半区运行着所有不太紧急的运算及因时间原因而无法在中断处理例程中执行的运算。运行上半区的同时会调度下半区的执行,一旦中断结束而再次调用调度程序,则很可能会运行下半区。,41,2023/11/16,五、操作系统的体系结构,Windows2000的系统结构,42,2023/11/16,2.1 体系结构UNIX体系结构,UNIX System V系统核心框图,43,2023/11/16,2.1 体系结构常用的网络操作系统,具有代表性的网络操作系统有:Microsoft公司的Windows NT Server、Windows 2000 Server和Win
20、dows Server 2003 UNIXUNIX派生的自由软件LinuxNovell公司的Netware,44,2023/11/16,2.1 体系结构常用的网络操作系统,1.Windows 2000Windows 2000有四个版本:Professional、Server、Advanced Server和Datacenter Server。2.WINDOWS 2003它包括Standard Edition(标准版)、Enterprise Edition(企业版)、Datacenter Edition(数据中心版)、Web Edition(网络版)四个版本,每个版本均有32位和64位两种编码。
21、,45,2023/11/16,2.1 体系结构常用的网络操作系统,46,2023/11/16,2.2 网络子系统,Linux 操作系统的最大特性之一就是它的网络栈。它最初源于 BSD((Berkeley Software Distribution,伯克利软件套件)的网络栈,具有一套非常干净的接口,组织得非常好。接口范围从协议无关层(例如通用 socket 层接口或设备层)到各种网络协议的具体层。Linux 中基本网络栈的介绍分为四层的 Internet 模型,47,2023/11/16,2.2 网络子系统,48,2023/11/16,2.2 网络子系统,这个栈的最底部是链路层。链路层是指提供对
22、物理层访问的设备驱动程序,这可以是各种介质,例如串口链路或以太网设备。链路层上面是网络层,它负责将报文定向到目标位置。再上一层称为传输层,负责端到端的通信(例如,在一台主机内部)。尽管网络层负责管理主机之间的通信,但是传输层需要负责管理主机内部各端之间的通信。最后一层是应用层,它通常是一个语义层,能够理解要传输的数据。例如,超文本传输协议(HTTP)就负责传输服务器和客户机之间对 Web 内容的请求与响应。,49,2023/11/16,2.2 网络子系统,网络栈的各个层次有一些更为人所熟知的名字。1、在链路层上,可以找到以太网,这是最常用的一种高速介质。更早的链路层协议包括一些串口协议,例如:
23、SLIP(Serial Line Internet Protocol)CSLIP(Compressed SLIP)PPP(Point-to-Point Protocol)。,50,2023/11/16,2.2 网络子系统,2、最常见的网络层协议是 IP(Internet Protocol),但是网络层中还存在一些满足其他需求的协议,例如 ICMP(Internet Control Message Protocol)ARP(Address Resolution Protocol),51,2023/11/16,2.2 网络子系统,3、在传输层上是 TCP(Transmission Control
24、Protocol)和 UDP(User Datagram Protocol)。4、最后,应用层中包含很多大家都非常熟悉的协议,包括标准的 Web 协议 HTTP 和电子邮件协议 SMTP(Simple Mail Transfer Protocol)等Linux 网络栈的架构以及如何实现这种 Internet 模型。?,52,2023/11/16,2.2 网络子系统,53,2023/11/16,2.2 网络子系统,最上面是用户空间层,或称为应用层,其中定义了网络栈的用户。底部是物理设备,提供了对网络的连接能力。中间是内核空间,即网络子系统。流经网络栈内部的是 socket 缓冲区sk_buffs
25、),它负责在源和汇点之间传递报文数据。,54,2023/11/16,2.2 网络子系统,系统调用接口 系统调用接口可以从两个角度进行描述。用户发起网络调用时,通过系统调用接口进入内核的过程应该是多路的。最后调用./net/socket.c 中的 sys_socketcall 结束该过程,然后进一步将调用分路发送到指定目标。系统调用接口的另一种描述是使用普通文件操作作为网络I/O。,55,2023/11/16,2.2 网络子系统,系统调用接口 例如,典型的读写操作可以在网络 socket 上执行(socket 使用一个文件描述符表示,与一个普通文件一样)。因此,尽管有很多操作是网络专用的(使用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 操作系统 体系结构
链接地址:https://www.31ppt.com/p-6600024.html