전체 글 125

프로세스

1.프로세스(Process) 실행 중인 프로그램을 의미 프로그램 저장공간에 저장되어 있는 코드와 리소스 등이 집합되어 있는 파일을 의미 프로그램이 메모리에 올라가서 프로세스로 동작 프로세스는 프로그램이 실행되면 점유시간, 메모리, 파일, 입출력 장치 등의 자원을 할당 2. 프로세스의 메모리 구조 스택 영역 데이터를 일시적으로 저장하는 영역 스택 포인터와 힙 포인터가 만나면 메모리가 소진되었음을 의미 지역변수, 매개변수 등이 존재 힙 영역 코드 영역과 별도로 유지되는 자유 영역 malloc(), new()와 같은 동적 메모리 할당, 해제와 관련 데이터 영역 프로그램의 가상 주소 공간 전역 변수, 정적 변수를 저장하거나 할당하며 실행 전에 초기화 코드 영역 프로그램 명령이 위치하는 곳 기계어로 제어되는 메모..

운영체제 기초

1. 운영체제(Operating System) 컴퓨터 하드웨어 바로 위에 설치되어, 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 프로그램 컴퓨터 시스템은 하드웨어, 운영체제, 소프트웨터, 사용자로 구분 커널(Kernel) 컴퓨터의 전원이 켜지면 항상 메모리에 상주하는 프로그램 운영체제의 핵심 커널 구현에는 List, Stack, Queue, Linked List, Tree, Hash Function, Bitmap등의 자료구조가 사용 운영체제의 역할 사용자 관점 컴퓨터를 쉽고 편하게 사용하는 것이 목적 시스템 관점 운영체제가 컴퓨터 자원을 적절하게 할당하고 제어하여 효율적으로 시스템이 작동되게 하는 것이 목적 2. 운영체제 구분 동시 작업 가능 여부 단일 작업(Single Tasking) 한 번에..

메모리

1. 메모리(Memory) 컴퓨터에서 정보를 처리하기 위해 일시적으로 정보를 보관하는 기억장치 기억 계층 컴퓨터에서 사용되는 메모리는 종류 별로 처리 속도가 제각각 접근 시간 메모리에 있는 데이터를 읽거나 저장하는데 소모하는 시간을 의미 빠르면 빠를수록 고성능 2. RAM 휘발성 저장장치 전원을 끄면 저장된 명령어와 데이터가 모두 삭제 ↔ 비휘발성 저장장치: 전원이 꺼져도 저장된 내용이 유지되는 저장장치 CPU가 실행하고 싶은 프로그램을 RAM으로 가져옴 RAM의 용량이 큰 경우, 많은 프로그램들을 동시에 빠르게 실행하는데 유리 3. 캐시 메모리(Cache Memory) 속도가 빠른 장치와 느린 장치 간의 속도 차에 따른 병목 현상을 줄이기 위한 범용 메모리 메인 메모리에서 자주 사용하는 프로그램과 데이..

CPU의 구조

1. CPU가 하는 일 Fetch(인출) 메모리 상의 프로그램 카운터가 가리키는 명령어를 CPU로 인출하여 적재 Decode(해석) 명령어의 해석 명령어의 종류와 타겟 등을 판단 Execute(실행) 해석된 명령어에 따라 데이터에 대한 연산을 수행 Writeback(쓰기) 명령어대로 처리 완료된 데이터를 메모리에 기록 2. CPU 내부의 물리적인 구조 1) 시스템 버스 CPU와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로 주소 버스 CPU가 외부로부터 또는 외부로 발생하는 주소 정보를 전송하는 방식의 버스 형태로 선의 수는 최대 기억장치 용량을 의미 Ex) 주소버스의 형식이 8비트 형식으로 구성되어 있다면, 해당 기억장치 요소도 2의 8승, 256개의 기억장소들의 주소지정이 가능 주소가 CPU에..

컴퓨터 구조

1. 컴퓨터 구조 1)컴퓨터가 이해하는 정보 컴퓨터는 0과 1로 이루어진 정보만을 이해 0과 1로 이뤄진 정보는 데이터와 명령어 두 가지가 존재 데이터 숫자, 문자, 이미지, 동영상 같은 정적인 정보를 가리킴 명령어 데이터를 움직이고 컴퓨터를 작동시키는 정보 2) 컴퓨터의 네 가지 핵심 부품 CPU 중앙 처리 장치(central processing unit) 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행ㆍ처리하는 가장 핵심적인 컴퓨터의 제어 장치 메모리에 저장된 명령어를 읽어들이고, 읽어들인 명령어를 해석하고 실행 ※CPU 내부 구성 요소 ALU 산술논리연산장 컴퓨터의 덧셈, 뺄셈같은 산술 연산과 논리연산을 계산 레지스터 프로세서 레지스터(processor register)라고 함 일반적으로 현재 계산..

