목록분류 전체보기 (385)
만족
이클립스를 더블클릭해 실행하거나 DOS창에서 실행할 때아무런 에러 창도 없이 로딩화면만 잠깐 나왔다가 사라지는 문제가 발생하였다. 분명 본인은 전날까지 이클립스를 잘 쓰다가 끄고 다음날 켰더니 이런 어이없는 사태가 발생하였다... 두시간 동안 삽질한 끝에 겨우 해결법을 찾았다. 환경 변수 편집으로 들어가서 Path변수의 편집을 눌러 “C:\ProgramData\Oracle\Java\javapath” 을 삭제한 뒤 이클립스를 실행시키면 정상적으로 실행된다. 참조: https://www.quora.com/Why-cant-I-install-Eclipse-IDE-in-Windows-10
https://github.com/anjlab/android-inapp-billing-v3 이곳에서 시키는 대로만 하면 된다. 코드 20줄 내로 인앱 결제 구현을 간단하게 할 수 있다. 사전 준비작업 같은 경우에도 Google Billing Library나 aidl같은거 설치 안하고도 gradle에 한줄만 적어주면 되니Google Android Document보다 훨씬 쉽게 구현 가능하다. 번역이 필요한 경우, https://github.com/NamGungGeon/android-inapp-billing-v3-guide 를 참조하면 된다.(버전이 업데이트되었을 경우 반영이 늦거나 되어있지 않을 수 있다) 가이드 번역 내용해당 컨텐츠가 이상하게 보일 경우 https://github.com/NamGungGe..
컴퓨터에 관심과 이해가 높은 사람이라면 노트북이나 데스크탑을 구매할 때 크게 어려움을 느끼지 않지만 그렇지 않은 사람이라면 매우 힘든 일일 것이다. (전공자라고 해도, 컴퓨터학과에서는 컴퓨터의 원리, 본질을 배우는 것이지 상품을 배우는 것이 아니기 때문에 모르다고 해도 이상하지 않다) 읽기 귀찮다면 두꺼운 글씨와 밑줄을 중심으로 읽으면 된다. 크게 살펴보아야 할 것은 다음과 같다. 1. CPU 2. GPU(VGA) 3. RAM 4. Storage 5. Brand 6. Size/Weight 1. CPU CPU는 사람으로 비유하면 두뇌와 같다. 컴퓨터는 0과 1로 이루어져 있으며, 모든 것은 연산(operation)을 통해 이루어지는데, 그 연산을 담당하는 장치가 CPU이다. CPU를 생산하는 회사는 인텔(..
Early Systems 메모리의 관점에서, 과거의 machine들은 사용자에게 abstraction을 제공하지 못했다. OS는 단순히 메모리의 0번지에 위치하는 library와 같은 routine의 집합체일 뿐이었다. 하나의 machine에서 하나의 program만이 실행가능했으며, 그 당시의 OS는 해야 할 일이 별로 없으니 당연스럽게도 매우 단순했었다. Multiprocessing and Time Sharing 당연히 사용자들은 한개의 machine에서도 한개만이 아닌 여러 가지 작업들을 동시에 처리하길 원했다. 그래서 Time Sharing이라는 개념이 이 때 생겨나게 되었다.(Time Sharing= 어떤 Computer Resource들을 여러 사용자들이나 프로세스들 간에 공유하는 것) 이 T..
우리 주변의 컴퓨터들을 보더라도, 대부분의 컴퓨터들은 듀얼코어 이상의 CPU를 사용하고 있다. 게다가, 요즘에는 일반 데스크탑 용도의 컴퓨터에도 6코어, 8코어 CPU를 사용하고 있으니,단순히 Single core에 대한 scheduling 뿐만 아니라 Multi core에 대한 Scheduling도 교려해야 한다. 먼저 Single Core 환경에 대해 간단히 살펴보면 (CPU - Cache) ------Memory 형태로 되어 있다 Cache는 Main Memory보다 용량은 작지만, 주요 data들을 모아 둔 작고 빠른 임시저장장치이다. 이 Cache를 이용함으로써 CPU와 Memory간의 다소 느린 속도를 보완해줄 수 있다. Cache는 다음과 같은 Idea에서 탄생하였다. 1. temporal ..
Overview 각각의 Level을 갖는 여러 개의 Queue가 존재하며, 새로운 Job이 도착하면 이 Queue 안에서 특정 규칙에 따라 우선순위가 변하면서 여러 가지 Job들 중에 하나를 선정해 실행하는 Scheduling 방법론이다. 아래는 기본적 특징이다. 여러 개의 Queue를 가지며, 각각의 Queue는 Priority를 가진다. 여러 개의 작업들 중, 어떤 작업을 선정하여 실행할 것인지를 결정하기 위해 Priority를 기준으로 사용한다. Job의 Priority는 계속해서 변하며, 그 작업이 CPU를 얼마나 점유하는지를 기반으로 결정된다.(오래 점유할수록 Priority는 밀려난다) Basic Rule 위와 같은 특성으로 보았을 때 우리는 기본적 규칙 몇 가지를 발견할 수 있다. 1. A의..
Modern Scheduling에 대해 알아보기 위해 몇 가지 사전 가정을 해보자. (실제로 그렇지 않다 하더라도) 1. 각각의 Job들은 모두 같은 시간동안 동작한다. 2. 모든 Job들은 같은 시간에 도착한다 3. 모든 Job들은 작업 시간동안 전부 CPU를 사용한다 4. 모든 Job들의 Running-Time은 알려져 있다. Scheduling Metrics 어떤 Scheduling 방법의 효율성을 측정하기 위한 몇 가지 지표가 있는데, 자주 사용되는 두 가지의 지표를 소개하겠다. 1. Turnaround Time Job Complete Time- arrived time in system으로 정의된다. Job이 System에 도착하고 나서 끝날 때 까지 얼마만큼의 시간이 지났는지를 나타내는 지표이다..
왜 Limited 되어야 하는가? Limited되지 않는다면, OS와 Program은 동등한 계층(hierarchy)를 갖는다. 따라서 OS는 Program을 감시하거나 동작을 제어할 수 없다. 만약 Program이 무한히 돌고 있다면(intended하든, unintended하든지간에), OS는 주도권을 갖을 수 없으며 멈추는 방법은 오로지 restart하나 뿐일 것이다. 또한 접근하지 않아야 할 영역에도 무차별적으로 접근하여 Process간 Protection이 전혀 존재하지 않는다. 따라서 OS가 다른 모든 process보다 높은 곳에서 process들을 관리하는 최상위 계층에 존재해서 이들을 제어할 수 있어야 한다. Limited Direct Execution Hardware는 OS에게 두 가지 e..