🍉 입력구조
- 컴퓨터와 사용자간의 관계
- 사용자가 입력한 문자들을 자바같은 가상머신이 컴파일작업을 통해서 OS가 이해할 수 있는 언어를 변환해준다.
- SHELL언어는 HW가 이해할수 있는 2진수 언어로 변환하여 하드웨어에게 명령을 내린다.
- 특히 C언어 같은경우에는 Windows라는 프로그램에 종속된 언어기 때문에, C언어로 프로그램을 개발한다면 IOS에서 구동이 되지 않는다. 따라서 MAC유저를 위해서 프로그램을 다시 짜야하는 상황이 발생한다.
- 이런 상황에서 자바같은 가상머신은 OS를 위해 변환해주는 작업을 대행해준다. 그래서 이런 언어로 개발을 하게 된다면은 일을 두번할 상황이 줄어든다.
- 플러터 언어도 마찬가지이다. 한번 프로그램을 짜놓으면 다른 OS와 호환이 가능해서 효율적이다.
🍑 기본 통신 체계
- 사용자의 언어가 기계가 이해할 수 있는 언어로 변환
- OS는 HW가 이해할 수 있는 8비트언어로 변환 → 인코딩 작업
- OS언어 SHELL이 아스키코드로 인코딩 되어서 2진수 언어로 전환
- 8비트로 변환된 언어는 전류와 함께 이동 → 통신
- 통신전달된 8비트 언어는 상대방의 HW로 입력됨
- 입력된 8비트 언어를 SHELL언어로 변환 → 디코딩 작업
- 아스키코드가 OS언어 SHELL로 변환됨
🍒 하드웨어 구조와 관계
- cpu에는 레지스터에 저장된 정보를 가지고 연산을 한다. (캐시메모리)
- 버스의 크기 - 한방에 퍼줄 수 있는 용량
- 레지스터의 처리용량에 따라 프로그램의 버스의 크기를 결정한다.
- 레지스터크기 32bit에 64bit프로그램을 사용한다면 에러가 난다.
- 레지스터크기 64bit에 32bit프로그램을 사용한다면 에러는 나지 않으나 속도가 엄청 느려진다.
- 캐시 메모리 - 상대적으로 더 빨리 엑세스할 수 있는 메모리
- 메모리에 비해서 레지스터를 캐시메모리라 부를수 있다.
- 하드디스크에 비해서 메모리를 캐시메모리라 부를수 있다.
- 책상위에 사용중인 책과 책장에 꽂힌 책을 비교한다면 책상위에 바로 사용할 수 있는 책들을 일컫는 경우이다.
- 메모리 (전류기반) - 하드디스크 (물리기반)
- RAM이 휘발성인 이유는 전류로 데이터를 저장하기 때문
- 하지만 그 때문에 처리속도 검색속도가 ROM에 비서 100배 정도 차이가남
- 로딩 - 하드디스크에 기록된 물리기반의 정보를 전류기반인 메모리로 변환해주는 과정
- IO (Input Output) → 컴퓨터의 속도에서 제일 오래걸리는 작업.
- 결국 속도를 줄이기 위해서는 핵심인 IO시간을 줄여야된다. IO 최적화없이 시간줄이는 건은 뛰어봤자 도찐개찐.
- 부팅 - 윈도우 실행시 필요한 정보들을 메모리에 올리는 과정
🥂하이브리드 언어 (두가지의 기능을 갖춘 언어)
- 기능1 - 컴파일
- 사전에 받은 스크립트를 변환
- 속도가 빠르다
- 기능2 - 인터프리터
- 명령을 내림을 동시에 번역 - 실시간 번역
- 속도가 컴파일에 비해서 상대적으로 느리다.
- 컴파일이 없는 언어들을 말함
- 파이썬
- 두가지 기능을 갖춘언어를 하이브리드언어
- 자바
Share article