[OS] 메모리 관리- 페이징(Paging)과 세그먼테이션(Segmentation)
·
Computer Science/운영체제
메모리 관리 기법인 페이징(Paging)과 세그먼테이션(Segmentation)에 대해 알아보려 한다. ❓ 메모리는 왜 관리해야 할까?❗️ 일반적으로 컴퓨터는 한 프로세스만 실행하지 않고, 여러 프로세스를 동시에 번갈아 수행(Multi Programming)한다.이를 위해서는 주기억장치(Main Memory)에 여러 프로레스를 적재해야 한다.이때 메모리를 적절히 분할하지 않으면, 실행 속도가 느려지거나 일부 프로세스가 제대로 동작하지 않을 수 있기 때문에메모리 관리 기법을 통해 여러 프로세스가 원활히 실행되도록 해야 한다. 단편화(Fragmentation)페이징과 세그먼테이션에 대해 알아보기 전에, 먼저 단편화가 무엇인지 알아보자. 단편화란 "기억 장치의 빈 공간 또는 자료가 여러 조각으로 나뉘는 현상"..
[CS] 컴퓨터 시스템 구성 요소- CPU, 기억 장치, 입출력장치
·
Computer Science/컴퓨터구조
컴퓨터 시스템은 무엇으로 이루어져 있을까? 컴퓨터의 구성은 크게 CPU, 기억 장치(Memory), 입출력장치(I/O)와 시스템 버스로 이루어져있다. CPU(중앙 처리 장치)CPU(Central Processing Unit)는 메모리에서의 명령어를 해석하고 수행하는 역할을 맡는다.CPU는 세부적으로 CU, ALU와 Register로 나뉘는데 각각에 대해서 알아보자. CU(Control Unit)제어 장치인 CU는 IR(명령어 레지스터)에 저장되어 있는 명령어를 해석한 후,해석 결과에 따라 ALU, Register, Memory, I/O 등으로 제어 신호를 보낸다. ALU(Arithmetic and Logical Unit)연산 장치인 ALU는 CU로부터 제어 신호를 받아 레지스터에 있는 피연산자로 연산을 ..
[OS] 시스템 콜(System Call)
·
Computer Science/운영체제
시스템 콜(System Call)의 개념, 동작과 종류에 대해 알아보자! 시스템 콜(System Call) 개념 시스템 콜(System Call)은 서비스를 호출하는, 즉 커널에 접근하기 위한 인터페이스이다. user mode는 시스템 콜을 이용하여 kernel mode에서의 기능을 수행할 수 있다.C와 C++ 같은 고급 언어로 작성되는 API 함수를 호출하면 → API는 내부적으로 시스템 콜을 호출하여 OS 커널 기능을 수행한다. ❓ 왜 시스템 콜을 직접 호출하지 않고 API를 이용하여 간접적으로 호출할까?❗️시스템 콜은 하드웨어와 직접 상호작용하기 때문에, API 함수가 시스템 콜 호출을 추상화한다면 프로그래머가 함수 호출 만으로 시스템 콜을 수행할 수 있다. 따라서 시스템 콜에 대한 변경이나 에..
[Network] CORS(Cross-Origin Resource Sharing, 교차 출처 리소스 공유)
·
Computer Science/네트워크
CORS에 대해서 알아보기 전에 Origin과 SOP 정책에 대해서 먼저 알아보려 한다. OriginOrigin은 출처를 뜻하며, 이를 우리가 흔히 볼 수 있는 URL을 의미한다. 출처를 구성하는 요소는 프로토콜(Protocol), 도메인(Domain), 포트(Port) 총 3개이다. SOP(Same-Origin Policy) 정책SOP 정책은 "동일한 출처에서만 리소스를 공유할 수 있다"는 정책이다. 따라서 프로토콜, 도메인과 포트 중 하나라도 다르면 서로 다른 출처로 간주하며,다른 출처에서 요청한 리소스의 응답을 차단한다. 만약 https://jjangsudiary.tistory.com 에서 https://api.example.com/data 를 요청하면→ SOP 정책에 의해 응답에 대한 접근을 차단..
[MySQL] JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN
·
Computer Science/데이터베이스
조인은 서로 관련된 데이터를 2개 이상의 테이블에서 가져와서 한꺼번에 조회할 수 있게 해준다. INNER JOIN은 두 개 이상의 테이블을 조인할 때, 일치하는 값을 가진 행만 결과에 포함시킨다.반면에 OUTER JOIN은 두 개 이상의 테이블을 조인할 때, 일치하는 값이 없는 경우에도 한쪽 또는 양쪽 테이블의 모든 행을 결과에 포함시킨다. JOIN(INNER JOIN)가장 흔히 볼 수 있는 조인 형태이다.두 개 이상의 테이블에서 특정 키 값을 기준으로 동일한 데이터를 가진 행을 조회한다.문법은 다음과 같다.SELECT FROM 테이블1INNER JOIN 테이블2ON 테이블1.조인컬럼 = 테이블2.조인컬럼; 사원 정보를 가진 employees 테이블과 부서 정보를 가진 departments 테이블에서..
[OS] 프로세스 동기화(Process Synchronization)
·
Computer Science/운영체제
프로세스 간 데이터를 주고받는 4가지 통신 방식은 이전 포스팅에서 확인할 수 있다.2025.07.31 - [CS/운영체제] - IPC(Inter-Process Communication)란? IPC(Inter-Process Communication)란?IPC(Inter-Process Communication)의 정의IPC(Inter-Process Communication)는 프로세스들 사이에 서로 데이터를 주고받는 행위를 의미한다. 운영체제 구조는 보다시피 user mode와 kernel mode로 나뉘어져 있다.user modejjangsudiary.tistory.com 프로세스 동기화(Process Synchronization)이번에는 프로세스 간 자원 접근을 동기화하고 제어하는 방법들을 살펴보겠다!앞..
[OS] IPC(Inter-Process Communication)
·
Computer Science/운영체제
IPC(Inter-Process Communication)의 정의IPC(Inter-Process Communication)는 프로세스들 사이에 서로 데이터를 주고받는 행위를 의미한다. 운영체제 구조는 보다시피 user mode와 kernel mode로 나뉘어져 있다.user mode에는 여러 독립적인 프로세스들이 실행되는데, 이 프로세스들은 서로 직접적으로 통신할 수 없다.각 프로세스는 독립적인 메모리 공간을 가지기 때문이다. 프로세스란? >2025.06.19 - [CS/운영체제] - 프로세스 VS 스레드 프로세스 VS 스레드프로세스와 스레드에 대해서 알아보고, 둘의 차이를 기술하려 한다.프로세스(Process)프로세스를 알아보기 전에, 프로그램과 프로세스의 차이가 무엇인지 알아보자. ✅ 프로그램(Pro..
[OS] GC(Garbage Collection, 가비지 컬렉션)
·
Computer Science/운영체제
가비지 컬렉션(Garbage Collection)이란?가비지 컬렉션, 줄여서 GC란 메모리 내에서 더 이상 참조되지 않는 객체를 찾아 제거하는 메모리 관리 기법이다.C나 C++은 free(), delete, delete[]로 동적으로 할당한 메모리를 해제할 수 있다.하지만 Java, JavaScript 등은 이러한 메소드가 따로 존재하지 않는다!즉, 함수 호출을 따로 하지 않아도 Java의 JVM / JavaScript의 V8 내의 가비지 컬렉터가 자동으로 메모리를 회수한다. 가비지 컬렉션의 동작 과정그렇다면 메모리 내에서 존재하는 객체들 중 더 이상 참조되지 않는 객체를 찾아 제거한다고 했는데,그 객체는 어디 있고 어떻게 제거될까? 해답은 바로 프로세스의 Heap 영역이다!Heap은 동적으로 메모리를 ..
[Network] REST / REST API / RESTful 이란?
·
Computer Science/네트워크
REST란?REST의 정의REST(Representational State Transfer)란 자원을 URI로 식별하고, 그 자원의 상태를 주고받을 수 있는 아키텍처이다. 앞서 말한대로 자원은 URI로 식별된다.예를 들어, 사용자가 자원이라면 사용자 전체를 나타내는 URI는 /users로 나타낼 수 있다. 만약 id가 1번인 사용자의 정보를 받아보고 싶다면 HTTP 메소드 중 하나인 GET을 이용해서GET /users/1 HTTP/1.1로 request하면 된다.요청에 대한 응답으로 자원의 상태를 확인할 수 있다. 보통 JSON, XML 등의 형식으로 받아볼 수 있다.{ "id": 1, "name": "홍길동", "email": "hong@example.com", "createdAt": "2023..
[OS] 프로세스(Process) vs 스레드(Thread)
·
Computer Science/운영체제
프로세스와 스레드에 대해서 알아보고, 둘의 차이를 기술하려 한다.프로세스(Process)프로세스를 알아보기 전에, 프로그램과 프로세스의 차이가 무엇인지 알아보자. ✅ 프로그램(Program) : 컴퓨터에서 실행할 수 있는 파일✅ 프로세스(Process): 실행 중인 프로그램 쉽게 말하면 프로그램은 저장 장치에 있는 정적인 파일로, 아직 메모리에 적재되지 않은 상태를 의미한다.반면, 프로세스는 그 프로그램이 실행되어 메모리에 올라가 실제로 동작 중인 상태를 의미한다. 프로세스는 메모리에 Stack / Heap / Data / Text 영역으로 적재되어 실행된다. Stack: 함수 호출, 지역 변수 등 임시 데이터가 저장되는 공간. 함수 호출에 따라 자동으로 메모리가 할당/해제된다...