본문 바로가기

분류 전체보기

(15)
VMWare) Failed to open virtual machine: VMX file is corrupt. VMware Workstation Pro 에서 생성한 가상머신은 일반적으로 Player에서 열 수 있도록 호환되어 있다. 그러나 어째서인지 Failed to open virtual machine: VMX file is corrupt. 와 같은 메시지를 뿜었는데해결방법은 .vmx에서 설정하였던 개별설정을 되돌려서 초기값 상태로 바꾸어주면 된다 이후 Player에서 구동이 정상적으로 되는지 확인한 뒤 .vmx에 설정을 다시 먹이면 된다.
[무어머신 개념정리] 카운터 회로 Q2Q1Q0000001011010110111101100 개념정리 조합회로: 현재의 입력값에 의해 값(= 약의미의 상태)이 결정되는 회로, 각 시점은 상태로 볼 수도 있으나 순차회로의 플립플롭의 상태와는 다른 방식의 상태이다. 조합회로는 입력값들의 함수로 표현될 수 있다. 예) 가산기,감가산기,감산기,비교기,디코더,먹스 등 무어머신: 현재의 상태들에 의해 다음 상태가 결정되는 회로 즉, 플립플롭들의 현태 상태만의 함수라면 해당 회로를 무어머신이라 한다. 예) 카운터 밀리머신: 출력이 현재 상태와 입력 모두의 함수라면 그 회로를 밀리 머신이라 한다.예)
프로그래머는 명령어 저장을 명시적으로 저장하는가?? 깨달음을 요약한 그림개요수업시간에 들은 내용에 의하면 CPU는 명령어 인출 / 실행(데이터 저장,이동,입/출력,점프 등..)을 수행하는 듯 하다.그런데 데이터를 저장하는 동작은 프로그래머가 코드 상에서 명시적으로 표현해주는데 반해, ex) STA Z, A = 기억장치의 Z번지에 CPU 내부 레지스터 A의 내용을 저장하라. 명령어의 저장 위치를 명시적으로 저장해준 적은 없는거같다. 그렇다면 명령어는 어떻게 저장되는가? 이것과 연관이 있는 폰 노이만 아키텍처 , 하바드 아키텍처에 대해 간략히 짚고가야한다. 폰 노이만 아키텍처란 정의 : 프로그램 코드들을 저장된 순서대로 실행하고 그 순서는 CPU의 내부 레지스터인 PC에 의해 지정된다.특징 : 기억장치(메모리) 에 명령어영역/데이터영역 이 구분되어 있다.한계..
(미해결) [Java] JAVA 소스코드는 왜 플랫폼에 독립적인가?? Java 소스코드가 운영체제에 독립적이라는 이유는Javac의 중간수준 컴파일 결과인 ByteCode가 JVM에 의해서 운영체제에 맞게 실행되기 때문이다. 그렇다면 가상의 개념 CVM이 있다하자.CVM은 (C/C++ Virtual Machine) 이 머신의 역할은 .c 파일을 컴파일하고 실행결과를 출력한다.또한, 운영체제마다 CVM은 다르게 구현되어 있으며, 각 운영체제들의 특성에 맞게 구현 되어있다 하자.또한 CVM은 하드웨어에 대한 직접적인 제어를 추상화하여 라이브러리나 프레임워크를 통해 일관된 인터페이스를 제공할 수 있다따라서, 운영체제에 CVM이 설치되어있다면 .c 소스코드는 CVM에 의해서 해당 운영체제에서 컴파일+실행결과 출력을 보장받는다. 위와 같은 가정에서CVM은 JVM의 ByteCode 와..
알고리즘과 데이터의 관계 "alalal" 라는 문자열은 규칙을 의미한다 할때, 프로그램 상에서 다음과 같은 함수가 있다 하자, 편의상 이 함수를 A함수라 한다.function is_Rule: if(str.equals("alalal")) return true else return false여기서 분기 로직은 입력받은 문자가 규칙을 의미할때 처리하는 로직이라 할 수 있을것이다. 그런데 이러한 로직의 처리가 가능한 이유는 "alalal" 이 규칙을 의미한다 할 때첫째로 사용자가 이러한 "alalal" 의 의미를 알아야하고,둘째로 이러한 "alalal" 의 규칙을 합의해야할 것이다. 그러나 프로그램에서 소수를 판별하는 함수 (편의상 이를 B함수라 지칭한다.)function is_decimal(x): ..
ADB를 이용하여 앱 성능 테스트를 해보자 (1) https://developer.android.com/studio?hl=ko Android 스튜디오 및 앱 도구 다운로드 - Android 개발자  |  Android Studio  |  Android DevelopersAndroid Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today.developer.android.comADB란 Android Debug  Bridge란? 안드로이드 기기를 컴퓨터와 연결하여 다양한 작업을 수행할 수 있도록 해주는 강력한 명령줄 도구입니다. 마치 안드로이드 기기의 터미널에 직접 접속하..
어째서 변방의 촌뜨기는 위대해질 수 없는걸까? "나는 왜 시골 농부가 노벨상을 타지 못할까라는 의문을 품게 됩니다. 역사 속 위대한 인물들의 업적을 접할 때마다, 그들의 천재성에 감탄하면서도 동시에 평범한 사람들은 왜 그런 업적을 이루지 못하는지 궁금해집니다. 모든 사람은 삶의 주인공이 되기를 꿈꾸지만, 현실은 녹록지 않습니다. 농부들은 흙을 일구고 작물을 키우며 묵묵히 살아가고, 대부분의 사람들은 각자의 자리에서 맡은 바 역할을 충실히 수행합니다. 그렇다면 왜 소수의 사람들만이 역사에 이름을 남기고, 혁신적인 아이디어를 내놓을 수 있을까요? 혹시 모든 사람이 자신의 직업을 바꾼다면 어떤 일이 벌어질까요? 농부가 과학자가 되고, 과학자가 예술가가 된다면 세상은 어떻게 변할까요? 물론 현실적으로 모든 사람이 자신의 분야를 바꾸는 것은 불가능하지만, 이..
[논리회로] 순차논리회로 (동기/비동기) 동기/비동기 회로는 순차논리회로에 존재하는 개념이다.순차논리회로에 Clock 이란게 등장하게 되는데 이러한 Clock을 통해 F/F(이하 플립플롭으로 설명됨) 의 모든 clk 단자에 입력이 인가되는지 아닌지에 따라 갈린다. 따라서 동기/비동기 회로는 순차논리회로의 부분집합으로 볼 수 있겠다. Synchronous(동기) 회로   - 모든 F/F이 동시에 동작. 즉, clock의 rising edge에 동시 동작한다.   - 모든 F/F의 clk단자에 같은 clock 신호가 입력된다.  - 설계가 쉽다.  → 즉, 모든 F/F 동시동작Asynchronous(비동기) 회로  - 모든 F/F이 동시에 동작하지 않는다.   - 모든 F/F의 clk단자에 같은 clock신호가 입력되지 않는다.   - 설계가 어렵..
로우 레벨로 내려가보기 C언어를 작성하다보면 printf 함수가 있다.이 함수의 가장 밑으로 내려가서 어떻게 구현되어있는지 궁금해졌다. Ctrl + 클릭 으로 들어가면 studio.h 에 선언되어 있는 형태를 알 수 있다.그렇게 들어가고나면 이런 추상자료형을 볼수 있는데 이 말은 즉 이러한 함수를 구현하는 .c 파일이 어딘가에 있다는 말이 될것이다. 찾아 들어가보자. ? : ㄴㄴ 안됨 돌아가셈.Q. 왜요?A. printf 함수는 C 표준 라이브러리에 정의된 함수임. 이는 컴파일러와 운영체제에 따라 구현 방식이 다를 수 있으며, 일반적으로 소스 코드가 공개되지 않는다. 그렇다 나는 내부 구현 사정을 알 수 없고 모르는채로 살아가야만 한다. "바퀴를 재발명하지마라"ㅎㅏ지만 바퀴를 재발명하고싶은걸요.  방법 1. 디버깅모드로 함수 ..
[논리회로] 컴퓨터 시스템에서 클록은 왜 필요할까? 들어가며먼저 클록의 개념을 알고 있는 상태에서 배워야한다.디지털 논리회로 시간에 배운 클록의 개념은 어렵지않게 이해할 수 있었다.그렇지만 이러한 클록이 왜 필요한지 의문이 들었다.내 생각에 위 회로에서 ClockPulse 부분을 항상 1로 두는 것 즉, 아예 없애버린다면 더 빠르게 동작할거 같은데????그러니까 굳이, 내가 S=1, R=0 을 통해 Q=1 을 설정하기 위해 다음 클록에지를 기다리지않고 그러한 기다리는 시간이 감소된 형태로 속도 측면에서 이득을 얻지 않을까?이러한 내 생각이 옳은지 확인하고싶었기에 먼저, 클록이 필요한 이유부터 알아야했다. 클록 신호가 필요한 이유동기화: 컴퓨터의 CPU, 메모리, 입출력 장치 등 모든 부품은 서로 정확하게 맞춰져야 합니다. 클록 신호는 이러한 부품들의 동작..