【 LiteOS 】 소 백 진급 의 LiteOS 기초 상세 설명
6200 단어 LiteOS 시스템 개발
커 널 은 두 단계 로 나 뉜 다.
1 층 은 기본 커 널 이 고 2 층 은 커 널 확장 이다.
기본 커 널 의 소스 코드 는 오픈 소스 입 니 다. github 에서 Huawei LiteOS 기본 커 널 소스 프로젝트 주 소 를 볼 수 있 습 니 다.
Huawei LiteOS 기본 커 널 소스 코드:
LiteOS 소스 코드
기본 커 널 이 제공 하 는 능력 은 다음 과 같다.
IPC
확장 커 널 제공 능력:
-
이 두 개의 커 널 을 바탕 으로 Huawei LiteOS 의 주요 특징 은 다음 과 같다.
세 가지 상부 개발 구조 와 그 의미:
1) 센서 협동 제어 및 관리 프레임 워 크
이 프레임 워 크 는 다음 과 같은 세 가지 주요 특징 이 있다.
실시 간 센서 이벤트 메커니즘:
;
다 중 센서 데이터 융합 알고리즘:
, , ;
센서 관리:
, , 。
이 프레임 워 크 가 대표 하 는 의미:
, , ;
, ;
, AR、VR MR , , 。
2) 연결 엔진 프레임 워 크
이 프레임 워 크 는 다음 과 같은 특징 을 가지 고 있다.
: 、 、 ;
: ;
- 。
이 프레임 의 의 미 는:
, ;
, 。
3) 런 타임 엔진
이 프레임 워 크 는 주로 다음 모듈 을 포함 합 니 다.
JavaScript : Huawei LiteOS , JavaScript ;
JavaScript : ;
JavaScript 가 실 행 될 때 엔진 의 의 미 는 다음 과 같 습 니 다.
JavaScript , ;
;
Android Java , JavaScript Huawei LiteOS Java Android。
2. 기본 개념
시스템 의 측면 에서 볼 때 임 무 는 경쟁 시스템 자원 의 최소 운행 단원 이다.
작업 은 CPU, 메모리 공간 등 시스템 자원 을 사용 하거나 기다 릴 수 있 으 며 다른 작업 에서 독립 적 으로 실 행 됩 니 다.
Huawei LiteOS 의 작업 모듈 은 사용자 에 게 여러 가지 임 무 를 제공 할 수 있 고 작업 간 의 전환 과 통신 을 실현 하여 사용자 가 업무 절 차 를 관리 하 는 데 도움 을 줄 수 있 습 니 다.
Huawei LiteOS 는 다 중 태 스 크 를 지원 하 는 운영 체제 입 니 다.
Huawei LiteOS 에서 하나의 작업 은 하나의 스 레 드 를 표시 합 니 다.
Huawei LiteOS 의 임 무 는 선점 식 스케줄 링 메커니즘 이 며 시간 편 회전 스케줄 링 방식 도 지원 한다.
높 은 우선 순위 의 임 무 는 낮은 우선 순위 임 무 를 중단 할 수 있 습 니 다. 낮은 우선 순위 임 무 는 높 은 우선 순위 임무 가 막 히 거나 끝 난 후에 야 배 치 를 받 을 수 있 습 니 다.
Huawei LiteOS 의 미 션 은 모두 32 개의 우선 순위 (0 - 31) 가 있 고 최고 우선 순 위 는 0 이 며 최저 우선 순 위 는 31 이다.
3. 임무 관련 개념
3.1 임무 상태
Huawei LiteOS 시스템 의 모든 작업 은 여러 가지 운행 상태 가 있 습 니 다.
시스템 초기 화 완료 후 생 성 된 작업 은 시스템 에서 일정한 자원 을 경쟁 하여 커 널 에서 관리 할 수 있 습 니 다.
작업 상 태 는 보통 다음 과 같은 네 가지 로 나 뉜 다.
준비 (Ready): 이 작업 은 준비 목록 에서 CPU 만 기다 리 고 있 습 니 다.실행 (실행): 이 작업 이 실행 중 입 니 다.차단 (Blocked): 이 작업 은 준비 목록 에 없습니다.작업 이 걸 리 고 작업 이 지연 되 며 작업 이 신 호 량 을 기다 리 고 있 거나 읽 기 쓰기 대기 열 이나 읽 기 쓰기 이벤트 등 을 포함 합 니 다.종료 상태 (Dead): 이 작업 이 끝 났 습 니 다. 시스템 이 자원 을 회수 할 때 까지 기 다 립 니 다.
작업 상태 이전 설명:
준비 상태 → 운행 상태:
작업 생 성 후 준비 상태 에 들 어가 작업 전환 이 발생 할 때 준비 목록 에서 가장 높 은 우선 순위 의 작업 이 실행 되 어 실행 상태 에 들 어 갑 니 다. 그러나 이 작업 은 여전히 준비 목록 에 있 습 니 다.
운행 상태 → 차단 상태:
실행 중인 작업 이 막 혔 을 때 (끊 기, 지연, 읽 기 신 호 량 대기) 이 작업 은 준비 목록 에서 삭 제 됩 니 다. 작업 상 태 는 실행 상태 에서 차단 상태 로 바 뀌 었 을 때 작업 전환 이 발생 합 니 다. 실행 준비 목록 에 남 은 최고 우선 순위 작업 을 실행 합 니 다.
차단 상태 → 준비 상태 (차단 상태 → 운행 상태):
막 힌 작업 이 복 구 된 후 (작업 회복, 지연 시간 초과, 읽 기 신 호 량 초과 또는 신 호 량 읽 기 등) 복 구 된 작업 은 준비 목록 에 추가 되 어 차단 상태 에서 준비 상태 로 변 합 니 다.이 때 복구 작업 의 우선 순위 가 실행 중인 작업 의 우선 순위 보다 높 으 면 작업 전환 이 발생 하여 이 작업 을 준비 상태 에서 실행 상태 로 바 꿉 니 다.
준비 상태 → 차단 상태:
작업 이 준비 되 었 을 때 막 힐 수도 있 습 니 다. 이 때 작업 상 태 는 준비 되 어 있 는 상태 에서 차단 상태 로 바 뀔 수 있 습 니 다. 이 작업 은 준비 목록 에서 삭제 되 고 작업 스케줄 에 참여 하지 않 습 니 다. 이 작업 이 복 구 될 때 까지.
실행 상태 → 준비 상태:
더 높 은 우선 순위 작업 이 생 성 되 거나 복 구 된 후에 작업 스케줄 이 발생 합 니 다. 현재 준비 목록 에서 최고 우선 순위 작업 이 실행 상태 로 바 뀌 면 원래 실행 되 었 던 작업 이 실행 상태 에서 준비 상태 로 바 뀌 고 준비 목록 에 있 습 니 다.
실행 상태 → 종료 상태:
실행 중인 작업 이 끝 났 습 니 다. 작업 상 태 는 실행 상태 에서 종료 상태 로 바 뀌 었 습 니 다.종료 상 태 는 작업 이 끝 난 정상 적 인 종료 와 impossible 상 태 를 포함 합 니 다.예 를 들 어 분리 속성 (LOS TASK STATUS DETACHED) 이 설정 되 지 않 은 작업 은 실행 이 끝 난 후 대외 적 으로 impossible 상태, 즉 종료 상태 로 나타 납 니 다.
차단 상태 → 종료 상태:
막 힌 작업 호출 삭제 인터페이스, 작업 상 태 는 막 힌 상태 에서 종료 상태 로 변 합 니 다.
3.2 퀘 스 트 ID
작업 ID 는 작업 생 성 시 매개 변 수 를 통 해 사용자 에 게 되 돌아 가 작업 의 매우 중요 한 표지 입 니 다.사용 자 는 퀘 스 트 ID 를 통 해 지정 한 퀘 스 트 에 대해 퀘 스 트 마 운 트, 퀘 스 트 복구, 퀘 스 트 이름 조회 등 을 할 수 있 습 니 다.
3.3 퀘 스 트 우선 순위
우선 순 위 는 작업 수행 의 우선 순 위 를 나타 낸다.작업 의 우선 순 위 는 작업 전환 이 발생 할 때 실행 할 작업 을 결정 합 니 다.준비 목록 에서 가장 높 은 우선 순위 의 작업 이 실 행 됩 니 다.
3.4 퀘 스 트 입구 함수
새 작업 마다 스케줄 링 을 받 은 후 실 행 될 함수 입 니 다.
이 함 수 는 사용자 가 수행 합 니 다. 작업 생 성 시 작업 을 통 해 구조 체 를 지정 합 니 다.
3.5, 작업 제어 블록 TCB
모든 작업 에는 작업 제어 블록 (TCB) 이 포함 되 어 있 습 니 다.
TCB 는 작업 컨 텍스트 스 택 포인터 (stack pointer), 작업 상태, 작업 우선 순위, 작업 ID, 작업 이름, 작업 스 택 크기 등 정 보 를 포함 합 니 다.
TCB 는 모든 작업 의 운행 상황 을 반영 할 수 있다.
3.6 퀘 스 트 창고
모든 작업 은 하나의 독립 된 스 택 공간 을 가지 고 있 습 니 다. 우 리 는 작업 스 택 이 라 고 부 릅 니 다.창고 공간 에 저 장 된 정 보 는 국부 변수, 레지스터, 함수 파라미터, 함수 반환 주소 등 을 포함한다.작업 은 작업 전환 시 작업 의 컨 텍스트 정 보 를 자신의 작업 스 택 공간 에 저장 하여 작업 이 복 구 될 때 현장 을 복원 하고 작업 이 복 구 된 후에 도 자 른 지점 에서 계속 실 행 됩 니 다.
3.7 퀘 스 트 상하 문
작업 이 실행 되 는 과정 에서 사용 되 는 일부 자원, 예 를 들 어 레지스터 등 을 작업 컨 텍스트 라 고 합 니 다.이 작업 이 걸 렸 을 때 다른 작업 은 계속 실 행 됩 니 다. 작업 이 복 구 된 후에 작업 컨 텍스트 를 저장 하지 않 으 면 작업 전환 이 레지스터 의 값 을 수정 하여 알 수 없 는 오 류 를 초래 할 수 있 습 니 다.
따라서 Huawei LiteOS 는 작업 이 끝 날 때 이 작업 의 작업 컨 텍스트 정 보 를 자신의 작업 스 택 에 저장 하여 작업 이 복 구 된 후 스 택 공간 에서 걸 렸 을 때의 컨 텍스트 정 보 를 복원 하여 걸 렸 을 때 끊 긴 코드 를 계속 수행 합 니 다.
3.8 、 퀘 스 트 전환
작업 전환 은 준비 목록 의 최고 우선 순위 작업 가 져 오기, 작업 컨 텍스트 저장, 작업 컨 텍스트 복구 등 동작 을 포함 합 니 다.
3.9 운영 체제
Huawei LiteOS 퀘 스 트 관리 모듈 은 퀘 스 트 생 성, 퀘 스 트 지연, 퀘 스 트 종료 와 퀘 스 트 복구, 잠 금 퀘 스 트 스케줄 링 과 잠 금 해제 퀘 스 트 스케줄 링, 퀘 스 트 제어 블록 에 따라 퀘 스 트 ID 를 조회 하고 ID 에 따라 퀘 스 트 제어 블록 정보 기능 을 조회 합 니 다.
사용자 가 작업 을 만 들 기 전에 시스템 은 작업 제어 블록 에 필요 한 메모리 공간 을 먼저 신청 합 니 다. 시스템 이 사용 할 수 있 는 메모리 공간 이 필요 한 메모리 공간 보다 작 으 면 작업 모듈 을 초기 화 하 는 데 실 패 했 습 니 다.작업 초기 화 에 성공 하면 시스템 은 작업 제어 블록 내용 을 초기 화 합 니 다.
사용자 가 작업 을 만 들 때 시스템 은 작업 스 택 을 초기 화하 고 컨 텍스트 를 미리 설정 합 니 다.이 밖 에 시스템 은 '작업 입구 함수' 주 소 를 해당 위치 에 두 기도 한다.이렇게 하면 작업 이 처음 시작 되 어 실행 상태 에 들 어 갈 때 '작업 입구 함수' 를 실행 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【 LiteOS 】 소 백 진급 의 LiteOS 기초 상세 설명Huawei LiteOS 의 작업 모듈 은 사용자 에 게 여러 가지 임 무 를 제공 할 수 있 고 작업 간 의 전환 과 통신 을 실현 하여 사용자 가 업무 절 차 를 관리 하 는 데 도움 을 줄 수 있 습 니 다. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.