2024/08 8

[Operating System] 프로세스 (Process)

프로그램 (Program) 실행되기 전까지 그저 보조기억장치에 있는 데이터 덩어리  프로세스 (Process)보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행한 것 포그라운드 프로세스 (foreground process)사용자가 볼 수 있는 공간에서 실행되는 프로세스백그라운드 프로세스 (background process)사용자가 보지 못하는 뒷편에서 실행되는 프로세스백그라운드 프로세스 중에서 사용자와 상호작용하지 않고 정해진 일만 수행하는 백그라운드 프로세스: 유닉스에서 데몬 (daemon), 윈도우에서 서비스 (service)프로세스 제어 블록 (PCB)프로세스와 관련된 정보를 저장하는 자료구조프로세스 ID (PID)특정 프로세스를 식별하기 위해 부여하는 고유한 번호문맥 교환프로세스 간의 실행을 ..

[Computer Architecture] CPU

CPU (Central Processing Unit): 중앙처리장치  CPU 구성 요소ALU (Arithmetic Logic Unit): 산술논리연산장치계산을 하는 역할; 계산기레지스터 (Register)프로그램을 실행하는데 필요한 값들을 임시로 저장제어장치 (Control Unit)제어 신호 (Control Signal) 이라는 전기 신호를 내보내고 명령어를 해석하는 장치제어 신호 (Control Signal): 컴퓨터 부품을 관리하고 작동시키기 위한 일종의 전기 신호 ALUInput레지스터를 통해 피연산자를 받아들임제어장치로부터 수행할 연산을 알려주는 제어신호를 받아들임Output레지스터에 결과 값을 일시적으로 저장CPU 에서 메모리에 직접 접근하는 속도가 느리기 때문에, 모든 결과 값을 다 메모리에..

[C++] 정적 변수 (static) 와 상수 변수 (const)

정적 변수(static) static 키워드로 인해 정적 변수로 선언되는 경우, 함수가 종료되어도 사라지지 않음 #include using namespace std;void func(){ int a = 10; static int b = 10; a++; b++; cout   상수 변수(const) 값을 변경할 수 없는 변수 아래 코드에서 상수 변수의 값을 바꾸려해서 오류 발생 #include using namespace std;int main(){ const int a = 1; int a = 2; return 0;}

Code/C++ 2024.08.18

[C++] 네임스페이스 (namespace)

아래는 c++ 코드 예시의 일부분 std::cout > i; 위 코드에서 std 가 네임스페이스 네임스페이스의 역할: 소속을 지정해줌 네임스페이스의 필요성: 내부 식별자에게 범위를 부여해서 여러 라이브러리를 쓰는 상황에서 충돌을 방지하기 위해 사용  헷갈림을 방지하기 위해 아래와 같이 using namespace 의 사용은 권장되지 않음using namespace std;int main(){ int i; cout > i;}

Code/C++ 2024.08.15

[Programming] 코드의 빌드 (Build)란?

회사에서 인수인계 받을 때, 전임자분이 코드 빌드하는 방법을 알려주겠다고 했음 근데 부끄럽지만 비전공에 AI 코드만 짜는 수준이라 개발에 대해 잘 몰랐고, 빌드가 무엇을 이야기하는지 이해하지 못했음 그래서 이번 기회에 정리를 해보려고 함 빌드 (build) = 전처리 (pre-processing) + 컴파일 (compile) + 링크 (link)  전처리 (pre-processing) 전처리는 소스 파일이 컴파일 되기 전에 소스 코드를 변경하거나 확장함 컴파일러가 전처리기에 지시하는 형태로 수행되는데, #include, #define 등의 지시문을 해석하고 소스 코드를 변경하여 컴파일러에 전달  컴파일 (compile) 컴파일은 주어진 코드를 오브젝트 코드 (기계어)로 번역하는 과정  링크 (link) ..

Code/ETC 2024.08.14

[Programming] 컴파일러 (compiler) 언어와 인터프리터 (interpreter) 언어

컴파일러가 뭔지 알아보기 전에 영어 단어 compile 에 대해 알아봄   compile: 엮다, 편집하다 compiler: 편집자, 편찬 interpret: 이해하다, 설명하다, 통역하다 interpreter: 통역사 컴퓨터 과학에서의 컴파일은 어떤 언어의 코드를 다른 언어로 바꾸어주는 것을 뜻함 컴파일러는 이 역할을 해주는 프로그래밍 언어 번역기 정도로 생각하면 될 듯함  프로그래밍 언어는 실행 방식에 따라 크게 2가지로 나뉨  컴파일러 (Compiler) 언어코드 전체를 읽고 기계어로 컴파일속도가 빠름개발 과정에서 컴파일이 필요하므로 개발 속도가 느릴 수 있음대표적인 언어: C, C++, JAVA인터프리터 언어 (Interpreter) 언어한 줄씩 읽고 실행하기 때문에, 컴파일 과정이 필요 없음속도..

Code/ETC 2024.08.14