2025/04 14

[system programming] 가상 메모리(virtual memory) 1편

본 게시글은서울대학교 데이터사이언스대학원 정형수 교수님의데이터사이언스 응용을 위한 컴퓨팅 시스템 강의를학습을 목적으로 재구성하였습니다이번 수업은교수님께서 중요하다고 정말정말 강조하신가상 메모리에 대한 내용이다 이번 시간과 다음 시간에까지 진행할이 가상 메모리 개념이 중간고사 범위인데교수님이 정말정말 중요하다고 강조하셨다 가상 메모리는one of the greatest idea in computer science라고도 불릴만큼위대한(?) 개념이라고 한다 아무튼 가상메모리 수업 정리 시작-! 가상메모리는 영어로는 virtual memory인데이전 시간에 배웠던메모리 계층구조(memory hierarchy)를 위해 나온 개념이다 지난주까지 열심히 공부했던 캐시 메모리는single process가 동작할 때..

[system programming] 캐시 메모리 (Cache Memory Organization and Operation)

본 게시글은서울대학교 데이터사이언스대학원 정형수 교수님의데이터사이언스 응용을 위한 컴퓨팅 시스템 강의를학습을 목적으로 재구성하였습니다 저번 시간에 이어 오늘 배울 내용은cache memory 저번시간에도 강조했지만아주아주 중요한 내용이라고 한다 이런 내용을 오늘 주로 다룬다고한다캐시 메모리가 어떻게 구조화되어있고어떻게 작동하는지랑캐시 메모리가 성능에 어느 정도로 큰 영향을 미치는지를확인해본다고 한다 지난 시간에 배웠던 것을 복습해보자자세한 내용을 확인하고싶다면이전 게시글을 확인해보면 좋을 것 같다 데이터에는 기본적인 성질과도 같은 것이 있는데그게 바로 Locality이고temporal locality와 spatial locality가 있다 이렇게 생긴 메모리 계층구조에 대해 배웠었다밑으로 내려갈수록 ..

[system programming] 메모리 계층구조와 캐시 메모리(Memory Hierarchy, Locality, Cache Memory)

본 게시글은서울대학교 데이터사이언스대학원 정형수 교수님의데이터사이언스 응용을 위한 컴퓨팅 시스템 강의를학습을 목적으로 재구성하였습니다중간고사가 끝나서 뒤늦게 허겁지겁 정리해보는이전에 배운 수업내용 이번 수업 내용은 메모리 계층 구조에 관한 내용인데굉장히 굉장히 중요한 내용이고시스템 프로그래밍의 꽃과도 같은 내용이라고 한다 오늘 배울 내용은 다음과 같다고 한다 이전 시간에 배운 내용을 간단하게 복습해보자메모리에 접근해서 데이터를 다루는 명령어는read와 write가 있었다 위와 같은 어셈블리 명령어의 경우(%rsp)라고 하면rsp가 가리키고 있는 것을메모리 address로 해석해서 그곳에 접근했다 CPU에서 메인 로직을 담당하는 부분은 ALU이다 register set 전체가 register file이..

[database] DB Design(Entity-Relationship model과 정규화)

