资源预览内容
第1页 / 共202页
第2页 / 共202页
第3页 / 共202页
第4页 / 共202页
第5页 / 共202页
第6页 / 共202页
第7页 / 共202页
第8页 / 共202页
第9页 / 共202页
第10页 / 共202页
亲,该文档总共202页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
徐州师范大学计算机学院网络操作系统体系结构Network Operating System1、对等(Peer to Peer)模式 对等式局域网操作系统的特点是网络上的所有连接站点 地位平等,因此又称为同类网。对等网络的规划一般都比较简单,通常采用如图所示的 两种结构2.1 体系结构工作模式Date22、文件服务器模式文件服务器模式如上图所示,在这种模式中,应用程序和 数据都存放在一台指定的计算机中,这台计算机称之为 文件服务器,一般均由专业服务器或性能较高的微机担 任。 文件服务器模式的优点:文件服务器与工作站之间分工明确,使工作站从网络管 理中解脱出来,信息处理能力明显增强;数据保密性好,可根据不同需求给用户不同的权限,资 源共享性好;文件安全管理较好,可靠性高。2.1 体系结构工作模式Date33 客户机与服务器n客户和服务器都运行于相同的微内核中,让用户和服 务器都以用户进程的方式运行,一台机器可以运行单 个进程、多个客户、多个服务器或二者的混合。(其 主要目的是为了避免面向连接的协议加复杂的报文头 )。nC/S模式常常以简单的请求/应答协议为基础。 2.1 体系结构工作模式Date4v客户机与服务器2.1 体系结构工作模式Date5v客户机与服务器n上图的优点n“简单”,客户发送一个请求,得到一个应答,在使用前无 须建立连接也不用释放连接,应答的消息同时也是对请求的 确认。n有效性,协议栈比较短,因而也更有效。网络接口层(或OSI 中的数据链路层和物理层)处理发送到服务器的数据和返回 的数据,这些由硬件完成。 2.1 体系结构工作模式Date6v客户机与服务器n因此这种简单的结构可以简化为系统通过微内核提供 的两个调用:nsend(dest,&mptr)负责发送报文nreceive(addr,&mptr)负责接收报文2.1 体系结构工作模式Date7v客户机与服务器nSend函数将要发送的消息用指针mptr传给进程,用 dest标记目的地,然后阻塞调用者,直到发送完毕为 止。nreceive进程阻塞调用者直到消息被接收为止,当调 用结束时将消息拷贝到mptr指向的缓冲区,同时调用 这不再被阻塞,addr参数正在监听接收的地址。 2.1 体系结构工作模式Date8v客户机和服务器模式的实现 n寻址。n客户为了发送信息给服务器,它必需知道服务器的地址。n在Unix系统中采用32位地址指定具体的机器,采用16位的id 号来表示本地ID字段,即采用machine.process(机器.进程 )的方式。2.1 体系结构工作模式Date9v客户机和服务器模式的实现 n阻塞和非阻塞原语n当一个进程调用send原语,它指定了目的地及发送到该目的 地的缓冲区数据。消息传送时,发送的进程被阻塞(挂起) 。直到消息传递完毕,其后的指令才能继续执行。n同样调用receive时,直到一条消息被实际接收并放入缓冲区 时才返回控制权,在一条消息到达前调用receive的进程一直 挂起。 2.1 体系结构工作模式Date10v客户机和服务器模式的实现 n阻塞和非阻塞原语n在有些系统中,接收者可以指明希望从哪个发送者接收消息 ,这种情况下它保持阻塞直到该发送者发送的消息到达。n和阻塞原语对应的是非阻塞原语(有时候也叫异步原语)。 2.1 体系结构工作模式Date11v客户机和服务器模式的实现 n阻塞和非阻塞原语n这种方法的优点是:调用发送进程可以和消息传送并行,而 不是让处理器空闲(假设没有其它进程可运行),阻塞原语 和非阻塞原语的选择一般取决于系统设计者。2.1 体系结构工作模式Date12v客户机和服务器模式的实现 2.1 体系结构工作模式Date13v客户机和服务器模式的实现 n有缓冲和无缓冲原语n像系统设计者可以选择阻塞和非阻塞原语一样,他们也可以 选择优缓冲和无缓冲原语,上面描述的基本上是无缓冲原语 ,意味着一个地址指定给一个特定的进程。n如果调用receive(addr,&m),告诉运行的机器内核,调用的 进程正在监听地址addr,并且准备接收发送到那个地址的消 息。m指出了一个消息缓冲区用于保存传送来的消息。当消息 到来,调用接收原语的内核将消息拷贝到缓冲区,并解除该 进程的阻塞。 2.1 体系结构工作模式Date14v客户机和服务器模式的实现 2.1 体系结构工作模式Date15v客户机和服务器模式的实现 n有缓冲和无缓冲原语n只要服务器在服务器在客户机上调用send原语之前调用 receive原语,就能运行良好。nreceive调用只是这样一种机制,它告诉服务器内核服务器正 在使用的地址以及存放到来消息的位置,当发送比接收先发 上就会产生问题。 2.1 体系结构工作模式Date162.1 体系结构系统内核 v内核模块 n以Linux为例介绍内核及其组件的基本结构,讲述那 些重要的内核领域,譬如不同内核的活动形式、存储 管理、设备驱动程序、定时器及模块等。n主要目标是介绍Linux网络体系结构的运行框架。n下列所有领域负责阐明首要网络服务所需要的基本功 能。因此,了解这些功能就是理解Linux联网体系结 构实现的基本前提。 Date172.1 体系结构系统内核 v内核模块 n下图给出了Linux内核体系结构。nLinux内核可以划分为6个不同的部分;每一部分负责 处理一项明确的功能,同时又向其它内核组件提供这 项功能。n这种体系结构反映到内核的源码上这6个部分都 形成了各自的子树。Date182.1 体系结构系统内核 v内核模块 Date192.1 体系结构系统内核 v内核模块 n进程管理n进程管理部分负责进程及其它内核活动(如软件中断等)的 创建和终止。n另外,进程间通信(如信号、管道等)也处在这一部分。调 度程序是进程管理的主要组件。n调度程序负责处理所有的活动进程、等待进程及阻塞进程, 它还负责保证所有的应用程序进程都能公平的分享到处理器 的计算时间。 Date202.1 体系结构系统内核 v内核模块 n内存管理n计算机的存储器是最重要的资源之一。计算机的性能十分依 赖于它所配置的内存。n另外,内存管理还要负责为每条进程分配各自的存储区,并 且保护这些存储区不配其它进程访问。 Date212.1 体系结构系统内核 v内核模块 n文件系统n在Linux系统中,文件系统是个中心角色。和其它操作系统( 如windows NT)不同,Linux内核中几乎所有的项目都是以文 件系统接口加以处理,例如,设备驱动程序可以表现成一些 文件,Proc文件系统则允许访问内核中的数据和参数。 Date222.1 体系结构系统内核 v内核模块 n设备驱动程序n设备驱动程序是从各种操作系统中的底层的硬件抽象出来的 ,从而允许访问这些硬件。n尽管Linux是一种整体式内核,但Linux的模块化概念也具备 一种运行时添加或删除设备的手段。Date232.1 体系结构系统内核 v内核模块 n网络子系统n由于某些网络操作无法分派给某个特定进程(譬如传入分组 处理),因此所有的网络操作都必须交由操作系统处理。传 入分组是异步事件。n在进程处理它们之间,就必须先收集、标识及转发这些分组 。因此,才会由内核负责处理跨程序、跨网络接口的分组。Date242.1 体系结构系统内核 v内核模块 n在内核中,明确驱动的接口有助于新功能的设计。例 如,假设有个接口指向虚拟文件系统,则该接口即可 用于添加新的文件系统。Linux可以支持数十种文件 系统,这也明确展现了接口确实是Linux开发人员做 出的一项优秀设计决策因为还没有其它操作系统 能支持如此之多的文件系统。nLinux网络体系结构中还包含了很多支持动态添加协 议及网络及网络驱动程序接口。Date252.1 体系结构系统内核 v内核中的活动 nLinux是一种多任务系统。意味着多条应用程序可以 同是处于活动状态,也意味着可以同时使用多个应用 程序或进程。n不过进程并不是Linux系统中唯一可以执行的活动形 式。 Date262.1 体系结构系统内核 v内核中的活动 n进程和系统调用n进程(process)通常是一些启动已运行的某种特定应用程序 的活动,它们会随着应用程序的结束而终止。n进程的创建、控制和销毁等任务都由操作系统内核负责处理 。n进程互斥地运行在处理器的用户地址空间(即出于未保护的 模式下);进程从这里只能访问分配给自己的存储区。Date272.1 体系结构系统内核 v内核中的活动 n进程和系统调用n尝试访问其它进程的存储区或内核地址空间都会带来异常, 该异常必须由内核进行处理。n不过进程如果希望访问设备或使用操作系统内核的某项功能 ,则必须利用系统调用来做得到这一点。n系统调用会让处理器变为受保护模式,而对内核地址空间的 访问则是系统调用的一项功能。在受保护模式下可以访问所 有设备及存储区,但只有时用内核方法才能做到这一点。Date282.1 体系结构系统内核 v内核中的活动 n进程和系统调用n进程和系统调用的工作可以被其它活动打断。这时它们当前 的状态会保存下来;如果这个被中断的进程或系统调用重新 工作起来,则会恢复那些被保存下来的状态。Date292.1 体系结构系统内核 v内核中的活动 n进程和系统调用n进程和系统调用可以自愿停止,也可以是非自愿停止。n前一种情况下它们会自愿放弃处理例如,进城和系 统调用等待某项系统资源(外部设备)而出于睡眠状态 ,直至得到这项资源为止。n非自愿放弃处理是由中断造成的,中断告诉内核一项重 要行动一项内河必须处理活动,中断可以是一种关 于早期繁忙资源重新可用的通知。Date302.1 体系结构系统内核 v内核中的活动 n除了正常进程和系统调用的进程外,我们还要区分Linux内核 中的其它活动形式。n这些活动形式对Linux网络体系结构的重要向具有决定的意义 因为网络功能正是在内核中进行处理的。n这些活动形式包括:Date312.1 体系结构系统内核 v内核中的活动 n中断(硬中断)n外设利用硬件中断(hardware interrupt,HW IRQ)向操作 系统通知一些重要的事件(如鼠标移动、键盘按下等)硬件 中断打断了处理器正在处理的当前活动,然后去执行相关的 中断处理例程。 Date322.1 体系结构系统内核 v内核中的活动 n中断(硬中断)nrequest_irq()函数可以在运行时注册特定的中断处理例程。nfree_irq()可以用于释放中断的处理例程,这样就不会再执 行它。 Date332.1 体系结构系统内核 v内核中的活动 n中断(硬中断)nLinux内核中需要区分两种中断:n一种是快速中断,它的特征是拥有非常小的中断处理例 程,只会很短暂的打断当前的活动,并且在执行期间锁 定本地CPU的所有其它中断,在该中断例程执行的过程中 是不可以被打断。n另一种是慢速中断,在执行的过程中可以被打断,中断 处理例程一般较长,因此它们占用处理器的时间一般也 较长。 Date342.1 体系结构系统内核 v内核中的活动 n软件中断(software interrupt,soft IRQ) n实际上是一种不同于真正的中断的、调度后才执行的活动。 硬件中断和软件中的主要差别在于,硬件中断会主动打断另 一种活动;触发硬件中断会导致打断正在运行的活动。n相反软件中断要由一种内核活动来调度它的执行,并不会打 断当前正在运行的活动。在Linux系统中定义了32种软件中断 。 Date352.1 体系结构系统内核 v内核中的活动 n任务蕾(tasklet)n是可以并行可执行的软件中断和旧下半区的一种混和体。Date362.1 体系结构系统内核 v内核中的活动 n下半区(bottom half)n一旦出发中断会执行中断处理例程,从而短暂地打断了当前 的活动。n但并非所有的任务都只用几条语句就可以完成
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号