분류 전체보기
-
[안드로이드] 레이아웃 수직/수평 n% 위치에 배치하기Coding/Android 2019. 6. 27. 20:21
레이아웃을 구성하다보면 TextView나 ImageView를 위에서 몇%지점, 혹은 왼쪽에서 몇%지점 이런 식으로 배치하고 싶을 때가 있습니다. 보통 좌우/상하 여백을 남길때는 margin을 자주 이용하지만 정확하게 몇 %에 배치할 수 있다면 레이아웃을 구성하기 더욱 쉬울 것입니다. 레이아웃에서 Design 탭으로 들어가면 이렇게 Preview를 볼 수 있습니다. 이제 오른쪽의 Attribute 탭에서 다양한 옵션을 작성할 수 있는데, 여기서 레이아웃 뷰를 배치할 수 있습니다. 우선 맨 처음 텍스트뷰를 정중앙에 배치했기 때문에 저 스크롤바가 50수치에 가있는것을 볼수 있습니다. 이를 조정하면 각각 몇%지점에 배치할지를 정할 수 있습니다. 왼쪽이 수직 / 아래 스크롤바가 수평으로 몇 퍼센트 위치에 배치할 ..
-
운영체제 - 5(++ 병행프로세스/상호배제 해결법)OS 2019. 6. 27. 14:35
비동기 병행프로세스(상호배제) 1. 임계 영역(Critical Section) - 프로세스가 공뮤메모리를 사용하는 코드를 임계영역이라 한다 - 임계영역의 사용을 통제해주어야 한다 2. 상호 배제 - 한 프로세스가 임계영역에 들어가면 다른 프로세스는 그 임계영역에 못들어가도록 운영체제가 통제한다. - 이러한 임계영역의 문제를 해결하기 위해 상호배제가 필요하다. * 임계영역을 제외한 영역을 잔류영역이라고 한다 상호배제 해결법 1. Algorithm 1 - 교대로 임계영역에 들어갈 수 있다. While문에 의하여 Process 2가 실행중이라면, 계속 작업을 반복하고(do ;) 그렇지 않다면, p1이 임계영역에 진입하는 알고리즘 프로세스 2 역시 마찬가가지로, P1이 실행중이라면 그 작업을 반복하고 그렇지 않..
-
운영체제 - 4(쓰레드, 병행프로세스)OS 2019. 6. 26. 14:56
쓰레드 - 프로세서의 이용 기본 단위(Process > Threads) - 프로그램 명령을 실행하는 프로세스 내의 개체 - 명령어의 제어 흐름 1. 쓰레드의 구조 - 1개 Process에는 1개 이상의 Thread 존재 - 1개의 Process 내 Thread가 모두 종료되면 Process도 제거됨 2. 쓰레드의 병렬수행 - 프로세스 하나에 포함된 쓰레드들은 공동 목적 달성을 위해 병렬 수행 - 프로세서에서 프로그램의 다른 부분 동시 실행 3. 단일 쓰레드와 다중 쓰레드 1) 단일 쓰레드 프로세스 : 쓰레드 1개 2) 다중 쓰레드 프로세스 : 쓰레드 n개 -> 병렬수행이 잘 이루어진다면 성능 향상 4. 사용자 레벨 쓰레드 / 커널 레벨 쓰레드 1) User level thread : Kernel의 개입 ..
-
운영체제 - 3 (프로세스)OS 2019. 6. 26. 14:11
프로세스 개념 - 프로세스 : 현재 실행중인 프로그램 (메모리에 로딩된 형태) (리눅스의 경우 부팅시 약 80~120 / 윈도우의 경우 40개 정도 프로세스 실행됨) 1. 프로세스 주소공간 주소 - Heap : 필요에 의해 동적으로 메모리를 할당할 때 사용 - Data : 전역 변수와 static 변수가 할당되는 지역 - Stack : 프로그램이 자동으로 사용하는 임시 메모리 영역 - 잠시 사용되었다가 없어지는 메모리 저장 * PCB : 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳 2. 프로세스 종류 1) 시스템 프로세스 : 시스템 운영에 필요한 작업을 실시하는 프로세스(부팅 시 자동 실행되는 프로세스들) 2) 사용자 프로세스 : 사용자가 실행하는 프로세스 3) 병행 프로세스 : 동시에 실행..
-
운영체제 - 2 (기능 , 구조)OS 2019. 6. 25. 14:47
운영체제의 기능 1. 메모리 관리 기능 - 메모리 주소 관리 - 메모리를 얼마나 할당할지 / 얼마나 회수할지 수행 2. 프로세스 관리 기능 - Process : 실행중인 프로그램 - 프로세스 생성/제거/중재/재수행 등 프로세스 관리 기능 - 프로세스간 상호통신 / 교착상태 방지 3. 입출력장치 관리 기능 - 사용자가 하드웨어의 특성을 몰라도 자유롭게 활용할 수 있도록 한다 - 프로세스와 I/O Device 간 처리속도 차이 해결 - 장치 드라이버(장치 관리자) 4. 파일 관리 기능 - 다양한 저장장치를 동일한 방식으로 사용할 수 있는 기능 제공 - 파일/폴더의 생성/제거 운영체제 서비스 1. Bootstrapping(=Booting) 서비스 - Booting : 운영체제가 메모리로 로딩(적재)되는 과정 ..
-
운영체제 - 1 (역할/기능/발전과정/유형)OS 2019. 6. 25. 14:11
운영체제 1일차 - 2019/06/25 운영체제의 역할 : 다리역할을 하는 소프트웨어 1. 조정자 역할 2. 자원관리자 역할 3. 입출력 장치와 사용자 프로그램 제어 역할 운영체제의 목적: 1. 편리성 - 사용자의 편의 제공 2. 효율성 1) 처리량 향상(n초간 몇개의 작업을 처리하는지?) 2) 지연/응답시간 단축(n초 이내에 작업이 실행되어야 한다) 3) 신뢰도 향상 4) 사용 가능도 향상 3. 제어 서비스 향상 - 입출력장치(모니터,프린터....) 동작 관리 및 제어 - 시스템 오류 예방 - How? : GUI제공(Graphic User Interfaces), 프로세스/쓰레드 관리, 프로세서 관리 등 운영체제의 발전과정: 1. 작업별 처리 : 수작업 -> 처리 2. 일괄처리(Batch System) ..
-
[안드로이드] 코틀린 기본 문법 - 7(형변환 + Java와의 차이)Coding/Android 2019. 6. 24. 16:22
기본적으로 Kotlin에서도 Java와 비슷하게 정의된 함수로써 형변환을 실시합니다. val a: Long = 34 val b: Int = a.toInt() // Long을 Int로 강제 형변환 toByte() : Byte로 변환 toShort() : Short로 변환 toInt() : Int로 변환 toLong() : Long으로 변환 toFloat() : Float으로 변환 toDouble() : Double로 변환 toChar() : Char로 변환 String의 형변환은 Java와 동일 여기서 Java와의 차이점은, 숫자형 자료형간의 자유로운 캐스팅이 안된다는 것입니다. 이게 무슨소리냐면 Java에서는 int x = 42; double y = x; 다음과 같은 코드도 문제없이 형변환이 가능합니다...
-
[안드로이드 - 코틀린] Intent로 데이터 전달하기Coding/Android 2019. 6. 23. 22:23
그동안 Intent를 통하여 액티비티 전환을 했지만, 사실 Intent는 해당 액티비티의 데이터를 담아 전달하는 역할도 합니다. 1. 데이터 담기 다음은 인텐트에 데이터를 담는 코드입니다. 간단한 예를 들어 몸무게와 키 값을 전달한다고 가정해볼게요. putExtra 메소드를 이용하여 키와 값의 쌍으로 데이터를 저장합니다. 다음과 같은 경우는 String의 형태로 "weight"키에는 strWeight이 "height"키에는 strHeight이 저장되겠네요. val intent = Intent(this, ResultActivity::class.java) intent.putExtra("weight", strWeight) intent.putExtra("height", strHeight) 저번 포스팅에도 Ank..