## 3 RPS Scheduling Policy  
User selection is crucial for ZFBF in particular and linear ZF in general. Hence, the interaction between the scheduler and the physical layer is a crucial element in any scheduler for MU-MIMO systems. Moreover, the addition of new users can reduce the rate of already allocated users. Full combinatorial search for optimal user selection even without deadlines and priorities is prohibitively complex. Under deadline constraints, adding users to a set of transmitting users can result in missing the deadlines of these users by reducing their rates. Therefore, a scheduling policy that decouples this dependence should significantly reduce the complexity of user selection, while allowing the scheduler to allocate the users independently of previously-allocated users. The proposed RPS policy achieves this through a linear algebraic decomposition of the channel matrix in a way that allows for a sequential addition of users without harming already transmitting users. In this section, we present a new scheduling policy called RPS that combines ZFBF and reward per transmission time ordering. The RPS algorithm gives priority to packets with a higher reward per second. The arrival queue is ordered according to EDF, and the search for the packet with the highest RPS is limited to the first \(N\) packets. The RPS scheduling policy uses ZFBF as the precoding mechanism. The ZFBF by nature provides resource allocation in decreasing order from the first row of the channel matrix to the last row. The RPS takes advantage of this characteristic to provide better bandwidth to selected packets. Packets that cannot achieve the required bandwidth to meet their deadlines are not selected for transmission. Consequently, several packets with the same destination or packets that should use the same steering vector are not transmitted together, and only one packet is transmitted at a time. In any case, such packets are not transmitted until either they get the required bandwidth or they miss their deadline and are dropped from the queue. Figure 3 depicts the new scheduling policy. The scheduling policy is composed of four algorithms:  
1. [label=M0]
2. New packet insertion into the arrival queue, Algorithm 1. 3. [label=M0]  
Figure 3: RPS policy packet flow. Figure 2: System state machine. * Selection of the packet for transmission in case there is an eligible packet and there are available transmission resources, Algorithm 2. * Precoder update for additional new packet transmission, Algorithm 3. * Precoder downdate for a packet that ended its transmission, Algorithm 4. Algorithm 1 responds to a packet arrival event (Event E1). If there are available resources for transmission and the queue is not empty, the selection algorithm is activated (Algorithm 2). If the selection process ends successfully, Algorithm 3 runs to prepare the new precoding. At this point, the packets that are eligible for transmission and were precoded are transmitted. For packets that have just begun their transmission, this event is Event E2. At the end of transmission, i.e., Event E3, Algorithm 4 is activated in order to downdate the precoding matrices. Figure 2 depicts the state machine that activates the algorithms. ```
1:\(H_{t-1}\) be the packet that arrives at the system at time \(t_{i}\). 2:Drop \(J_{i}\) if its deadline has expired
3:Add \(J_{i}\) to the queue according to the EDF arrival policy. ```  
**Algorithm 1** New packet queue insertion. Let \(J_{i}\) be the packet that arrives at the system at time \(t_{i}\). ```
1:\(H_{t-1}\) be the channel matrix in the previous stage, and let \(Q_{t}\) be the arrival queue at the current time. Let \(Q_{t}(i).h\), \(Q_{t}(i).length\) and \(Q_{t}(i).deadline\) be the channel vector, the length, and the deadline of the packet, which is in the \(i^{\text{th}}\) position in queue \(Q_{t}\). Let \(currentTime\) be the actual time as defined by the index time \(t\). Let \(K\) be the packet selection window size.