22的低6位为010110,于是可知应该在OSRdyTbl[2]的D6位上置1同时要把变量OSRdyGrp的D2位置1,所以应该将其就绪状态填入就绪任务表的第2行第6列。那么18的低6位为010010,之后怎么写
时间: 2024-05-13 21:17:04 浏览: 27
根据你提供的信息,18的低6位为010010,表示需要在OSRdyTbl[1]的D4位上置1,同时要把变量OSRdyGrp的D2位置1,所以应该将其就绪状态填入就绪任务表的第1行第4列。具体操作可以参考以下代码:
```
OSRdyTbl[1] |= 0x10; // 在第1行第4列(即D4位)上置1
OSRdyGrp |= 0x04; // 把变量OSRdyGrp的D2位置1
```
以上代码中,`|=` 表示按位或赋值运算符,可以将右侧的值按位或到左侧变量的值中。`0x10` 和 `0x04` 分别表示二进制数 00010000 和 00000100,可以在相应的位置上置1。
相关问题
如果系统允许的最大任务数为64,现有优先级为2、6、13、18、21 、23的用户任务处在就绪状态,那么 OSRdyGrp=( )、OSRdyTbl[0]=( ) 、OSRdyTbl[1]=( ) 、OSRdyTbl[2]= ( )。(采用16进制表 示,如0x55)解题过程
根据题意可知,有6个就绪任务,优先级分别为2、6、13、18、21、23。最大任务数为64,因此OSRdyGrp需要占用64/8=8个字节,即0x00~0x07。那么我们可以根据任务的优先级,计算出它们在OSRdyGrp和OSRdyTbl中的位置。
首先,OSRdyGrp表示当前就绪的任务组,每一位代表一组任务,从高位到低位,优先级递减。因此,我们需要将任务的优先级转换为对应的位数。对于优先级为x的任务,它在OSRdyGrp中的位置为x/8,具体到字节上就是第x/8个字节,从左往右数第x%8位(从0开始数)。例如,优先级为13的任务在OSRdyGrp中的位置为13/8=1,具体位置为第1个字节的第5位(从左往右数第4位)。
按照上述方法,可以得到每个任务在OSRdyGrp中的位置:
- 优先级为2的任务:第0个字节的第2位
- 优先级为6的任务:第0个字节的第6位
- 优先级为13的任务:第1个字节的第5位
- 优先级为18的任务:第2个字节的第2位
- 优先级为21的任务:第2个字节的第5位
- 优先级为23的任务:第2个字节的第7位
因此,OSRdyGrp的值为0x44 28 00 00 00 00 00 00。
接下来,我们需要计算OSRdyTbl。OSRdyTbl是一个长度为3的数组,每个元素都是一个32位无符号整数,表示一组任务的状态。具体来说,每个元素的第i位表示优先级为i+32*k的任务是否就绪,其中k为数组下标。因此,我们需要将每个任务的优先级转换为对应的数组下标和位数。
对于优先级为x的任务,它在OSRdyTbl中的位置为x/32,具体到数组元素上就是第x/32个元素,从左往右数第x%32位(从0开始数)。例如,优先级为23的任务在OSRdyTbl中的位置为23/32=0,具体位置为第0个元素的第23位(从左往右数第22位)。
按照上述方法,可以得到每个任务在OSRdyTbl中的位置:
- 优先级为2的任务:第0个元素的第2位
- 优先级为6的任务:第0个元素的第6位
- 优先级为13的任务:第0个元素的第13位
- 优先级为18的任务:第0个元素的第18位
- 优先级为21的任务:第0个元素的第21位
- 优先级为23的任务:第0个元素的第23位
因此,OSRdyTbl的值为0x00000084 00002000 00000000。注意,由于我们使用的是小端字节序,因此每个32位整数的字节顺序是反的。
除了系统任务外,还有优先级为5、9、13、21、27、35的任务处在就绪状态,那么 OSRdyGrp=( )、OSRdyTbl[0]=( )、OSRdyTbl[1]=( )、 OSRdyTbl[2]=( )。
根据您的描述,这是一个关于任务调度的问题。根据优先级分组的任务调度算法,6个任务可以分为3组,优先级分别为5和9、13和21、27和35。因此,OSRdyGrp应该为0x2D(二进制为00101101),表示第0、1、2组任务都处于就绪状态。而OSRdyTbl[0]、OSRdyTbl[1]、OSRdyTbl[2]应该分别为二进制的00000011、00001010、00100000,表示第0组有2个任务就绪,分别是优先级为5和9的任务;第1组有3个任务就绪,分别是优先级为13、21和21的任务;第2组只有一个任务就绪,优先级为35。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)