본문 바로가기

전체 글571

Floyd-Warshall 알고리즘 - 그래프에서 모든 꼭짓점 사이의 최단 경로의 거리를 구하는 알고리즘 - 제일 바깥쪽 반복문은 거쳐가는 꼭짓점 - 두 번째 반복문은 출발하는 꼭짓점 - 세 번째 반복문은 도착하는 꼭짓점 N개의 정점과 방향과 가중치 w를 가진 M개의 간선으로 이루어진 방향 그래프가 주어짐. 이때 모든 정점들의 쌍에 대해 A에서 시작하여 B로 도착하는 최단 거리를 구하시오 #include #define INFINITY 999999 int weight[101][101]; int result[101][101]; void floyd(int n) { int i, j, k; for (k = 0; k < n; k++) { for (i = 0; i < n; i++) { if (k == 0) { for (j = 0; j < n; j++).. 2021. 6. 18.
Permutation & Combination 알고리즘 #include #define MAX_STRING_LENGTH 10 int stackTop = 0; char combinationStack[MAX_STRING_LENGTH]; void swap(char* x, char* y) { char temp; temp = *x; *x = *y; *y = temp; } void permutation(char* str, int l, int r) { if (l == r) { printf("%s\n", str); } else { for (int i = l; i 2021. 6. 18.
parametric search 알고리즘 - 해를 바로 구해내는 것이 아니고, 임의의 값을 던지고 맞는지 확인해가며 해를 구하는 방법 - 길이가 다른 K개의 리본, N개의 리본재료를 만드려 함. 리본 재료의 최대 길이를 구하시오 #include #define MAX_RIBBON 100 int K; int N; int low, high, mid, numRibbonTape, max; int sizeRibbonTape[MAX_RIBBON]; void search() { mid = low + (high - low) / 2; numRibbonTape = 0; for (int i = 0; i = N) { low = mi.. 2021. 6. 18.
안드로이드 하드웨어 서비스 03 Telephony Framework Phone 앱과 텔레포니 프레임워크가 하나의 프로세스에서 같이 실행되도록 구현된 이유는 네트워크의 특성상 네트워크로부터 전달되는 응답이 올 시점을 예측하기 어려우므로 비동기 통신 방식을 사용하기 때문임. 3.1.1 텔레포니 프레임워크의 기능 GSM 또는 CDMA 모뎀이 제공하는 모든 서비스를 PDK앱인 Phone앱 및 MMS 앱등에 제공하며 SDK앱에서는 TelephonyManager를 통해 한정적인 네트워크 정보를 제공함. - 텔레포니 프레임워크 내 객체 간의 통신 메커니즘 제공. 레이어와 레이어 간의 인터페이스를 정의하고 각 레이어 내의 객체 간 통신 메커니즘을 정의함. - 텔레포니 프레임워크와 RIL 데몬 간의 통신 : RIL 데몬과의 통신 메커니즘을 구현함. 유닉스 도메인 소켓을 통해 RIL 데몬.. 2021. 6. 17.
인사이드 안드로이드 11. 자바 시스템 서비스 동작 분석 자바 시스템 코드인 액티비티 매니저 서비스를 통해 자바 시스템 서비스가 안드로이드 프레임워크 내에서 어떻게 동작하는지에 대해 좀더 구체적으로 알아봄. 11. 액티비티 매니저 서비스 자바 시스템 서비스의 일종인 코어 플랫폼 서비스. 안드로이드 앱 컴포넌트인 액티비티, 서비스, 보로드캐스트 리시버를 생성, 생명주기를 관리함. RemoteService는 앱가 독립된 프로세스에서 동작하는 리모트 앱 서비스이기 때문에 서비스를 실행하기 위해서는 우선 새로운 프로세스를 생성해야 함. 안드로이드의 모든 자바 기반 프로세스는 Zygote에 의해 성생됨. 액티비티 매니저 서비스는 Zygote를 이용해 서비스를 실행할 프로세스를 생성함. 11.2 액티비티 매니저 서비스를 통한 서비스 생성 코드 분석 앱 컴포넌트는 인텐트라.. 2021. 6. 16.
안드로이드 하드웨어 서비스 03 텔레포니 프레임워크 (6) 4.2.1 USIM의 데이터 구조 2G 통신에 사용되는 파일 시스템의 루트 디렉토리를 MF라 하고 3G를 위한 파일 시스템의 루트 디렉토리는 ADF라 불림. 일조의 디렉토리인 DF와 파일역할을 하는 EF를 가질수 있음. R-APDU의 값에는 결과의 상태를 나타내는 Status Word가 있음. 일반적으로 0x90, 0x00으로 반환됨. 이는 UICC에서 단말로 보내는 명령인 Proactive Command가 UICC에서 대기 중임을 나타내는 것임. 문맥상으로 UICC에서 단말로 명령을 보내고 단말에서 명령을 처리한 후 결과를 보내는 방식으로 동작한다고 볼 수 있음. 4.3 안드로이드 USIM 소프트웨어 구조 getsimstatus, requestsim_io, requestentersimpin, reque.. 2021. 6. 12.
안드로이드 하드웨어 서비스 03 텔레포니 프레임워크 (5) 04 USIM(Universal Subscriver Identity Module) 가입자의 정보를 저장. 이동 통신망과 무선랜 등의 인증 기능, 보안에 민감한 정보의 저장 기능. UICC에 RAM, ROM, EEPROM, 연산 역할을 하는 CPU로 구성되어 있음. EEPROM에는 데이터나 IC칩에서 동작하는 앱이 설치되어 있음. USIM은 앱의 이름에 해당하기 때문에 물리적인 카드 자체를 지칭할 때는 UICC라는 단어를 쓰는 것이 정확한 표현임. 스마트카드는 연산장치와 기억장치가 있는 일종의 컴퓨터임. 클래스별로 허용하는 최저 및 최고 전압이 존재함. 가장 약한 C 클래스의 전압인 1.8V로 구동시키게 됨. 4.1.3 APDU를 이요한 스마트카드 통신 SW1-SW2 멸영 처리 결과 코드 예 - 성공 0x.. 2021. 6. 12.
SW 아키텍쳐 구조&활용 (3) OS(Operating System) 기반 Embedded System Bootloader 구조 타겟 시스템의 하드웨어를 초기화하고 오에스 및 앱 이미지를 메모리에 올려 실행시킴. 부트로드의 위치는 일반적으로 롬계열의 물리 주소 0x0번지부터 위치하거나 따로 파티션을 만들어 관리함. 하드웨어 의존성이 강함. Configuration target은 Makefile에 추가되어 있음. Bootloader sequence ENTRY(_start) -> Entry point -> iRAM에서 동작 PLL(Phase Locked Time) : PLL Logic에 의해 외부 X-TAL Clock은 안정된 출력 Clock을 공급하게 되며 Logic Loop를 통해 최적화 되기까지 시간이 필요함. PLLCON 레지스터를.. 2021. 6. 10.
SW 아키텍쳐 구조&활용 (2) Linux기반 SW 아키텍처 운영체제 개관 OS 오픈소스기반 임베디드 시스템 입출력 장치 등의 자원들을 사용할 수 있도록 만들어 주고, 이들을 추상화하여 파일 시스템 등의 서비스를 제공함. 리눅스 계열에서 /dev/xxx 파일등. 응용단이 파일형태로 메모리에 올라가는 것임. BSP(Board Support Package)는 Target에 맞춰 수정된 Software를 의미함 부트 로더와 함께 제공되기도 하며 OS를 로드 하기 위한 최소한의 장치를 지원함. OS, 루트 파일 시스템, 툴 체인 그리고 장치를 위한 설정값을 제공함 프로세스 실행주인 프로그램을 의미하며 각 프로세스는 독립적으로 메모리가 할당됨. 사용자 영역 커널 영역 나뉘어 있음. run_init_process(ramdisk_execute_co.. 2021. 6. 9.