git 명령어로 github에 올리기

1. GitHub Repository 생성 깃허브에 파일을 올리고자 하는 새 저장소를 생성 2. 업로드 1) Git Bash 실행 올리고자 하는 파일이 있는 폴더 위치로 이동 cd 명령어를 이용해 폴더 간 이동 2) git init 명령어를 통해 git 저장소 생성 3) git add 를 통해 디렉토리 내 파일을 git으로 관리되도록 추가 git add . 을 사용할 경우 디렉토리 내 모든 파일을 추가 4) git commit을 통해 변경된 코드의 이력을 기록 git log를 통해 히스토리 조회 5) git remote add origin을 통해 원격 저장소(GitHub)와 연결 origin 다음에 원격 저장소의 URL 주소를 입력 원격 저장소의 URL주소는 아래에서 찾는다 git push origin ..

기타/Git, GitHub 2023.08.08

5-2) hive 테이블 1

1. 테이블 하이브에서 테이블은 HDFS 상에 저장된 파일과 디렉토리 구조에 대한 메타 정보 실제 저장된 파일의 구조에 대한 정보와 저장 위치, 입력 포맷, 출력 포맷, 파티션 정보, 프로퍼티에 대한 정보 등 다양한 정보를 가지고 있음 1) 테이블 생성 CREATE 명령을 이용하여 테이블 생성 -- 테이블 생성 쿼리 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive 0.14.0 and later) [(col_name data_type [COMMENT col_comment], ... [constraint_specification])] [COMMENT table..

5-1) 하이브(hive)

1. 하이브 하둡 에코시스템 중에서 데이터를 모델링하고 프로세싱하는 경우, 가장 많이 사용하는 데이터 웨어하우징용 솔루션 RDB의 데이터베이서, 테이블과 같은 형태로 HDFS에 저장된 데이터의 구조를 정의하는 방법을 제공 SQL과 유사한 HiveQL 쿼리를 이용하여 데이터를 조회하는 방법을 제공 구성요소 UI 사용자가 쿼리 및 기타 작업을 시스템에 제출하는 사용자 인터페이스 Driver 쿼리를 입력받고 작업을 처리 사용자 세션을 구현하고, JDBC/ODBS 인터페이스 API 제공 Compiler 메타 스토어를 참고하여 쿼리 구문을 분석하고 실행계획을 생성 Metastore 디비, 테이블, 파티션의 정보를 저장 Execution Engine 컴파일러에 의해 생성된 실행 계획을 실행 실행 순서 사용자가 제출..

4) YARN

1. YARN(Yet Another Resource Negotiator) 하둡에서 도입한 클러스터 리소스 관리 및 애플리케이션 생명 주기 관리를 위한 아키텍처 구성 리소스 매니저(Resource Manager) 노드 매니저(Node Manager) 애플리케이션 마스터(Application Master) 컨테이너(Container) 자원 관리 클러스터 자원 관리는 리소스 매니저와 노드 매니저를 이용하여 처리 노드 매니저는 클러스터의 각 노드마다 실행되고 현재 노드의 자원 상태를 관리하여 리소스 매니저에 보고 리소스 매니저는 전달받은 정보를 이용하여 클러스터 전체의 자원을 관리 자원을 분배하는 규칙을 설정하는 스케줄러(Scheduler)에 설정된 규칙에 따라 자원을 효율적으로 분배 라이프사이클 관리 애플리케..

3) 맵리듀스

1. 맵리듀스(MapReduce) 맵리듀스는 간단한 단위 작업을 반복하여 처리할 때 사용하는 프로그래밍 모델 하둡에서 분산처리를 담당하는 맵리듀스 작업은 맵과 리듀스로 나누어져 처리 맵(Map) 단계 간단한 단위작업을 처리 리듀스(Reduce) 단계 맵 작업의 결과물을 모아서 집계 맵, 리듀스 작업은 병렬로 처리가 가능하기 때문에 여러 컴퓨터에서 동시에 작업하여 속도를 높임 2. 처리 단계 입력 데이터를 입력하는 단계 텍스트, csv, gzip 형태의 데이터를 읽어서 맵으로 전달 맵(Map) 입력을 분할하여 키별로 데이터를 처리 컴바이너(Combiner) 네트워크를 타고 넘어가는 데이터를 줄이기 위하여 맵의 결과를 정리 로컬 리듀서라고 함 컴바이너는 작업의 설정에 따라 없을 수도 있음 파티셔너(Parti..