Data Analysis/Computer Science(10)
-
프로세스와 스레드
우리가 일상에서 사용하는 모든 소프트웨어는 이러한 원리를 기반으로 동작한다. 컴파일 과정먼저, 개발자가 작성한 소스 코드(예: C언어로 작성된 세민.c)는 컴파일러라는 번역기를 통해컴퓨터가 이해할 수 있는 기계어 파일(Chrome.o)로 변환된다. 이 과정에서 전처리, 컴파일, 어셈블, 링킹 단계를 거치며최종적으로 실행 가능한 프로그램 파일(.exe 또는 .out)이 만들어진다. 프로그램과 프로세스이렇게 만들어진 프로그램 파일은 그 자체로는 메모리 위에 올라가 있지 않은,그저 하드디스크에 저장된 ‘정적인 상태’의 파일이다. 우리가 이 파일을 더블 클릭하면, 운영체제는 이 파일을 메모리에 올려놓고 실행을 준비한다.이처럼 메모리에 올라가서 실행 중인 상태를 프로세스라고 부른다. 운영체제로부터 파일(자원)..
2025.08.11 -
메모리 관리
메모리 관리:한정된 공간을 효율적으로 쓰는 OSCPU와 메모리 계층에 대해 이해했다면,이번에는 이 한정된 메모리 자원을 운영체제(OS)가 어떻게 관리하는지,그리고 왜 이런 복잡한 기술이 필요한지 그 동기부터 차근차근 알아봐야 한다. 컴퓨터의 메모리(RAM)는 아무리 용량이 커도 한정되어 있다.하지만 우리는 수십 개의 프로그램을 동시에 띄워놓고 작업을 한다. 어떻게 이게 가능한가? 바로 운영체제의 ‘메모리 관리’ 덕분이다.운영체제는 한정된 메모리를 최대한 효율적으로 활용하기 위한 기술들을 사용한다. 무한한 메모리의 착각, 가상 메모리메모리 관리의 핵심은 바로 가상 메모리 (Virtual Memory)이다. 사용자 입장에서는 마치 실제 가지고 있는 메모리 용량보다훨씬 더 큰 메모리를 가진 것처럼 보이며, ..
2025.08.05 -
CPU와 기억장치, 메모리
이런 말을 한 번쯤 들어봤을 것이다.“메모리가 부족해” 여기서 말하는 메모리가 무엇인지,그리고 우리 컴퓨터 성능을 결정하는 중요한 요소인 CPU와 메모리가 어떻게 상호작용하는 지 알아보자. 컴퓨터의 가장 중요한 부품인 CPU는 컴퓨터의 두뇌 역할을 한다.이때, 직접 데이터를 저장하거나 프로그램을 실행하는 것이 아니라,‘메모리’ 라는 공간에 올라와 있는 프로그램의 명령어를 읽어와서 실행하는 역할을 한다. 그렇다면, 메모리는 무엇인가? 메모리는 컴퓨터가 현재 실행 중인 프로그램과 데이터를 임시로 저장하는 공간이다.우리가 사용하는 워드, Notion 등 모든 프로그램은 실행되기 위해 반드시 메모리에 올라와야 한다. 하지만, 모든 메모리가 같은 종류는 아니고,다양한 종류의 메모리를 효율적으로 사용하기 위해 ..
2025.08.04 -
운영체제와 컴퓨터
TIL (Today I Learn)을 기록하는 것이 목적이기 때문에,두서 없을 수 있음을 미리 밝히고, 양해를 구합니다. 운영체제와 컴퓨터컴퓨터 = 하드웨어, 소프트웨어를 관리하는 OS, CPU, Memory 등으로 구성운영체제(OS) = 사용자가 필요로 하는 프로그램의 실행을 위한 시스템 소프트웨어 중 하나 최근에는 대부분의 시스템 소프트웨어가 운영체제에 포함되어, 같은 의미로 사용됨 운영체제는 쉽게 Window, Linux, Mac OS 등으로 대표할 수 있다. 즉, 컴퓨터 하드웨어 관리와 UI를 담당하는 프로그램으로, 컴퓨터의 성능을 효율적으로 운영 및 관리 감독하며,각종 자원들(CPU, Memory 등)을 효율적으로 관리한다 → 사용자에게 최대의 편의성 제공 운영체제의 역할과 구조OS의 역할1..
2025.08.01 -
자료구조는 왜 중요할까?
자료구조가 중요한 이유 코딩을 처음 시작했을 때를 생각해보면,단순히 내가 작성한 코드가 올바르게 작동하는 지가 가장 중요했다. (지금도 별반 다르지 않다.)하지만 동아리에서 흔히 코딩좀 치는(?) 형들이 서로 코드 리뷰하는 대화를 들어보면, 그렇게 잘 짠 코드는 아닌듯?하는 대화를 들을 때가 많다. 그렇다면 '잘 짠 코드' 란 뭘까? 고품질 코드'잘 짠 코드', 즉 고품질 코드는 바로 다음을 만족하는 코드이다.1. 코드의 유지보수성 (Maintainability)👉 코드가 직관적이며 쉽게 수정, 확장될 수 있는가? 2. 코드의 효율성 (Efficiency)👉 코드가 빠르고 적은 리소스를 사용하도록 최적화되었는가? 위 두 가지를 만족하는 것이 뛰어난 개발자의 역량이며,이를 위해 적절한 자료구조 와 ..
2025.03.14 -
추상 자료형 (Abstract Data Type)
1. 자료구조와 알고리즘1.1 자료구조이번 방학을 알차게 보내기 위해, 방학때 이루고자 하는 목표를 차례대로 기록했다.우선, 그동안 미뤄놨던 컴퓨터 파일 정리를 했는데, 학기-과목-과제 이런 계층적인 디렉터리를 이용해서 파일을 저장했다. 목표를 차례대로 기록하는 것, 컴퓨터에 계층적인 디렉토리로 저장하는 것과 마찬가지로프로그램에서도 자료들을 정리하여 보관하는 여러 가지 구조들이 있으며, 이를 자료구조라고 한다. 예를 들면 대표적으로 다음과 같은 자료구조가 있다.스택 : 식당에서 그릇을 쌓는 것처럼 자료들을 쌓아서 정리하는 구조큐 : 마트 계산대의 줄처럼 먼저 도착한 자료가 먼저 빠져나가는 구조 1.2 알고리즘간단한 구구단 계산기 프로그램을 만들어본다고 하자.간단하게 궁금한 단 수를 입력받고, 입력받은..
2024.07.04