登录 注册
当前位置:主页 > 资源下载 > 49 > 直接转换方法:将拨号调制解调器的数据流图转化为模块结构图

直接转换方法:将拨号调制解调器的数据流图转化为模块结构图

  • 更新:2024-11-05 10:30:32
  • 大小:5.82MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:Unix - 操作系统
  • 格式:PDF

资源介绍

18.3 程序设计 我们来分析一下调制解调器拨号器所应该具有的特性: (1) 它必须在不改动源码的情况下支持新增加的调制解调器类型。 为了达到这个目标,我们使用了Honey DanBer的D i a l e r s文件。我们将所有使用这个文件来 拨号调制解调器的代码都放到一个精灵进程服务器中,这样任何程序都可以使用 1 5 . 5节中的客 户机-服务器函数来访问它。 (2) 一定要使用一些特定形式的锁,以保证当那些持有锁的程序在非正常结束时能自动释 放它的锁。以前那些专门的技术,如那些在大多数 c u和U U C P版本中仍然使用的技术,都不应 再使用。 我们用一个服务器精灵进程来处理所有的设备加锁。因为 1 5 . 5节中的客户机 -服务器函数会 在客户机终止时自动通知服务器,所以这个精灵进程能释放进程所持有的任何加锁。 (3) 新的程序一定要能够使用我们所开发的所有特性。开发一个新的处理调制解调器的程 序不应当什么都要自己实现,它拨任何类型的调制解调器应该就像函数调用一样简单方便。为 此,我们让*服务器精灵进程处理所有与拨号有关的操作,并返回一个文件描述符。 (4) 客户机程序,例如 c u和t i p,不应当需要特别权限。这些程序不应当是设置 -用户- I D程 序。但是要给予服务器精灵进程特殊权限,允许客户机程序运行时无需特权。 显然我们不能改动已有的 c u、t i p和U U C P程序,但应该让其他程序在我们工作的基础上实 现起来更加简单。当然,我们也一定要充分吸取已有的 UNIX 拨号程序的优点。 图1 8 - 1描述了客户机 -服务器工作模式的结构。 图18-1 客户机-服务器工作模式示意图 建立与远程系统的通信过程如下: (1) 起动服务器。 (2) 客户机起动,使用c l i _ c o n n函数(见1 5 . 5节)建立与服务器的连接。客户机向服务器发 出一个请求,请求拨号远程系统。 (3) 服务器读取S y s t e m s、D e v i c e s和D i a l e r s配置文件来决定如何拨号远程系统(下一节将讲 述这些文件)。如果正使用一个调制解调器,在对应的 D i a l e r s配置文件中就包含了这个特定调 制解调器的所有命令。 (4) 服务器打开该调制解调器设备并拨号该调制解调器。这需要一些时间(一般为1 5 ~ 3 0秒)。 服务器处理所有对该调制解调器的加锁,以避免各用户间的冲突。 (5) 如果拨号成功,服务器返回一个该调制解调器设备的文件描述符给客户机。在 1 5 . 3节 中的函数可以发送和接受这个描述符。 4 3 6 U N I X环境高级编程 服务器 (1) 请求访问远程系统 (4) 返回文件描述符 (3) 拨号调制解调器 调制解 调器 S y s t e m s、D e v i c e s和 D i a l e r s文件 客户机 (2)