본문 바로가기

CS

(29)
[Embedded] Android Architecture Android architecture Android architecture에 대해서 알아보도록 하자. 안드로이드는 구글에 의해 2007년에 개발된 모바일 os 이다. 위 표는 안드로이드의 역사를 나타낸 표이다. ANDROID SDK 안드로이드 SDK(software development kit) 는 말 그대로 안드로이드 소프트웨어를 개발하기 위한 툴 킷을 의미한다. ANDROID NDK 안드로이드 NDK(Native Development Kit) 란 안드로이드에서 C, C++ 코드를 사용할 수 있게 해주는 일련의 도구 모음이다. 리눅스 system call을 사용할 수 있으며, ndk는 일반적으로 게임이나 물리 시뮬레이션 같은 집약적 연산 intensive operations 의 경우에 사용하면 유용하다..
[Embedded] Cross Development Environment What is Cross Development Environment? 우리가 일반적으로 PC 환경에서 개발하는 경우에는, 키보드, 모니터, 하드디스크 등 여러 주변 장치, 보조기억장치 등이 존재한다. 하지만 임베디드 시스템의 경우는 위에 해당하는 것들의 대부분 없다. 임베디드 시스템의 경우는 특수 목적으로 만들어진 시스템이다 보니 모니터나 키보드가 필요하지 않는 경우가 많다. 그렇기 때문에 임베디드 시스템 자체에서 개발을 하는 것은 거의 불가능하다고 보면 된다. 그럼 임베디드 시스템의 개발은 어떻게 진행되는 것인가? 바로 Cross Development Environment, 교차 개발 환경을 이용하여 개발한다. 교차개발환경이 무엇인지 알아보자. 먼저, PC용 SW 개발의 경우에는 개발환경과 실행환경이 ..
[Embedded]What is Embedded System?(~H/W) **개인 공부를 기록하는 글이다 보니 오류가 있을 수 있습니다. 부족한 부분 많은 지적 해주시면 감사드리겠습니다** Definition of an Embedded System 임베디드 시스템은 일반적인 general-purpose computer(일반적으로 우리가 사용하는 PC)와 다르게 특정 목적을 위한 function을 수행하는 computer system 혹은 computiong device를 말한다. 일반적인 PC는 문서작업, 그래픽 멀티미디어 작업 등 필요한 소프트웨어 설치하면 원하는 다양한 작업을 모두 진행할 수 있다. 하지만 임베디드 시스템은 특정한 목적을 위해 설계되는 것으로 범용의 목적이 아닌 정해진 용도에만 국한된 기능을 제공해 주는 시스템이다. 이는 SW(OS)를 포함하여 설계 되거나..
[Embedded]Interrupt Handling Interrupt OS kernel의 주요 역할로는 시스템 하드웨어를 관리하는 작업이 있다. HDD, LAN, 마우스, 키보드 등 각 장치와 통신을 해야 하드웨어를 관리할 수 있는데, 이러한 하드웨어와의 통신 속도는 processor 속도에 비해 많이 느려 하드웨어 응답까지 커널이 기다리는 방식은 비효율적이다. 이러한 문제점 해결하는 방법 중 하나는 polling이다. Polling은 커널이 주기적으로 시스템 하드웨어의 상태를 확인하고, 그 상태에 따라 처리하는 것을 말한다. 하지만 이러한 방법도 하드웨어의 상태를 주기적으로 확인해야 하는 overhead가 발생하게 되고 불필요한 부하가 생기게 된다. 따라서 더 효율적인 방법으로는 하드웨어가 커널에 신호를 보낼 수 있는 체계가 있다. 이를 Interru..
[Network]Analog Signals Analog vs Digital signals Analog signals : continuous Digital signals : discrete 하다는 특징이 있다. Analog signals periodic signals - the same pattern is repeated over time 같은 패턴이 반복되는 signal을 의미 대표적으로 sine wave 가 있다. characteristics of Periodic signals 특징은 다음과 같다. amplitude(진폭) : signal의 최대 값의 절댓값 frequency(주파수) : 1초에 진동하는 횟수 period(주기) : 같은 패턴이 다시 시작하는 데 걸리는 시간 주기(T) 주파수(f)는 역수 관계를 갖는다. 주기의 단위와 주파수의 ..
[OS]Demand Paging 우리는 왜 virtual memory 가상메모리를 사용해야 하는 것인가? 우리가 program을 실행할 때는 program 전체가 동시에 필요하지 않다. 만약에 program을 실행할 때 main memory에 program의 모두를 올리게 되면 문제점이 main memory 보다 사이즈가 큰 프로그램을 돌려야 한다고 했을 때 돌리지 못한다. 결국 main memory에 프로그램 전부를 올리는 것이 아닌 일부만 올려놓는 방법을 사용하는데 이렇게 발전된 것이 바로 virtual memory인 것이다. physical memory에 분리하여 user logical memory의 개념으로 사용하게 됨으로서 physical memory의 크기에 상관 없이 program을 작성할 수 있게 되었다. 정리하자면 프로..
[AI]Markov Decision Process(MDP) Markov decision process란 observable, stochastic environment with a Markovian transition model and additive rewards 라는 것인데 예시를 보며 알아보자. 다음과 같은 상황이 주어졌다고 하자. +1, -1이 terminal state이고 reward가 각각 +1, -1이다. 또한 세가지 방향으로 이동가능한데 전진, 좌회전, 우회전 각각 0.8, 0.1, 0.1의 확률로 선택된다. terminal state를 제외한 모든 state는 reward가 -0.04이다, terminal state로 가는 방법에 대해 찾아보는 문제이다. 위 수식을 설명을 해보면 T(s, a, s' ) ≡ P(s'|s, a) 는 state s 에서..
[AI]Making Simple Decisions *공부하면서 정리하기 위한 글이므로 오류가 있을 수 있으니 참고 바랍니다* 지적 댓글 환영합니다. 우리는 일상 생활에서도 많은 의사 결정을 하게 되는 상황을 많이 경험한다. 그렇다면 그럴 때 어떤 결정을 할 것이냐에 대해 고민하게 되는데 이를 논리적으로 접근해보자. 즉, 불확실성 속에서 의사 결정을 어떻게 할 것이냐에 대해 알아보도록 하겠다. 다음과 같은 상황을 가정해보자. 위 그림은 공항에 가는데 25분 전에 출발 했을 때 제 시간에 도착할 확률은 0.04, 90분 전에 출발 했을 때 제 시간에 도착할 확률은 0.70, 120분 전에 출발 했을 때 제 시간에 도착할 확률은 0.95, 1440분 전에 출발 했을 때 제 시간에 도착할 확률은 0.99 라는 것을 의미한다. 그렇다면 공항에 제 시간에 가기 위..