목록전체 글
Step-by-Step
DMADirect Memory Access - 직접 메모리 접근CPU의 도움 없이 메모리와 외부 장치 간에 데이터를 직접 주고 받을 수 있게 해주는 기술특정 하드웨어 하위 시스템이 CPU와 독립적으로 메인 시스템 메모리에 접근할 수 있게 해주는 컴퓨터 시스템 기능 보통 컴퓨터에서 데이터를 주고받을 때, CPU가 모든 과정을 제어ex) 컴퓨터에서 연결된 하드디스크에서 데이터를 메모리로 옮기려면, CPU가 그 과정을 하나하나 지시함→ CPU의 작업이 많이 늘어나서 느려질 수 있음 해당 부분에서 DMA는, CPU 대신 데이터를 직접 메모리로 옮기는 기술 (외부메모리 접근, 내부 연산 동작 등 수행)CPU는 지시만 하고, 실제 데이터 전송은 DMA 컨트롤러가 처리CPU의 부담이 줄어들고, 전체 시스템 기능이..
UARTUniversal Asynchronous Receiver & Transmitter병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 컴퓨터 하드웨어의 일종UART의 U는 범용, 즉 자료 형태나 전송 속도를 직접 구성할 수 있고 실제 전기 신호 수준과 방식이 일반적으로 UART 밖의 특정한 드라이버 회로를 통해 관리를 받음비동기 통신으로, 동기 신호가 전달되지 않기 때문에 수신 쪽에서 동기 신호를 찾아내 데이터의 시작과 끝을 시간적으로 알아 처리할 수 있도록 약속되어 있음 USARTUniversal Synch, Asynchronous Receiver & TransmitterUART 에서 USRT를 추가한 형태USRT(범용 동기화 송수신기) : 자체 클럭 신호를 추가로 사용하여 정해진 속..
전처리기# 키워드는 컴파일러가 컴파일을 실행하기 전에 처리한다고 하여, 전처리기(Preprocessor) 또는 매크로(Macro)라고 한다. 예를 들어, 전처리기를 이용하여 다른 헤더 파일을 include 하면 ex) #include 등 하위 코드에서 scanf나 printf와 같은 함수들을 사용할 수 있다. 매크로매크로는 컴파일러에게 코드의 특성을 알려주는 키워드특정 키워드를 코드로 치환하는 것 (상수 정의, 인라이닝, 문법 정의/변형 등)정해진 순서에 따라 어떻게 특정한 입력 시퀀스가 출력 시퀀스로 매핑되어야 하는지 정의하는 규칙이나 패턴컴파일 전에 해당 매크로에 #define에 정의된 함수, 값 등 형태가 대입되어짐 #define특정 숫자, 함수, 프로그램 블록을 다른 형태로 변환 지정한다..
ARM Acorn RISC Machine ARM Holdings plc에서 설계하는 명령어의 집합영국의 컴퓨터 회사 Acorn Computer에서 개발한 RISC 기반 CPU 아키텍처 ARM 특징1. 명령어 집합2. 전력 소모3. 성능4. big.LITTLE Cortex의 도입 ARM은 CPU 세대마다 성능과 기능을 향상시킨 후 동일 CPU 구조에 MMU/MPU 등 메모리 유닛을 차등조합하여 제품군을 나주었으나, Cortex 이후부터 용도에 따라 동시에 여러 CPU 구조를 개발하였다. Cortex-A/R/M1. Cortext-A (Application Processors)주요 용도 : 스마트폰, 태블릿, 컴퓨터 등 고성능 애플리케이션에서 사용ARMv7-A 및 ARMv8-A 아키텍처 기반으로 설계고성능..
구조체 멤버 Pack구조체 멤버는 크기에 따라 1B / 2B / 4B / 8B 주소에만 만들어질 수 있음컴파일러는 구조체 멤버의 alignment 규정을 조정하는 옵션이 있음CPU가 메모리에 접근할 때 (32bit CPU → 4B 단위 // 64bit CPU → 8B 단위)32bit CPU → 4B 단위, 64bit CPU → 8B 단위로 접근하는데 단위보다 작은 데이터에 접근하는 경우 시브트 연산으로 속도 효율이 저하됨 #pragma pack(N)구조체 멤버가 차지하고 있는 메모리를 alignment 하는 옵션데이터의 크기를 정해진 단위로 정렬구조체의 크기를 1, 2, 4, 8, 16 Bytes 단위로 alignment 한다. (default : 8)pack 사용시 구조체의 크기는 가장 큰 멤버가 N보..
운영체제 스케줄러 여러 개의 프로그램을 동시에 실행되는 것처럼 보이게 하기 위해 규칙을 부여하는 것 프로세스 상태 New : 프로세스 생성 Running : CPU에서 명령이 실행되는 중 Waiting : 프로세스가 어떤 이벤트(입출력, Signal 등)가 발생하길 기다리는 중 Ready : 프로세스가 CPU에 할당되어 실행되기를 기다리는 중 Terminated : 프로세스 실행 종료 운영체제 스케줄링 기법에 따라 단 1개만 Running 상태로 바뀔 수 있음 Running 상태가 되면 실제 CPU로 프로세스 수행 외부 입출력(I/O)이나 이벤트가 발생했을 때, Running 상태에 있는 프로세스가 Waiting으로 이동함 Waiting에서 Ready로 이동한 것은 입출력이나 이벤트가 완료됨을 의미 ex..
운영체제 하드웨어를 효율적으로 사용할 수 있게 관리하는 소프트웨어 컴퓨터 사용자와 하드웨어 간 인터페이스로 동작하는 시스템 소프트웨어 컴퓨터 시스템의 자원들을 효율적으로 관리하여, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임 프로그램 컴퓨터에서 어떤 작업을 실행할 수 있는 정적의 상태 파일 (exe 파일) 하드디스크 등에 저장되어 있는 실행 코드 보조기억장치에 존재하며 실행되기를 기다리는 명령어와 정적인 데이터 묶음 사용자가 원하는 일을 처리할 수 있도록 올바른 수행 절차를 표현해 놓은 명령어들의 집합 프로세스 실행중인 프로그램 운영체제로부터 실행에 필요한 자원을 할당받은 것 일반적으로 작업(Job) 또는 태스크(Task)라고 함 메모리 구조 CODE 영역..
메모리 전자 회로에서 데이터나 상태, 명령어 등을 기록하는 장치 메모리 계층 하위계층으로 갈수록 용량이 늘어나고, 가격이 저렴하지만, 속도가 느림 상위계층으로 갈수록 용량은 적고, 가격이 높지만, 속도가 빠름 레지스터와 캐시는 CPU 내부에 존재 → CPU에 빠르게 접근 가능 주기억장치(=메모리)는 CPU 외부에 존재 → 레지스터와 캐시보다 CPU에 늦게 접근 보조기억장치(=하드디스크)는 CPU에 접근할 방법이 없음 하드디스크 데이터를 메모리로 이동시키고, 메모리에서 접근해서 가능 = "느린 접근" 1. 보조기억장치 물리적인 디스크가 연결되어있는 저장장치 주기억장치보다는 느림 전원을 끄더라도 저장된 데이터가 사라지지 않은 비휘발성이며, 영구적으로 보관 가능 대표적으로 HDD와 SSD가 있음 HDD(Har..
데이터베이스 DB 구조화된 정보 또는 데이터의 조직화된 모음 여러 사람이 공유하여 사용할 목적으로 체계화해 통합 관리하는 데이터의 집합 데이터베이스관리시스템 DBMS 데이터베이스를 관리하고 운영하는 소프트웨어 사용자 질의를 처리해주는 다양한 컴파일러 존재 DDL 컴파일러, DML 컴파일러, DML 컴파일러 등 RDB vs NoSQL RDB 데이터를 2차원 형태의 테이블로 표현하는 데이터베이스 엄격하게 정해진 스키마에 따라 데이터를 저장하기 때문에 명확한 구조를 보장함 스키마 : DB를 구성하는 데이터 개체, 속성, 관계 등 다양한 제약조건 정의 명확한 스키마가 사용자와 데이터에게 중요한 경우 적절함 수직적인 확장이 가능함 ex) 서버 성능 향상 - CPU 업그레이드 수평적인 확장이 어려움 RDBMS : ..
클래스 객체를 만들어내기 위한 틀 변수와 메소드의 집합 객체 클래스가 실제로 구현된 인스턴스 인스턴스 클래스를 바탕으로 구현된 구체적인 실체 객체를 소프트웨어에 실체화 한 것 클래스에서 정의한 것을 토대로 실제 메모리에 할당된 것 더보기 클래스의 타입으로 선언되었을 때 객체라 부르고, 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부름 객체지향 프로그래밍 Object Oriented Programming - OOP 객체들의 상호작용으로 서술하는 프로그래밍 기법 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체로 만들고, 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 기법 객체지향 프로그래밍의 장단점 장점 코드 재사용 용이 (상속) 유지보수의 용이성 (캡슐화) 대형..