728x90

RTOS 4

메시지 큐(Message Queue)

메시지 큐의 정의 버퍼 형태 오브젝트, 파이프라인과 비슷 여러 태스크와 ISR은 메시지큐를 통해 데이터 통신과 동기화를 수행 버퍼링 매커니즘을 통해 수신 태스크와 송신 태스크를 나누어 관리 할 수 있음 큐 컨트롤 블록(QCB), 메시지큐 이름, 고유 ID,메모리 버퍼, 큐의 전체 길이, 최대 메시지의 길이,하나 이상의 태스크 대기 리스트로 구성 메시지 큐의 상태 메시지 큐 생성 시 큐는 비어 있는 상태 큐가 비어 있는 상태에서 메시지를 수신하려 하면 태스크는 블록되고 원할 경우 수신 태스크 대기 리스트에 놓임(FIFO또는 우선순위 기반) 이 상태에서 다른 태스크가 메시지 큐를 보내면 메시지는 블록된 태스크로 직접 전달되고, 블록된 태스크는 대기 리스트에서 삭제되고 준비 또는 실행 상태가 됨 수신 대기 리..

dev/rtos 2020.08.04

세마포어(Semaphore)

세마포어 정의 세마포어(세마포어 토큰이라고도 함)는 실행 중인 여러 태스크가동기화 또는 상호배제를 목적으로 획득(acquire)하거나 반환(release) 할 수 있는 커널 오브젝트 세마포어는 세마포어 컨트롤 블록(SCB), 고유 ID, 초기값(바이너리 또는 카운트),태스크 대기 리스트 등을 할당 받음 세마포어 종류 바이너리 세마포어 0 또는 1의 상태값을 갖음 0일 때 사용 불가능(unavailable or empty), 1 일 때 사용 가능(available or full) 전역 자원(global resource)으로써 기존에 세마포어를 획득한 태스크가 아닌 어떤 태스크라도 자유롭게 세마포어 변환 가능 카운팅 세마포어 내부 카운터(내부 토큰 개수) 사용하여 여러 차례 획득하고 반환 할 수 있음 초기 ..

dev/rtos 2020.08.04

태스크(Task)

태스크의 정의 태스크는 다른 태스크들과 CPU를 사용하기 위해 경쟁하는 독립적인 프로그램 실행 단위고유 ID, 우선순위(선점형 스케줄링 시 필요),태스크 컨트롤 블록(TCB), 스택, 태스크 루틴 등의 요소로 태스크 오브젝트를 구성 시스템 태스크 커널은 시스템이 시작할 때 시스템 태스크를 생성한 후 시스템 레벨 우선순위를 할당 응용프로그램에서 생성한 태스크는 시스템 레벨 우선순위를 사용해선 안됨, 시스템 우선순위를 마음대로 사용할 경우 전체 시스템 성능과 동작에 영향을 줌 시스템 태스크의 예 초기화 태스크 - 시스템을 초기화하고 시스템 태스크 생성 유휴(idle) 태스크 - 시스템이 수행할 태스크가 없을 때 프로세서를 소모한다.프로세서의 사이클을 소모하는 것이 유일한 기능 기록(logging) 태스크 -..

dev/rtos 2020.08.04

RTOS란?

RTOS(Real-Time Operating System) 실시간 시스템의 특성 실시간 시스템은 정확한 계산 결과를 출력 해야 함(논리 또는 기능 정확성) 계산된 결과를 주어진 시간 안에 얻을 수 있어야 함(시간 정확성) 실시간 시스템은 시스템 전체의 정확성이 기능 정확성과 시간 정확성에 모두 의존적인 시스템으로 정의 시간 정확성은 기능 정확성 이상으로 중요 경성, 연성 실시간 시스템 경성(hard): 반드시 데드라인을 지켜야 하는 시스템, 데드라인이 지난 뒤의 계산 결과는 쓸모가 없음 연성(soft): 데드라인을 만족해야 하는 것은 경성 시스템과 같지만 어느정도 융통성이 있음 RTOS의 정의 실시간 운영체제(Real-Time Operating System)는 코드 실행을 시간에 따라 정확히 관리하고,시..

dev/rtos 2020.08.04
728x90