Ready List 관리

공부기록·2023년 10월 14일
0
post-thumbnail

Ready List 관리

  • OSRdyGrpOSRdyTbl[ ]을 이용한다.

  • YYY : OSRdyGrp의 비트 포지션이자 OSRdyTbl[ ]의 index 값이다.
  • XXX : OSRdyTbl[ ]의 비트 포지션

Data Structure

  • OSRdyGrp

    • bid indication group
  • OSRdyTbl[]

    • 8 tasks in the same group
  • OSMapTbl[]

    • Array used for bit mask
  • OSUnMapTbl[]

    • LBS 찾는 TABLE

주요 기능

insert

  • OSRdyGrp과 OSRdyTbl[]의 bit 값을 세팅해준다.
	OSRdyGrp |= OSMapTbl[prio >>3];
    OSRdyTbl[prio >> 3] |= OSmapTbl[prio & 0x07];

업로드중..

delete

  • 해당 Tbl의 값을 0으로 세팅할때 그 전체가 0이되면 Grp도 0으로 만들어줘야한다.
     	if((OSRdyTbl[prio >> 3] &= ~OSMapTbl[prio & 0x07]) == 0{ //
       		OSRdyGrp &= ~OSMapTbl[prio >> 3]
       }
  • OSUnMapTbl[]을 이용하여 LBS값을 출력한다.
    	y = OSUnMapTbl[OSRdyGrp];
       x = OSUnMapTbl[OSRdyTbl[y]];
       prio = (y << 3) + x;

0개의 댓글

관련 채용 정보