본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 5. CPU Scheduling CPU 스케줄링은 다중 프로그램 운영체제의 기본이다. 운영체제는 CPU를 프로세스 간에 교환함으로써, 컴퓨터를 보다 생산적으로 만든다. 이번 장에서는 기본 스케줄링 개념과 여러 스케줄링 알고리즘을 소개한다. 5.1 기본 개념들 1) 프로세스 실행은 CPU 버스트와 I/O 버스트의 반복이다. 2) CPU 스케줄러 CPU가 유휴 상태가 될 때마다, 운영체제는 준비 큐에 있는 프로세스 중 하나를 선택해 실행해야 한다. 선택 절차는 CPU 스케줄러에 의해 수행된다. (주..
무결성 무결성은 데이터 베이스에 있어서 정말 중요한 주제이다. 시험에도 잘나오고 면접에도 잘나오므로 잘 알아두도록 하자 1. 키 개념 key라는 것은 무언가를 식별하는 고유한 식별자(identifier) 기능을 한다. 이러한 key는 릴레이션에서 하나의 속성으로, 각 튜플이 다른 튜플과 구분되는 식별자 역할을 한다. 이전에 릴레이션에서 속성에 밑줄을 그었던 것이 바로 key인 것이다. 밑줄 친 회원 번호가 바로 key가 되어서, 각 튜플을 구분하는 역할을 하는 것이다. 즉, 오규영과 섹시수환, 똥준휘는 회원번호로서 유일한 구분된다는 것이다. relation key에는 4가지 키 개념이 있다. 수퍼키, 후보키, 기본키, 대체키 등과 같은 것이 있다. 1.1 수퍼키(Super key) 수퍼키(super ke..
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 4. Threads & Concurrency 대부분의 현대 운영체제는 한 프로세스가 다중 스레드를 포함하는 특성을 제공한다. 특히 다중 CPU를 제공하는 최신 다중 코어 시스템에서 스레드 사용을 통한 병렬 처리의 기회를 식별하는 것이 점차 중요해지고 있다. 4.1 Overview 스레드는 CPU 이용의 기본 단위이다. 스레드는 스레드 ID, 프로그램 카운터(PC), 레지스터 집합, 그리고 스택으로 구성된다. 또한 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션, 열린 파일이나 신..
관계 데이터 모델 1. 관계 데이터 모델이란? 크게 어려울 것은 없고, table 형식과 똑같다. 여기서 table은 relation이라고 한다. 관계 데이터 모델에서는 이렇게 행(row)와 열(column)로 구성된 2차원의 테이블(table)을 realtion이라고 한다. 릴레이션은 수학의 집합에서 나온 개념이다. 수학적으로 릴레이션은 두 개 이상의 집합으로부터 각 집합을 구성하는 원소들의 순서쌍에 대한 집합을 의미한다. 말이 좀 어려운 것 같은데, 그냥 집합이라는 것만 알아두면 된다. 1.1 relation 관련 용어 relation은 속성과 tuple, 도메인, NULL을 갖는다. 속성(attribute) : relation의 각 열을 속성이라고 부른다. tuple : 하나의 튜플은 각 속성에서 ..
데이터베이스 모델 1. 데이터 모델의 개념 데이터 모델 : 데이터베이스의 구조를 단순화, 추상화하여 체계적으로 표현하는데 사용되는 도구로서 그래픽적으로 구현한다. 데이터 모델은 현실세계의 데이터를 추상화한 개념이기 때문에 사람들이 이해하기 쉬워서 원활한 의사소통을 도화주는 역할을 한다. 다음과 같이 class diagram model로 데이터 모델을 한 부분이다. 2. 데이터 모델의 구성요소 데이터 모델은 데이터 구조뿐만 아니라, 구조에서 허용되는 연산, 구조와 연산에 대한 제약조건으로 구성된다. 데이터 구조 데이터 구조는 현실세계에서 선별하여 데이터 베이스에 저장할 데이터에 대한 요소와 이들 간의 관계를 구조적으로 명세하여 표현한 것이다. 이전에 배운 관계형 DBMS의 테이블이나, DB 구조에서의 스키..
데이터 베이스의 소개 해당 시리즈는 아주 간단하게 CS 기본 지식을 다루지만 놓치는 내용없이 다루려고 한다. 즉, 시험을 준비하면 딱 B+ 맞을 정도(?), 면접을 준비한다면 충분한 정도로 다룬다. 1. 데이터란? 데이터 : 데이터는 현실 세계에서 사건이나 사물의 특징을 관할하거나 측정하여 기술하는 가공되지 않은 사실이나 값을 의미한다. 간단하게 말해서, 그냥 실세계의 가공되지 않은 무의미한 자료들이라고 생각하면 된다. 그러나, 우리는 이러한 데이터를 통해서 유의미한 정보들을 얻어내곤 한다. 이것이 바로 정보의 의미이다. 정보 : 정보란 의미있고 쓸모 있는 내용으로 가공하여 체계적으로 조직한 데이터를 의미한다. 즉, 다음과 같이 무의미한 데이터들을 처리하여 유의미한 정보를 만드는 것이다. 2. 데이터 베..
본 포스트는 공룡책이라 불리는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Concept 10th』 을 바탕으로 작성하였습니다. Ch 3. Process 오늘날 컴퓨터 시스템들은 메모리에 다수의 프로그램을 제어하고, 구획화할 것을 필요로 한다. 이러한 필요성은 프로세스의 개념을 만들었고, 프로세스란 실행 중인 프로그램을 말한다. 프로세스는 현대의 컴퓨팅 시스템에서 작업의 단위이다. 이번 장에서는 프로세스가 무엇인지, 운영체제에서 어떻게 표현되는지 그리고 어떻게 작동하는지에 대해 설명한다. 3.1 프로세스 개념 (Process Concept) 운영체제에 대해 논의할 때 중요한 것 중 하나는 "모든 CPU 활동들을 어떻게 부를 것..
Nest 본 강의는 'john ahn'님의 강의를 정리한 내용입니다. https://www.youtube.com/watch?v=3JminDpCJNE 1. Data Transfer Object(DTO) DTO는 무엇인가?? 계층 간 데이터 교환을 위한 객체이다. DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 사용하는 객체를 말한다. DTO는 데이터가 네트워크를 통해 전송되는 방법을 정의하는 객체이다. interface나, class를 이용해서 정의할 수 도 있다. nest에서는 클래스를 이용하는 것을 추천하고 있다. 좀 더 간단한 예시를 들어서 설명하자면, DTO는 하나의 디자인 패턴으로 데이터를 포맷(형식)화 하여 계층 간에 전송된다. 만약 A계층과 B계층이 데..