컴퓨터프로그래밍 7

파일 처리

Disk가 있다.(Repository)파일은 disk안에 저장 되어있다.disk는 컴퓨터의 하드웨어에 있다.운영체제가 관리한다. == 운영체제를 반드시 거쳐서 하드웨어 리소스를 사용할 수 있다.그런데 운영체제가 파일 기능까지 전부 갖고 있다면 복잡성이 너무 증가한다. 그래서 File-System을 따로 두어 운영체제가 파일을 관리한다.즉, 파일 처리는 위탁구조이다.커널은 운영체제의 핵심 부분으로, 하드웨어와 애플리케이션 간의 상호작용을 관리한다.커널이 많은 파일 시스템을 처리하기에는 복잡성이 높다.그래서 VFS(가상파일시스템)을 이용하여 커널에서 파일 시스템을 처리한다.

정보통신이론(HTTP)

구글에 아이디와 비밀번호를 입력하여 로그인 한다.내가 보낸 정보들을 구글은 어떻게 알까?구글 본사에 있는 슈퍼 컴퓨터가 받아서 알아내나?아니다. 통신은 컴퓨터와 컴퓨터간에 이루어지는 것이 아니다.프로세스와 프로세스 간의 통신이 이루어진다. 내 컴퓨터에 있는 웹 브라우저 프로세스와 구글의 서버 프로세스 간의 통신으로 로그인 할 수 있다. 프로세스가 네트워크를 사용하기 위해서는 랜카드를 써야한다.내 컴퓨터의 프로세스들은 네트워크 사용을 위해 랜카드를 써야 하는것도 마찬가지이다. 운영체제는 이 프로세스들에게 고유의 번호(포트)와 IP주소를 주어 통신할 수 있게 한다.결국 통신은 우편 시스템과 정확히 동일하다고 볼 수 있다.나의 주소와 프로세스 포트 그리고 데이터를 상대 IP주소와 포트에 보내면 송신할 수 있고..

하이퍼바이저(Hypervisor)

하이퍼바이저(Hypervisor)는 가상화 기술을 지원하는 소프트웨어나 하드웨어 시스템으로, 여러 운영체제가 동시에 하나의 물리적 하드웨어에서 실행될 수 있도록 합니다. 하이퍼바이저는 가상 머신(VM, Virtual Machine)을 관리하고 제어하는 역할을 합니다. 하이퍼바이저와 VM은 서로 다른 개념이지만 긴밀하게 연관되어 있습니다.하이퍼바이저(Hypervisor)하이퍼바이저는 가상화를 구현하기 위한 핵심 기술로, 두 가지 주요 유형으로 분류됩니다:타입 1 하이퍼바이저 (Type 1 Hypervisor):**베어 메탈 하이퍼바이저(Bare-metal Hypervisor)**라고도 불립니다.물리적 하드웨어에서 직접 실행됩니다. 즉, 하이퍼바이저 자체가 운영체제 역할을 하며, 하드웨어 리소스를 가상 머신..

컴퓨터와 2진수, 데이터

사람은 10진수를 사용하고 컴퓨터는 2진수를 사용한다.왜?손가락이 10개라 10진수를 사용했을 것 이다.(잘모른다) 그렇다면 컴퓨터는 왜 2진수일까?전기 신호를 이용한 반도체이기 때문에 전기가 흐르냐-1 흐르지않냐-0에 의해 2진수를 택했다. 0 또는 1을 넣을 수 있는 박스를 1bit로 지정했다.IBM연구소에서 1byte를 8개의 bit로 지정했다.(비용, 효율적측면)그렇게 기본 메모리 단위는 byte가 된다. 5라는 숫자를 메모리에 저장하려면 몇 byte가 필요할까?5를 2진수로 변환하면 101이다.3칸이 필요하기 때문에 1byte면 충분하다.1byte는 2의 8승(0~255)이다. 스타크래프트라는 게임의 공,방 업그레이드는 3까지 이지만, 유즈맵에서는 255까지 해본적이 있을 것 이다.1byte를 ..

컴파일러(Complier)와 인터프리터(Interpreter)

컴파일러란 고급 언어로 작성 된 소스코드를 컴퓨터가 알아먹을 수 있게 저급 언어(기계어)로 번역하는 프로그램이다. 컴파일러 언어의 종류C, C++, C#, JAVA 등이 있다. JAVA로 예를 들자int i라는 변수를 저장하면 이것은 소스코드이고 -> 컴파일러를 통해 변환되어 -> JVM이라는 가상머신을 통해 -> 컴퓨터가 알아먹을 수 있는 최종 언어로 전달되게 된다. 전체 소스코드를 입력하면 한번에 컴파일 하여 넘기므로 그 양이 방대하다면 컴파일 하는 시간이 오래 걸릴 수 있지만 실행은 실행 파일을 실행시킴으로써 할 수 있으며, 실행시에는 컴파일 과정을 거치지 않고 실행만 하면 되므로 코드 실행 속도가 빠르다.  또 한 에러에 관하여 전체 소스코드를 컴파일 하는 과정에서 비교적 쉽게 찾아낼 수 있다. ..

중앙처리장치(CPU) 작동 원리

연산장치, 제어장치,레지스터 3가지로 구성 연산장치 산술연산과 논리연산을 수행(산술논리연산장치) 연산에 필요한 데이터를 레지스터에서 가져오고 연산 결과를 다시 레지스터로 보냄 제어장치 명령어를 순서대로 실행할 수 있도록 제어하는 장치 주기억장치에서 프로그램 명령어를 꺼내 해독하고, 그결과에 따라 명령어 실행에 필요한 제어 신호를 기억장치, 연산장치, 입출력장치로 보냄 이들 장치가 보낸 신호를 받아 다음에 수행할 동작을 결정함 레지스터 고속기억장치 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장 용도에따라 범용 레지스터와 특수목적 레지스터로 구분됨 중앙처리장치 종류에 따라 사용할 수 있는 레지스터 개수와 크기가 다름 범용 레지스터 : 연산에 필요한 데이터나 연산 결과를 임시로 저장..

컴퓨터의 구성

하드웨어 : 컴퓨터를 구성하는 기계적 장치 소프트웨어 : 하드웨어의 동작을 지시하고 제어하는 명령어 집합 하드웨어 중앙처리장치(cpu) 기억장치:RAM, HDD 입출력 장치 : 마우스,프린터 소프트웨어 시스템 소프트웨어 : 운영체제, 컴파일러 응용 소프트웨어 : 워드프로세서, 스프레드시트 중앙처리장치(CPU) 주기억장치에서 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어함 중앙처리장치는 비교와 연산을 담당하는 산술논리연산장치(ALU)와 명령어의 해석과 실행을 담당하는 제어장치, 속도가 빠른 데이터 기억장소인 레지스터로 구성되어있음 기억장치 프로그램, 데이터, 연산의 중간 결과를 저장하는 장치 주기억장치와 보조기억장치로 나누어지며, RAM과 ROM도 이곳에 해당함. 실행중인 프로그램과..