CS107 [OS] System Structure & Program Execution 1 본 글은 반효경 교수님의 운영체제 강의를 들으며 정리하는 글 입니다. 1. 컴퓨터 시스템의 구조 1 - 1) 큰 흐름 컴퓨터 시스템의 구조는 컴퓨터 내부 장치인 CPU, 메모리 와 컴퓨터 외부 장치(입출력 장치)인 디스크, 키보드, 마우스, 모니터, 네트워크 장치 등으로 구분된다. 컴퓨터는 외부 장치에서 내부 장치로 데이터를 읽어와 (input) 각종 연산을 수행한 후, 그 결과를 외부 장치로 내보내는(output) 방식으로 업무를 처리한다. 1 - 2) 각 요소 살펴보기 우선 다음 그림을 살펴보자! 1 - 2 - 1) CPU CPU는 클럭마다 메모리에서 명령(Instruction)을 하나씩 읽어서 실행하는 역할을 한다. 계속 인스트럭션을 읽어나가야 하는 운명이다. IO가 일어나면 CPU가 직접 접근하지.. CS/OS (2022-1) 2022. 11. 19. [OS] Introduction to Operating Systems 본 글은 반효경 교수님의 운영체제 강의를 들으며 정리하는 글 입니다. 1. 운영체제의 정의 운영 체제(operating system)란 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어를 말한다. 운영 체제는 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다. 운영 체제 자체도 하나의 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라간다. 하지만 운영 체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심할 것이다. 따라서 운영 체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려 놓고, 그렇지 않은 부분은 필요할 때 메모리로 올려서 사용하게 된다. 1 - 1) 좁은 의미의 운영체제 메모리에 상주하는 운영 체제의 부분을 커널(kernel)이.. CS/OS (2022-1) 2022. 11. 18. [DB] 인덱싱 데이터베이스 시스템 7판을 읽으며 간략하게나마 정리하는 글입니다. 예를 들어 학생 번호가 "22201"에 해당하는 tuple을 찾기 위해 전체 student 릴레이션을 조사하는 것은 비효율적이다. 이상적인 방법은 시스템이 직접 이 레코드를 찾는 것이다. 이런 형태의 접근을 제공하기 위해 파일과 관련된 부가적인 구조를 설계한다. 1. 기본 개념 데이터베이스 시스템의 인덱스는 도서관에서 사용되는 책의 인덱스와 똑같은 역할을 한다. 예를 들어 주어진 ID를 가진 student 레코드를 검색하기 위해 데이터베이스 시스템은 Index를 이용해 대응되는 레코드가 어느 디스크 블록에 있는지 찾은 후에, student 레코드를 얻기 위해 해당 block을 가져온다. 학생 ID를 정렬된 순서로 유지하여 student 릴.. CS/DB (2022-1) 2022. 10. 21. [DB] 데이터 저장 장치 구조 데이터베이스 시스템 7판을 읽으며 간략하게나마 정리하는 글입니다. 이전 글 에서는 자기 디스크와 SSD를 중심으로 물리적 저장 장치의 특성을 살펴보고, RAID에 대하여 살펴보았다. 이번에는 기반 저장 장치 매체에 저장되는 데이터의 구성과 그 데이터에 어떻게 접근하는지에 관해 설명한다. 1. 데이터베이스 저장 장치 구조 자기 디스크와 SSD는 block 구조를 이용하는 저장 장치이다. 즉 데이터를 블록 단위로 읽거나 쓴다. 이에 반해 데이터베이스는 일반적으로 블록보다 훨씬 작은 크기인 레코드를 처리한다. 대부분의 데이터베이스는 레코드를 저장하기 위한 중간 계층으로 OS 파일을 사용하여 하부 블록의 세부 정보를 추상화 한다. 그러나 효율적인 접근과 데이터의 복구를 위해 가능하면 블록 구조를 계속 사용해야 .. CS/DB (2022-1) 2022. 10. 18. [DB] 물리적 저장 장치 시스템 데이터베이스 시스템 7판을 읽으며 간략하게나마 정리하는 글입니다. 1. 물리적 저장 장치 매체 개요 컴퓨터 시스템에는 여러 유형의 데이터 저장 장치가 존재한다. 이러한 저장 장치 매체를 데이터에 접근하는 속도, 해당 매체를 구매하기 위해 드는 데이터 단위당 비용, 그리고 매체의 신뢰성에 따라 분류할 수 있다. - 캐시(Cache) 캐시는 저장 장치 중에 가장 빠르고 비싸다. 캐시 메모리는 크기가 상대적으로 작으며, 컴퓨터 시스템 하드웨어가 캐시의 사용을 관리한다. 데이터베이스 시스템의 질의 처리 데이터 구조와 알고리즘을 설계하는 데 캐시 효과를 고려하는 것은 의미가 있다. - 메인 메모리(Main Memory) 연산에 사용할 데이터를 저장하기 위한 저장 장치이다. 범용의 기계어가 메모리에서 동작한다. 메.. CS/DB (2022-1) 2022. 10. 9. [DB] E-R 모델을 사용한 데이터베이스 설계 데이터베이스 시스템 7판을 읽으며 간략하게나마 정리하는 글입니다. 1. 개체 관계 모델 개체-관계(E-R) 데이터 모델(entity-relationship data model)은 데이터베이스의 전체 논리 구조를 나타내는 조직의 schema를 명시함으로써 데이터베이스 설계를 쉽게 하도록 개발되었다. 1 - 1) 개체 집합 개체(entity)는 실세계에서 다른 모든 객체와 구별되는 유무형의 사물이다. 예를 들어 대학교에서 각 개인은 하나의 개체다. 개체는 속성의 집합을 가지며, 속정 중 일부 집합은 개체를 고유하게 구별하기도 한다. 개인은 그 사람을 유일하게 구별해주는 person_id라는 속성을 가질 수 도 있다. 개체 집합(entity set)은 같은 속성을 공유하는 같은 유형의 개체의 집합이다. 또한 .. CS/DB (2022-1) 2022. 10. 6. [DB] 고급 SQL 데이터베이스 시스템 7판을 읽으며 간략하게나마 정리하는 글입니다. 1. 함수와 프로시저 프로시저와 함수는 "비즈니스 로직, 규칙"이 데이터베이스에 저장되고 SQL 구문이 실행되도록 해 준다. 이러한 비즈니스 로직을 데이터베이스 외부보다는 , 내부에 저장하면 장점을 가진다. 예를 들면, 응용프로그램의 변경없이 비즈니스 규칙이 변경되는 경우에 단지 그 변경만 허용할 수 있다. 응용프로그램 코드가 데이터베이스의 릴레이션에 직접적으로 변경하는 대신에 프로시저를 호출할 수도 있다. 1 - 1) SQL 함수 및 프로시저의 선언과 호출 학과 이름을 받아서, 그 학과 교수의 수를 반환하는 함수를 생각해보자! 예를 들어 다음과 같이 12명 이상의 교수를 가진 모든 학과의 이름과 예산을 반환하는 SQL문은 다음과 같을 것.. CS/DB (2022-1) 2022. 10. 4. [DB] 중급 SQL - 2 데이터베이스 시스템 7판을 읽으며 간략하게나마 정리하는 글입니다. 5. SQL의 데이터 타입과 스키마 5 - 1) 타입 변환 및 서식 함수 일부 데이터 타입 변환(Conversion)을 자동으로 수행하지만, 몇몇 시스템들은 명시해줘야 하는 경우도 있다. case(e as t) 위와 같이 사용하면 e를 t타입으로 변환할 수 있다. 예를 들어 특정 연산 수행이나, 정렬 순서를 강제하기 위해 타입변환을 하기도 하는데, varchar(5)로 지정된 ID 속성을 생각해보자. ID 11111 이 ID 9 앞에 오는데, 이는 첫번째 문자 '1'이 '9'보다 앞에 오기 떄문이다. 따라서 다음과 같이 타입 변환하여 작성하면 원하는 순서대로 출력되게 된다. SELECT CAST(ID as numeric(5)) as ins.. CS/DB (2022-1) 2022. 9. 30. [DB] 중급 SQL - 1 데이터베이스 시스템 7판을 읽으며 간략하게나마 정리하는 글입니다. 이번 쳅터에서는 Join, View 정의, 트랜잭션, 무결성 제약 조건과 권한 허가에 대하여 알아보자. 1. Join 표현식 1 - 1) Natural Join 자연 조인 연산은 두 개의 릴레이션에 대해 수행되고, 하나의 릴레이션을 결과로 생성한다. 카티션 곱 같은 경우 선행 릴레이션의 각 튜플과 후행 릴레이션의 모든 튜플을 짝지어서 릴레이션을 생성하지만, 자연 조인은 두 릴레이션의 스키마에 나타나는 속성 값이 같은 튜플의 짝만 고려한다. student natural join takes 위 표현은 student와 takes의 공통 속성인 ID에 대하여 동일한 값을 가지는 짝만 고려한다. 각각 카티션 곱과 자연 조인을 적용시켜보면 다음과 같.. CS/DB (2022-1) 2022. 9. 29. [DB] 관계형 모델 소개 데이터베이스 시스템 7판을 읽으며 간략하게 나마 정리하는 글 입니다. 1. 관계형 데이터베이스의 구조 관계형 데이터베이스는 테이블(table)의 모임으로 구성된다. ▶ Relation 일반적으로 테이블의 각 행은 일련의 값 사이의 관계(relationship)을 표한한다. 테이블이란 이러한 관계들의 모임으로, 테이블의 개념은 relation이라는 수학적인 개념과 밀접한 관련이 있다. 이러한 이유로 관계형 데이터 모델(relational data model)의 이름도 relation에 기반하고 있다. ▶ Tuple(튜플) 수학적 의미의 튜플은 값을 나열한것을 의미한다. n개의 값에 대한 관계는 수학적으로 n-tuple로 표현된다. 즉, n개의 값을 가진 하나의 tuple이 테이블에서 하나의 행이 된다. 즉.. CS/DB (2022-1) 2022. 9. 26. [DB] 트랜잭션 (Transaction) - 특성, ACID, 연산, 상태 1. 트랜잭션 이란? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 트랜잭션(Transaction)은 데이터베이스에서의 논리적 작업 단위이다. 하나의 작업을 수행하기 위해 필요한 데이터베이스 연산 기능들을 모아놓은 것이며 분리되지 않도록 하여 작업의 완전성을 보장합니다. 즉, All or Nothing 이라는 슬로건 처럼 전부 처리되거나, 아예 처리되지 않아야 합니다. 그럼 작업 단위는 왜 필요한것 일까요? 예를 들어 봅시다. A사용자가 계좌에서 10만원을 출금하여 B한테 송금한다고 해봅시다. 위와같이 작업A, 작업 B 총 2개의 작업단위로 나뉘게 됩니다. 순서대로 작업되던 도중, 작업A 와 작업 B 사이에서 오류가 발생한다면 어떻게 될까요? 이미 작업 A는 처리되어 c.. CS/DB (2022-1) 2022. 8. 30. CLion bits/stdc++ 헤더 [M1 맥북] 처음 Clion을 깔고 난 후, 알고리즘 문제풀이를 할려 하면 bits/stdc++ 헤더가 없음을 확인할수가 있다. 보통 bits/stdc++ 을 PS 때 사용들 많이 하시는데 없어서 당황할수도 있다. 이를 해결해 보자. 1) iostream 절대 경로 확인하기 어떠한 방법을 사용하든 iostream 이 저장되 있는 절대 경로만 알면 된다. 나는 다음과 같은 방법으로 iostream 의 절대경로를 확인하였다. 처음 Clion으로 프로젝트를 실행하면 다음과 같은 화면이 보인다. 이때 커서를 위에 두고 왼쪽클릭 -> Go To -> Definition 을 누르면 다음과 같이 iostream 파일을 확인할수가 있다. 이는 iostream 파일이 저장되어 있는 절대 경로를 확인하고 싶기 때문이다. iostrea.. CS/C++ 2022. 1. 26. 이전 1 2 3 4 5 6 ··· 9 다음