본문 바로가기

Operating System11

[Linux] Vim 설치 및 vimrc 설정 vim 설치 sudo apt install vim vim 설정 vim 설정을 위해 .vimrc 파일을 수정합니다. .vimrc 파일은 홈 디렉토리에 존재해야 합니다. vi ~/.vimrc vimrc 파일을 수정하고 :wq로 저장하고 나옵니다. set smartindent set shiftwidth=4 set showmatch set smartcase set ruler set hlsearch set tabstop=4 syntax on colorscheme delek 코드를 작성하여 설정이 잘 적용됐는지 확인합니다 2021. 9. 12.
[Linux] 쉘 스크립트 기본 문법 쉘 스크립트 문법 정리가 잘된 글이 있어 링크 남깁니다. https://reakwon.tistory.com/136 [리눅스] 쉘 스크립트(Shell script) 기본 문법, 작성방법(변수,반복문,비교문,종료상태 등) 쉘스크립트 기본 쉘 스크립트는 쉘에게 무슨 명령들을 실행할지 알려주는 스크립트 파일입니다. 여기서는 가장 널리쓰이는 bash 쉘을 사용하는 스크립트를 설명하도록 하겠습니다. #!/bin/bash 스 reakwon.tistory.com 2021. 8. 18.
[OSEK OS] Resource Resource란? 우선순위가 다른 여러 task가 공유된 자원에 동시에 접근하는 것을 조정하는 것을 말합니다. 운영체제에서 mutex와 같은 역할을 합니다. OSEK OS에서는 lock을 걸고 푸는 데 GetResource(), ReleaseResource()가 사용됩니다. Resource 종류 Standard : GetResource(RedID) - Resource를 획득하는 API : ReleaseResource(ResID) - Resource를 반환하는 API Internal : OSEK OS 에서 제공하는 특별한 종류의 자원으로, 자원이지만 사용자에게 보이지 않음 즉, GetResource(ResID)와 ReleaseResource(ResID) 를 통해 잠금과 해제를 할 수 없음 Task가 ru.. 2021. 7. 28.
[OSEK OS] Alarm Alarm이란 반복되는 이벤트를 처리하기 위해 OSEK OS가 제공하는 서비스입니다. 알람은 Conter에 연결되어, 카운터가 특정 값에 도달하였을 경우 지정된 동작(task activation, set event, alarm-callback)을 합니다. 주로 OS의 task를 주기적으로 실행 시키기 위해 사용합니다. Counter 카운터는 소스(e.g. Timer)의 값을 TICK 단위의 상수 값으로 변경시킵니다. (e.g. 1ms-> 1tick) OSEK OS는 S/W 혹은 H/W Timer와 연결된, 적어도 하나의 COUNTER를 제공합니다. 카운터를 HW에 연동해서 자동으로 증가할 수도 있지만 보통은 타이머 ISR에 연결해서 증가하는 방법을 사용합니다. Alarm OIL Code COUNTER =.. 2021. 7. 28.
[OSEK OS] ISR Interrupt란 인터럽트는 보통 주변 장치에서 발생합니다. 주변 장치는 mcu에 비해 속도가 느리기 때문에 이를 기다리기보다는 주변 장치의 동작이 완료됐을 때 인터럽트로 작업이 끝났음을 알립니다. ISR(Interrupt Service Routine) ISR은 인터럽트를 처리하는 함수입니다. OSEK OS에서 ISR은 두 가지 카테고리(ISR category1, ISR category 2)로 나눠집니다. 카테고리1은 OS service를 사용하지 않습니다. 일반적인 임베디드 시스템에서의 인터럽트와 동일한 개념입니다. low level의 인터럽트이며 OS가 존재를 인지하지 못하는 ISR입니다. 카테고리2는 OS 관리 하에 있는 ISR이며 OS service를 사용하며 좀 더 많은 일을 할 수 있습니다... 2021. 7. 26.
[OSEK OS] Task와 Event Task란 Task는 OS가 제어하는 프로그램의 기본 단위입니다. 복잡한 제어 소프트웨어의 실시간 요구사항을 나누어 여러 task로 구성하게 됩니다. OSEK OS는 task를 스케줄링하여 각 task의 실시간 요구사항(시간 제약)을 지킬 수 있도록 합니다. Task 만들기 C code의 task body에 task의 내용을 작성하고 TerminateTask()를 호출해서 Task를 끝냅니다. OIL 코드에는 Task의 우선순위, 스택 공유 여부, 자동으로 시작하는지, 선점형인지 비선점형인지 등을 설정할 수 있습니다. Task state model Task는 실행되면서 상태가 변합니다. OSEK은 2가지의 Task State model (Basic Tasks, Extended Tasks)을 제공합니다. .. 2021. 7. 10.