Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

higherhu/DistributedPark

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

这是一个分布式停车场系统。 处理问题如下: 某停车场共有TOTAL-NUM个车位, ENTRY-NUM个进口, EXIT-NUM个出口. 现需要一个用于停车场控制汽车进出的分布式系统, 在该系统中没有集中的管理者(central server), 每个进(出)口通过通信平等协商保存当前车库的状态信息(如空闲车位数UNOCCUPIED-NUM等), 并据此决定是否允许车辆进入, 为简便计, 假定通信是可靠的.
不考虑节点/进程失效的情形, 设计用于该停车场控制的分布式系统, 并给出汽车进出时使用该系统的方法. 如果新增一个进口节点/进程, 请考虑如何使该进口能参与工作.

主要技术为Lamport算法,涉及Java socket、Java多线程等。 使用方法: 编译后,命令行中运行。对于第一个出入口,命令格式如下: java hjg.DisPark nodeid total_num entry/exit

其中,nodeid必须为1,必须指定总车位数total_num,第三个参数表示此节点功能,entry表示入口,exit表示出口。 输入后会提示此节点地址,后面新增节点时需要用到。

之后新增加节点作为入口或者出口,打开新的命令行,输入如下格式命令: java hjg.DisPark nodeid entry/exit addressList

其中,nodeid为节点编号,不能为1,entry/exit指定节点功能,addressList为已有的所有节点的地址。注意,是所有地址!因为系统中并没有使用网络传输节点信息,偷懒没有写该功能,新增节点无法从系统中的某一个原始节点得到所有其他节点的信息。

在入口节点,可输入的命令如下: h: 帮助信息 help: 帮助信息 show: 查看系统实时状态 enter: 由当前入口进一辆车

出口节点,可输入的命令如下: h: 帮助信息 help: 帮组信息 show: 查看系统实时状态 exit: 由当前节点出一辆车

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.