분류 전체보기 108

[DB] 13-7. 메인 메모리 DB의 저장구조

오늘날의 main memory는 크기가 충분히 크고 가격도 저렴해서 많은 곳의 전체 DB가 메모리에 들어갈 수 있다. 이렇게 큰 main memory는 DB 버퍼에 많은 양의 메모리를 할당해서 사용할 수 있다. 그러면, 전체 DB를 버퍼에 적재할 수 있게 되면서 데이터를 읽기 위한 디스크 I/O 연산을 피할 수 있다. (다만, 블록을 갱신했다면 그 블록을 디스크에 작성(write)하는 작업은 필요하다) 따라서, 이와 같이 main memory가 큰 환경은 DB 일부만 버퍼에 저장되어 있는 환경보다 훨씬 더 좋은 성능을 제공할 수 있다. 메인 메모리 DB는 모든 데이터가 메모리에 존재하는 DB다. 메인 메모리 DB 시스템은 일반적으로 이 사실을 활용하여 성능을 최적화하도록 설계되었다. 특히, 버퍼 관리자를..

[OS] 2-2. User and OS Interface

사용자와 OS가 소통하는 방법은 기본적으로 3가지가 있다. ⇒ 명령 인터프리터, 그래픽 기반 사용자 인터페이스, 터치스크린 인터페이스 1. 명령 인터프리터 (Command Interpreter) 대표적으로 Linux, Unix 뿐만 아니라 Windows, macOS에서도 명령 인터프리터 형태의 UI를 제공한다. 여기서 인터프리터(해석기)는 shell(쉘)이라고도 불린다. Linux 시스템에서는 Bourne shell, C shell, Bourne-Again shell 등 여러 가지 쉘을 제공한다. 명령 인터프리터의 중요한 기능은 사용자가 지정한 명령을 가져와서 그것을 수행하는 것이다. 파일 생성, 삭제, 리스트, 프린트 등 많은 명령을 수행할 수 있다. 2. 그래픽 기반 사용자 인터페이스 (GUI, Gr..

OS Concepts 10th 2023.08.16

[OS] 2-1. Operating-System Services

OS는 1) 프로그램 실행환경을 제공 2) 프로그램과 그 프로그램의 사용자에게 특정 서비스를 제공 아래 그림은 다양한 OS 서비스에 대한 관점과 각 서비스 간의 상호작용을 보여준다. 이러한 서비스는 프로그래머가 프로그래밍 작업을 더 쉽게 수행할 수 있도록 한다. UI - GUI, CLI, 터치스크린 인터페이스 program execution (프로그램 수행) 시스템은 프로그램을 main memory에 적재해서 실행할 수 있어야 한다. 해당 프로그램은 정상적이든 비정상적이든 실행을 끝낼 수 있어야 한다. I/O Operation (입출력 연산) 입출력에는 파일 혹은 입출력 장치과 연관될 수 있다. 효율성과 보호(protection)를 위해 사용자가 I/O 장치를 직접 제어할 수는 없고 OS가 입출력을 수행..

OS Concepts 10th 2023.08.16

[OS] Chapter 2. Operating-System Structure

OS를 살펴볼 때 3가지 관점으로 바라볼 수 있다. 1) OS가 제공하는 서비스에 초점을 맞춘다. 2) OS가 사용자와 프로그래머에게 제공하는 인터페이스에 초점을 맞춘다. 3) 시스템의 구성요소와 그들의 상호 연결에 초점을 맞춘다. 이번 챕터에서는 OS의 3가지 측면을 모두 살펴본다. 이번 챕터의 목표 - OS에서 제공하는 서비스를 식벼랗ㄴ다. - OS 서비스를 제공하기 위한 시스템 콜을 사용하는 방법을 설명한다. - OS 설계를 위한 monolithic, 계층화, micro kernel 등을 비교 및 대조한다. - OS 부팅 프로세스를 설명한다. - OS 성능을 모니터링하기 위한 도구를 적용한다. - Linux 커널과 상호작용 하기 위한 커널 모듈을 설계하고 구현한다.

OS Concepts 10th 2023.08.16

[OS] 1-10. 계산환경

1. 전통적 계산 (Traditional Computing) 현재는 전통적인 시분할 시스템을 많이 사용하지 않아서 굳이 다루지는 않겠다. 2. 모바일 컴퓨팅 (Mobile Computing) : 스마트폰, 태블릿 컴퓨터의 컴퓨팅 환경 데스크톱이나 랩톱과 달리 장치들을 손쉽게 가지고 다닐 수 있다는 특징을 갖고 있다. 뿐만 아니라 이메일, 웹 브라우징, 음악 연주, 비디오, 사진 촬영, 비디오 녹화 등의 다양한 범위의 응용 프로그램을 사용할 수 있게 되면서 엄청나게 성장해왔다. 현재 모바일 컴퓨팅에서 사용되는 대표적인 OS는 Apple iOS와 Google Android이다. 이에 대해서는 2장에서 좀 더 자세히 다루겠다. 3. 클라이언트-서버 컴퓨팅 (Client-Server Computing) 현대 네..

