학교 공부

    운영 체제 (Operating System) - 운영체제 구조 (2)

    1. OS설계 이전 시간에는 기존의 운영체제에 어떠한 문제점이 있었고, 그 문제점을 해결하기 위해서 운영체제의 구조가 어떻게 발전해왔는지 알아봤다. 이번 시간에는 그 운영체제의 구조가 어떠한 원칙을 바탕으로 구현되는지 알아보자. 운영체제 설계는 두가지 관점에서 볼 수 있다. Policy-(무엇)이 되게할 것인지? / Mechanism-무엇을 (어떻게) 할 것인지이렇게 2가지 관점으로 분리하면서 운영체제 설계를 모듈화할 수 있다. 그렇다면 이제부터 OS 설계 방식에 대해서 알아보자. 2. Layering 레이어링은 운영체제의 구조를 가상의 레이어로 나눔으로써 운영체제 설계의 복잡도를 낮추는 방식이다. 각 레이어는 잘 정의된 함수들로 이루어 졌는데, 하나의 레이어는 인접한 레이어와만 통신하도록 제한함으로써 ..

    운영 체제 (Operating System) - 운영체제 구조

    1. 컴퓨터의 기원과 발전 기계적인 스위치를 이용하여 1bit 단위로 컴퓨터에 입력하던 Hand-operated system를 시작으로 1950년도 부터 컴퓨터는 급속도로 발전하였다. 이 과정에서 '효율성'과 '성능'을 끌어올리기 위한 다양한 시도가 있었는데, 과거의 성능 향상을 저지하는 이슈와 그 이슈를 해결한 방식에 대해서 알아보자. 2. Batch system(Automatic job sequence, Spooling) 주어진 job을 일괄 처리하는 형태이다. 즉, 결과를 받기 까지 User Interaction이 불가능하고, 다른 Job으로의 스위칭이 불가능한 형태이다. 이 시대때는 Punch card로 코딩하고, 그것을 기계가 읽어, 연산하는 방식이었는데, 이러한 기계적인 I/O 장치와 전기 장..

    운영 체제 (Operating System) - 개요

    1. 운영체제의 정의와 필요성 운영체제의 역할은 무엇일까? 운영체제는 Abstraction과 Policy를 제공하는 역할을 한다. Abstraction은 하드웨어를 손쉽게, 효율적으로 사용할 수 있는 '추상화'이다. 가령 복잡한 전기적 신호를 이용하는 CPU를 C와 같은 High-level language로 구현된 Process를 이용해 손쉽게 사용한다던지, 복잡한 Memory를 Address Space로 쉽게 관리하는 것이 이 Abstraction의 예시이다. 이 예시를 한번 자세히 살펴보자. 프로그램은 바이너리 형태로 작성된 명령어의 모음이다. 이 명령어의 모음이 HW에서 실행되어야 하는데, HW가 각 프로그램을 구분하고, 인식 및 실행하여 자원을 독립적으로 공유해주어야 한다. 이를 위해 Proces..

    동시성 제어 방식 (Concurrency control) : Lock-based protocols

    1. 동시성 제어 방식 (Concurrency control) : Lock-based protocols 이 방식을 제어 프로토콜 중 이 방식이 성능이 좋아서 가장 많이 쓴다 concurrent access를 제어하는 메카니즘으로, locking protocol에 맞는 가능한 스케쥴 중 일부분만 사용하게 제한하는 것이다. lock-based protocol에는 2가지 lock mode가 있는데, exclusive mode (X lock, write lock) , shared mode (S lock, read lock)이 있고, 다음과 같은 lock compatibility를 갖는다. 이 방식에서 Transaction은 lock에 대한 request가 수용되었을 때 진행된다(lock을 받고 진행됨). 또한 ..

    DynamicSQL와 StaticSQL의 차이

    Static SQL이란, 어떻게 데이터베이스에 접근할지가 미리 정의되는 형태의 SQL으로, SQL 구문이 정적으로 컴파일 시점에 정의되기 때문에 precompile시 Syntax, Sematics체크가 가능하다. Dynamic SQL이란, 런타임에서 사용자의 입력 값에 따라 동적으로 SQL 구문을 생성하여 실행하는 방식의 SQL로, 동적으로 처리하기 위해 문자열 변수를 활용하고 런타임 시 구문이 확정된다는 특징을 가지고 있다. Static SQL과 달리 런타임 시에 사용자로부터 SQL문의 일부 혹은 전체를 입력 받아 실행할 수 있기 때문에 precompile시 Syntax, Sematics체크가 불가능하고 바인드 변수를 사용할 수 있다는 특징을 가지고 있다. 각 방식은 서로 다른 장단점을 가지고 있다. ..

    오라클의 조인 타입 / 표준 조인과 비표준 조인의 차이점

    0. 조인의 정의 및 개요 조인은 두 개 이상의 테이블을 합치는 테이블 단위 연산으로 표준 조인과 비표준 조인으로 크게 나뉜다. 표준 조인은 서로 다른 DBMS를 통일하고자 ANSI/ISO에서 제정한 표준 SQL의 조인으로 Inner join과 Left join과 Right join과 Full joind이 표준 조인이 존재한다. 이외의 조인은 비표준 조인이다. 각 조인마다 특성이 다르기 때문에 이에 대해서 정리해보고자 한다. 1. 조인의 종류 1. Equi-joins (등가 조인) // 비표준 조인 조인 조건에 “=”연산을 포함하는 조인으로, 조건이 정확히 일치하는 행들을 연결하는 조인이다. Cartesian Product를 통해 만들어진 릴레이션 중 실제 있는 것만 필터링한 것과 같다. 2. Self ..