본 게시글은서울대학교 데이터사이언스대학원 이상원 교수님의데이터사이언스 응용을 위한 빅데이터 및 지식관리시스템 수업을학습을 목적으로 재구성하였습니다 중간고사를 직전에 두고오늘의 수업은 DB Design에 관한 내용이었다주요하게 ER diagram과 정규화에 대해 다룬다 가보작오 ER Data Model에 대해서 알아보자ER 모델은 DB 설계의 한 방법론이다 보통 ER model과 Relational model을 착각하는데ER은 DB 설계의 방법론이지database 혹은 query language가 아니다 ER model은 database의 schema를논리적으로 디자인하는 방식이며high level한 그림의 형식으로 표현하여직관적인 형태이다 ER은 high level model인 반면뒤에서 배울 정규화(..

강의/database 2025.04.23

[database] Datalog & Data Mining with DBMS (A-priori algorithm)

본 게시글은서울대학교 데이터사이언스대학원 이상원 교수님의데이터사이언스 응용을 위한 빅데이터 및 지식관리시스템 수업을학습을 목적으로 재구성하였습니다우선 저번 시간에 하다가 만 내용을마저 진행해보자  Walking the Tree란Oracle에서 부모-자식 관계를 걸어가는 방식,즉, tree의 계층구조를 이용한 쿼리문이다 위 쿼리는 가장 대표적인Walking the Tree를 구현한 쿼리인데차근차근 살펴보자 위 쿼리에서 PRIOR은 부모 행의 ename을 참조라하는 뜻이고SELECT ename || 'reports to' || PRIOR ename "Walk"라고 되어있는 부분은||과 함께 문자열을 연결해서 결과물을 출력해달라는 뜻이다 START WITH ename = 'King'이란 부분은트리의 루트 노드..

강의/database 2025.04.13

[system programming] Parallel Architectures (ILP, DLP, TLP)

본 게시글은서울대학교 데이터사이언스대학원 성효진 교수님의데이터사이언스 응용을 위한 컴퓨팅 시스템 강의를학습을 목적으로 재구성하였습니다이번 시간에 배운 주된 내용은병렬 처리에 관한 내용이다 하지만 그 전에 원래 os에서exception을 어떻게 처리하는지가 나오는데사실 이전 시간에 다 배웠던 내용이라간단히만 설명하고 넘어가셨다exception handling에 대해서 잠깐만 살펴보자  우리 컴퓨터가 프로세스를 실행하는 도중에exception이 발생하면 이를 어떻게 처리할까? 실제로 각 exception ID가 있고이를 이용해서 kernel안에 있는 exception table에 들어간다그럼 예상하지 않았던 exception branch로 이동하게되고control flow hazard를 발생시킨다  에러 상..

[system programming] out of order execution & operating system(os)

본 게시글은서울대학교 데이터사이언스대학원 성효진 교수님의데이터사이언스 응용을 위한 컴퓨팅 시스템 강의를학습을 목적으로 재구성하였습니다 이번 시간에는 저번 시간에 이어out of order execution 부분을마무리 짓고 다음 파트인운영체제(os) 부분으로 넘어가보려고한다 하드웨어가 ooo exectution시에 코드의 순서를 정하는dynamic scheduling에 대해서 알아보자이건 전적으로 하드웨어가 담당하는 부분이다컴파일 타임이 아닌 실행 중에코드 실행 순서를 결정하기 때문에dynamic이라는 이름이 붙었다 우선 branch prediction과 speculation을 통해실행될 코드들을 예측하고이를 instruction window라고 하는 곳에 저장해둔다 그런 다음 false dependen..

[nl2query] BirdSQL dataset으로 nl2query 실습하기

이번에 수강하고있는 데이터베이스 수업에서nl2query 실습과제가 주어졌다 nl2query계에서 가장 유명한 벤치마크 중 하나인BirdSQL을 이용한 nl2query 실습과제였고전반적인 nl2query 과정이나수정 및 추가가 필요한 점들을 논리적으로 적어가는 과제였다그래서 과제를 수행하는 과정들을티스토리에 간단하게 기록해보려한다BirdSQL https://bird-bench.github.io/ BIRD-benchBIRD Mini-Dev A Lite version of developtment dataset, which is designed to facilitate efficient and cost-effective development cycles, especially for testing and refi..

기술/DB 2025.04.09

[database] Analytic Functions(partitioning, ordering, windowing)

본 게시글은서울대학교 데이터사이언스대학원 이상원 교수님의데이터사이언스 응용을 위한 빅데이터 및 지식기반시스템 강의를학습을 목적으로 재구성하였습니다이번 시간 강의는 DBMS에서Analytic Function과Oracle에서의 Tree Traversal 내용에 대해 다뤘다 하지만 갑자기 교수님이 진도를 폭주하셔서ppt slide가 굉장히 많기 때문에Tree Traversal 내용은 다음 게시글로 옮기고이번 게시글에는 Analytic Function만 정리해보려고한다 한 개 한 개가 그냥 function에 대한 예시가 많아서최대한 핵심만 담아보려고한다  Analytic Function이란요즘 대부분의 DBMS에서 제공하는 기능이다SQL이 개발된 이후에가장 좋은 기능이라는 말도 있다,,고한다  Analytic ..

강의/database 2025.04.08

[system programming] CPU 아키텍처 2편 (CPU architecture: pipelining hazards - stall, bypass, speculation)

본 게시글은서울대학교 데이터사이언스대학원 성효진 교수님의데이터사이언스 응용을 위한 시스템 컴퓨팅 강의를학습을 목적으로 재구성하였습니다지난 시간에는 CPU 아키텍처를 배우면서각 step별 pipelining을 배웠고이런 pipelining 과정에서 각 단계마다 이쁘게 딱딱 맞아떨어지면 좋지만실제로는 예외 상황들이 자주 발생해서각 pipeline step간에 병목이 발생한다이러한 병목을 hazard라고 하고이러한 hazard는 주로 data 혹은 control dependency에 의해 발생한다따라서 hazard를 해결하기 위해 크게 3가지 방법이 있다고 했는데1. stall2. bypass3. speculation이라고 했다 그 중 stall은 가장 단순한 방법으로dependency가 해결될 때 까지 기다..