전체 글 115

[system programming] program optimization (compiler와 최적화 기법)

본 게시글은서울대학교 데이터사이언스대학원 성효진 교수님의데이터사이언스 응용을 위한 컴퓨팅 시스템 강의를학습을 목적으로 재구성하였습니다이번 시간에 정리할 내용은프로그램 최적화에 관련된 내용이다 컴파일 언어에서는 컴파일러가 우리가 작성한 코드를자체적으로 최적화를 해주는 역할을 한다그렇다면 컴파일러는 어떤 방법으로 최적화를 진행할까?또한 컴파일러 이외에우리가 코드 레벨에서 코드를 작성할 때어떻게하면 최적화된 코드를 작성할 수 있을까?이 프로그램 최적화는 이와 관련된 내용이다 이런 컴파일러의 최적화 과정을 이해해야우리가 어떻게 프로그램을 짜야하는지 알 수 있다고 한다 이번 시간에 배울 목차이다 우리가 보통 알고리즘을 공부할 때는asymptotic complexity라고 해서흔히 빅오 표기법으로 시간 복잡도를 ..

[database] DBMS와 Disk, Buffer Management(LRU)

본 게시글은서울대학교 데이터사이언스대학원 이상원 교수님의데이터사이언스 응용을 위한 빅데이터 및 지식관리시스템 수업을학습을 목적으로 재구성하였습니다이번 시간은 DBMS와 관련되어있는전반적인 디스크 메모리에 관한 내용들그리고 DBMS의 DRAM 역할을 하는 buffer cache의management에 대해서 배운다 우선 RAID라는 개념에 대해 알아보자Redundant Arrays of Independent Disk의 약자인데싸고 작은 독립적인 디스크들을 여러개 모아서하나의 큰 space disk처럼 사용하는 개념이다 예전에는 디스크를 1개만 사용했고이를 Single Large Expensive Disk라고 해서SLED라고 불렀다 하지만 80년대 중반에작고 싼 디크스들을 모아서 마치 하나의 큰 디스크처럼보..

강의/database 2025.05.10

[database] DBMS는 어떻게 data에 접근할까 + DB와 메모리 계층구조

본 게시글은서울대학교 데이터사이언스대학원 이상원 교수님의데이터사이언스 응용을 위한 빅데이터 및 지식관리시스템 수업을학습을 목적으로 재구성하였습니다이번 수업 내용은제목을 뭐라고 붙일지 약간 고민했다뭔가 마땅한 내용이 없는 느낌 아무튼 전반적인 내용은DBMS와 disk IO에 관한 내용이며메모리 계층구조를 살펴보고이게 DBMS에 어떤 영향을 미치는지를 살펴본다 저번 시간에 DBMS에서 데이터를 가져올 때DRAM의 buffer cache를 사용한다고 했다 실제로 DBMS가 SQL을 처리하기 위해서는디스크에 있는 데이터를 DRAM으로 가져와야하는데이때 IO가 발생하고 이 단위는 page(=block)이고일반적인 DBMS의 page는 8KB라고 설명했다 DBMS에서는 system catalogs를 이용해서ta..

강의/database 2025.05.03

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

본 게시글은서울대학교 데이터사이언스대학원 정형수 교수님의데이터사이언스 응용을 위한 컴퓨팅 시스템 강의를학습을 목적으로 재구성하였습니다 지난 시간에 이은 가상메모리 2편이다교수님께서 컴퓨터 공학에 있어서굉장히 중요한 부분이라고 강조 또 강조하신 부분이다 우선 지난 시간에 배운 내용을간단하게 복습하고 본격적으로이번 수업시간에 배울 내용으로 넘어가보자 1950-60년대에는 os를 Physical memory 상단부에고정 시키고 나머지 부분을 활용하는 방식을 사용했다 따라서 예전에는 physical memory가위 ppt slide처럼 구성되어있었다 가장 위에 os를 위한 부분이 있고그 아래에 여러 프로세스에 대해서저장하는 공간이 각각 할당됐었다 총 512KB정도가 있지만예전에는 이 정도 메모리도 크다고 ..

[database] DBMS는 데이터를 어떻게 저장하고 관리할까(Heap File Structure, Slotted Page Structure)

본 게시글은서울대학교 데이터사이언스대학원 이상원 교수님의데이터사이언스 응용을 위한 빅데이터 및 지식관리시스템 수업을학습을 목적으로 재구성하였습니다저번 시간까지가 중간고사 범위였다저번 시간까지는 사실 단순(?) SQL과여러 가지 종류의 SQL representation에 대해 배웠다면중간고사 이후부터는 DB internal에 대해 배운다 지금부터 배우는 것들이정말 중요한 내용이라고 한다 DBMS의 internal 부분을 살펴보자오늘 배울 내용은 file and access method이다 실제로 우리가 만드는 테이블 데이터들이디스크 storage에 어떻게 저장되는지에 대한 내용이다실제로 디스크에 datafile이라는 형태로 테이블은 저장되고테이블에 대한 정보들은 디스크에 system catalog나dic..

강의/database 2025.05.01

[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