분류 전체보기

    [OS] 9. File System

    File file은 비휘발성 저장 장치에 저장된 data의 집합을 말한다. file의 정보는 Metadata와 file data 2 종류로 나눌 수 있다. File Metadata(attribute) 파일의 이름, 유형, 저장 위치, 파일 사이즈, 접근 권한 등 파일을 관리하기 위한 정보들에 해당한다. File Data File의 정보, 즉 실제 file이 수행하는 작업 등에 대한 정보이다. Directory 우리가 흔히 폴더라고 부르는 대상이며, File의 Metadata중 일부를 보관하고 있는 특별한 형식의 파일이다. 해당 디렉토리에 속한 파일 이름과 file metadata를 담고 있다. operation으로 create a file, delete a file, list a directory 등의 ..

    [Database System] Database Storage2

    본 포스팅은 CMU의 2022 fall database system 강의 노트를 바탕으로 작성되었습니다. What are some potential problems with the slotted page design? 앞서 살펴봤던 Slotted Paged의 경우 다음과 같은 문제점이 존재할 수 있다. 1. Fragmentation Page는 데이터 로드의 최소 단위이므로, unusable space나 empty slots가 존재하게 될 수 있다. 2. Useless DIsk I/O DBMS는 단 하나의 tuple을 Update 하기 위해 전체 page를 fetch 해야한다. 3. Random Disk I/O multiple tuple을 업데이트 하는 상황에서, 각 tuple이 모두 다른 page에 존재..

    [Database System] Database Storage

    본 포스팅은 CMU의 2022 fall database system 강의 노트를 바탕으로 작성되었습니다. Disk-Based Architecture DBMS은 database의 primary storage가 non-volatile disk, 즉 비휘발성 디스크에 존재한다고 가정한다. 그리고 DBMS는 이러한 비휘발성 저장공간과 휘발성 저장공간 사이에서 데이터의 움직임을 제어하는 역할을 한다. Storage Hierarchy 위 그림은 저장 장치 간의 hierarchy를 표현한 것으로, 위에 존재하는 저장 장치일수록 접근 속도가 빠르지만 가격이 비싸며 아래에 존재할 수록 접근 속도가 느리지만 가격이 싸다는 특징이 있다. 경제적인 측면, 그리고 데이터의 휘발성 측면에서 필연적으로 위와 같이 계층적으로 저장장..

    [Database System] Normalization

    Normalization Normalization, 즉 정규화란 관계형 데이터베이스에서 데이터의 중복을 최소화하고 데이터의 무결성과 일관성을 유지하기 위한 데이터 설계 프로세스이다. 즉 중복되는 데이터의 양을 줄여 데이터 저장공간을 절약하기 위한 메커니즘이라고 생각하면 된다. 이러한 Normalizaiton은 여러가지 단계를 가지는데, 일반적으로 1, 2, 3 정규화가 존재한다. 제 1정규화 테이블에서 칼럼에 atomic value(하나의 값)만이 존재하도록 테이블을 분리하는 것을 말한다. 1. 특정 레코드에 속한 모든 도메인이 atomic value 만으로 되어 있어야 하며 2. 모든 속성에 반복되는 그룹이 나타나지 않아야 하며 3. 기본키를 사용해서 관련 데이터의 각 집합을 고유하게 식별할 수 있어야..

    [OS] 8. Virtual Memory

    Demanding Page Demanding Paging은 필요한 page만 memory에 올리는 메커니즘을 말한다. 구체적인 동작 방식은 아래와 같다. 1. Physical Memory의 instruction을 바탕으로 접근해야하는 대상이 Page Table에 Valid한 Entry로 존재하는지 확인한다. 2. 만약 Valid한 Entry가 존재하지 않는다면, page fault trap이 발생한다.(MMU에 의해 발생) 3. Page fault trap 발생을 page fault handler가 받고, 해당 reference의 타당성을 검사한다. 예를 들어, 해당 접근이 valid 하지만 physical memory에 로드되어 있지만 않은 경우 disk로부터 데이터를 가져온 후, memory에 로드하..

    [OS] 7. Address Translation

    Memory Abstraction Memory Abstraction, 즉 메모리 추상화는 하드웨어의 복잡성을 숨기고 응용 어플리케이션이나 운영 체제에게 간단하고 일관된 메모리 인터페이스를 제공하는 목적으로 활용되는 테크닉이다. 만약 메모리 추상화가 없다면 각 프로세스들의 주소 공간을 관리하는 과정에 매우 복잡해진다. 예를 들어, 다음과 같이 Physical Memory에 여러 Process가 실행중인 상황을 살펴보자. 각 Process A, B, C는 Physical Memory에서 다른 주소 공간에 위치하고 있다. 따라서 각 Process들이 시작되는 메모리 주소가 다를 것임을 알 수 있다. 하지만 Memory Abstraction을 위해 Virtual Memory를 구현하게 되면, 다음과 같은 구조로..

    [Database System] SQL과 NOSQL

    SQL SQL(Structed Query Language)는 대표적인 DBMS의 카테고리 중 하나로, 관계형 데이터 베이스 시스템(RDBMS)를 사용하는 데이터 베이스이다. SQL 데이터 베이스는 데이터간의 관계를 중요한 개념으로 채택한다는 점이 특징이다. 대표적인 SQL 데이터베이스로는 MySQL, PostgreSQL, Oracle 등이 있다. SQL의 특징 SQL의 대표적인 특징으로는 `정형화된 데이터 스키마`, `ACID 트랜잭션`, `Relation 개념`등을 들 수 있다. 정형화된 데이터 스키마 SQL에서 데이터는 정해진 데이터 스키마에 따라 테이블에 저장되며, 구조가 고정된다는 특징이 있다. 해당 구조는 필드의 이름, 그리고 필드의 데이터 타입으로 정의되어 있다. 따라서 INSERT를 통해 추..

    [OS] 4. Process Scheduling

    https://simple-coding-place.tistory.com/21 [OS] Process Process Process의 정의 Process는 메모리 상에서 실행중인 작업을 지칭하는 말이다. 즉, 실행중인 Program을 Process라고한다. Program 생성 과정 우리가 작업한 소스코드가 Program이 되는 과정은 다음과 같다 simple-coding-place.tistory.com https://simple-coding-place.tistory.com/22 [OS] Thread Thread Thread의 정의 Thread란 process 내부에서 실행되는 여러 흐름의 단위를 말한다. Thread의 주소 공간 Thread는 Process와 달리 Stack만을 고유하게 가지며, Code, ..