OS Concepts 10th 2023.08.06

[DB] 13-6. Column-Oriented Storage

전통적으로 DB는 하나의 record 안에 모든 속성에 대한 값을 저장한 튜플을 저장하고 그 튜플은 지금까지 봐왔던 file에 저장된다. 이러한 저장 방식을 row-oriented storage라고 한다. 반면, Column-Oriented Storage에서는 relation의 각 속성(attribute)이 속성의 값과 함께 별도로 저장된다. 이때, 연속된 튜플의 해당 속성 값들은 파일 내에서 연속된 위치에 저장된다. 그림 : instructor relation이 column-oriented storage 방식으로 어떻게 저장되는지 보여준다. Column-Oriented Storage의 가장 간단한 형태에서 각각의 속성(attribute)은 별도의 파일에 저장된다. 게다가, 각각의 파일은 크기를 줄이기 ..

[DB] 13-5. Database Buffer

Main Memory의 크기가 시간이 지나면서 커지면서 중간 사이즈(medium-sized) DB들이 메모리에 들어갈 수 있게 됐다. 하지만, 서버는 memory에 많은 것을 요구(demand)하기 때문에 DB에게 줄 수 있는 메모리의 공간은 DB의 크기보다 훨씬 작을 수 있다. 그래서, DB의 데이터들은 주로 Disk에 저장되고 데이터를 읽거나 수정할 때 메모리로 가져온다. 물론, 수정된 데이터 블록은 다시 디스크에 반영이되야 한다. 디스크에 접근하는 건 in-memory에 있는 데이터에 접근하는 속도보다 느리기 때문에 DB 시스템의 주요 목적은 디스크와 메모리 사이의 블록을 전송하는 횟수를 최소화하는데 있다. 이를 위한 방법 중 하나로 최대한 많은 블록을 main memory에 저장하는 방법이 있다...

[DB] 13-4. Data-Dictionary Storage

지금까지 우리는 relation 그 자체의 표현에 대해서만 다뤄왔다. Relation DataBase System은 relation에 대한 정보를 갖고 있어야 한다. (ex. relation의 스키마) 일반적으로 데이터에 대한 데이터를 metadata라고 한다. Relational 스키마와 relation에 대한 메타데이터는 data dictionary 또는 system catalog라고 부르는 곳에 저장되어 있다. data dictionary에 저장되어 있어야 할 데이터들은 다음과 같다. - relation의 이름 - 각 relation의 속성의 이름 - 속성의 특징(domain), 길이 - 데이터베이스에서 정의된 view의 이름과 view의 정의 - 무결성 제약조건(Integrity constrain..

[Network] 2-4. DNS - The Internet's Directory Service

인간은 다양한 방법으로 식별된다. 출생증명서에 기재된 번호, 신분증, 운전면허 등으로 식별될 수 있다. 각각은 사람들을 식별하는 데 사용될 수 있지만, 특정한 맥락에서는 하나의 식별자가 다른 식별자보다 더 적절할 수 있다. ex) 미국의 세금 징수 기관 IRS의 컴퓨터들은 출생증명서 이름 대신 고정 길이의 사회보장번호를 사용하는 것을 선호 일반 사람들은 사회보장번호보다 기억하기 쉬운 이름을 선호한다. 인터넷도 마찬가지다. host에 대한 식별자로 hostname을 사용한다. (ex. www.google.com) 이 방법이 특히 사람들에게는 기억하기 쉬운 방법이다. 하지만, hostname은 host의 위치 정보에 대해 별다른 정보를 제공하지 못한다. ex. www.eurecom.fr은 country co..

[OS] Chapter 1-4. 운영체제의 작동

지금까지 컴퓨터 시스템 구성 및 아키텍처에 대한 내용을 전반적으로 살펴봤다. 이제 OS에 대해서 다뤄보도록 하겠다. OS는 프로그램이 실행하는 환경을 제공한다. 이번 절에서는 여러 OS가 갖고 있는 공통적인 내용들에 대해서 살펴보도록 하겠다. 컴퓨터 전원을 켜거나 재부팅할 때와 같이 컴퓨터를 실행하려면 초기 프로그램을 실행해야 한다. 이러한 초기 프로그램 또는 부트스트랩 프로그램은 단순한 형태를 띠는 경향이 있다. 일반적으로 컴퓨터 HW 내에 펌웨어로 저장된다. 뿐만 아니라 CPU 레지스터, Device Controller, Memory content 까지 시스템의 모든 측면을 초기화한다. 부트스트랩 프로그램은 OS를 load하는 방법과 해당 시스템을 실행하는 방법을 알아야 한다. 때문에, 부트스트랩 프..

OS Concepts 10th 2023.08.01