死锁对操作系统有哪些影响 分布式操作系统的基本功能?
分布式操作系统的基本功能?
分布式操作系统有以下三个基本功能,:。
过程管理、通信管理和资源管理。
除了单机操作系统的主要功能外,分布式操作系统还应包括分布式进程通信、分布式文件系统、分布式进程迁移、分布式进程同步和分布式进程死锁等功能。
分布式文件系统是一种允许通过网络互连的系统,这样不同机器上的用户就可以共享文件。它可以由运行它的所有主机共享,并且可以管理操作系统内核和文件系统之间的通信。
如何解决I2C器件死锁的问题?
正常情况下,I2C总线协议可以保证总线的正常读写操作。但是,在某些异常情况下,I2C公交车会被锁定。例如,主控制器的突然复位,或I2C总线上的干扰,或异常供电都可能导致I2C总线锁定。
在I2C主设备的读写操作过程中,主设备控制SCL在起始信号后产生8个时钟脉冲。然后将SCL信号拉低至低电平。此时,从机输出应答信号,并将SDA信号拉至低电平。如果此时主设备异常复位,SCL将被释放至高电平。此时,如果从设备没有复位,它将继续I2C应答,将SDA拉至低电平,直到SCL变为低电平才结束应答信号。对于I2C主设备,复位后会检测到SCL和SDA信号。如果发现SDA信号为低电平,则认为I2C总线被占用,SCL和SDA信号将一直等待高电平。这样,I2C主机等待从机释放SDA信号,而I2C从机等待主机拉低SCL信号以释放应答信号。两者互相等待,I2C总线进入死锁状态。
类似地,当I2C读取时,I2C从设备应答并输出数据。如果此时I2C主设备异常复位,而I2C从设备输出的数据位正好为0,I2C总线也会进入死锁状态。
广州致远电子ARM核心板使用IIC设备,遇到总线死锁如何恢复总线死锁?常见的方法如下:
(1)尽量选择带复位输入的I2C从设备。从I2C总线死锁的原因可以发现,I2C总线死锁的一个必要条件是主设备复位,从设备不复位。如果从设备选择带复位输入的芯片,并将主设备和从设备的复位信号连接在一起,当外部发生复位事件时,主设备和从设备同时复位,这样就不会出现I2C总线死锁。这种方法的缺点也很明显。首先,大多数I2C从设备没有复位输入,这大大限制了设备的选择。其次,由与主器件集成的看门狗引起的这种复位不起作用。
(2)将从I2C设备的所有电源连接在一起,并通过M0连接。S管连接到主电源,而MOS管由I2C主设备打开和关闭。一般来说,I2C主设备是带有算术单元的处理器。控制功能可以通过处理器的GPIO实现。每次主设备复位,运行程序控制GPIO关闭MOS,使从设备掉电。然后延时一段时间后MOS管导通,从设备上电,达到强制从设备复位的效果。这种方法可以弥补第一种方法的不足,但会增加电源设计的复杂度,影响版图设计时电源的完整性。同时需要改变处理器的底层引导代码,影响了底层软件的通用性和可移植性。
(3)在I2C从设备中设计看门狗功能。当I2C从设备检测到其处于响应状态或低电平输出超过规定时间时,看门狗动作复位I2C从设备。这种情况下,不需要增加额外的硬件设计,但要求I2C从设备具有可编程功能,更适合从设备为单片机或CPLD的情况。
(4)在I2C主设备中增加I2C总线恢复程序。I2C主器件每次复位后,如果检测到SDA数据线被拉低,则控制I2C的SCL时钟线产生9个时钟脉冲(针对8位数据的情况),使I2C从器件完成挂起的读操作,从死锁状态恢复。这种方法有很大的局限性,因为主设备的大部分I2C模块都是通过内置的硬件电路实现的。该软件可以 t直接控制SCL信号产生所需的时钟脉冲。采用这种方法,I/O可以用来模拟I2C,SCL时钟也很容易控制。
(5)在I2C总线上添加一个额外的总线恢复设备,用于监控I2C总线。当器件检测到SDA信号被拉低超过规定时间时,它会在SCL总线上产生9个时钟脉冲,使能I2C从机完成读操作并从死锁状态中恢复。总线恢复设备需要具有编程功能,一般可以用单片机或CPLD来实现。
(6)在I2C上串一个具有死锁恢复的I2C缓冲区。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。