## 3 Proposed Algorithm
### Proposed Efficient Packet Scheduling Algorithm  
For the purpose of ensuring that the required QoS for the RT traffic is maintained, we set the ratio of \(b_{\text{NRT}}\), which consists of the number of RBs that the NRT users can share, to \(b_{\text{total}}\), at a specified level \(\eta\); i.e., \(\eta=b_{\text{NRT}}/b_{\text{total}}\), where \(b_{\text{NRT}}\in\{1,2,\ldots,b_{\text{total}}\}\). It should be noted that the selection of those RBs (i.e., the \(b_{\text{NRT}}\) RBs) begins with the RB on the CC with the index \(i=1\) and then proceeds in sequence. More precisely, all the RT packets can be transmitted over \(b_{\text{total}}\) RBs, whereas the NRT packets can only be transmitted over \(\eta b_{\text{total}}\) RBs. Consequently, the NRT packets are scheduled on the basis of the PF criterion only with regard to the \(\eta b_{\text{total}}\) RBs available; however, for RT packets, \(b_{\text{total}}\) RBs are available. In other words, \((1-\eta)b_{\text{total}}\) RBs are always kept in reserve exclusively for all the RT packets. As a result, the ability of all the RT packets to be transmitted can be protected to some extent when the system is faced with an excess amount of NRT packets. In addition, in the proposed system the NRT packets buffered in the NRT queue (as shown in Figure 1) are delivered on a periodic basis into the transmission queue for transmission. The length of time for each period between such deliveries is denoted as \(t_{\text{th}}\), where that term is defined as consisting of a specified integer multiple of a round from the first round. Meanwhile, the RT packets buffered in the RT queue are delivered into the transmission queue on a round-by-round basis. Moreover, \(\delta_{\text{RT}}\) is defined as the delay constraint for each RT packet. As the procedure utilized by the proposed algorithm begins, all the average data rates of the users are initialized to a constant value. Then, the algorithm follows the following steps for the current scheduling round \(s\). (It should be noted that \"Step 1\" constitutes the first operation to be executed at the start of every round for the scheduling of packets.) Step 1: If the epoch of the current scheduling round is an integer multiple of \(t_{\text{th}}\), then those NRT packets from previous rounds still buffered in the NRT queue (if any) are delivered to the transmission queue. It should be noted, again, that only \(\eta b_{\text{total}}\) RBs are available for the delivered NRT packets. Step 2: Those RT packets from previous rounds still buffered in the RT queue (if any) are delivered to the transmission queue. Step 3: Those RT packets in the transmission queue for which delay constraints are violated with regard to the threshold \(\delta_{\text{RT}}\) (if any) are dropped. Step 4: In scheduling packets in the transmission queue, the unused RB on the CC with the index \(i=1\) is started from. Step 5: The _fairness vector_ is then calculated. The _fairness vector_, which is denoted as \(\text{tuple}(i^{*},j^{*},k^{*})\), modified from Equation (1), is precisely calculated as follows  
\[\text{tuple}(i^{*},j^{*},k^{*})=\text{argmax}_{j,j,k}\frac{R_{k}(i,j,s)}{ \overline{R}_{k}(s)}. \tag{2}\]  
It should be noted that in Equation (2), \(R_{k}(i,j,s)\) denotes the instantaneous data rate, in the current scheduling round \(s\), from the BS to the user \(k\) over the resource RB \(j\) on CC \(i\), while \(\overline{R}_{k}(s)\) is the user \(k^{*}\)'s average downlink data rate up to round \(s-1\). Step 6: The packet of user \(k^{*}\) is then transmitted over the resource RB \(j^{*}\) on CC \(i^{*}\). It should be noted that if the RB's size is smaller than that of the packet under consideration, then said packet will be partitioned. The remaining portion of the packet may then be transmitted within the same round or within the next round.